var CLOSURE_NO_DEPS = true;
window.polymerSkipLoadingFontRoboto = true;
/** vim: et:ts=4:sw=4:sts=4
 * @license RequireJS 2.3.6 Copyright jQuery Foundation and other contributors.
 * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
 */
//Not using strict: uneven strict support in browsers, #392, and causes
//problems with requirejs.exec()/transpiler plugins that may not be strict.
/*jslint regexp: true, nomen: true, sloppy: true */
/*global window, navigator, document, importScripts, setTimeout, opera */

var requirejs, require, define;
(function (global, setTimeout) {
    var req, s, head, baseElement, dataMain, src,
        interactiveScript, currentlyAddingScript, mainScript, subPath,
        version = '2.3.6',
        commentRegExp = /\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,
        cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
        jsSuffixRegExp = /\.js$/,
        currDirRegExp = /^\.\//,
        op = Object.prototype,
        ostring = op.toString,
        hasOwn = op.hasOwnProperty,
        isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document),
        isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
        //PS3 indicates loaded and complete, but need to wait for complete
        //specifically. Sequence is 'loading', 'loaded', execution,
        // then 'complete'. The UA check is unfortunate, but not sure how
        //to feature test w/o causing perf issues.
        readyRegExp = isBrowser && navigator.platform === 'PLAYSTATION 3' ?
                      /^complete$/ : /^(complete|loaded)$/,
        defContextName = '_',
        //Oh the tragedy, detecting opera. See the usage of isOpera for reason.
        isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]',
        contexts = {},
        cfg = {},
        globalDefQueue = [],
        useInteractive = false;

    //Could match something like ')//comment', do not lose the prefix to comment.
    function commentReplace(match, singlePrefix) {
        return singlePrefix || '';
    }

    function isFunction(it) {
        return ostring.call(it) === '[object Function]';
    }

    function isArray(it) {
        return ostring.call(it) === '[object Array]';
    }

    /**
     * Helper function for iterating over an array. If the func returns
     * a true value, it will break out of the loop.
     */
    function each(ary, func) {
        if (ary) {
            var i;
            for (i = 0; i < ary.length; i += 1) {
                if (ary[i] && func(ary[i], i, ary)) {
                    break;
                }
            }
        }
    }

    /**
     * Helper function for iterating over an array backwards. If the func
     * returns a true value, it will break out of the loop.
     */
    function eachReverse(ary, func) {
        if (ary) {
            var i;
            for (i = ary.length - 1; i > -1; i -= 1) {
                if (ary[i] && func(ary[i], i, ary)) {
                    break;
                }
            }
        }
    }

    function hasProp(obj, prop) {
        return hasOwn.call(obj, prop);
    }

    function getOwn(obj, prop) {
        return hasProp(obj, prop) && obj[prop];
    }

    /**
     * Cycles over properties in an object and calls a function for each
     * property value. If the function returns a truthy value, then the
     * iteration is stopped.
     */
    function eachProp(obj, func) {
        var prop;
        for (prop in obj) {
            if (hasProp(obj, prop)) {
                if (func(obj[prop], prop)) {
                    break;
                }
            }
        }
    }

    /**
     * Simple function to mix in properties from source into target,
     * but only if target does not already have a property of the same name.
     */
    function mixin(target, source, force, deepStringMixin) {
        if (source) {
            eachProp(source, function (value, prop) {
                if (force || !hasProp(target, prop)) {
                    if (deepStringMixin && typeof value === 'object' && value &&
                        !isArray(value) && !isFunction(value) &&
                        !(value instanceof RegExp)) {

                        if (!target[prop]) {
                            target[prop] = {};
                        }
                        mixin(target[prop], value, force, deepStringMixin);
                    } else {
                        target[prop] = value;
                    }
                }
            });
        }
        return target;
    }

    //Similar to Function.prototype.bind, but the 'this' object is specified
    //first, since it is easier to read/figure out what 'this' will be.
    function bind(obj, fn) {
        return function () {
            return fn.apply(obj, arguments);
        };
    }

    function scripts() {
        return document.getElementsByTagName('script');
    }

    function defaultOnError(err) {
        throw err;
    }

    //Allow getting a global that is expressed in
    //dot notation, like 'a.b.c'.
    function getGlobal(value) {
        if (!value) {
            return value;
        }
        var g = global;
        each(value.split('.'), function (part) {
            g = g[part];
        });
        return g;
    }

    /**
     * Constructs an error with a pointer to an URL with more information.
     * @param {String} id the error ID that maps to an ID on a web page.
     * @param {String} message human readable error.
     * @param {Error} [err] the original error, if there is one.
     *
     * @returns {Error}
     */
    function makeError(id, msg, err, requireModules) {
        var e = new Error(msg + '\nhttps://requirejs.org/docs/errors.html#' + id);
        e.requireType = id;
        e.requireModules = requireModules;
        if (err) {
            e.originalError = err;
        }
        return e;
    }

    if (typeof define !== 'undefined') {
        //If a define is already in play via another AMD loader,
        //do not overwrite.
        return;
    }

    if (typeof requirejs !== 'undefined') {
        if (isFunction(requirejs)) {
            //Do not overwrite an existing requirejs instance.
            return;
        }
        cfg = requirejs;
        requirejs = undefined;
    }

    //Allow for a require config object
    if (typeof require !== 'undefined' && !isFunction(require)) {
        //assume it is a config object.
        cfg = require;
        require = undefined;
    }

    function newContext(contextName) {
        var inCheckLoaded, Module, context, handlers,
            checkLoadedTimeoutId,
            config = {
                //Defaults. Do not set a default for map
                //config to speed up normalize(), which
                //will run faster if there is no default.
                waitSeconds: 7,
                baseUrl: './',
                paths: {},
                bundles: {},
                pkgs: {},
                shim: {},
                config: {}
            },
            registry = {},
            //registry of just enabled modules, to speed
            //cycle breaking code when lots of modules
            //are registered, but not activated.
            enabledRegistry = {},
            undefEvents = {},
            defQueue = [],
            defined = {},
            urlFetched = {},
            bundlesMap = {},
            requireCounter = 1,
            unnormalizedCounter = 1;

        /**
         * Trims the . and .. from an array of path segments.
         * It will keep a leading path segment if a .. will become
         * the first path segment, to help with module name lookups,
         * which act like paths, but can be remapped. But the end result,
         * all paths that use this function should look normalized.
         * NOTE: this method MODIFIES the input array.
         * @param {Array} ary the array of path segments.
         */
        function trimDots(ary) {
            var i, part;
            for (i = 0; i < ary.length; i++) {
                part = ary[i];
                if (part === '.') {
                    ary.splice(i, 1);
                    i -= 1;
                } else if (part === '..') {
                    // If at the start, or previous value is still ..,
                    // keep them so that when converted to a path it may
                    // still work when converted to a path, even though
                    // as an ID it is less than ideal. In larger point
                    // releases, may be better to just kick out an error.
                    if (i === 0 || (i === 1 && ary[2] === '..') || ary[i - 1] === '..') {
                        continue;
                    } else if (i > 0) {
                        ary.splice(i - 1, 2);
                        i -= 2;
                    }
                }
            }
        }

        /**
         * Given a relative module name, like ./something, normalize it to
         * a real name that can be mapped to a path.
         * @param {String} name the relative name
         * @param {String} baseName a real name that the name arg is relative
         * to.
         * @param {Boolean} applyMap apply the map config to the value. Should
         * only be done if this normalization is for a dependency ID.
         * @returns {String} normalized name
         */
        function normalize(name, baseName, applyMap) {
            var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex,
                foundMap, foundI, foundStarMap, starI, normalizedBaseParts,
                baseParts = (baseName && baseName.split('/')),
                map = config.map,
                starMap = map && map['*'];

            //Adjust any relative paths.
            if (name) {
                name = name.split('/');
                lastIndex = name.length - 1;

                // If wanting node ID compatibility, strip .js from end
                // of IDs. Have to do this here, and not in nameToUrl
                // because node allows either .js or non .js to map
                // to same file.
                if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
                    name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
                }

                // Starts with a '.' so need the baseName
                if (name[0].charAt(0) === '.' && baseParts) {
                    //Convert baseName to array, and lop off the last part,
                    //so that . matches that 'directory' and not name of the baseName's
                    //module. For instance, baseName of 'one/two/three', maps to
                    //'one/two/three.js', but we want the directory, 'one/two' for
                    //this normalization.
                    normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
                    name = normalizedBaseParts.concat(name);
                }

                trimDots(name);
                name = name.join('/');
            }

            //Apply map config if available.
            if (applyMap && map && (baseParts || starMap)) {
                nameParts = name.split('/');

                outerLoop: for (i = nameParts.length; i > 0; i -= 1) {
                    nameSegment = nameParts.slice(0, i).join('/');

                    if (baseParts) {
                        //Find the longest baseName segment match in the config.
                        //So, do joins on the biggest to smallest lengths of baseParts.
                        for (j = baseParts.length; j > 0; j -= 1) {
                            mapValue = getOwn(map, baseParts.slice(0, j).join('/'));

                            //baseName segment has config, find if it has one for
                            //this name.
                            if (mapValue) {
                                mapValue = getOwn(mapValue, nameSegment);
                                if (mapValue) {
                                    //Match, update name to the new value.
                                    foundMap = mapValue;
                                    foundI = i;
                                    break outerLoop;
                                }
                            }
                        }
                    }

                    //Check for a star map match, but just hold on to it,
                    //if there is a shorter segment match later in a matching
                    //config, then favor over this star map.
                    if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) {
                        foundStarMap = getOwn(starMap, nameSegment);
                        starI = i;
                    }
                }

                if (!foundMap && foundStarMap) {
                    foundMap = foundStarMap;
                    foundI = starI;
                }

                if (foundMap) {
                    nameParts.splice(0, foundI, foundMap);
                    name = nameParts.join('/');
                }
            }

            // If the name points to a package's name, use
            // the package main instead.
            pkgMain = getOwn(config.pkgs, name);

            return pkgMain ? pkgMain : name;
        }

        function removeScript(name) {
            if (isBrowser) {
                each(scripts(), function (scriptNode) {
                    if (scriptNode.getAttribute('data-requiremodule') === name &&
                            scriptNode.getAttribute('data-requirecontext') === context.contextName) {
                        scriptNode.parentNode.removeChild(scriptNode);
                        return true;
                    }
                });
            }
        }

        function hasPathFallback(id) {
            var pathConfig = getOwn(config.paths, id);
            if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) {
                //Pop off the first array value, since it failed, and
                //retry
                pathConfig.shift();
                context.require.undef(id);

                //Custom require that does not do map translation, since
                //ID is "absolute", already mapped/resolved.
                context.makeRequire(null, {
                    skipMap: true
                })([id]);

                return true;
            }
        }

        //Turns a plugin!resource to [plugin, resource]
        //with the plugin being undefined if the name
        //did not have a plugin prefix.
        function splitPrefix(name) {
            var prefix,
                index = name ? name.indexOf('!') : -1;
            if (index > -1) {
                prefix = name.substring(0, index);
                name = name.substring(index + 1, name.length);
            }
            return [prefix, name];
        }

        /**
         * Creates a module mapping that includes plugin prefix, module
         * name, and path. If parentModuleMap is provided it will
         * also normalize the name via require.normalize()
         *
         * @param {String} name the module name
         * @param {String} [parentModuleMap] parent module map
         * for the module name, used to resolve relative names.
         * @param {Boolean} isNormalized: is the ID already normalized.
         * This is true if this call is done for a define() module ID.
         * @param {Boolean} applyMap: apply the map config to the ID.
         * Should only be true if this map is for a dependency.
         *
         * @returns {Object}
         */
        function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {
            var url, pluginModule, suffix, nameParts,
                prefix = null,
                parentName = parentModuleMap ? parentModuleMap.name : null,
                originalName = name,
                isDefine = true,
                normalizedName = '';

            //If no name, then it means it is a require call, generate an
            //internal name.
            if (!name) {
                isDefine = false;
                name = '_@r' + (requireCounter += 1);
            }

            nameParts = splitPrefix(name);
            prefix = nameParts[0];
            name = nameParts[1];

            if (prefix) {
                prefix = normalize(prefix, parentName, applyMap);
                pluginModule = getOwn(defined, prefix);
            }

            //Account for relative paths if there is a base name.
            if (name) {
                if (prefix) {
                    if (isNormalized) {
                        normalizedName = name;
                    } else if (pluginModule && pluginModule.normalize) {
                        //Plugin is loaded, use its normalize method.
                        normalizedName = pluginModule.normalize(name, function (name) {
                            return normalize(name, parentName, applyMap);
                        });
                    } else {
                        // If nested plugin references, then do not try to
                        // normalize, as it will not normalize correctly. This
                        // places a restriction on resourceIds, and the longer
                        // term solution is not to normalize until plugins are
                        // loaded and all normalizations to allow for async
                        // loading of a loader plugin. But for now, fixes the
                        // common uses. Details in #1131
                        normalizedName = name.indexOf('!') === -1 ?
                                         normalize(name, parentName, applyMap) :
                                         name;
                    }
                } else {
                    //A regular module.
                    normalizedName = normalize(name, parentName, applyMap);

                    //Normalized name may be a plugin ID due to map config
                    //application in normalize. The map config values must
                    //already be normalized, so do not need to redo that part.
                    nameParts = splitPrefix(normalizedName);
                    prefix = nameParts[0];
                    normalizedName = nameParts[1];
                    isNormalized = true;

                    url = context.nameToUrl(normalizedName);
                }
            }

            //If the id is a plugin id that cannot be determined if it needs
            //normalization, stamp it with a unique ID so two matching relative
            //ids that may conflict can be separate.
            suffix = prefix && !pluginModule && !isNormalized ?
                     '_unnormalized' + (unnormalizedCounter += 1) :
                     '';

            return {
                prefix: prefix,
                name: normalizedName,
                parentMap: parentModuleMap,
                unnormalized: !!suffix,
                url: url,
                originalName: originalName,
                isDefine: isDefine,
                id: (prefix ?
                        prefix + '!' + normalizedName :
                        normalizedName) + suffix
            };
        }

        function getModule(depMap) {
            var id = depMap.id,
                mod = getOwn(registry, id);

            if (!mod) {
                mod = registry[id] = new context.Module(depMap);
            }

            return mod;
        }

        function on(depMap, name, fn) {
            var id = depMap.id,
                mod = getOwn(registry, id);

            if (hasProp(defined, id) &&
                    (!mod || mod.defineEmitComplete)) {
                if (name === 'defined') {
                    fn(defined[id]);
                }
            } else {
                mod = getModule(depMap);
                if (mod.error && name === 'error') {
                    fn(mod.error);
                } else {
                    mod.on(name, fn);
                }
            }
        }

        function onError(err, errback) {
            var ids = err.requireModules,
                notified = false;

            if (errback) {
                errback(err);
            } else {
                each(ids, function (id) {
                    var mod = getOwn(registry, id);
                    if (mod) {
                        //Set error on module, so it skips timeout checks.
                        mod.error = err;
                        if (mod.events.error) {
                            notified = true;
                            mod.emit('error', err);
                        }
                    }
                });

                if (!notified) {
                    req.onError(err);
                }
            }
        }

        /**
         * Internal method to transfer globalQueue items to this context's
         * defQueue.
         */
        function takeGlobalQueue() {
            //Push all the globalDefQueue items into the context's defQueue
            if (globalDefQueue.length) {
                each(globalDefQueue, function(queueItem) {
                    var id = queueItem[0];
                    if (typeof id === 'string') {
                        context.defQueueMap[id] = true;
                    }
                    defQueue.push(queueItem);
                });
                globalDefQueue = [];
            }
        }

        handlers = {
            'require': function (mod) {
                if (mod.require) {
                    return mod.require;
                } else {
                    return (mod.require = context.makeRequire(mod.map));
                }
            },
            'exports': function (mod) {
                mod.usingExports = true;
                if (mod.map.isDefine) {
                    if (mod.exports) {
                        return (defined[mod.map.id] = mod.exports);
                    } else {
                        return (mod.exports = defined[mod.map.id] = {});
                    }
                }
            },
            'module': function (mod) {
                if (mod.module) {
                    return mod.module;
                } else {
                    return (mod.module = {
                        id: mod.map.id,
                        uri: mod.map.url,
                        config: function () {
                            return getOwn(config.config, mod.map.id) || {};
                        },
                        exports: mod.exports || (mod.exports = {})
                    });
                }
            }
        };

        function cleanRegistry(id) {
            //Clean up machinery used for waiting modules.
            delete registry[id];
            delete enabledRegistry[id];
        }

        function breakCycle(mod, traced, processed) {
            var id = mod.map.id;

            if (mod.error) {
                mod.emit('error', mod.error);
            } else {
                traced[id] = true;
                each(mod.depMaps, function (depMap, i) {
                    var depId = depMap.id,
                        dep = getOwn(registry, depId);

                    //Only force things that have not completed
                    //being defined, so still in the registry,
                    //and only if it has not been matched up
                    //in the module already.
                    if (dep && !mod.depMatched[i] && !processed[depId]) {
                        if (getOwn(traced, depId)) {
                            mod.defineDep(i, defined[depId]);
                            mod.check(); //pass false?
                        } else {
                            breakCycle(dep, traced, processed);
                        }
                    }
                });
                processed[id] = true;
            }
        }

        function checkLoaded() {
            var err, usingPathFallback,
                waitInterval = config.waitSeconds * 1000,
                //It is possible to disable the wait interval by using waitSeconds of 0.
                expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),
                noLoads = [],
                reqCalls = [],
                stillLoading = false,
                needCycleCheck = true;

            //Do not bother if this call was a result of a cycle break.
            if (inCheckLoaded) {
                return;
            }

            inCheckLoaded = true;

            //Figure out the state of all the modules.
            eachProp(enabledRegistry, function (mod) {
                var map = mod.map,
                    modId = map.id;

                //Skip things that are not enabled or in error state.
                if (!mod.enabled) {
                    return;
                }

                if (!map.isDefine) {
                    reqCalls.push(mod);
                }

                if (!mod.error) {
                    //If the module should be executed, and it has not
                    //been inited and time is up, remember it.
                    if (!mod.inited && expired) {
                        if (hasPathFallback(modId)) {
                            usingPathFallback = true;
                            stillLoading = true;
                        } else {
                            noLoads.push(modId);
                            removeScript(modId);
                        }
                    } else if (!mod.inited && mod.fetched && map.isDefine) {
                        stillLoading = true;
                        if (!map.prefix) {
                            //No reason to keep looking for unfinished
                            //loading. If the only stillLoading is a
                            //plugin resource though, keep going,
                            //because it may be that a plugin resource
                            //is waiting on a non-plugin cycle.
                            return (needCycleCheck = false);
                        }
                    }
                }
            });

            if (expired && noLoads.length) {
                //If wait time expired, throw error of unloaded modules.
                err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads);
                err.contextName = context.contextName;
                return onError(err);
            }

            //Not expired, check for a cycle.
            if (needCycleCheck) {
                each(reqCalls, function (mod) {
                    breakCycle(mod, {}, {});
                });
            }

            //If still waiting on loads, and the waiting load is something
            //other than a plugin resource, or there are still outstanding
            //scripts, then just try back later.
            if ((!expired || usingPathFallback) && stillLoading) {
                //Something is still waiting to load. Wait for it, but only
                //if a timeout is not already in effect.
                if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) {
                    checkLoadedTimeoutId = setTimeout(function () {
                        checkLoadedTimeoutId = 0;
                        checkLoaded();
                    }, 50);
                }
            }

            inCheckLoaded = false;
        }

        Module = function (map) {
            this.events = getOwn(undefEvents, map.id) || {};
            this.map = map;
            this.shim = getOwn(config.shim, map.id);
            this.depExports = [];
            this.depMaps = [];
            this.depMatched = [];
            this.pluginMaps = {};
            this.depCount = 0;

            /* this.exports this.factory
               this.depMaps = [],
               this.enabled, this.fetched
            */
        };

        Module.prototype = {
            init: function (depMaps, factory, errback, options) {
                options = options || {};

                //Do not do more inits if already done. Can happen if there
                //are multiple define calls for the same module. That is not
                //a normal, common case, but it is also not unexpected.
                if (this.inited) {
                    return;
                }

                this.factory = factory;

                if (errback) {
                    //Register for errors on this module.
                    this.on('error', errback);
                } else if (this.events.error) {
                    //If no errback already, but there are error listeners
                    //on this module, set up an errback to pass to the deps.
                    errback = bind(this, function (err) {
                        this.emit('error', err);
                    });
                }

                //Do a copy of the dependency array, so that
                //source inputs are not modified. For example
                //"shim" deps are passed in here directly, and
                //doing a direct modification of the depMaps array
                //would affect that config.
                this.depMaps = depMaps && depMaps.slice(0);

                this.errback = errback;

                //Indicate this module has be initialized
                this.inited = true;

                this.ignore = options.ignore;

                //Could have option to init this module in enabled mode,
                //or could have been previously marked as enabled. However,
                //the dependencies are not known until init is called. So
                //if enabled previously, now trigger dependencies as enabled.
                if (options.enabled || this.enabled) {
                    //Enable this module and dependencies.
                    //Will call this.check()
                    this.enable();
                } else {
                    this.check();
                }
            },

            defineDep: function (i, depExports) {
                //Because of cycles, defined callback for a given
                //export can be called more than once.
                if (!this.depMatched[i]) {
                    this.depMatched[i] = true;
                    this.depCount -= 1;
                    this.depExports[i] = depExports;
                }
            },

            fetch: function () {
                if (this.fetched) {
                    return;
                }
                this.fetched = true;

                context.startTime = (new Date()).getTime();

                var map = this.map;

                //If the manager is for a plugin managed resource,
                //ask the plugin to load it now.
                if (this.shim) {
                    context.makeRequire(this.map, {
                        enableBuildCallback: true
                    })(this.shim.deps || [], bind(this, function () {
                        return map.prefix ? this.callPlugin() : this.load();
                    }));
                } else {
                    //Regular dependency.
                    return map.prefix ? this.callPlugin() : this.load();
                }
            },

            load: function () {
                var url = this.map.url;

                //Regular dependency.
                if (!urlFetched[url]) {
                    urlFetched[url] = true;
                    context.load(this.map.id, url);
                }
            },

            /**
             * Checks if the module is ready to define itself, and if so,
             * define it.
             */
            check: function () {
                if (!this.enabled || this.enabling) {
                    return;
                }

                var err, cjsModule,
                    id = this.map.id,
                    depExports = this.depExports,
                    exports = this.exports,
                    factory = this.factory;

                if (!this.inited) {
                    // Only fetch if not already in the defQueue.
                    if (!hasProp(context.defQueueMap, id)) {
                        this.fetch();
                    }
                } else if (this.error) {
                    this.emit('error', this.error);
                } else if (!this.defining) {
                    //The factory could trigger another require call
                    //that would result in checking this module to
                    //define itself again. If already in the process
                    //of doing that, skip this work.
                    this.defining = true;

                    if (this.depCount < 1 && !this.defined) {
                        if (isFunction(factory)) {
                            //If there is an error listener, favor passing
                            //to that instead of throwing an error. However,
                            //only do it for define()'d  modules. require
                            //errbacks should not be called for failures in
                            //their callbacks (#699). However if a global
                            //onError is set, use that.
                            if ((this.events.error && this.map.isDefine) ||
                                req.onError !== defaultOnError) {
                                try {
                                    exports = context.execCb(id, factory, depExports, exports);
                                } catch (e) {
                                    err = e;
                                }
                            } else {
                                exports = context.execCb(id, factory, depExports, exports);
                            }

                            // Favor return value over exports. If node/cjs in play,
                            // then will not have a return value anyway. Favor
                            // module.exports assignment over exports object.
                            if (this.map.isDefine && exports === undefined) {
                                cjsModule = this.module;
                                if (cjsModule) {
                                    exports = cjsModule.exports;
                                } else if (this.usingExports) {
                                    //exports already set the defined value.
                                    exports = this.exports;
                                }
                            }

                            if (err) {
                                err.requireMap = this.map;
                                err.requireModules = this.map.isDefine ? [this.map.id] : null;
                                err.requireType = this.map.isDefine ? 'define' : 'require';
                                return onError((this.error = err));
                            }

                        } else {
                            //Just a literal value
                            exports = factory;
                        }

                        this.exports = exports;

                        if (this.map.isDefine && !this.ignore) {
                            defined[id] = exports;

                            if (req.onResourceLoad) {
                                var resLoadMaps = [];
                                each(this.depMaps, function (depMap) {
                                    resLoadMaps.push(depMap.normalizedMap || depMap);
                                });
                                req.onResourceLoad(context, this.map, resLoadMaps);
                            }
                        }

                        //Clean up
                        cleanRegistry(id);

                        this.defined = true;
                    }

                    //Finished the define stage. Allow calling check again
                    //to allow define notifications below in the case of a
                    //cycle.
                    this.defining = false;

                    if (this.defined && !this.defineEmitted) {
                        this.defineEmitted = true;
                        this.emit('defined', this.exports);
                        this.defineEmitComplete = true;
                    }

                }
            },

            callPlugin: function () {
                var map = this.map,
                    id = map.id,
                    //Map already normalized the prefix.
                    pluginMap = makeModuleMap(map.prefix);

                //Mark this as a dependency for this plugin, so it
                //can be traced for cycles.
                this.depMaps.push(pluginMap);

                on(pluginMap, 'defined', bind(this, function (plugin) {
                    var load, normalizedMap, normalizedMod,
                        bundleId = getOwn(bundlesMap, this.map.id),
                        name = this.map.name,
                        parentName = this.map.parentMap ? this.map.parentMap.name : null,
                        localRequire = context.makeRequire(map.parentMap, {
                            enableBuildCallback: true
                        });

                    //If current map is not normalized, wait for that
                    //normalized name to load instead of continuing.
                    if (this.map.unnormalized) {
                        //Normalize the ID if the plugin allows it.
                        if (plugin.normalize) {
                            name = plugin.normalize(name, function (name) {
                                return normalize(name, parentName, true);
                            }) || '';
                        }

                        //prefix and name should already be normalized, no need
                        //for applying map config again either.
                        normalizedMap = makeModuleMap(map.prefix + '!' + name,
                                                      this.map.parentMap,
                                                      true);
                        on(normalizedMap,
                            'defined', bind(this, function (value) {
                                this.map.normalizedMap = normalizedMap;
                                this.init([], function () { return value; }, null, {
                                    enabled: true,
                                    ignore: true
                                });
                            }));

                        normalizedMod = getOwn(registry, normalizedMap.id);
                        if (normalizedMod) {
                            //Mark this as a dependency for this plugin, so it
                            //can be traced for cycles.
                            this.depMaps.push(normalizedMap);

                            if (this.events.error) {
                                normalizedMod.on('error', bind(this, function (err) {
                                    this.emit('error', err);
                                }));
                            }
                            normalizedMod.enable();
                        }

                        return;
                    }

                    //If a paths config, then just load that file instead to
                    //resolve the plugin, as it is built into that paths layer.
                    if (bundleId) {
                        this.map.url = context.nameToUrl(bundleId);
                        this.load();
                        return;
                    }

                    load = bind(this, function (value) {
                        this.init([], function () { return value; }, null, {
                            enabled: true
                        });
                    });

                    load.error = bind(this, function (err) {
                        this.inited = true;
                        this.error = err;
                        err.requireModules = [id];

                        //Remove temp unnormalized modules for this module,
                        //since they will never be resolved otherwise now.
                        eachProp(registry, function (mod) {
                            if (mod.map.id.indexOf(id + '_unnormalized') === 0) {
                                cleanRegistry(mod.map.id);
                            }
                        });

                        onError(err);
                    });

                    //Allow plugins to load other code without having to know the
                    //context or how to 'complete' the load.
                    load.fromText = bind(this, function (text, textAlt) {
                        /*jslint evil: true */
                        var moduleName = map.name,
                            moduleMap = makeModuleMap(moduleName),
                            hasInteractive = useInteractive;

                        //As of 2.1.0, support just passing the text, to reinforce
                        //fromText only being called once per resource. Still
                        //support old style of passing moduleName but discard
                        //that moduleName in favor of the internal ref.
                        if (textAlt) {
                            text = textAlt;
                        }

                        //Turn off interactive script matching for IE for any define
                        //calls in the text, then turn it back on at the end.
                        if (hasInteractive) {
                            useInteractive = false;
                        }

                        //Prime the system by creating a module instance for
                        //it.
                        getModule(moduleMap);

                        //Transfer any config to this other module.
                        if (hasProp(config.config, id)) {
                            config.config[moduleName] = config.config[id];
                        }

                        try {
                            req.exec(text);
                        } catch (e) {
                            return onError(makeError('fromtexteval',
                                             'fromText eval for ' + id +
                                            ' failed: ' + e,
                                             e,
                                             [id]));
                        }

                        if (hasInteractive) {
                            useInteractive = true;
                        }

                        //Mark this as a dependency for the plugin
                        //resource
                        this.depMaps.push(moduleMap);

                        //Support anonymous modules.
                        context.completeLoad(moduleName);

                        //Bind the value of that module to the value for this
                        //resource ID.
                        localRequire([moduleName], load);
                    });

                    //Use parentName here since the plugin's name is not reliable,
                    //could be some weird string with no path that actually wants to
                    //reference the parentName's path.
                    plugin.load(map.name, localRequire, load, config);
                }));

                context.enable(pluginMap, this);
                this.pluginMaps[pluginMap.id] = pluginMap;
            },

            enable: function () {
                enabledRegistry[this.map.id] = this;
                this.enabled = true;

                //Set flag mentioning that the module is enabling,
                //so that immediate calls to the defined callbacks
                //for dependencies do not trigger inadvertent load
                //with the depCount still being zero.
                this.enabling = true;

                //Enable each dependency
                each(this.depMaps, bind(this, function (depMap, i) {
                    var id, mod, handler;

                    if (typeof depMap === 'string') {
                        //Dependency needs to be converted to a depMap
                        //and wired up to this module.
                        depMap = makeModuleMap(depMap,
                                               (this.map.isDefine ? this.map : this.map.parentMap),
                                               false,
                                               !this.skipMap);
                        this.depMaps[i] = depMap;

                        handler = getOwn(handlers, depMap.id);

                        if (handler) {
                            this.depExports[i] = handler(this);
                            return;
                        }

                        this.depCount += 1;

                        on(depMap, 'defined', bind(this, function (depExports) {
                            if (this.undefed) {
                                return;
                            }
                            this.defineDep(i, depExports);
                            this.check();
                        }));

                        if (this.errback) {
                            on(depMap, 'error', bind(this, this.errback));
                        } else if (this.events.error) {
                            // No direct errback on this module, but something
                            // else is listening for errors, so be sure to
                            // propagate the error correctly.
                            on(depMap, 'error', bind(this, function(err) {
                                this.emit('error', err);
                            }));
                        }
                    }

                    id = depMap.id;
                    mod = registry[id];

                    //Skip special modules like 'require', 'exports', 'module'
                    //Also, don't call enable if it is already enabled,
                    //important in circular dependency cases.
                    if (!hasProp(handlers, id) && mod && !mod.enabled) {
                        context.enable(depMap, this);
                    }
                }));

                //Enable each plugin that is used in
                //a dependency
                eachProp(this.pluginMaps, bind(this, function (pluginMap) {
                    var mod = getOwn(registry, pluginMap.id);
                    if (mod && !mod.enabled) {
                        context.enable(pluginMap, this);
                    }
                }));

                this.enabling = false;

                this.check();
            },

            on: function (name, cb) {
                var cbs = this.events[name];
                if (!cbs) {
                    cbs = this.events[name] = [];
                }
                cbs.push(cb);
            },

            emit: function (name, evt) {
                each(this.events[name], function (cb) {
                    cb(evt);
                });
                if (name === 'error') {
                    //Now that the error handler was triggered, remove
                    //the listeners, since this broken Module instance
                    //can stay around for a while in the registry.
                    delete this.events[name];
                }
            }
        };

        function callGetModule(args) {
            //Skip modules already defined.
            if (!hasProp(defined, args[0])) {
                getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]);
            }
        }

        function removeListener(node, func, name, ieName) {
            //Favor detachEvent because of IE9
            //issue, see attachEvent/addEventListener comment elsewhere
            //in this file.
            if (node.detachEvent && !isOpera) {
                //Probably IE. If not it will throw an error, which will be
                //useful to know.
                if (ieName) {
                    node.detachEvent(ieName, func);
                }
            } else {
                node.removeEventListener(name, func, false);
            }
        }

        /**
         * Given an event from a script node, get the requirejs info from it,
         * and then removes the event listeners on the node.
         * @param {Event} evt
         * @returns {Object}
         */
        function getScriptData(evt) {
            //Using currentTarget instead of target for Firefox 2.0's sake. Not
            //all old browsers will be supported, but this one was easy enough
            //to support and still makes sense.
            var node = evt.currentTarget || evt.srcElement;

            //Remove the listeners once here.
            removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange');
            removeListener(node, context.onScriptError, 'error');

            return {
                node: node,
                id: node && node.getAttribute('data-requiremodule')
            };
        }

        function intakeDefines() {
            var args;

            //Any defined modules in the global queue, intake them now.
            takeGlobalQueue();

            //Make sure any remaining defQueue items get properly processed.
            while (defQueue.length) {
                args = defQueue.shift();
                if (args[0] === null) {
                    return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' +
                        args[args.length - 1]));
                } else {
                    //args are id, deps, factory. Should be normalized by the
                    //define() function.
                    callGetModule(args);
                }
            }
            context.defQueueMap = {};
        }

        context = {
            config: config,
            contextName: contextName,
            registry: registry,
            defined: defined,
            urlFetched: urlFetched,
            defQueue: defQueue,
            defQueueMap: {},
            Module: Module,
            makeModuleMap: makeModuleMap,
            nextTick: req.nextTick,
            onError: onError,

            /**
             * Set a configuration for the context.
             * @param {Object} cfg config object to integrate.
             */
            configure: function (cfg) {
                //Make sure the baseUrl ends in a slash.
                if (cfg.baseUrl) {
                    if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {
                        cfg.baseUrl += '/';
                    }
                }

                // Convert old style urlArgs string to a function.
                if (typeof cfg.urlArgs === 'string') {
                    var urlArgs = cfg.urlArgs;
                    cfg.urlArgs = function(id, url) {
                        return (url.indexOf('?') === -1 ? '?' : '&') + urlArgs;
                    };
                }

                //Save off the paths since they require special processing,
                //they are additive.
                var shim = config.shim,
                    objs = {
                        paths: true,
                        bundles: true,
                        config: true,
                        map: true
                    };

                eachProp(cfg, function (value, prop) {
                    if (objs[prop]) {
                        if (!config[prop]) {
                            config[prop] = {};
                        }
                        mixin(config[prop], value, true, true);
                    } else {
                        config[prop] = value;
                    }
                });

                //Reverse map the bundles
                if (cfg.bundles) {
                    eachProp(cfg.bundles, function (value, prop) {
                        each(value, function (v) {
                            if (v !== prop) {
                                bundlesMap[v] = prop;
                            }
                        });
                    });
                }

                //Merge shim
                if (cfg.shim) {
                    eachProp(cfg.shim, function (value, id) {
                        //Normalize the structure
                        if (isArray(value)) {
                            value = {
                                deps: value
                            };
                        }
                        if ((value.exports || value.init) && !value.exportsFn) {
                            value.exportsFn = context.makeShimExports(value);
                        }
                        shim[id] = value;
                    });
                    config.shim = shim;
                }

                //Adjust packages if necessary.
                if (cfg.packages) {
                    each(cfg.packages, function (pkgObj) {
                        var location, name;

                        pkgObj = typeof pkgObj === 'string' ? {name: pkgObj} : pkgObj;

                        name = pkgObj.name;
                        location = pkgObj.location;
                        if (location) {
                            config.paths[name] = pkgObj.location;
                        }

                        //Save pointer to main module ID for pkg name.
                        //Remove leading dot in main, so main paths are normalized,
                        //and remove any trailing .js, since different package
                        //envs have different conventions: some use a module name,
                        //some use a file name.
                        config.pkgs[name] = pkgObj.name + '/' + (pkgObj.main || 'main')
                                     .replace(currDirRegExp, '')
                                     .replace(jsSuffixRegExp, '');
                    });
                }

                //If there are any "waiting to execute" modules in the registry,
                //update the maps for them, since their info, like URLs to load,
                //may have changed.
                eachProp(registry, function (mod, id) {
                    //If module already has init called, since it is too
                    //late to modify them, and ignore unnormalized ones
                    //since they are transient.
                    if (!mod.inited && !mod.map.unnormalized) {
                        mod.map = makeModuleMap(id, null, true);
                    }
                });

                //If a deps array or a config callback is specified, then call
                //require with those args. This is useful when require is defined as a
                //config object before require.js is loaded.
                if (cfg.deps || cfg.callback) {
                    context.require(cfg.deps || [], cfg.callback);
                }
            },

            makeShimExports: function (value) {
                function fn() {
                    var ret;
                    if (value.init) {
                        ret = value.init.apply(global, arguments);
                    }
                    return ret || (value.exports && getGlobal(value.exports));
                }
                return fn;
            },

            makeRequire: function (relMap, options) {
                options = options || {};

                function localRequire(deps, callback, errback) {
                    var id, map, requireMod;

                    if (options.enableBuildCallback && callback && isFunction(callback)) {
                        callback.__requireJsBuild = true;
                    }

                    if (typeof deps === 'string') {
                        if (isFunction(callback)) {
                            //Invalid call
                            return onError(makeError('requireargs', 'Invalid require call'), errback);
                        }

                        //If require|exports|module are requested, get the
                        //value for them from the special handlers. Caveat:
                        //this only works while module is being defined.
                        if (relMap && hasProp(handlers, deps)) {
                            return handlers[deps](registry[relMap.id]);
                        }

                        //Synchronous access to one module. If require.get is
                        //available (as in the Node adapter), prefer that.
                        if (req.get) {
                            return req.get(context, deps, relMap, localRequire);
                        }

                        //Normalize module name, if it contains . or ..
                        map = makeModuleMap(deps, relMap, false, true);
                        id = map.id;

                        if (!hasProp(defined, id)) {
                            return onError(makeError('notloaded', 'Module name "' +
                                        id +
                                        '" has not been loaded yet for context: ' +
                                        contextName +
                                        (relMap ? '' : '. Use require([])')));
                        }
                        return defined[id];
                    }

                    //Grab defines waiting in the global queue.
                    intakeDefines();

                    //Mark all the dependencies as needing to be loaded.
                    context.nextTick(function () {
                        //Some defines could have been added since the
                        //require call, collect them.
                        intakeDefines();

                        requireMod = getModule(makeModuleMap(null, relMap));

                        //Store if map config should be applied to this require
                        //call for dependencies.
                        requireMod.skipMap = options.skipMap;

                        requireMod.init(deps, callback, errback, {
                            enabled: true
                        });

                        checkLoaded();
                    });

                    return localRequire;
                }

                mixin(localRequire, {
                    isBrowser: isBrowser,

                    /**
                     * Converts a module name + .extension into an URL path.
                     * *Requires* the use of a module name. It does not support using
                     * plain URLs like nameToUrl.
                     */
                    toUrl: function (moduleNamePlusExt) {
                        var ext,
                            index = moduleNamePlusExt.lastIndexOf('.'),
                            segment = moduleNamePlusExt.split('/')[0],
                            isRelative = segment === '.' || segment === '..';

                        //Have a file extension alias, and it is not the
                        //dots from a relative path.
                        if (index !== -1 && (!isRelative || index > 1)) {
                            ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length);
                            moduleNamePlusExt = moduleNamePlusExt.substring(0, index);
                        }

                        return context.nameToUrl(normalize(moduleNamePlusExt,
                                                relMap && relMap.id, true), ext,  true);
                    },

                    defined: function (id) {
                        return hasProp(defined, makeModuleMap(id, relMap, false, true).id);
                    },

                    specified: function (id) {
                        id = makeModuleMap(id, relMap, false, true).id;
                        return hasProp(defined, id) || hasProp(registry, id);
                    }
                });

                //Only allow undef on top level require calls
                if (!relMap) {
                    localRequire.undef = function (id) {
                        //Bind any waiting define() calls to this context,
                        //fix for #408
                        takeGlobalQueue();

                        var map = makeModuleMap(id, relMap, true),
                            mod = getOwn(registry, id);

                        mod.undefed = true;
                        removeScript(id);

                        delete defined[id];
                        delete urlFetched[map.url];
                        delete undefEvents[id];

                        //Clean queued defines too. Go backwards
                        //in array so that the splices do not
                        //mess up the iteration.
                        eachReverse(defQueue, function(args, i) {
                            if (args[0] === id) {
                                defQueue.splice(i, 1);
                            }
                        });
                        delete context.defQueueMap[id];

                        if (mod) {
                            //Hold on to listeners in case the
                            //module will be attempted to be reloaded
                            //using a different config.
                            if (mod.events.defined) {
                                undefEvents[id] = mod.events;
                            }

                            cleanRegistry(id);
                        }
                    };
                }

                return localRequire;
            },

            /**
             * Called to enable a module if it is still in the registry
             * awaiting enablement. A second arg, parent, the parent module,
             * is passed in for context, when this method is overridden by
             * the optimizer. Not shown here to keep code compact.
             */
            enable: function (depMap) {
                var mod = getOwn(registry, depMap.id);
                if (mod) {
                    getModule(depMap).enable();
                }
            },

            /**
             * Internal method used by environment adapters to complete a load event.
             * A load event could be a script load or just a load pass from a synchronous
             * load call.
             * @param {String} moduleName the name of the module to potentially complete.
             */
            completeLoad: function (moduleName) {
                var found, args, mod,
                    shim = getOwn(config.shim, moduleName) || {},
                    shExports = shim.exports;

                takeGlobalQueue();

                while (defQueue.length) {
                    args = defQueue.shift();
                    if (args[0] === null) {
                        args[0] = moduleName;
                        //If already found an anonymous module and bound it
                        //to this name, then this is some other anon module
                        //waiting for its completeLoad to fire.
                        if (found) {
                            break;
                        }
                        found = true;
                    } else if (args[0] === moduleName) {
                        //Found matching define call for this script!
                        found = true;
                    }

                    callGetModule(args);
                }
                context.defQueueMap = {};

                //Do this after the cycle of callGetModule in case the result
                //of those calls/init calls changes the registry.
                mod = getOwn(registry, moduleName);

                if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) {
                    if (config.enforceDefine && (!shExports || !getGlobal(shExports))) {
                        if (hasPathFallback(moduleName)) {
                            return;
                        } else {
                            return onError(makeError('nodefine',
                                             'No define call for ' + moduleName,
                                             null,
                                             [moduleName]));
                        }
                    } else {
                        //A script that does not call define(), so just simulate
                        //the call for it.
                        callGetModule([moduleName, (shim.deps || []), shim.exportsFn]);
                    }
                }

                checkLoaded();
            },

            /**
             * Converts a module name to a file path. Supports cases where
             * moduleName may actually be just an URL.
             * Note that it **does not** call normalize on the moduleName,
             * it is assumed to have already been normalized. This is an
             * internal API, not a public one. Use toUrl for the public API.
             */
            nameToUrl: function (moduleName, ext, skipExt) {
                var paths, syms, i, parentModule, url,
                    parentPath, bundleId,
                    pkgMain = getOwn(config.pkgs, moduleName);

                if (pkgMain) {
                    moduleName = pkgMain;
                }

                bundleId = getOwn(bundlesMap, moduleName);

                if (bundleId) {
                    return context.nameToUrl(bundleId, ext, skipExt);
                }

                //If a colon is in the URL, it indicates a protocol is used and it is just
                //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)
                //or ends with .js, then assume the user meant to use an url and not a module id.
                //The slash is important for protocol-less URLs as well as full paths.
                if (req.jsExtRegExp.test(moduleName)) {
                    //Just a plain path, not module name lookup, so just return it.
                    //Add extension if it is included. This is a bit wonky, only non-.js things pass
                    //an extension, this method probably needs to be reworked.
                    url = moduleName + (ext || '');
                } else {
                    //A module that needs to be converted to a path.
                    paths = config.paths;

                    syms = moduleName.split('/');
                    //For each module name segment, see if there is a path
                    //registered for it. Start with most specific name
                    //and work up from it.
                    for (i = syms.length; i > 0; i -= 1) {
                        parentModule = syms.slice(0, i).join('/');

                        parentPath = getOwn(paths, parentModule);
                        if (parentPath) {
                            //If an array, it means there are a few choices,
                            //Choose the one that is desired
                            if (isArray(parentPath)) {
                                parentPath = parentPath[0];
                            }
                            syms.splice(0, i, parentPath);
                            break;
                        }
                    }

                    //Join the path parts together, then figure out if baseUrl is needed.
                    url = syms.join('/');
                    url += (ext || (/^data\:|^blob\:|\?/.test(url) || skipExt ? '' : '.js'));
                    url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url;
                }

                return config.urlArgs && !/^blob\:/.test(url) ?
                       url + config.urlArgs(moduleName, url) : url;
            },

            //Delegates to req.load. Broken out as a separate function to
            //allow overriding in the optimizer.
            load: function (id, url) {
                req.load(context, id, url);
            },

            /**
             * Executes a module callback function. Broken out as a separate function
             * solely to allow the build system to sequence the files in the built
             * layer in the right sequence.
             *
             * @private
             */
            execCb: function (name, callback, args, exports) {
                return callback.apply(exports, args);
            },

            /**
             * callback for script loads, used to check status of loading.
             *
             * @param {Event} evt the event from the browser for the script
             * that was loaded.
             */
            onScriptLoad: function (evt) {
                //Using currentTarget instead of target for Firefox 2.0's sake. Not
                //all old browsers will be supported, but this one was easy enough
                //to support and still makes sense.
                if (evt.type === 'load' ||
                        (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) {
                    //Reset interactive script so a script node is not held onto for
                    //to long.
                    interactiveScript = null;

                    //Pull out the name of the module and the context.
                    var data = getScriptData(evt);
                    context.completeLoad(data.id);
                }
            },

            /**
             * Callback for script errors.
             */
            onScriptError: function (evt) {
                var data = getScriptData(evt);
                if (!hasPathFallback(data.id)) {
                    var parents = [];
                    eachProp(registry, function(value, key) {
                        if (key.indexOf('_@r') !== 0) {
                            each(value.depMaps, function(depMap) {
                                if (depMap.id === data.id) {
                                    parents.push(key);
                                    return true;
                                }
                            });
                        }
                    });
                    return onError(makeError('scripterror', 'Script error for "' + data.id +
                                             (parents.length ?
                                             '", needed by: ' + parents.join(', ') :
                                             '"'), evt, [data.id]));
                }
            }
        };

        context.require = context.makeRequire();
        return context;
    }

    /**
     * Main entry point.
     *
     * If the only argument to require is a string, then the module that
     * is represented by that string is fetched for the appropriate context.
     *
     * If the first argument is an array, then it will be treated as an array
     * of dependency string names to fetch. An optional function callback can
     * be specified to execute when all of those dependencies are available.
     *
     * Make a local req variable to help Caja compliance (it assumes things
     * on a require that are not standardized), and to give a short
     * name for minification/local scope use.
     */
    req = requirejs = function (deps, callback, errback, optional) {

        //Find the right context, use default
        var context, config,
            contextName = defContextName;

        // Determine if have config object in the call.
        if (!isArray(deps) && typeof deps !== 'string') {
            // deps is a config object
            config = deps;
            if (isArray(callback)) {
                // Adjust args if there are dependencies
                deps = callback;
                callback = errback;
                errback = optional;
            } else {
                deps = [];
            }
        }

        if (config && config.context) {
            contextName = config.context;
        }

        context = getOwn(contexts, contextName);
        if (!context) {
            context = contexts[contextName] = req.s.newContext(contextName);
        }

        if (config) {
            context.configure(config);
        }

        return context.require(deps, callback, errback);
    };

    /**
     * Support require.config() to make it easier to cooperate with other
     * AMD loaders on globally agreed names.
     */
    req.config = function (config) {
        return req(config);
    };

    /**
     * Execute something after the current tick
     * of the event loop. Override for other envs
     * that have a better solution than setTimeout.
     * @param  {Function} fn function to execute later.
     */
    req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {
        setTimeout(fn, 4);
    } : function (fn) { fn(); };

    /**
     * Export require as a global, but only if it does not already exist.
     */
    if (!require) {
        require = req;
    }

    req.version = version;

    //Used to filter out dependencies that are already paths.
    req.jsExtRegExp = /^\/|:|\?|\.js$/;
    req.isBrowser = isBrowser;
    s = req.s = {
        contexts: contexts,
        newContext: newContext
    };

    //Create default context.
    req({});

    //Exports some context-sensitive methods on global require.
    each([
        'toUrl',
        'undef',
        'defined',
        'specified'
    ], function (prop) {
        //Reference from contexts instead of early binding to default context,
        //so that during builds, the latest instance of the default context
        //with its config gets used.
        req[prop] = function () {
            var ctx = contexts[defContextName];
            return ctx.require[prop].apply(ctx, arguments);
        };
    });

    if (isBrowser) {
        head = s.head = document.getElementsByTagName('head')[0];
        //If BASE tag is in play, using appendChild is a problem for IE6.
        //When that browser dies, this can be removed. Details in this jQuery bug:
        //http://dev.jquery.com/ticket/2709
        baseElement = document.getElementsByTagName('base')[0];
        if (baseElement) {
            head = s.head = baseElement.parentNode;
        }
    }

    /**
     * Any errors that require explicitly generates will be passed to this
     * function. Intercept/override it if you want custom error handling.
     * @param {Error} err the error object.
     */
    req.onError = defaultOnError;

    /**
     * Creates the node for the load command. Only used in browser envs.
     */
    req.createNode = function (config, moduleName, url) {
        var node = config.xhtml ?
                document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') :
                document.createElement('script');
        node.type = config.scriptType || 'text/javascript';
        node.charset = 'utf-8';
        node.async = true;
        return node;
    };

    /**
     * Does the request to load a module for the browser case.
     * Make this a separate function to allow other environments
     * to override it.
     *
     * @param {Object} context the require context to find state.
     * @param {String} moduleName the name of the module.
     * @param {Object} url the URL to the module.
     */
    req.load = function (context, moduleName, url) {
        var config = (context && context.config) || {},
            node;
        if (isBrowser) {
            //In the browser so use a script tag
            node = req.createNode(config, moduleName, url);

            node.setAttribute('data-requirecontext', context.contextName);
            node.setAttribute('data-requiremodule', moduleName);

            //Set up load listener. Test attachEvent first because IE9 has
            //a subtle issue in its addEventListener and script onload firings
            //that do not match the behavior of all other browsers with
            //addEventListener support, which fire the onload event for a
            //script right after the script execution. See:
            //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution
            //UNFORTUNATELY Opera implements attachEvent but does not follow the script
            //script execution mode.
            if (node.attachEvent &&
                    //Check if node.attachEvent is artificially added by custom script or
                    //natively supported by browser
                    //read https://github.com/requirejs/requirejs/issues/187
                    //if we can NOT find [native code] then it must NOT natively supported.
                    //in IE8, node.attachEvent does not have toString()
                    //Note the test for "[native code" with no closing brace, see:
                    //https://github.com/requirejs/requirejs/issues/273
                    !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) &&
                    !isOpera) {
                //Probably IE. IE (at least 6-8) do not fire
                //script onload right after executing the script, so
                //we cannot tie the anonymous define call to a name.
                //However, IE reports the script as being in 'interactive'
                //readyState at the time of the define call.
                useInteractive = true;

                node.attachEvent('onreadystatechange', context.onScriptLoad);
                //It would be great to add an error handler here to catch
                //404s in IE9+. However, onreadystatechange will fire before
                //the error handler, so that does not help. If addEventListener
                //is used, then IE will fire error before load, but we cannot
                //use that pathway given the connect.microsoft.com issue
                //mentioned above about not doing the 'script execute,
                //then fire the script load event listener before execute
                //next script' that other browsers do.
                //Best hope: IE10 fixes the issues,
                //and then destroys all installs of IE 6-9.
                //node.attachEvent('onerror', context.onScriptError);
            } else {
                node.addEventListener('load', context.onScriptLoad, false);
                node.addEventListener('error', context.onScriptError, false);
            }
            node.src = url;

            //Calling onNodeCreated after all properties on the node have been
            //set, but before it is placed in the DOM.
            if (config.onNodeCreated) {
                config.onNodeCreated(node, config, moduleName, url);
            }

            //For some cache cases in IE 6-8, the script executes before the end
            //of the appendChild execution, so to tie an anonymous define
            //call to the module name (which is stored on the node), hold on
            //to a reference to this node, but clear after the DOM insertion.
            currentlyAddingScript = node;
            if (baseElement) {
                head.insertBefore(node, baseElement);
            } else {
                head.appendChild(node);
            }
            currentlyAddingScript = null;

            return node;
        } else if (isWebWorker) {
            try {
                //In a web worker, use importScripts. This is not a very
                //efficient use of importScripts, importScripts will block until
                //its script is downloaded and evaluated. However, if web workers
                //are in play, the expectation is that a build has been done so
                //that only one script needs to be loaded anyway. This may need
                //to be reevaluated if other use cases become common.

                // Post a task to the event loop to work around a bug in WebKit
                // where the worker gets garbage-collected after calling
                // importScripts(): https://webkit.org/b/153317
                setTimeout(function() {}, 0);
                importScripts(url);

                //Account for anonymous modules
                context.completeLoad(moduleName);
            } catch (e) {
                context.onError(makeError('importscripts',
                                'importScripts failed for ' +
                                    moduleName + ' at ' + url,
                                e,
                                [moduleName]));
            }
        }
    };

    function getInteractiveScript() {
        if (interactiveScript && interactiveScript.readyState === 'interactive') {
            return interactiveScript;
        }

        eachReverse(scripts(), function (script) {
            if (script.readyState === 'interactive') {
                return (interactiveScript = script);
            }
        });
        return interactiveScript;
    }

    //Look for a data-main script attribute, which could also adjust the baseUrl.
    if (isBrowser && !cfg.skipDataMain) {
        //Figure out baseUrl. Get it from the script tag with require.js in it.
        eachReverse(scripts(), function (script) {
            //Set the 'head' where we can append children by
            //using the script's parent.
            if (!head) {
                head = script.parentNode;
            }

            //Look for a data-main attribute to set main script for the page
            //to load. If it is there, the path to data main becomes the
            //baseUrl, if it is not already set.
            dataMain = script.getAttribute('data-main');
            if (dataMain) {
                //Preserve dataMain in case it is a path (i.e. contains '?')
                mainScript = dataMain;

                //Set final baseUrl if there is not already an explicit one,
                //but only do so if the data-main value is not a loader plugin
                //module ID.
                if (!cfg.baseUrl && mainScript.indexOf('!') === -1) {
                    //Pull off the directory of data-main for use as the
                    //baseUrl.
                    src = mainScript.split('/');
                    mainScript = src.pop();
                    subPath = src.length ? src.join('/')  + '/' : './';

                    cfg.baseUrl = subPath;
                }

                //Strip off any trailing .js since mainScript is now
                //like a module name.
                mainScript = mainScript.replace(jsSuffixRegExp, '');

                //If mainScript is still a path, fall back to dataMain
                if (req.jsExtRegExp.test(mainScript)) {
                    mainScript = dataMain;
                }

                //Put the data-main script in the files to load.
                cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [mainScript];

                return true;
            }
        });
    }

    /**
     * The function that handles definitions of modules. Differs from
     * require() in that a string for the module should be the first argument,
     * and the function to execute after dependencies are loaded should
     * return a value to define the module corresponding to the first argument's
     * name.
     */
    define = function (name, deps, callback) {
        var node, context;

        //Allow for anonymous modules
        if (typeof name !== 'string') {
            //Adjust args appropriately
            callback = deps;
            deps = name;
            name = null;
        }

        //This module may not have dependencies
        if (!isArray(deps)) {
            callback = deps;
            deps = null;
        }

        //If no name, and callback is a function, then figure out if it a
        //CommonJS thing with dependencies.
        if (!deps && isFunction(callback)) {
            deps = [];
            //Remove comments from the callback string,
            //look for require calls, and pull them into the dependencies,
            //but only if there are function args.
            if (callback.length) {
                callback
                    .toString()
                    .replace(commentRegExp, commentReplace)
                    .replace(cjsRequireRegExp, function (match, dep) {
                        deps.push(dep);
                    });

                //May be a CommonJS thing even without require calls, but still
                //could use exports, and module. Avoid doing exports and module
                //work though if it just needs require.
                //REQUIRES the function to expect the CommonJS variables in the
                //order listed below.
                deps = (callback.length === 1 ? ['require'] : ['require', 'exports', 'module']).concat(deps);
            }
        }

        //If in IE 6-8 and hit an anonymous define() call, do the interactive
        //work.
        if (useInteractive) {
            node = currentlyAddingScript || getInteractiveScript();
            if (node) {
                if (!name) {
                    name = node.getAttribute('data-requiremodule');
                }
                context = contexts[node.getAttribute('data-requirecontext')];
            }
        }

        //Always save off evaluating the def call until the script onload handler.
        //This allows multiple modules to be in a file without prematurely
        //tracing dependencies, and allows for anonymous module support,
        //where the module name is not known until the script onload event
        //occurs. If no context, use the global queue, and get it processed
        //in the onscript load callback.
        if (context) {
            context.defQueue.push([name, deps, callback]);
            context.defQueueMap[name] = true;
        } else {
            globalDefQueue.push([name, deps, callback]);
        }
    };

    define.amd = {
        jQuery: true
    };

    /**
     * Executes the text. Normally just uses eval, but can be modified
     * to use a better, environment-specific call. Only used for transpiling
     * loader plugins, not for plain JS modules.
     * @param {String} text the text to execute/evaluate.
     */
    req.exec = function (text) {
        /*jslint evil: true */
        return eval(text);
    };

    //Set up with config info.
    req(cfg);
}(this, (typeof setTimeout === 'undefined' ? undefined : setTimeout)));

// Copyright 2014 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
//     You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//     See the License for the specific language governing permissions and
// limitations under the License.

!function(){var a={},b={},c={};!function(a,b){function c(a){if("number"==typeof a)return a;var b={};for(var c in a)b[c]=a[c];return b}function d(){this._delay=0,this._endDelay=0,this._fill="none",this._iterationStart=0,this._iterations=1,this._duration=0,this._playbackRate=1,this._direction="normal",this._easing="linear",this._easingFunction=x}function e(){return a.isDeprecated("Invalid timing inputs","2016-03-02","TypeError exceptions will be thrown instead.",!0)}function f(b,c,e){var f=new d;return c&&(f.fill="both",f.duration="auto"),"number"!=typeof b||isNaN(b)?void 0!==b&&Object.getOwnPropertyNames(b).forEach(function(c){if("auto"!=b[c]){if(("number"==typeof f[c]||"duration"==c)&&("number"!=typeof b[c]||isNaN(b[c])))return;if("fill"==c&&-1==v.indexOf(b[c]))return;if("direction"==c&&-1==w.indexOf(b[c]))return;if("playbackRate"==c&&1!==b[c]&&a.isDeprecated("AnimationEffectTiming.playbackRate","2014-11-28","Use Animation.playbackRate instead."))return;f[c]=b[c]}}):f.duration=b,f}function g(a){return"number"==typeof a&&(a=isNaN(a)?{duration:0}:{duration:a}),a}function h(b,c){return b=a.numericTimingToObject(b),f(b,c)}function i(a,b,c,d){return a<0||a>1||c<0||c>1?x:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(e<=0){var g=0;return a>0?g=b/a:!b&&c>0&&(g=d/c),g*e}if(e>=1){var h=0;return c<1?h=(d-1)/(c-1):1==c&&a<1&&(h=(b-1)/(a-1)),1+h*(e-1)}for(var i=0,j=1;i<j;){var k=(i+j)/2,l=f(a,c,k);if(Math.abs(e-l)<1e-5)return f(b,d,k);l<e?i=k:j=k}return f(b,d,k)}}function j(a,b){return function(c){if(c>=1)return 1;var d=1/a;return(c+=b*d)-c%d}}function k(a){C||(C=document.createElement("div").style),C.animationTimingFunction="",C.animationTimingFunction=a;var b=C.animationTimingFunction;if(""==b&&e())throw new TypeError(a+" is not a valid value for easing");return b}function l(a){if("linear"==a)return x;var b=E.exec(a);if(b)return i.apply(this,b.slice(1).map(Number));var c=F.exec(a);if(c)return j(Number(c[1]),A);var d=G.exec(a);return d?j(Number(d[1]),{start:y,middle:z,end:A}[d[2]]):B[a]||x}function m(a){return Math.abs(n(a)/a.playbackRate)}function n(a){return 0===a.duration||0===a.iterations?0:a.duration*a.iterations}function o(a,b,c){if(null==b)return H;var d=c.delay+a+c.endDelay;return b<Math.min(c.delay,d)?I:b>=Math.min(c.delay+a,d)?J:K}function p(a,b,c,d,e){switch(d){case I:return"backwards"==b||"both"==b?0:null;case K:return c-e;case J:return"forwards"==b||"both"==b?a:null;case H:return null}}function q(a,b,c,d,e){var f=e;return 0===a?b!==I&&(f+=c):f+=d/a,f}function r(a,b,c,d,e,f){var g=a===1/0?b%1:a%1;return 0!==g||c!==J||0===d||0===e&&0!==f||(g=1),g}function s(a,b,c,d){return a===J&&b===1/0?1/0:1===c?Math.floor(d)-1:Math.floor(d)}function t(a,b,c){var d=a;if("normal"!==a&&"reverse"!==a){var e=b;"alternate-reverse"===a&&(e+=1),d="normal",e!==1/0&&e%2!=0&&(d="reverse")}return"normal"===d?c:1-c}function u(a,b,c){var d=o(a,b,c),e=p(a,c.fill,b,d,c.delay);if(null===e)return null;var f=q(c.duration,d,c.iterations,e,c.iterationStart),g=r(f,c.iterationStart,d,c.iterations,e,c.duration),h=s(d,c.iterations,g,f),i=t(c.direction,h,g);return c._easingFunction(i)}var v="backwards|forwards|both|none".split("|"),w="reverse|alternate|alternate-reverse".split("|"),x=function(a){return a};d.prototype={_setMember:function(b,c){this["_"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember("delay",a)},get delay(){return this._delay},set endDelay(a){this._setMember("endDelay",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember("fill",a)},get fill(){return this._fill},set iterationStart(a){if((isNaN(a)||a<0)&&e())throw new TypeError("iterationStart must be a non-negative number, received: "+a);this._setMember("iterationStart",a)},get iterationStart(){return this._iterationStart},set duration(a){if("auto"!=a&&(isNaN(a)||a<0)&&e())throw new TypeError("duration must be non-negative or auto, received: "+a);this._setMember("duration",a)},get duration(){return this._duration},set direction(a){this._setMember("direction",a)},get direction(){return this._direction},set easing(a){this._easingFunction=l(k(a)),this._setMember("easing",a)},get easing(){return this._easing},set iterations(a){if((isNaN(a)||a<0)&&e())throw new TypeError("iterations must be non-negative, received: "+a);this._setMember("iterations",a)},get iterations(){return this._iterations}};var y=1,z=.5,A=0,B={ease:i(.25,.1,.25,1),"ease-in":i(.42,0,1,1),"ease-out":i(0,0,.58,1),"ease-in-out":i(.42,0,.58,1),"step-start":j(1,y),"step-middle":j(1,z),"step-end":j(1,A)},C=null,D="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",E=new RegExp("cubic-bezier\\("+D+","+D+","+D+","+D+"\\)"),F=/steps\(\s*(\d+)\s*\)/,G=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/,H=0,I=1,J=2,K=3;a.cloneTimingInput=c,a.makeTiming=f,a.numericTimingToObject=g,a.normalizeTimingInput=h,a.calculateActiveDuration=m,a.calculateIterationProgress=u,a.calculatePhase=o,a.normalizeEasing=k,a.parseEasingFunction=l}(a),function(a,b){function c(a,b){return a in k?k[a][b]||b:b}function d(a){return"display"===a||0===a.lastIndexOf("animation",0)||0===a.lastIndexOf("transition",0)}function e(a,b,e){if(!d(a)){var f=h[a];if(f){i.style[a]=b;for(var g in f){var j=f[g],k=i.style[j];e[j]=c(j,k)}}else e[a]=c(a,b)}}function f(a){var b=[];for(var c in a)if(!(c in["easing","offset","composite"])){var d=a[c];Array.isArray(d)||(d=[d]);for(var e,f=d.length,g=0;g<f;g++)e={},e.offset="offset"in a?a.offset:1==f?1:g/(f-1),"easing"in a&&(e.easing=a.easing),"composite"in a&&(e.composite=a.composite),e[c]=d[g],b.push(e)}return b.sort(function(a,b){return a.offset-b.offset}),b}function g(b){function c(){var a=d.length;null==d[a-1].offset&&(d[a-1].offset=1),a>1&&null==d[0].offset&&(d[0].offset=0);for(var b=0,c=d[0].offset,e=1;e<a;e++){var f=d[e].offset;if(null!=f){for(var g=1;g<e-b;g++)d[b+g].offset=c+(f-c)*g/(e-b);b=e,c=f}}}if(null==b)return[];window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||(b=f(b));for(var d=b.map(function(b){var c={};for(var d in b){var f=b[d];if("offset"==d){if(null!=f){if(f=Number(f),!isFinite(f))throw new TypeError("Keyframe offsets must be numbers.");if(f<0||f>1)throw new TypeError("Keyframe offsets must be between 0 and 1.")}}else if("composite"==d){if("add"==f||"accumulate"==f)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"add compositing is not supported"};if("replace"!=f)throw new TypeError("Invalid composite mode "+f+".")}else f="easing"==d?a.normalizeEasing(f):""+f;e(d,f,c)}return void 0==c.offset&&(c.offset=null),void 0==c.easing&&(c.easing="linear"),c}),g=!0,h=-1/0,i=0;i<d.length;i++){var j=d[i].offset;if(null!=j){if(j<h)throw new TypeError("Keyframes are not loosely sorted by offset. Sort or specify offsets.");h=j}else g=!1}return d=d.filter(function(a){return a.offset>=0&&a.offset<=1}),g||c(),d}var h={background:["backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","backgroundAttachment","backgroundOrigin","backgroundClip","backgroundColor"],border:["borderTopColor","borderTopStyle","borderTopWidth","borderRightColor","borderRightStyle","borderRightWidth","borderBottomColor","borderBottomStyle","borderBottomWidth","borderLeftColor","borderLeftStyle","borderLeftWidth"],borderBottom:["borderBottomWidth","borderBottomStyle","borderBottomColor"],borderColor:["borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],borderLeft:["borderLeftWidth","borderLeftStyle","borderLeftColor"],borderRadius:["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],borderRight:["borderRightWidth","borderRightStyle","borderRightColor"],borderTop:["borderTopWidth","borderTopStyle","borderTopColor"],borderWidth:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],flex:["flexGrow","flexShrink","flexBasis"],font:["fontFamily","fontSize","fontStyle","fontVariant","fontWeight","lineHeight"],margin:["marginTop","marginRight","marginBottom","marginLeft"],outline:["outlineColor","outlineStyle","outlineWidth"],padding:["paddingTop","paddingRight","paddingBottom","paddingLeft"]},i=document.createElementNS("http://www.w3.org/1999/xhtml","div"),j={thin:"1px",medium:"3px",thick:"5px"},k={borderBottomWidth:j,borderLeftWidth:j,borderRightWidth:j,borderTopWidth:j,fontSize:{"xx-small":"60%","x-small":"75%",small:"89%",medium:"100%",large:"120%","x-large":"150%","xx-large":"200%"},fontWeight:{normal:"400",bold:"700"},outlineWidth:j,textShadow:{none:"0px 0px 0px transparent"},boxShadow:{none:"0px 0px 0px 0px transparent"}};a.convertToArrayForm=f,a.normalizeKeyframes=g}(a),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?"are":"is",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),!(g<h&&(a in b||console.warn("Web Animations: "+a+" "+f+" deprecated and will stop working on "+h.toDateString()+". "+d),b[a]=!0,1))},a.deprecated=function(b,c,d,e){var f=e?"are":"is";if(a.isDeprecated(b,c,d,e))throw new Error(b+" "+f+" no longer supported. "+d)}}(a),function(){if(document.documentElement.animate){var c=document.documentElement.animate([],0),d=!0;if(c&&(d=!1,"play|currentTime|pause|reverse|playbackRate|cancel|finish|startTime|playState".split("|").forEach(function(a){void 0===c[a]&&(d=!0)})),!d)return}!function(a,b,c){function d(a){for(var b={},c=0;c<a.length;c++)for(var d in a[c])if("offset"!=d&&"easing"!=d&&"composite"!=d){var e={offset:a[c].offset,easing:a[c].easing,value:a[c][d]};b[d]=b[d]||[],b[d].push(e)}for(var f in b){var g=b[f];if(0!=g[0].offset||1!=g[g.length-1].offset)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"Partial keyframes are not supported"}}return b}function e(c){var d=[];for(var e in c)for(var f=c[e],g=0;g<f.length-1;g++){var h=g,i=g+1,j=f[h].offset,k=f[i].offset,l=j,m=k;0==g&&(l=-1/0,0==k&&(i=h)),g==f.length-2&&(m=1/0,1==j&&(h=i)),d.push({applyFrom:l,applyTo:m,startOffset:f[h].offset,endOffset:f[i].offset,easingFunction:a.parseEasingFunction(f[h].easing),property:e,interpolation:b.propertyInterpolation(e,f[h].value,f[i].value)})}return d.sort(function(a,b){return a.startOffset-b.startOffset}),d}b.convertEffectInput=function(c){var f=a.normalizeKeyframes(c),g=d(f),h=e(g);return function(a,c){if(null!=c)h.filter(function(a){return c>=a.applyFrom&&c<a.applyTo}).forEach(function(d){var e=c-d.startOffset,f=d.endOffset-d.startOffset,g=0==f?0:d.easingFunction(e/f);b.apply(a,d.property,d.interpolation(g))});else for(var d in g)"offset"!=d&&"easing"!=d&&"composite"!=d&&b.clear(a,d)}}}(a,b),function(a,b,c){function d(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}function e(a,b,c){h[c]=h[c]||[],h[c].push([a,b])}function f(a,b,c){for(var f=0;f<c.length;f++){e(a,b,d(c[f]))}}function g(c,e,f){var g=c;/-/.test(c)&&!a.isDeprecated("Hyphenated property names","2016-03-22","Use camelCase instead.",!0)&&(g=d(c)),"initial"!=e&&"initial"!=f||("initial"==e&&(e=i[g]),"initial"==f&&(f=i[g]));for(var j=e==f?[]:h[g],k=0;j&&k<j.length;k++){var l=j[k][0](e),m=j[k][0](f);if(void 0!==l&&void 0!==m){var n=j[k][1](l,m);if(n){var o=b.Interpolation.apply(null,n);return function(a){return 0==a?e:1==a?f:o(a)}}}}return b.Interpolation(!1,!0,function(a){return a?f:e})}var h={};b.addPropertiesHandler=f;var i={backgroundColor:"transparent",backgroundPosition:"0% 0%",borderBottomColor:"currentColor",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",borderBottomWidth:"3px",borderLeftColor:"currentColor",borderLeftWidth:"3px",borderRightColor:"currentColor",borderRightWidth:"3px",borderSpacing:"2px",borderTopColor:"currentColor",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderTopWidth:"3px",bottom:"auto",clip:"rect(0px, 0px, 0px, 0px)",color:"black",fontSize:"100%",fontWeight:"400",height:"auto",left:"auto",letterSpacing:"normal",lineHeight:"120%",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",marginTop:"0px",maxHeight:"none",maxWidth:"none",minHeight:"0px",minWidth:"0px",opacity:"1.0",outlineColor:"invert",outlineOffset:"0px",outlineWidth:"3px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",paddingTop:"0px",right:"auto",strokeDasharray:"none",strokeDashoffset:"0px",textIndent:"0px",textShadow:"0px 0px 0px transparent",top:"auto",transform:"",verticalAlign:"0px",visibility:"visible",width:"auto",wordSpacing:"normal",zIndex:"auto"};b.propertyInterpolation=g}(a,b),function(a,b,c){function d(b){var c=a.calculateActiveDuration(b),d=function(d){return a.calculateIterationProgress(c,d,b)};return d._totalDuration=b.delay+c+b.endDelay,d}b.KeyframeEffect=function(c,e,f,g){var h,i=d(a.normalizeTimingInput(f)),j=b.convertEffectInput(e),k=function(){j(c,h)};return k._update=function(a){return null!==(h=i(a))},k._clear=function(){j(c,null)},k._hasSameTarget=function(a){return c===a},k._target=c,k._totalDuration=i._totalDuration,k._id=g,k}}(a,b),function(a,b){a.apply=function(b,c,d){b.style[a.propertyName(c)]=d},a.clear=function(b,c){b.style[a.propertyName(c)]=""}}(b),function(a){window.Element.prototype.animate=function(b,c){var d="";return c&&c.id&&(d=c.id),a.timeline._play(a.KeyframeEffect(this,b,c,d))}}(b),function(a,b){function c(a,b,d){if("number"==typeof a&&"number"==typeof b)return a*(1-d)+b*d;if("boolean"==typeof a&&"boolean"==typeof b)return d<.5?a:b;if(a.length==b.length){for(var e=[],f=0;f<a.length;f++)e.push(c(a[f],b[f],d));return e}throw"Mismatched interpolation arguments "+a+":"+b}a.Interpolation=function(a,b,d){return function(e){return d(c(a,b,e))}}}(b),function(a,b,c){a.sequenceNumber=0;var d=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type="finish",this.bubbles=!1,this.cancelable=!1,this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()};b.Animation=function(b){this.id="",b&&b._id&&(this.id=b._id),this._sequenceNumber=a.sequenceNumber++,this._currentTime=0,this._startTime=null,this._paused=!1,this._playbackRate=1,this._inTimeline=!0,this._finishedFlag=!0,this.onfinish=null,this._finishHandlers=[],this._effect=b,this._inEffect=this._effect._update(0),this._idle=!0,this._currentTimePending=!1},b.Animation.prototype={_ensureAlive:function(){this.playbackRate<0&&0===this.currentTime?this._inEffect=this._effect._update(-1):this._inEffect=this._effect._update(this.currentTime),this._inTimeline||!this._inEffect&&this._finishedFlag||(this._inTimeline=!0,b.timeline._animations.push(this))},_tickCurrentTime:function(a,b){a!=this._currentTime&&(this._currentTime=a,this._isFinished&&!b&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(a,!0),b.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var c=this.currentTime;this._playbackRate=a,this._startTime=null,"paused"!=this.playState&&"idle"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)),null!=c&&(this.currentTime=c)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?"idle":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?"pending":this._paused?"paused":this._isFinished?"finished":"running"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException("Unable to rewind negative playback rate animation with infinite duration","InvalidStateError");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,b.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),b.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){"function"==typeof b&&"finish"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if("finish"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){if(this._isFinished){if(!this._finishedFlag){var b=new d(this,this._currentTime,a),c=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){c.forEach(function(a){a.call(b.target,b)})},0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(a,b){this._idle||this._paused||(null==this._startTime?b&&(this.startTime=a-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),b&&(this._currentTimePending=!1,this._fireEvents(a))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var a=this._effect._target;return a._activeAnimations||(a._activeAnimations=[]),a._activeAnimations},_markTarget:function(){var a=this._targetAnimations();-1===a.indexOf(this)&&a.push(this)},_unmarkTarget:function(){var a=this._targetAnimations(),b=a.indexOf(this);-1!==b&&a.splice(b,1)}}}(a,b),function(a,b,c){function d(a){var b=j;j=[],a<q.currentTime&&(a=q.currentTime),q._animations.sort(e),q._animations=h(a,!0,q._animations)[0],b.forEach(function(b){b[1](a)}),g(),l=void 0}function e(a,b){return a._sequenceNumber-b._sequenceNumber}function f(){this._animations=[],this.currentTime=window.performance&&performance.now?performance.now():0}function g(){o.forEach(function(a){a()}),o.length=0}function h(a,c,d){p=!0,n=!1,b.timeline.currentTime=a,m=!1;var e=[],f=[],g=[],h=[];return d.forEach(function(b){b._tick(a,c),b._inEffect?(f.push(b._effect),b._markTarget()):(e.push(b._effect),b._unmarkTarget()),b._needsTick&&(m=!0);var d=b._inEffect||b._needsTick;b._inTimeline=d,d?g.push(b):h.push(b)}),o.push.apply(o,e),o.push.apply(o,f),m&&requestAnimationFrame(function(){}),p=!1,[g,h]}var i=window.requestAnimationFrame,j=[],k=0;window.requestAnimationFrame=function(a){var b=k++;return 0==j.length&&i(d),j.push([b,a]),b},window.cancelAnimationFrame=function(a){j.forEach(function(b){b[0]==a&&(b[1]=function(){})})},f.prototype={_play:function(c){c._timing=a.normalizeTimingInput(c.timing);var d=new b.Animation(c);return d._idle=!1,d._timeline=this,this._animations.push(d),b.restart(),b.applyDirtiedAnimation(d),d}};var l=void 0,m=!1,n=!1;b.restart=function(){return m||(m=!0,requestAnimationFrame(function(){}),n=!0),n},b.applyDirtiedAnimation=function(a){if(!p){a._markTarget();var c=a._targetAnimations();c.sort(e),h(b.timeline.currentTime,!1,c.slice())[1].forEach(function(a){var b=q._animations.indexOf(a);-1!==b&&q._animations.splice(b,1)}),g()}};var o=[],p=!1,q=new f;b.timeline=q}(a,b),function(a){function b(a,b){var c=a.exec(b);if(c)return c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]}function c(a,b){b=b.replace(/^\s*/,"");var c=a(b);if(c)return[c[0],c[1].replace(/^\s*/,"")]}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],!(g=b(d,e))||""==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;d<b.length&&(!/\s|,/.test(b[d])||0!=c);d++)if("("==b[d])c++;else if(")"==b[d]&&(c--,0==c&&d++,c<=0))break;var e=a(b.substr(0,d));return void 0==e?void 0:[e,b.substr(d)]}function f(a,b){for(var c=a,d=b;c&&d;)c>d?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){return a(c)||[b,c]}}function i(b,c){for(var d=[],e=0;e<b.length;e++){var f=a.consumeTrimmed(b[e],c);if(!f||""==f[0])return;void 0!==f[0]&&d.push(f[0]),c=f[1]}if(""==c)return d}function j(a,b,c,d,e){for(var g=[],h=[],i=[],j=f(d.length,e.length),k=0;k<j;k++){var l=b(d[k%d.length],e[k%e.length]);if(!l)return;g.push(l[0]),h.push(l[1]),i.push(l[2])}return[g,h,function(b){var d=b.map(function(a,b){return i[b](a)}).join(c);return a?a(d):d}]}function k(a,b,c){for(var d=[],e=[],f=[],g=0,h=0;h<c.length;h++)if("function"==typeof c[h]){var i=c[h](a[g],b[g++]);d.push(i[0]),e.push(i[1]),f.push(i[2])}else!function(a){d.push(!1),e.push(!1),f.push(function(){return c[a]})}(h);return[d,e,function(a){for(var b="",c=0;c<a.length;c++)b+=f[c](a[c]);return b}]}a.consumeToken=b,a.consumeTrimmed=c,a.consumeRepeated=d,a.consumeParenthesised=e,a.ignore=g,a.optional=h,a.consumeList=i,a.mergeNestedRepeated=j.bind(null,null),a.mergeWrappedNestedRepeated=j,a.mergeList=k}(b),function(a){function b(b){function c(b){var c=a.consumeToken(/^inset/i,b);return c?(d.inset=!0,c):(c=a.consumeLengthOrPercent(b))?(d.lengths.push(c[0]),c):(c=a.consumeColor(b),c?(d.color=c[0],c):void 0)}var d={inset:!1,lengths:[],color:null},e=a.consumeRepeated(c,/^/,b);if(e&&e[0].length)return[d,e[1]]}function c(c){var d=a.consumeRepeated(b,/^,/,c);if(d&&""==d[1])return d[0]}function d(b,c){for(;b.lengths.length<Math.max(b.lengths.length,c.lengths.length);)b.lengths.push({px:0});for(;c.lengths.length<Math.max(b.lengths.length,c.lengths.length);)c.lengths.push({px:0});if(b.inset==c.inset&&!!b.color==!!c.color){for(var d,e=[],f=[[],0],g=[[],0],h=0;h<b.lengths.length;h++){var i=a.mergeDimensions(b.lengths[h],c.lengths[h],2==h);f[0].push(i[0]),g[0].push(i[1]),e.push(i[2])}if(b.color&&c.color){var j=a.mergeColors(b.color,c.color);f[1]=j[0],g[1]=j[1],d=j[2]}return[f,g,function(a){for(var c=b.inset?"inset ":" ",f=0;f<e.length;f++)c+=e[f](a[0][f])+" ";return d&&(c+=d(a[1])),c}]}}function e(b,c,d,e){function f(a){return{inset:a,color:[0,0,0,0],lengths:[{px:0},{px:0},{px:0},{px:0}]}}for(var g=[],h=[],i=0;i<d.length||i<e.length;i++){var j=d[i]||f(e[i].inset),k=e[i]||f(d[i].inset);g.push(j),h.push(k)}return a.mergeNestedRepeated(b,c,g,h)}var f=e.bind(null,d,", ");a.addPropertiesHandler(c,f,["box-shadow","text-shadow"])}(b),function(a,b){function c(a){return a.toFixed(3).replace(/0+$/,"").replace(/\.$/,"")}function d(a,b,c){return Math.min(b,Math.max(a,c))}function e(a){if(/^\s*[-+]?(\d*\.)?\d+\s*$/.test(a))return Number(a)}function f(a,b){return[a,b,c]}function g(a,b){if(0!=a)return i(0,1/0)(a,b)}function h(a,b){return[a,b,function(a){return Math.round(d(1,1/0,a))}]}function i(a,b){return function(e,f){return[e,f,function(e){return c(d(a,b,e))}]}}function j(a){var b=a.trim().split(/\s*[\s,]\s*/);if(0!==b.length){for(var c=[],d=0;d<b.length;d++){var f=e(b[d]);if(void 0===f)return;c.push(f)}return c}}function k(a,b){if(a.length==b.length)return[a,b,function(a){return a.map(c).join(" ")}]}function l(a,b){return[a,b,Math.round]}a.clamp=d,a.addPropertiesHandler(j,k,["stroke-dasharray"]),a.addPropertiesHandler(e,i(0,1/0),["border-image-width","line-height"]),a.addPropertiesHandler(e,i(0,1),["opacity","shape-image-threshold"]),a.addPropertiesHandler(e,g,["flex-grow","flex-shrink"]),a.addPropertiesHandler(e,h,["orphans","widows"]),a.addPropertiesHandler(e,l,["z-index"]),a.parseNumber=e,a.parseNumberList=j,a.mergeNumbers=f,a.numberToString=c}(b),function(a,b){function c(a,b){if("visible"==a||"visible"==b)return[0,1,function(c){return c<=0?a:c>=1?b:"visible"}]}a.addPropertiesHandler(String,c,["visibility"])}(b),function(a,b){function c(a){a=a.trim(),f.fillStyle="#000",f.fillStyle=a;var b=f.fillStyle;if(f.fillStyle="#fff",f.fillStyle=a,b==f.fillStyle){f.fillRect(0,0,1,1);var c=f.getImageData(0,0,1,1).data;f.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function d(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;d<3;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),"rgba("+b.join(",")+")"}]}var e=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");e.width=e.height=1;var f=e.getContext("2d");a.addPropertiesHandler(c,d,["background-color","border-bottom-color","border-left-color","border-right-color","border-top-color","color","fill","flood-color","lighting-color","outline-color","stop-color","stroke","text-decoration-color"]),a.consumeColor=a.consumeParenthesised.bind(null,c),a.mergeColors=d}(b),function(a,b){function c(a){function b(){var b=h.exec(a);g=b?b[0]:void 0}function c(){var a=Number(g);return b(),a}function d(){if("("!==g)return c();b();var a=f();return")"!==g?NaN:(b(),a)}function e(){for(var a=d();"*"===g||"/"===g;){var c=g;b();var e=d();"*"===c?a*=e:a/=e}return a}function f(){for(var a=e();"+"===g||"-"===g;){var c=g;b();var d=e();"+"===c?a+=d:a-=d}return a}var g,h=/([\+\-\w\.]+|[\(\)\*\/])/g;return b(),f()}function d(a,b){if("0"==(b=b.trim().toLowerCase())&&"px".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\(/g,"(");var d={};b=b.replace(a,function(a){return d[a]=null,"U"+a});for(var e="U("+a.source+")",f=b.replace(/[-+]?(\d*\.)?\d+([Ee][-+]?\d+)?/g,"N").replace(new RegExp("N"+e,"g"),"D").replace(/\s[+-]\s/g,"O").replace(/\s/g,""),g=[/N\*(D)/g,/(N|D)[*\/]N/g,/(N|D)O\1/g,/\((N|D)\)/g],h=0;h<g.length;)g[h].test(f)?(f=f.replace(g[h],"$1"),h=0):h++;if("D"==f){for(var i in d){var j=c(b.replace(new RegExp("U"+i,"g"),"").replace(new RegExp(e,"g"),"*0"));if(!isFinite(j))return;d[i]=j}return d}}}function e(a,b){return f(a,b,!0)}function f(b,c,d){var e,f=[];for(e in b)f.push(e);for(e in c)f.indexOf(e)<0&&f.push(e);return b=f.map(function(a){return b[a]||0}),c=f.map(function(a){return c[a]||0}),[b,c,function(b){var c=b.map(function(c,e){return 1==b.length&&d&&(c=Math.max(c,0)),a.numberToString(c)+f[e]}).join(" + ");return b.length>1?"calc("+c+")":c}]}var g="px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc",h=d.bind(null,new RegExp(g,"g")),i=d.bind(null,new RegExp(g+"|%","g")),j=d.bind(null,/deg|rad|grad|turn/g);a.parseLength=h,a.parseLengthOrPercent=i,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,i),a.parseAngle=j,a.mergeDimensions=f;var k=a.consumeParenthesised.bind(null,h),l=a.consumeRepeated.bind(void 0,k,/^/),m=a.consumeRepeated.bind(void 0,l,/^,/);a.consumeSizePairList=m;var n=function(a){var b=m(a);if(b&&""==b[1])return b[0]},o=a.mergeNestedRepeated.bind(void 0,e," "),p=a.mergeNestedRepeated.bind(void 0,o,",");a.mergeNonNegativeSizePair=o,a.addPropertiesHandler(n,p,["background-size"]),a.addPropertiesHandler(i,e,["border-bottom-width","border-image-width","border-left-width","border-right-width","border-top-width","flex-basis","font-size","height","line-height","max-height","max-width","outline-width","width"]),a.addPropertiesHandler(i,f,["border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","bottom","left","letter-spacing","margin-bottom","margin-left","margin-right","margin-top","min-height","min-width","outline-offset","padding-bottom","padding-left","padding-right","padding-top","perspective","right","shape-margin","stroke-dashoffset","text-indent","top","vertical-align","word-spacing"])}(b),function(a,b){function c(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function d(b){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\(/)),a.consumeRepeated.bind(null,c,/^,/),a.ignore(a.consumeToken.bind(null,/^\)/))],b);if(d&&4==d[0].length)return d[0]}function e(b,c){return"auto"==b||"auto"==c?[!0,!1,function(d){var e=d?b:c;if("auto"==e)return"auto";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function f(a){return"rect("+a+")"}var g=a.mergeWrappedNestedRepeated.bind(null,f,e,", ");a.parseBox=d,a.mergeBoxes=g,a.addPropertiesHandler(d,g,["clip"])}(b),function(a,b){function c(a){return function(b){var c=0;return a.map(function(a){return a===k?b[c++]:a})}}function d(a){return a}function e(b){if("none"==(b=b.toLowerCase().trim()))return[];for(var c,d=/\s*(\w+)\(([^)]*)\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=n[g];if(!h)return;var i=c[2].split(","),j=h[0];if(j.length<i.length)return;for(var k=[],o=0;o<j.length;o++){var p,q=i[o],r=j[o];if(void 0===(p=q?{A:function(b){return"0"==b.trim()?m:a.parseAngle(b)},N:a.parseNumber,T:a.parseLengthOrPercent,L:a.parseLength}[r.toUpperCase()](q):{a:m,n:k[0],t:l}[r]))return;k.push(p)}if(e.push({t:g,d:k}),d.lastIndex==b.length)return e}}function f(a){return a.toFixed(6).replace(".000000","")}function g(b,c){if(b.decompositionPair!==c){b.decompositionPair=c;var d=a.makeMatrixDecomposition(b)}if(c.decompositionPair!==b){c.decompositionPair=b;var e=a.makeMatrixDecomposition(c)}return null==d[0]||null==e[0]?[[!1],[!0],function(a){return a?c[0].d:b[0].d}]:(d[0].push(0),e[0].push(1),[d,e,function(b){var c=a.quat(d[0][3],e[0][3],b[5]);return a.composeMatrix(b[0],b[1],b[2],c,b[4]).map(f).join(",")}])}function h(a){return a.replace(/[xy]/,"")}function i(a){return a.replace(/(x|y|z|3d)?$/,"3d")}function j(b,c){var d=a.makeMatrixDecomposition&&!0,e=!1;if(!b.length||!c.length){b.length||(e=!0,b=c,c=[]);for(var f=0;f<b.length;f++){var j=b[f].t,k=b[f].d,l="scale"==j.substr(0,5)?1:0;c.push({t:j,d:k.map(function(a){if("number"==typeof a)return l;var b={};for(var c in a)b[c]=l;return b})})}}var m=function(a,b){return"perspective"==a&&"perspective"==b||("matrix"==a||"matrix3d"==a)&&("matrix"==b||"matrix3d"==b)},o=[],p=[],q=[];if(b.length!=c.length){if(!d)return;var r=g(b,c);o=[r[0]],p=[r[1]],q=[["matrix",[r[2]]]]}else for(var f=0;f<b.length;f++){var j,s=b[f].t,t=c[f].t,u=b[f].d,v=c[f].d,w=n[s],x=n[t];if(m(s,t)){if(!d)return;var r=g([b[f]],[c[f]]);o.push(r[0]),p.push(r[1]),q.push(["matrix",[r[2]]])}else{if(s==t)j=s;else if(w[2]&&x[2]&&h(s)==h(t))j=h(s),u=w[2](u),v=x[2](v);else{if(!w[1]||!x[1]||i(s)!=i(t)){if(!d)return;var r=g(b,c);o=[r[0]],p=[r[1]],q=[["matrix",[r[2]]]];break}j=i(s),u=w[1](u),v=x[1](v)}for(var y=[],z=[],A=[],B=0;B<u.length;B++){var C="number"==typeof u[B]?a.mergeNumbers:a.mergeDimensions,r=C(u[B],v[B]);y[B]=r[0],z[B]=r[1],A.push(r[2])}o.push(y),p.push(z),q.push([j,A])}}if(e){var D=o;o=p,p=D}return[o,p,function(a){return a.map(function(a,b){var c=a.map(function(a,c){return q[b][1][c](a)}).join(",");return"matrix"==q[b][0]&&16==c.split(",").length&&(q[b][0]="matrix3d"),q[b][0]+"("+c+")"}).join(" ")}]}var k=null,l={px:0},m={deg:0},n={matrix:["NNNNNN",[k,k,0,0,k,k,0,0,0,0,1,0,k,k,0,1],d],matrix3d:["NNNNNNNNNNNNNNNN",d],rotate:["A"],rotatex:["A"],rotatey:["A"],rotatez:["A"],rotate3d:["NNNA"],perspective:["L"],scale:["Nn",c([k,k,1]),d],scalex:["N",c([k,1,1]),c([k,1])],scaley:["N",c([1,k,1]),c([1,k])],scalez:["N",c([1,1,k])],scale3d:["NNN",d],skew:["Aa",null,d],skewx:["A",null,c([k,m])],skewy:["A",null,c([m,k])],translate:["Tt",c([k,k,l]),d],translatex:["T",c([k,l,l]),c([k,l])],translatey:["T",c([l,k,l]),c([l,k])],translatez:["L",c([l,l,k])],translate3d:["TTL",d]};a.addPropertiesHandler(e,j,["transform"]),a.transformToSvgMatrix=function(b){var c=a.transformListToMatrix(e(b));return"matrix("+f(c[0])+" "+f(c[1])+" "+f(c[4])+" "+f(c[5])+" "+f(c[12])+" "+f(c[13])+")"}}(b),function(a,b){function c(a,b){b.concat([a]).forEach(function(b){b in document.documentElement.style&&(d[a]=b),e[b]=a})}var d={},e={};c("transform",["webkitTransform","msTransform"]),c("transformOrigin",["webkitTransformOrigin"]),c("perspective",["webkitPerspective"]),c("perspectiveOrigin",["webkitPerspectiveOrigin"]),a.propertyName=function(a){return d[a]||a},a.unprefixedPropertyName=function(a){return e[a]||a}}(b)}(),function(){if(void 0===document.createElement("div").animate([]).oncancel){var a;if(window.performance&&performance.now)var a=function(){return performance.now()};else var a=function(){return Date.now()};var b=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type="cancel",this.bubbles=!1,this.cancelable=!1,this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()},c=window.Element.prototype.animate;window.Element.prototype.animate=function(d,e){var f=c.call(this,d,e);f._cancelHandlers=[],f.oncancel=null;var g=f.cancel;f.cancel=function(){g.call(this);var c=new b(this,null,a()),d=this._cancelHandlers.concat(this.oncancel?[this.oncancel]:[]);setTimeout(function(){d.forEach(function(a){a.call(c.target,c)})},0)};var h=f.addEventListener;f.addEventListener=function(a,b){"function"==typeof b&&"cancel"==a?this._cancelHandlers.push(b):h.call(this,a,b)};var i=f.removeEventListener;return f.removeEventListener=function(a,b){if("cancel"==a){var c=this._cancelHandlers.indexOf(b);c>=0&&this._cancelHandlers.splice(c,1)}else i.call(this,a,b)},f}}}(),function(a){var b=document.documentElement,c=null,d=!1;try{var e=getComputedStyle(b).getPropertyValue("opacity"),f="0"==e?"1":"0";c=b.animate({opacity:[f,f]},{duration:1}),c.currentTime=0,d=getComputedStyle(b).getPropertyValue("opacity")==f}catch(a){}finally{c&&c.cancel()}if(!d){var g=window.Element.prototype.animate;window.Element.prototype.animate=function(b,c){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||null===b||(b=a.convertToArrayForm(b)),g.call(this,b,c)}}}(a),function(a,b,c){function d(a){var c=b.timeline;c.currentTime=a,c._discardAnimations(),0==c._animations.length?f=!1:requestAnimationFrame(d)}var e=window.requestAnimationFrame;window.requestAnimationFrame=function(a){return e(function(c){b.timeline._updateAnimationsPromises(),a(c),b.timeline._updateAnimationsPromises()})},b.AnimationTimeline=function(){this._animations=[],this.currentTime=void 0},b.AnimationTimeline.prototype={getAnimations:function(){return this._discardAnimations(),this._animations.slice()},_updateAnimationsPromises:function(){b.animationsWithPromises=b.animationsWithPromises.filter(function(a){return a._updatePromises()})},_discardAnimations:function(){this._updateAnimationsPromises(),this._animations=this._animations.filter(function(a){return"finished"!=a.playState&&"idle"!=a.playState})},_play:function(a){var c=new b.Animation(a,this);return this._animations.push(c),b.restartWebAnimationsNextTick(),c._updatePromises(),c._animation.play(),c._updatePromises(),c},play:function(a){return a&&a.remove(),this._play(a)}};var f=!1;b.restartWebAnimationsNextTick=function(){f||(f=!0,requestAnimationFrame(d))};var g=new b.AnimationTimeline;b.timeline=g;try{Object.defineProperty(window.document,"timeline",{configurable:!0,get:function(){return g}})}catch(a){}try{window.document.timeline=g}catch(a){}}(0,c),function(a,b,c){b.animationsWithPromises=[],b.Animation=function(b,c){if(this.id="",b&&b._id&&(this.id=b._id),this.effect=b,b&&(b._animation=this),!c)throw new Error("Animation with null timeline is not supported");this._timeline=c,this._sequenceNumber=a.sequenceNumber++,this._holdTime=0,this._paused=!1,this._isGroup=!1,this._animation=null,this._childAnimations=[],this._callback=null,this._oldPlayState="idle",this._rebuildUnderlyingAnimation(),this._animation.cancel(),this._updatePromises()},b.Animation.prototype={_updatePromises:function(){var a=this._oldPlayState,b=this.playState;return this._readyPromise&&b!==a&&("idle"==b?(this._rejectReadyPromise(),this._readyPromise=void 0):"pending"==a?this._resolveReadyPromise():"pending"==b&&(this._readyPromise=void 0)),this._finishedPromise&&b!==a&&("idle"==b?(this._rejectFinishedPromise(),this._finishedPromise=void 0):"finished"==b?this._resolveFinishedPromise():"finished"==a&&(this._finishedPromise=void 0)),this._oldPlayState=this.playState,this._readyPromise||this._finishedPromise},_rebuildUnderlyingAnimation:function(){this._updatePromises();var a,c,d,e,f=!!this._animation;f&&(a=this.playbackRate,c=this._paused,d=this.startTime,e=this.currentTime,this._animation.cancel(),this._animation._wrapper=null,this._animation=null),(!this.effect||this.effect instanceof window.KeyframeEffect)&&(this._animation=b.newUnderlyingAnimationForKeyframeEffect(this.effect),b.bindAnimationForKeyframeEffect(this)),(this.effect instanceof window.SequenceEffect||this.effect instanceof window.GroupEffect)&&(this._animation=b.newUnderlyingAnimationForGroup(this.effect),b.bindAnimationForGroup(this)),this.effect&&this.effect._onsample&&b.bindAnimationForCustomEffect(this),f&&(1!=a&&(this.playbackRate=a),null!==d?this.startTime=d:null!==e?this.currentTime=e:null!==this._holdTime&&(this.currentTime=this._holdTime),c&&this.pause()),this._updatePromises()},_updateChildren:function(){if(this.effect&&"idle"!=this.playState){var a=this.effect._timing.delay;this._childAnimations.forEach(function(c){this._arrangeChildren(c,a),this.effect instanceof window.SequenceEffect&&(a+=b.groupChildDuration(c.effect))}.bind(this))}},_setExternalAnimation:function(a){if(this.effect&&this._isGroup)for(var b=0;b<this.effect.children.length;b++)this.effect.children[b]._animation=a,this._childAnimations[b]._setExternalAnimation(a)},_constructChildAnimations:function(){if(this.effect&&this._isGroup){var a=this.effect._timing.delay;this._removeChildAnimations(),this.effect.children.forEach(function(c){var d=b.timeline._play(c);this._childAnimations.push(d),d.playbackRate=this.playbackRate,this._paused&&d.pause(),c._animation=this.effect._animation,this._arrangeChildren(d,a),this.effect instanceof window.SequenceEffect&&(a+=b.groupChildDuration(c))}.bind(this))}},_arrangeChildren:function(a,b){null===this.startTime?a.currentTime=this.currentTime-b/this.playbackRate:a.startTime!==this.startTime+b/this.playbackRate&&(a.startTime=this.startTime+b/this.playbackRate)},get timeline(){return this._timeline},get playState(){return this._animation?this._animation.playState:"idle"},get finished(){return window.Promise?(this._finishedPromise||(-1==b.animationsWithPromises.indexOf(this)&&b.animationsWithPromises.push(this),this._finishedPromise=new Promise(function(a,b){this._resolveFinishedPromise=function(){a(this)},this._rejectFinishedPromise=function(){b({type:DOMException.ABORT_ERR,name:"AbortError"})}}.bind(this)),"finished"==this.playState&&this._resolveFinishedPromise()),this._finishedPromise):(console.warn("Animation Promises require JavaScript Promise constructor"),null)},get ready(){return window.Promise?(this._readyPromise||(-1==b.animationsWithPromises.indexOf(this)&&b.animationsWithPromises.push(this),this._readyPromise=new Promise(function(a,b){this._resolveReadyPromise=function(){a(this)},this._rejectReadyPromise=function(){b({type:DOMException.ABORT_ERR,name:"AbortError"})}}.bind(this)),"pending"!==this.playState&&this._resolveReadyPromise()),this._readyPromise):(console.warn("Animation Promises require JavaScript Promise constructor"),null)},get onfinish(){return this._animation.onfinish},set onfinish(a){this._animation.onfinish="function"==typeof a?function(b){b.target=this,a.call(this,b)}.bind(this):a},get oncancel(){return this._animation.oncancel},set oncancel(a){this._animation.oncancel="function"==typeof a?function(b){b.target=this,a.call(this,b)}.bind(this):a},get currentTime(){this._updatePromises();var a=this._animation.currentTime;return this._updatePromises(),a},set currentTime(a){this._updatePromises(),this._animation.currentTime=isFinite(a)?a:Math.sign(a)*Number.MAX_VALUE,this._register(),this._forEachChild(function(b,c){b.currentTime=a-c}),this._updatePromises()},get startTime(){return this._animation.startTime},set startTime(a){this._updatePromises(),this._animation.startTime=isFinite(a)?a:Math.sign(a)*Number.MAX_VALUE,this._register(),this._forEachChild(function(b,c){b.startTime=a+c}),this._updatePromises()},get playbackRate(){return this._animation.playbackRate},set playbackRate(a){this._updatePromises();var b=this.currentTime;this._animation.playbackRate=a,this._forEachChild(function(b){b.playbackRate=a}),null!==b&&(this.currentTime=b),this._updatePromises()},play:function(){this._updatePromises(),this._paused=!1,this._animation.play(),-1==this._timeline._animations.indexOf(this)&&this._timeline._animations.push(this),this._register(),b.awaitStartTime(this),this._forEachChild(function(a){var b=a.currentTime;a.play(),a.currentTime=b}),this._updatePromises()},pause:function(){this._updatePromises(),this.currentTime&&(this._holdTime=this.currentTime),this._animation.pause(),this._register(),this._forEachChild(function(a){a.pause()}),this._paused=!0,this._updatePromises()},finish:function(){this._updatePromises(),this._animation.finish(),this._register(),this._updatePromises()},cancel:function(){this._updatePromises(),this._animation.cancel(),this._register(),this._removeChildAnimations(),this._updatePromises()},reverse:function(){this._updatePromises();var a=this.currentTime;this._animation.reverse(),this._forEachChild(function(a){a.reverse()}),null!==a&&(this.currentTime=a),this._updatePromises()},addEventListener:function(a,b){var c=b;"function"==typeof b&&(c=function(a){a.target=this,b.call(this,a)}.bind(this),b._wrapper=c),this._animation.addEventListener(a,c)},removeEventListener:function(a,b){this._animation.removeEventListener(a,b&&b._wrapper||b)},_removeChildAnimations:function(){for(;this._childAnimations.length;)this._childAnimations.pop().cancel()},_forEachChild:function(b){var c=0;if(this.effect.children&&this._childAnimations.length<this.effect.children.length&&this._constructChildAnimations(),this._childAnimations.forEach(function(a){b.call(this,a,c),this.effect instanceof window.SequenceEffect&&(c+=a.effect.activeDuration)}.bind(this)),"pending"!=this.playState){var d=this.effect._timing,e=this.currentTime;null!==e&&(e=a.calculateIterationProgress(a.calculateActiveDuration(d),e,d)),(null==e||isNaN(e))&&this._removeChildAnimations()}}},window.Animation=b.Animation}(a,c),function(a,b,c){function d(b){this._frames=a.normalizeKeyframes(b)}function e(){for(var a=!1;i.length;)i.shift()._updateChildren(),a=!0;return a}var f=function(a){if(a._animation=void 0,a instanceof window.SequenceEffect||a instanceof window.GroupEffect)for(var b=0;b<a.children.length;b++)f(a.children[b])};b.removeMulti=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];d._parent?(-1==b.indexOf(d._parent)&&b.push(d._parent),d._parent.children.splice(d._parent.children.indexOf(d),1),d._parent=null,f(d)):d._animation&&d._animation.effect==d&&(d._animation.cancel(),d._animation.effect=new KeyframeEffect(null,[]),d._animation._callback&&(d._animation._callback._animation=null),d._animation._rebuildUnderlyingAnimation(),f(d))}for(c=0;c<b.length;c++)b[c]._rebuild()},b.KeyframeEffect=function(b,c,e,f){return this.target=b,this._parent=null,e=a.numericTimingToObject(e),this._timingInput=a.cloneTimingInput(e),this._timing=a.normalizeTimingInput(e),this.timing=a.makeTiming(e,!1,this),this.timing._effect=this,"function"==typeof c?(a.deprecated("Custom KeyframeEffect","2015-06-22","Use KeyframeEffect.onsample instead."),this._normalizedKeyframes=c):this._normalizedKeyframes=new d(c),this._keyframes=c,this.activeDuration=a.calculateActiveDuration(this._timing),this._id=f,this},b.KeyframeEffect.prototype={getFrames:function(){return"function"==typeof this._normalizedKeyframes?this._normalizedKeyframes:this._normalizedKeyframes._frames},set onsample(a){if("function"==typeof this.getFrames())throw new Error("Setting onsample on custom effect KeyframeEffect is not supported.");this._onsample=a,this._animation&&this._animation._rebuildUnderlyingAnimation()},get parent(){return this._parent},clone:function(){if("function"==typeof this.getFrames())throw new Error("Cloning custom effects is not supported.");var b=new KeyframeEffect(this.target,[],a.cloneTimingInput(this._timingInput),this._id);return b._normalizedKeyframes=this._normalizedKeyframes,b._keyframes=this._keyframes,b},remove:function(){b.removeMulti([this])}};var g=Element.prototype.animate;Element.prototype.animate=function(a,c){var d="";return c&&c.id&&(d=c.id),b.timeline._play(new b.KeyframeEffect(this,a,c,d))};var h=document.createElementNS("http://www.w3.org/1999/xhtml","div");b.newUnderlyingAnimationForKeyframeEffect=function(a){if(a){var b=a.target||h,c=a._keyframes;"function"==typeof c&&(c=[]);var d=a._timingInput;d.id=a._id}else var b=h,c=[],d=0;return g.apply(b,[c,d])},b.bindAnimationForKeyframeEffect=function(a){a.effect&&"function"==typeof a.effect._normalizedKeyframes&&b.bindAnimationForCustomEffect(a)};var i=[];b.awaitStartTime=function(a){null===a.startTime&&a._isGroup&&(0==i.length&&requestAnimationFrame(e),i.push(a))};var j=window.getComputedStyle;Object.defineProperty(window,"getComputedStyle",{configurable:!0,enumerable:!0,value:function(){b.timeline._updateAnimationsPromises();var a=j.apply(this,arguments);return e()&&(a=j.apply(this,arguments)),b.timeline._updateAnimationsPromises(),a}}),window.KeyframeEffect=b.KeyframeEffect,window.Element.prototype.getAnimations=function(){return document.timeline.getAnimations().filter(function(a){return null!==a.effect&&a.effect.target==this}.bind(this))}}(a,c),function(a,b,c){function d(a){a._registered||(a._registered=!0,g.push(a),h||(h=!0,requestAnimationFrame(e)))}function e(a){var b=g;g=[],b.sort(function(a,b){return a._sequenceNumber-b._sequenceNumber}),b=b.filter(function(a){a();var b=a._animation?a._animation.playState:"idle";return"running"!=b&&"pending"!=b&&(a._registered=!1),a._registered}),g.push.apply(g,b),g.length?(h=!0,requestAnimationFrame(e)):h=!1}var f=(document.createElementNS("http://www.w3.org/1999/xhtml","div"),0);b.bindAnimationForCustomEffect=function(b){var c,e=b.effect.target,g="function"==typeof b.effect.getFrames();c=g?b.effect.getFrames():b.effect._onsample;var h=b.effect.timing,i=null;h=a.normalizeTimingInput(h);var j=function(){var d=j._animation?j._animation.currentTime:null;null!==d&&(d=a.calculateIterationProgress(a.calculateActiveDuration(h),d,h),isNaN(d)&&(d=null)),d!==i&&(g?c(d,e,b.effect):c(d,b.effect,b.effect._animation)),i=d};j._animation=b,j._registered=!1,j._sequenceNumber=f++,b._callback=j,d(j)};var g=[],h=!1;b.Animation.prototype._register=function(){this._callback&&d(this._callback)}}(a,c),function(a,b,c){function d(a){return a._timing.delay+a.activeDuration+a._timing.endDelay}function e(b,c,d){this._id=d,this._parent=null,this.children=b||[],this._reparent(this.children),c=a.numericTimingToObject(c),this._timingInput=a.cloneTimingInput(c),this._timing=a.normalizeTimingInput(c,!0),this.timing=a.makeTiming(c,!0,this),this.timing._effect=this,"auto"===this._timing.duration&&(this._timing.duration=this.activeDuration)}window.SequenceEffect=function(){e.apply(this,arguments)},window.GroupEffect=function(){e.apply(this,arguments)},e.prototype={_isAncestor:function(a){for(var b=this;null!==b;){if(b==a)return!0;b=b._parent}return!1},_rebuild:function(){for(var a=this;a;)"auto"===a.timing.duration&&(a._timing.duration=a.activeDuration),a=a._parent;this._animation&&this._animation._rebuildUnderlyingAnimation()},_reparent:function(a){b.removeMulti(a);for(var c=0;c<a.length;c++)a[c]._parent=this},_putChild:function(a,b){for(var c=b?"Cannot append an ancestor or self":"Cannot prepend an ancestor or self",d=0;d<a.length;d++)if(this._isAncestor(a[d]))throw{type:DOMException.HIERARCHY_REQUEST_ERR,name:"HierarchyRequestError",message:c};for(var d=0;d<a.length;d++)b?this.children.push(a[d]):this.children.unshift(a[d]);this._reparent(a),this._rebuild()},append:function(){this._putChild(arguments,!0)},prepend:function(){this._putChild(arguments,!1)},get parent(){return this._parent},get firstChild(){return this.children.length?this.children[0]:null},get lastChild(){return this.children.length?this.children[this.children.length-1]:null},clone:function(){for(var b=a.cloneTimingInput(this._timingInput),c=[],d=0;d<this.children.length;d++)c.push(this.children[d].clone());return this instanceof GroupEffect?new GroupEffect(c,b):new SequenceEffect(c,b)},remove:function(){b.removeMulti([this])}},window.SequenceEffect.prototype=Object.create(e.prototype),Object.defineProperty(window.SequenceEffect.prototype,"activeDuration",{get:function(){var a=0;return this.children.forEach(function(b){a+=d(b)}),Math.max(a,0)}}),window.GroupEffect.prototype=Object.create(e.prototype),Object.defineProperty(window.GroupEffect.prototype,"activeDuration",{get:function(){var a=0;return this.children.forEach(function(b){a=Math.max(a,d(b))}),a}}),b.newUnderlyingAnimationForGroup=function(c){var d,e=null,f=function(b){var c=d._wrapper;if(c&&"pending"!=c.playState&&c.effect)return null==b?void c._removeChildAnimations():0==b&&c.playbackRate<0&&(e||(e=a.normalizeTimingInput(c.effect.timing)),b=a.calculateIterationProgress(a.calculateActiveDuration(e),-1,e),isNaN(b)||null==b)?(c._forEachChild(function(a){a.currentTime=-1}),void c._removeChildAnimations()):void 0},g=new KeyframeEffect(null,[],c._timing,c._id);return g.onsample=f,d=b.timeline._play(g)},b.bindAnimationForGroup=function(a){a._animation._wrapper=a,a._isGroup=!0,b.awaitStartTime(a),a._constructChildAnimations(),a._setExternalAnimation(a)},b.groupChildDuration=d}(a,c)}();

!(function(){
/*! *****************************************************************************
    Copyright (c) Microsoft Corporation.

    Permission to use, copy, modify, and/or distribute this software for any
    purpose with or without fee is hereby granted.

    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.
    ***************************************************************************** */
function t(t,e,n,i){var r,o=arguments.length,a=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(a=(o<3?r(a):o>3?r(e,n,a):r(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a}function e(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function n(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){t.done?r(t.value):(function e(t){return t instanceof n?t:new n((function(e){e(t)}))})(t.value).then(a,s)}l((i=i.apply(t,e||[])).next())}))}
/**
     * @license
     * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
     * This code may only be used under the BSD style license found at
     * http://polymer.github.io/LICENSE.txt The complete set of authors may be found
     * at http://polymer.github.io/AUTHORS.txt The complete set of contributors may
     * be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by
     * Google as part of the polymer project is also subject to an additional IP
     * rights grant found at http://polymer.github.io/PATENTS.txt
     */function i(t){return e=>{if(t)if(e.hasOwnProperty("is")){if(t!==e.is)throw new Error(`custom element tag names do not match: (${t} !== ${e.is})`)}else Object.defineProperty(e,"is",{value:t});window.customElements.define(e.is,e)}}function r(t,e,n){t.constructor.hasOwnProperty("properties")||Object.defineProperty(t.constructor,"properties",{value:{}}),t.constructor.properties[e]=Object.assign({},t.constructor.properties[e],n)}function o(t){return(e,n)=>{r(e,n,t)}}function a(...t){return(e,n)=>{e.constructor.hasOwnProperty("observers")||Object.defineProperty(e.constructor,"observers",{value:[]}),e.constructor.observers.push(`${n}(${t.join(",")})`)}}function s(t,...e){return(n,i,o)=>{const a=`__compute${i}`;Object.defineProperty(n,a,{value:o.get}),o.get=void 0,r(n,i,{computed:`${a}(${[t,...e].join(",")})`})}}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */window.JSCompiler_renameProperty=function(t,e){return t};
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
let l,c,u=/(url\()([^)]*)(\))/g,h=/(^\/[^\/])|(^#)|(^[\w-\d]*:)/;function d(t,e){if(t&&h.test(t))return t;if("//"===t)return t;if(void 0===l){l=!1;try{const t=new URL("b","http://a");t.pathname="c%20d",l="http://a/c%20d"===t.href}catch(t){}}if(e||(e=document.baseURI||window.location.href),l)try{return new URL(t,e).href}catch(e){return t}return c||(c=document.implementation.createHTMLDocument("temp"),c.base=c.createElement("base"),c.head.appendChild(c.base),c.anchor=c.createElement("a"),c.body.appendChild(c.anchor)),c.base.href=e,c.anchor.href=t,c.anchor.href||t}function p(t,e){return t.replace(u,(function(t,n,i,r){return n+"'"+d(i.replace(/["']/g,""),e)+"'"+r}))}function f(t){return t.substring(0,t.lastIndexOf("/")+1)}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */const m=!window.ShadyDOM||!window.ShadyDOM.inUse;Boolean(!window.ShadyCSS||window.ShadyCSS.nativeCss);const g=m&&"adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype&&(()=>{try{const t=new CSSStyleSheet;t.replaceSync("");const e=document.createElement("div");return e.attachShadow({mode:"open"}),e.shadowRoot.adoptedStyleSheets=[t],e.shadowRoot.adoptedStyleSheets[0]===t}catch(t){return!1}})();let _=window.Polymer&&window.Polymer.rootPath||f(document.baseURI||window.location.href),y=window.Polymer&&window.Polymer.sanitizeDOMValue||void 0,v=window.Polymer&&window.Polymer.setPassiveTouchGestures||!1,b=window.Polymer&&window.Polymer.strictTemplatePolicy||!1,x=window.Polymer&&window.Polymer.allowTemplateFromDomModule||!1,w=window.Polymer&&window.Polymer.legacyOptimizations||!1,S=window.Polymer&&window.Polymer.legacyWarnings||!1,M=window.Polymer&&window.Polymer.syncInitialRender||!1,E=window.Polymer&&window.Polymer.legacyUndefined||!1,T=window.Polymer&&window.Polymer.orderedComputed||!1,C=window.Polymer&&window.Polymer.removeNestedTemplates||!1,A=window.Polymer&&window.Polymer.fastDomIf||!1,k=window.Polymer&&window.Polymer.suppressTemplateNotifications||!1,L=window.Polymer&&window.Polymer.legacyNoObservedAttributes||!1,P=window.Polymer&&window.Polymer.useAdoptedStyleSheetsWithBuiltCSS||!1,N=0;const I=function(t){let e=t.__mixinApplications;e||(e=new WeakMap,t.__mixinApplications=e);let n=N++;return function i(r){let o=r.__mixinSet;if(o&&o[n])return r;let a=e,s=a.get(r);if(!s){s=t(r),a.set(r,s);let e=Object.create(s.__mixinSet||o||null);e[n]=!0,s.__mixinSet=e}return s}};
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */let O={},R={};function z(t,e){O[t]=R[t.toLowerCase()]=e}function D(t){return O[t]||R[t.toLowerCase()]}class B extends HTMLElement{static get observedAttributes(){return["id"]}static import(t,e){if(t){let n=D(t);return n&&e?n.querySelector(e):n}return null}attributeChangedCallback(t,e,n,i){e!==n&&this.register()}get assetpath(){if(!this.__assetpath){const t=window.HTMLImports&&HTMLImports.importForElement?HTMLImports.importForElement(this)||document:this.ownerDocument,e=d(this.getAttribute("assetpath")||"",t.baseURI);this.__assetpath=f(e)}return this.__assetpath}register(t){if(t=t||this.id){if(b&&void 0!==D(t))throw z(t,null),new Error(`strictTemplatePolicy: dom-module ${t} re-registered`);this.id=t,z(t,this),(function e(t){t.querySelector("style")&&console.warn("dom-module %s has style outside template",t.id)})(this)}}}B.prototype.modules=O,customElements.define("dom-module",B);
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const H="shady-unscoped";function F(t){return B.import(t)}function V(t){const e=p((t.body?t.body:t).textContent,t.baseURI),n=document.createElement("style");return n.textContent=e,n}function U(t){const e=t.trim().split(/\s+/),n=[];for(let t=0;t<e.length;t++)n.push(...j(e[t]));return n}function j(t){const e=F(t);if(!e)return console.warn("Could not find style data in module named",t),[];if(void 0===e._styles){const t=[];t.push(...W(e));const n=e.querySelector("template");n&&t.push(...G(n,e.assetpath)),e._styles=t}return e._styles}function G(t,e){if(!t._styles){const n=[],i=t.content.querySelectorAll("style");for(let t=0;t<i.length;t++){let r=i[t],o=r.getAttribute("include");o&&n.push(...U(o).filter((function(t,e,n){return n.indexOf(t)===e}))),e&&(r.textContent=p(r.textContent,e)),n.push(r)}t._styles=n}return t._styles}function W(t){const e=[],n=t.querySelectorAll("link[rel=import][type~=css]");for(let t=0;t<n.length;t++){let i=n[t];if(i.import){const t=i.import,n=i.hasAttribute(H);if(n&&!t._unscopedStyle){const e=V(t);e.setAttribute(H,""),t._unscopedStyle=e}else t._style||(t._style=V(t));e.push(n?t._unscopedStyle:t._style)}}return e}function q(t){let e=F(t);if(e&&void 0===e._cssText){let t=(function n(t){let e="",n=W(t);for(let t=0;t<n.length;t++)e+=n[t].textContent;return e}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */)(e),n=e.querySelector("template");n&&(t+=(function i(t,e){let n="";const i=G(t,e);for(let t=0;t<i.length;t++){let e=i[t];e.parentNode&&e.parentNode.removeChild(e),n+=e.textContent}return n})(n,e.assetpath)),e._cssText=t||null}return e||console.warn("Could not find style data in module named",t),e&&e._cssText||""}const Y=window.ShadyDOM&&window.ShadyDOM.noPatch&&window.ShadyDOM.wrap?window.ShadyDOM.wrap:window.ShadyDOM?t=>ShadyDOM.patch(t):t=>t;
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */function X(t){return t.indexOf(".")>=0}function $(t){let e=t.indexOf(".");return-1===e?t:t.slice(0,e)}function K(t,e){return 0===t.indexOf(e+".")}function Z(t,e){return 0===e.indexOf(t+".")}function J(t,e,n){return e+n.slice(t.length)}function Q(t,e){return t===e||K(t,e)||Z(t,e)}function tt(t){if(Array.isArray(t)){let e=[];for(let n=0;n<t.length;n++){let i=t[n].toString().split(".");for(let t=0;t<i.length;t++)e.push(i[t])}return e.join(".")}return t}function et(t){return Array.isArray(t)?tt(t).split("."):t.toString().split(".")}function nt(t,e,n){let i=t,r=et(e);for(let t=0;t<r.length;t++){if(!i)return;i=i[r[t]]}return n&&(n.path=r.join(".")),i}function it(t,e,n){let i=t,r=et(e),o=r[r.length-1];if(r.length>1){for(let t=0;t<r.length-1;t++)if(i=i[r[t]],!i)return;i[o]=n}else i[e]=n;return r.join(".")}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */const rt={},ot=/-[a-z]/g,at=/([A-Z])/g;function st(t){return rt[t]||(rt[t]=t.indexOf("-")<0?t:t.replace(ot,(t=>t[1].toUpperCase())))}function lt(t){return rt[t]||(rt[t]=t.replace(at,"-$1").toLowerCase())}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */let ct=0,ut=0,ht=[],dt=0,pt=!1,ft=document.createTextNode("");new window.MutationObserver((function mt(){pt=!1;const t=ht.length;for(let e=0;e<t;e++){let t=ht[e];if(t)try{t()}catch(t){setTimeout((()=>{throw t}))}}ht.splice(0,t),ut+=t})).observe(ft,{characterData:!0});const gt={after:t=>({run:e=>window.setTimeout(e,t),cancel(t){window.clearTimeout(t)}}),run:(t,e)=>window.setTimeout(t,e),cancel(t){window.clearTimeout(t)}},_t={run:t=>window.requestAnimationFrame(t),cancel(t){window.cancelAnimationFrame(t)}},yt={run:t=>window.requestIdleCallback?window.requestIdleCallback(t):window.setTimeout(t,16),cancel(t){window.cancelIdleCallback?window.cancelIdleCallback(t):window.clearTimeout(t)}},vt={run:t=>(pt||(pt=!0,ft.textContent=dt++),ht.push(t),ct++),cancel(t){const e=t-ut;if(e>=0){if(!ht[e])throw new Error("invalid async handle: "+t);ht[e]=null}}},bt=vt,xt=I((t=>class extends t{static createProperties(t){const e=this.prototype;for(let n in t)n in e||e._createPropertyAccessor(n)}static attributeNameForProperty(t){return t.toLowerCase()}static typeForProperty(t){}_createPropertyAccessor(t,e){this._addPropertyToAttributeMap(t),this.hasOwnProperty(JSCompiler_renameProperty("__dataHasAccessor",this))||(this.__dataHasAccessor=Object.assign({},this.__dataHasAccessor)),this.__dataHasAccessor[t]||(this.__dataHasAccessor[t]=!0,this._definePropertyAccessor(t,e))}_addPropertyToAttributeMap(t){this.hasOwnProperty(JSCompiler_renameProperty("__dataAttributes",this))||(this.__dataAttributes=Object.assign({},this.__dataAttributes));let e=this.__dataAttributes[t];return e||(e=this.constructor.attributeNameForProperty(t),this.__dataAttributes[e]=t),e}_definePropertyAccessor(t,e){Object.defineProperty(this,t,{get(){return this.__data[t]},set:e?function(){}:function(e){this._setPendingProperty(t,e,!0)&&this._invalidateProperties()}})}constructor(){super(),this.__dataEnabled=!1,this.__dataReady=!1,this.__dataInvalid=!1,this.__data={},this.__dataPending=null,this.__dataOld=null,this.__dataInstanceProps=null,this.__dataCounter=0,this.__serializing=!1,this._initializeProperties()}ready(){this.__dataReady=!0,this._flushProperties()}_initializeProperties(){for(let t in this.__dataHasAccessor)this.hasOwnProperty(t)&&(this.__dataInstanceProps=this.__dataInstanceProps||{},this.__dataInstanceProps[t]=this[t],delete this[t])}_initializeInstanceProperties(t){Object.assign(this,t)}_setProperty(t,e){this._setPendingProperty(t,e)&&this._invalidateProperties()}_getProperty(t){return this.__data[t]}_setPendingProperty(t,e,n){let i=this.__data[t],r=this._shouldPropertyChange(t,e,i);return r&&(this.__dataPending||(this.__dataPending={},this.__dataOld={}),this.__dataOld&&!(t in this.__dataOld)&&(this.__dataOld[t]=i),this.__data[t]=e,this.__dataPending[t]=e),r}_isPropertyPending(t){return!(!this.__dataPending||!this.__dataPending.hasOwnProperty(t))}_invalidateProperties(){!this.__dataInvalid&&this.__dataReady&&(this.__dataInvalid=!0,bt.run((()=>{this.__dataInvalid&&(this.__dataInvalid=!1,this._flushProperties())})))}_enableProperties(){this.__dataEnabled||(this.__dataEnabled=!0,this.__dataInstanceProps&&(this._initializeInstanceProperties(this.__dataInstanceProps),this.__dataInstanceProps=null),this.ready())}_flushProperties(){this.__dataCounter++;const t=this.__data,e=this.__dataPending,n=this.__dataOld;this._shouldPropertiesChange(t,e,n)&&(this.__dataPending=null,this.__dataOld=null,this._propertiesChanged(t,e,n)),this.__dataCounter--}_shouldPropertiesChange(t,e,n){return Boolean(e)}_propertiesChanged(t,e,n){}_shouldPropertyChange(t,e,n){return n!==e&&(n==n||e==e)}attributeChangedCallback(t,e,n,i){e!==n&&this._attributeToProperty(t,n),super.attributeChangedCallback&&super.attributeChangedCallback(t,e,n,i)}_attributeToProperty(t,e,n){if(!this.__serializing){const i=this.__dataAttributes,r=i&&i[t]||t;this[r]=this._deserializeValue(e,n||this.constructor.typeForProperty(r))}}_propertyToAttribute(t,e,n){this.__serializing=!0,this._valueToNodeAttribute(this,n=arguments.length<3?this[t]:n,e||this.constructor.attributeNameForProperty(t)),this.__serializing=!1}_valueToNodeAttribute(t,e,n){const i=this._serializeValue(e);"class"!==n&&"name"!==n&&"slot"!==n||(t=Y(t)),void 0===i?t.removeAttribute(n):t.setAttribute(n,i)}_serializeValue(t){switch(typeof t){case"boolean":return t?"":void 0;default:return null!=t?t.toString():void 0}}_deserializeValue(t,e){switch(e){case Boolean:return null!==t;case Number:return Number(t);default:return t}}})),wt={};let St=HTMLElement.prototype;for(;St;){let t=Object.getOwnPropertyNames(St);for(let e=0;e<t.length;e++)wt[t[e]]=!0;St=Object.getPrototypeOf(St)}const Mt=I((t=>{const e=xt(t);return class extends e{static createPropertiesForAttributes(){let t=this.observedAttributes;for(let e=0;e<t.length;e++)this.prototype._createPropertyAccessor(st(t[e]))}static attributeNameForProperty(t){return lt(t)}_initializeProperties(){this.__dataProto&&(this._initializeProtoProperties(this.__dataProto),this.__dataProto=null),super._initializeProperties()}_initializeProtoProperties(t){for(let e in t)this._setProperty(e,t[e])}_ensureAttribute(t,e){this.hasAttribute(t)||this._valueToNodeAttribute(this,e,t)}_serializeValue(t){switch(typeof t){case"object":if(t instanceof Date)return t.toString();if(t)try{return JSON.stringify(t)}catch(t){return""}default:return super._serializeValue(t)}}_deserializeValue(t,e){let n;switch(e){case Object:try{n=JSON.parse(t)}catch(e){n=t}break;case Array:try{n=JSON.parse(t)}catch(e){n=null,console.warn(`Polymer::Attributes: couldn't decode Array as JSON: ${t}`)}break;case Date:n=isNaN(t)?String(t):Number(t),n=new Date(n);break;default:n=super._deserializeValue(t,e)}return n}_definePropertyAccessor(t,e){!(function n(t,e){if(!wt[e]){let n=t[e];void 0!==n&&(t.__data?t._setPendingProperty(e,n):(t.__dataProto?t.hasOwnProperty(JSCompiler_renameProperty("__dataProto",t))||(t.__dataProto=Object.create(t.__dataProto)):t.__dataProto={},t.__dataProto[e]=n))}})(this,t),super._definePropertyAccessor(t,e)}_hasAccessor(t){return this.__dataHasAccessor&&this.__dataHasAccessor[t]}_isPropertyPending(t){return Boolean(this.__dataPending&&t in this.__dataPending)}}})),Et={"dom-if":!0,"dom-repeat":!0};
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */let Tt=!1,Ct=!1;function At(t){let e=t.getAttribute("is");if(e&&Et[e]){let n=t;for(n.removeAttribute("is"),t=n.ownerDocument.createElement(e),n.parentNode.replaceChild(t,n),t.appendChild(n);n.attributes.length;)t.setAttribute(n.attributes[0].name,n.attributes[0].value),n.removeAttribute(n.attributes[0].name)}return t}function kt(t,e){let n=e.parentInfo&&kt(t,e.parentInfo);if(!n)return t;for(let t=n.firstChild,i=0;t;t=t.nextSibling)if(e.parentIndex===i++)return t}function Lt(t,e,n,i){i.id&&(e[i.id]=n)}function Pt(t,e,n){if(n.events&&n.events.length)for(let i,r=0,o=n.events;r<o.length&&(i=o[r]);r++)t._addMethodEventListenerToNode(e,i.name,i.value,t)}function Nt(t,e,n,i){n.templateInfo&&(e._templateInfo=n.templateInfo,e._parentTemplateInfo=i)}const It=I((t=>class extends t{static _parseTemplate(t,e){if(!t._templateInfo){let n=t._templateInfo={};n.nodeInfoList=[],n.nestedTemplate=Boolean(e),n.stripWhiteSpace=e&&e.stripWhiteSpace||t.hasAttribute("strip-whitespace"),this._parseTemplateContent(t,n,{parent:null})}return t._templateInfo}static _parseTemplateContent(t,e,n){return this._parseTemplateNode(t.content,e,n)}static _parseTemplateNode(t,e,n){let i=!1,r=t;return"template"!=r.localName||r.hasAttribute("preserve-content")?"slot"===r.localName&&(e.hasInsertionPoint=!0):i=this._parseTemplateNestedTemplate(r,e,n)||i,(function o(t){(function e(){if(!Tt){Tt=!0;const t=document.createElement("textarea");t.placeholder="a",Ct=t.placeholder===t.textContent}return Ct})()&&"textarea"===t.localName&&t.placeholder&&t.placeholder===t.textContent&&(t.textContent=null)})(r),r.firstChild&&this._parseTemplateChildNodes(r,e,n),r.hasAttributes&&r.hasAttributes()&&(i=this._parseTemplateNodeAttributes(r,e,n)||i),i||n.noted}static _parseTemplateChildNodes(t,e,n){if("script"!==t.localName&&"style"!==t.localName)for(let i,r=t.firstChild,o=0;r;r=i){if("template"==r.localName&&(r=At(r)),i=r.nextSibling,r.nodeType===Node.TEXT_NODE){let n=i;for(;n&&n.nodeType===Node.TEXT_NODE;)r.textContent+=n.textContent,i=n.nextSibling,t.removeChild(n),n=i;if(e.stripWhiteSpace&&!r.textContent.trim()){t.removeChild(r);continue}}let a={parentIndex:o,parentInfo:n};this._parseTemplateNode(r,e,a)&&(a.infoIndex=e.nodeInfoList.push(a)-1),r.parentNode&&o++}}static _parseTemplateNestedTemplate(t,e,n){let i=t,r=this._parseTemplate(i,e);return(r.content=i.content.ownerDocument.createDocumentFragment()).appendChild(i.content),n.templateInfo=r,!0}static _parseTemplateNodeAttributes(t,e,n){let i=!1,r=Array.from(t.attributes);for(let o,a=r.length-1;o=r[a];a--)i=this._parseTemplateNodeAttribute(t,e,n,o.name,o.value)||i;return i}static _parseTemplateNodeAttribute(t,e,n,i,r){return"on-"===i.slice(0,3)?(t.removeAttribute(i),n.events=n.events||[],n.events.push({name:i.slice(3),value:r}),!0):"id"===i&&(n.id=r,!0)}static _contentForTemplate(t){let e=t._templateInfo;return e&&e.content||t.content}_stampTemplate(t,e){t&&!t.content&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(t);let n=(e=e||this.constructor._parseTemplate(t)).nodeInfoList,i=document.importNode(e.content||t.content,!0);i.__noInsertionPoint=!e.hasInsertionPoint;let r=i.nodeList=new Array(n.length);i.$={};for(let t,o=0,a=n.length;o<a&&(t=n[o]);o++){let n=r[o]=kt(i,t);Lt(0,i.$,n,t),Nt(0,n,t,e),Pt(this,n,t)}return i=i,i}_addMethodEventListenerToNode(t,e,n,i){let r=(function o(t,e,n){return t=t._methodHost||t,function(e){t[n]?t[n](e,e.detail):console.warn("listener method `"+n+"` not defined")}})(i=i||t,0,n);return this._addEventListenerToNode(t,e,r),r}_addEventListenerToNode(t,e,n){t.addEventListener(e,n)}_removeEventListenerFromNode(t,e,n){t.removeEventListener(e,n)}}));
/**
     * @fileoverview
     * @suppress {checkPrototypalTypes}
     * @license Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
     * This code may only be used under the BSD style license found at
     * http://polymer.github.io/LICENSE.txt The complete set of authors may be found
     * at http://polymer.github.io/AUTHORS.txt The complete set of contributors may
     * be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by
     * Google as part of the polymer project is also subject to an additional IP
     * rights grant found at http://polymer.github.io/PATENTS.txt
     */let Ot=0;const Rt=[],zt={COMPUTE:"__computeEffects",REFLECT:"__reflectEffects",NOTIFY:"__notifyEffects",PROPAGATE:"__propagateEffects",OBSERVE:"__observeEffects",READ_ONLY:"__readOnly"},Dt=/[A-Z]/;function Bt(t,e,n){let i=t[e];if(i){if(!t.hasOwnProperty(e)&&(i=t[e]=Object.create(t[e]),n))for(let t in i){let e=i[t],n=i[t]=Array(e.length);for(let t=0;t<e.length;t++)n[t]=e[t]}}else i=t[e]={};return i}function Ht(t,e,n,i,r,o){if(e){let a=!1;const s=Ot++;for(let l in n){let c=e[r?$(l):l];if(c)for(let e,u=0,h=c.length;u<h&&(e=c[u]);u++)e.info&&e.info.lastRun===s||r&&!Vt(l,e.trigger)||(e.info&&(e.info.lastRun=s),e.fn(t,l,n,i,e.info,r,o),a=!0)}return a}return!1}function Ft(t,e,n,i,r,o,a,s){let l=!1,c=e[a?$(i):i];if(c)for(let e,u=0,h=c.length;u<h&&(e=c[u]);u++)e.info&&e.info.lastRun===n||a&&!Vt(i,e.trigger)||(e.info&&(e.info.lastRun=n),e.fn(t,i,r,o,e.info,a,s),l=!0);return l}function Vt(t,e){if(e){let n=e.name;return n==t||!(!e.structured||!K(n,t))||!(!e.wildcard||!Z(n,t))}return!0}function Ut(t,e,n,i,r){let o="string"==typeof r.method?t[r.method]:r.method,a=r.property;o?o.call(t,t.__data[a],i[a]):r.dynamicFn||console.warn("observer method `"+r.method+"` not defined")}function jt(t,e,n){let i=$(e);return i!==e&&(Gt(t,lt(i)+"-changed",n[e],e),!0)}function Gt(t,e,n,i){let r={value:n,queueProperty:!0};i&&(r.path=i),Y(t).dispatchEvent(new CustomEvent(e,{detail:r}))}function Wt(t,e,n,i,r,o){let a=(o?$(e):e)!=e?e:null,s=a?nt(t,a):t.__data[e];a&&void 0===s&&(s=n[e]),Gt(t,r.eventName,s,a)}function qt(t,e,n,i,r){let o=t.__data[e];y&&(o=y(o,r.attrName,"attribute",t)),t._propertyToAttribute(e,r.attrName,o)}const Yt=(t,e,n)=>{let i=0,r=e.length-1,o=-1;for(;i<=r;){const a=i+r>>1,s=n.get(e[a].methodInfo)-n.get(t.methodInfo);if(s<0)i=a+1;else{if(!(s>0)){o=a;break}r=a-1}}o<0&&(o=r+1),e.splice(o,0,t)},Xt=(t,e,n,i,r)=>{const o=e[r?$(t):t];if(o)for(let e=0;e<o.length;e++){const a=o[e];a.info.lastRun===Ot||r&&!Vt(t,a.trigger)||(a.info.lastRun=Ot,Yt(a.info,n,i))}};function $t(t,e,n,i,r){let o=ne(t,e,n,0,r);if(o===Rt)return!1;let a=r.methodInfo;return t.__dataHasAccessor&&t.__dataHasAccessor[a]?t._setPendingProperty(a,o,!0):(t[a]=o,!1)}function Kt(t,e,n,i,r,o,a){n.bindings=n.bindings||[];let s={kind:i,target:r,parts:o,literal:a,isCompound:1!==o.length};if(n.bindings.push(s),(function l(t){return Boolean(t.target)&&"attribute"!=t.kind&&"text"!=t.kind&&!t.isCompound&&"{"===t.parts[0].mode})(s)){let{event:t,negate:e}=s.parts[0];s.listenerEvent=t||lt(r)+"-changed",s.listenerNegate=e}let c=e.nodeInfoList.length;for(let n=0;n<s.parts.length;n++){let i=s.parts[n];i.compoundIndex=n,Zt(t,e,s,i,c)}}function Zt(t,e,n,i,r){if(!i.literal)if("attribute"===n.kind&&"-"===n.target[0])console.warn("Cannot set attribute "+n.target+' because "-" is not a valid attribute starting character');else{let o=i.dependencies,a={index:r,binding:n,part:i,evaluator:t};for(let n=0;n<o.length;n++){let i=o[n];"string"==typeof i&&(i=se(i),i.wildcard=!0),t._addTemplatePropertyEffect(e,i.rootProperty,{fn:Jt,info:a,trigger:i})}}}function Jt(t,e,n,i,r,o,a){let s=a[r.index],l=r.binding,c=r.part;if(o&&c.source&&e.length>c.source.length&&"property"==l.kind&&!l.isCompound&&s.__isPropertyEffectsClient&&s.__dataHasAccessor&&s.__dataHasAccessor[l.target]){let i=n[e];e=J(c.source,l.target,e),s._setPendingPropertyOrPath(e,i,!1,!0)&&t._enqueueClient(s)}else{let a=r.evaluator._evaluateBinding(t,c,e,n,i,o);a!==Rt&&(function u(t,e,n,i,r){if(r=(function o(t,e,n,i){if(n.isCompound){let r=t.__dataCompoundStorage[n.target];r[i.compoundIndex]=e,e=r.join("")}return"attribute"!==n.kind&&("textContent"!==n.target&&("value"!==n.target||"input"!==t.localName&&"textarea"!==t.localName)||(e=null==e?"":e)),e})(e,r,n,i),y&&(r=y(r,n.target,n.kind,e)),"attribute"==n.kind)t._valueToNodeAttribute(e,r,n.target);else{let i=n.target;e.__isPropertyEffectsClient&&e.__dataHasAccessor&&e.__dataHasAccessor[i]?e[zt.READ_ONLY]&&e[zt.READ_ONLY][i]||e._setPendingProperty(i,r)&&t._enqueueClient(e):t._setUnmanagedPropertyToNode(e,i,r)}})(t,s,l,c,a)}}function Qt(t,e){if(e.isCompound){let n=t.__dataCompoundStorage||(t.__dataCompoundStorage={}),i=e.parts,r=new Array(i.length);for(let t=0;t<i.length;t++)r[t]=i[t].literal;let o=e.target;n[o]=r,e.literal&&"property"==e.kind&&("className"===o&&(t=Y(t)),t[o]=e.literal)}}function te(t,e,n){if(n.listenerEvent){let i=n.parts[0];t.addEventListener(n.listenerEvent,(function(t){!(function r(t,e,n,i,o){let a,s=t.detail,l=s&&s.path;l?(i=J(n,i,l),a=s&&s.value):a=t.currentTarget[n],a=o?!a:a,e[zt.READ_ONLY]&&e[zt.READ_ONLY][i]||!e._setPendingPropertyOrPath(i,a,!0,Boolean(l))||s&&s.queueProperty||e._invalidateProperties()})(t,e,n.target,i.source,i.negate)}))}}function ee(t,e,n,i,r,o){let a={methodName:e.methodName,args:e.args,methodInfo:r,dynamicFn:o=e.static||o&&("object"!=typeof o||o[e.methodName])};for(let r,o=0;o<e.args.length&&(r=e.args[o]);o++)r.literal||t._addPropertyEffect(r.rootProperty,n,{fn:i,info:a,trigger:r});return o&&t._addPropertyEffect(e.methodName,n,{fn:i,info:a}),a}function ne(t,e,n,i,r){let o=t._methodHost||t,a=o[r.methodName];if(a){let i=t._marshalArgs(r.args,e,n);return i===Rt?Rt:a.apply(o,i)}r.dynamicFn||console.warn("method `"+r.methodName+"` not defined")}const ie=[],re=new RegExp("(\\[\\[|{{)\\s*(?:(!)\\s*)?((?:[a-zA-Z_$][\\w.:$\\-*]*)\\s*(?:\\(\\s*(?:(?:(?:((?:[a-zA-Z_$][\\w.:$\\-*]*)|(?:[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?)|(?:(?:'(?:[^'\\\\]|\\\\.)*')|(?:\"(?:[^\"\\\\]|\\\\.)*\")))\\s*)(?:,\\s*(?:((?:[a-zA-Z_$][\\w.:$\\-*]*)|(?:[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?)|(?:(?:'(?:[^'\\\\]|\\\\.)*')|(?:\"(?:[^\"\\\\]|\\\\.)*\")))\\s*))*)?)\\)\\s*)?)(?:]]|}})","g");function oe(t){let e="";for(let n=0;n<t.length;n++)e+=t[n].literal||"";return e}function ae(t){let e=t.match(/([^\s]+?)\(([\s\S]*)\)/);if(e){let t={methodName:e[1],static:!0,args:ie};return e[2].trim()?(function n(t,e){return e.args=t.map((function(t){let n=se(t);return n.literal||(e.static=!1),n}),this),e})(e[2].replace(/\\,/g,"&comma;").split(","),t):t}return null}function se(t){let e=t.trim().replace(/&comma;/g,",").replace(/\\(.)/g,"$1"),n={name:e,value:"",literal:!1},i=e[0];switch("-"===i&&(i=e[1]),i>="0"&&i<="9"&&(i="#"),i){case"'":case'"':n.value=e.slice(1,-1),n.literal=!0;break;case"#":n.value=Number(e),n.literal=!0}return n.literal||(n.rootProperty=$(e),n.structured=X(e),n.structured&&(n.wildcard=".*"==e.slice(-2),n.wildcard&&(n.name=e.slice(0,-2)))),n}function le(t,e,n){let i=nt(t,n);return void 0===i&&(i=e[n]),i}function ce(t,e,n,i){const r={indexSplices:i};E&&!t._overrideLegacyUndefined&&(e.splices=r),t.notifyPath(n+".splices",r),t.notifyPath(n+".length",e.length),E&&!t._overrideLegacyUndefined&&(r.indexSplices=[])}function ue(t,e,n,i,r,o){ce(t,e,n,[{index:i,addedCount:r,removed:o,object:e,type:"splice"}])}const he=I((t=>{const e=It(Mt(t));return class extends e{constructor(){super(),this.__isPropertyEffectsClient=!0}get PROPERTY_EFFECT_TYPES(){return zt}_initializeProperties(){super._initializeProperties(),this._registerHost(),this.__dataClientsReady=!1,this.__dataPendingClients=null,this.__dataToNotify=null,this.__dataLinkedPaths=null,this.__dataHasPaths=!1,this.__dataCompoundStorage=this.__dataCompoundStorage||null,this.__dataHost=this.__dataHost||null,this.__dataTemp={},this.__dataClientsInitialized=!1}_registerHost(){if(de.length){let t=de[de.length-1];t._enqueueClient(this),this.__dataHost=t}}_initializeProtoProperties(t){this.__data=Object.create(t),this.__dataPending=Object.create(t),this.__dataOld={}}_initializeInstanceProperties(t){let e=this[zt.READ_ONLY];for(let n in t)e&&e[n]||(this.__dataPending=this.__dataPending||{},this.__dataOld=this.__dataOld||{},this.__data[n]=this.__dataPending[n]=t[n])}_addPropertyEffect(t,e,n){this._createPropertyAccessor(t,e==zt.READ_ONLY);let i=Bt(this,e,!0)[t];i||(i=this[e][t]=[]),i.push(n)}_removePropertyEffect(t,e,n){let i=Bt(this,e,!0)[t],r=i.indexOf(n);r>=0&&i.splice(r,1)}_hasPropertyEffect(t,e){let n=this[e];return Boolean(n&&n[t])}_hasReadOnlyEffect(t){return this._hasPropertyEffect(t,zt.READ_ONLY)}_hasNotifyEffect(t){return this._hasPropertyEffect(t,zt.NOTIFY)}_hasReflectEffect(t){return this._hasPropertyEffect(t,zt.REFLECT)}_hasComputedEffect(t){return this._hasPropertyEffect(t,zt.COMPUTE)}_setPendingPropertyOrPath(t,e,n,i){if(i||$(Array.isArray(t)?t[0]:t)!==t){if(!i){let n=nt(this,t);if(!(t=it(this,t,e))||!super._shouldPropertyChange(t,e,n))return!1}if(this.__dataHasPaths=!0,this._setPendingProperty(t,e,n))return(function r(t,e,n){let i=t.__dataLinkedPaths;if(i){let r;for(let o in i){let a=i[o];Z(o,e)?(r=J(o,a,e),t._setPendingPropertyOrPath(r,n,!0,!0)):Z(a,e)&&(r=J(a,o,e),t._setPendingPropertyOrPath(r,n,!0,!0))}}})(this,t,e),!0}else{if(this.__dataHasAccessor&&this.__dataHasAccessor[t])return this._setPendingProperty(t,e,n);this[t]=e}return!1}_setUnmanagedPropertyToNode(t,e,n){n===t[e]&&"object"!=typeof n||("className"===e&&(t=Y(t)),t[e]=n)}_setPendingProperty(t,e,n){let i=this.__dataHasPaths&&X(t);return!!this._shouldPropertyChange(t,e,(i?this.__dataTemp:this.__data)[t])&&(this.__dataPending||(this.__dataPending={},this.__dataOld={}),t in this.__dataOld||(this.__dataOld[t]=this.__data[t]),i?this.__dataTemp[t]=e:this.__data[t]=e,this.__dataPending[t]=e,(i||this[zt.NOTIFY]&&this[zt.NOTIFY][t])&&(this.__dataToNotify=this.__dataToNotify||{},this.__dataToNotify[t]=n),!0)}_setProperty(t,e){this._setPendingProperty(t,e,!0)&&this._invalidateProperties()}_invalidateProperties(){this.__dataReady&&this._flushProperties()}_enqueueClient(t){this.__dataPendingClients=this.__dataPendingClients||[],t!==this&&this.__dataPendingClients.push(t)}_flushClients(){this.__dataClientsReady?this.__enableOrFlushClients():(this.__dataClientsReady=!0,this._readyClients(),this.__dataReady=!0)}__enableOrFlushClients(){let t=this.__dataPendingClients;if(t){this.__dataPendingClients=null;for(let e=0;e<t.length;e++){let n=t[e];n.__dataEnabled?n.__dataPending&&n._flushProperties():n._enableProperties()}}}_readyClients(){this.__enableOrFlushClients()}setProperties(t,e){for(let n in t)!e&&this[zt.READ_ONLY]&&this[zt.READ_ONLY][n]||this._setPendingPropertyOrPath(n,t[n],!0);this._invalidateProperties()}ready(){this._flushProperties(),this.__dataClientsReady||this._flushClients(),this.__dataPending&&this._flushProperties()}_propertiesChanged(t,e,n){let i,r=this.__dataHasPaths;this.__dataHasPaths=!1,(function o(t,e,n,i){let r=t[zt.COMPUTE];if(r)if(T){Ot++;const o=(function o(t){let e=t.constructor.__orderedComputedDeps;if(!e){e=new Map;const n=t[zt.COMPUTE];let i,{counts:r,ready:o,total:a}=(function n(t){const e=t.__computeInfo,n={},i=t[zt.COMPUTE],r=[];let o=0;for(let t in e){const i=e[t];o+=n[t]=i.args.filter((t=>!t.literal)).length+(i.dynamicFn?1:0)}for(let t in i)e[t]||r.push(t);return{counts:n,ready:r,total:o}})(t);for(;i=o.shift();){e.set(i,e.size);const t=n[i];t&&t.forEach((t=>{const e=t.info.methodInfo;--a,0==--r[e]&&o.push(e)}))}0!==a&&console.warn(`Computed graph for ${t.localName} incomplete; circular?`),t.constructor.__orderedComputedDeps=e}return e})(t),a=[];for(let t in e)Xt(t,r,a,o,i);let s;for(;s=a.shift();)$t(t,"",e,0,s)&&Xt(s.methodInfo,r,a,o,i);Object.assign(n,t.__dataOld),Object.assign(e,t.__dataPending),t.__dataPending=null}else{let o=e;for(;Ht(t,r,o,n,i);)Object.assign(n,t.__dataOld),Object.assign(e,t.__dataPending),o=t.__dataPending,t.__dataPending=null}})(this,e,n,r),i=this.__dataToNotify,this.__dataToNotify=null,this._propagatePropertyChanges(e,n,r),this._flushClients(),Ht(this,this[zt.REFLECT],e,n,r),Ht(this,this[zt.OBSERVE],e,n,r),i&&(function a(t,e,n,i,r){let o,a,s=t[zt.NOTIFY],l=Ot++;for(let a in e)e[a]&&(s&&Ft(t,s,l,a,n,i,r)||r&&jt(t,a,n))&&(o=!0);o&&(a=t.__dataHost)&&a._invalidateProperties&&a._invalidateProperties()})(this,i,e,n,r),1==this.__dataCounter&&(this.__dataTemp={})}_propagatePropertyChanges(t,e,n){this[zt.PROPAGATE]&&Ht(this,this[zt.PROPAGATE],t,e,n),this.__templateInfo&&this._runEffectsForTemplate(this.__templateInfo,t,e,n)}_runEffectsForTemplate(t,e,n,i){const r=(e,i)=>{Ht(this,t.propertyEffects,e,n,i,t.nodeList);for(let r=t.firstChild;r;r=r.nextSibling)this._runEffectsForTemplate(r,e,n,i)};t.runEffects?t.runEffects(r,e,i):r(e,i)}linkPaths(t,e){t=tt(t),e=tt(e),this.__dataLinkedPaths=this.__dataLinkedPaths||{},this.__dataLinkedPaths[t]=e}unlinkPaths(t){t=tt(t),this.__dataLinkedPaths&&delete this.__dataLinkedPaths[t]}notifySplices(t,e){let n={path:""};ce(this,nt(this,t,n),n.path,e)}get(t,e){return nt(e||this,t)}set(t,e,n){n?it(n,t,e):this[zt.READ_ONLY]&&this[zt.READ_ONLY][t]||this._setPendingPropertyOrPath(t,e,!0)&&this._invalidateProperties()}push(t,...e){let n={path:""},i=nt(this,t,n),r=i.length,o=i.push(...e);return e.length&&ue(this,i,n.path,r,e.length,[]),o}pop(t){let e={path:""},n=nt(this,t,e),i=Boolean(n.length),r=n.pop();return i&&ue(this,n,e.path,n.length,0,[r]),r}splice(t,e,n,...i){let r,o={path:""},a=nt(this,t,o);return e<0?e=a.length-Math.floor(-e):e&&(e=Math.floor(e)),r=2===arguments.length?a.splice(e):a.splice(e,n,...i),(i.length||r.length)&&ue(this,a,o.path,e,i.length,r),r}shift(t){let e={path:""},n=nt(this,t,e),i=Boolean(n.length),r=n.shift();return i&&ue(this,n,e.path,0,0,[r]),r}unshift(t,...e){let n={path:""},i=nt(this,t,n),r=i.unshift(...e);return e.length&&ue(this,i,n.path,0,e.length,[]),r}notifyPath(t,e){let n;if(1==arguments.length){let i={path:""};e=nt(this,t,i),n=i.path}else n=Array.isArray(t)?tt(t):t;this._setPendingPropertyOrPath(n,e,!0,!0)&&this._invalidateProperties()}_createReadOnlyProperty(t,e){this._addPropertyEffect(t,zt.READ_ONLY),e&&(this["_set"+(function n(t){return t[0].toUpperCase()+t.substring(1)})(t)]=function(e){this._setProperty(t,e)})}_createPropertyObserver(t,e,n){let i={property:t,method:e,dynamicFn:Boolean(n)};this._addPropertyEffect(t,zt.OBSERVE,{fn:Ut,info:i,trigger:{name:t}}),n&&this._addPropertyEffect(e,zt.OBSERVE,{fn:Ut,info:i,trigger:{name:e}})}_createMethodObserver(t,e){let n=ae(t);if(!n)throw new Error("Malformed observer expression '"+t+"'");ee(this,n,zt.OBSERVE,ne,null,e)}_createNotifyingProperty(t){this._addPropertyEffect(t,zt.NOTIFY,{fn:Wt,info:{eventName:lt(t)+"-changed",property:t}})}_createReflectedProperty(t){let e=this.constructor.attributeNameForProperty(t);"-"===e[0]?console.warn("Property "+t+" cannot be reflected to attribute "+e+' because "-" is not a valid starting attribute name. Use a lowercase first letter for the property instead.'):this._addPropertyEffect(t,zt.REFLECT,{fn:qt,info:{attrName:e}})}_createComputedProperty(t,e,n){let i=ae(e);if(!i)throw new Error("Malformed computed expression '"+e+"'");const r=ee(this,i,zt.COMPUTE,$t,t,n);Bt(this,"__computeInfo")[t]=r}_marshalArgs(t,e,n){const i=this.__data,r=[];for(let o=0,a=t.length;o<a;o++){let{name:a,structured:s,wildcard:l,value:c,literal:u}=t[o];if(!u)if(l){const t=Z(a,e),r=le(i,n,t?e:a);c={path:t?e:a,value:r,base:t?nt(i,a):r}}else c=s?le(i,n,a):i[a];if(E&&!this._overrideLegacyUndefined&&void 0===c&&t.length>1)return Rt;r[o]=c}return r}static addPropertyEffect(t,e,n){this.prototype._addPropertyEffect(t,e,n)}static createPropertyObserver(t,e,n){this.prototype._createPropertyObserver(t,e,n)}static createMethodObserver(t,e){this.prototype._createMethodObserver(t,e)}static createNotifyingProperty(t){this.prototype._createNotifyingProperty(t)}static createReadOnlyProperty(t,e){this.prototype._createReadOnlyProperty(t,e)}static createReflectedProperty(t){this.prototype._createReflectedProperty(t)}static createComputedProperty(t,e,n){this.prototype._createComputedProperty(t,e,n)}static bindTemplate(t){return this.prototype._bindTemplate(t)}_bindTemplate(t,e){let n=this.constructor._parseTemplate(t),i=this.__preBoundTemplateInfo==n;if(!i)for(let t in n.propertyEffects)this._createPropertyAccessor(t);if(e)if(n=Object.create(n),n.wasPreBound=i,this.__templateInfo){const e=t._parentTemplateInfo||this.__templateInfo,i=e.lastChild;n.parent=e,e.lastChild=n,n.previousSibling=i,i?i.nextSibling=n:e.firstChild=n}else this.__templateInfo=n;else this.__preBoundTemplateInfo=n;return n}static _addTemplatePropertyEffect(t,e,n){(t.hostProps=t.hostProps||{})[e]=!0;let i=t.propertyEffects=t.propertyEffects||{};(i[e]=i[e]||[]).push(n)}_stampTemplate(t,e){e=e||this._bindTemplate(t,!0),de.push(this);let n=super._stampTemplate(t,e);if(de.pop(),e.nodeList=n.nodeList,!e.wasPreBound){let t=e.childNodes=[];for(let e=n.firstChild;e;e=e.nextSibling)t.push(e)}return n.templateInfo=e,(function i(t,e){let{nodeList:n,nodeInfoList:i}=e;if(i.length)for(let e=0;e<i.length;e++){let r=n[e],o=i[e].bindings;if(o)for(let e=0;e<o.length;e++){let n=o[e];Qt(r,n),te(r,t,n)}r.__dataHost=t}})(this,e),this.__dataClientsReady&&(this._runEffectsForTemplate(e,this.__data,null,!1),this._flushClients()),n}_removeBoundDom(t){const e=t.templateInfo,{previousSibling:n,nextSibling:i,parent:r}=e;n?n.nextSibling=i:r&&(r.firstChild=i),i?i.previousSibling=n:r&&(r.lastChild=n),e.nextSibling=e.previousSibling=null;let o=e.childNodes;for(let t=0;t<o.length;t++){let e=o[t];Y(Y(e).parentNode).removeChild(e)}}static _parseTemplateNode(t,n,i){let r=e._parseTemplateNode.call(this,t,n,i);if(t.nodeType===Node.TEXT_NODE){let e=this._parseBindings(t.textContent,n);e&&(t.textContent=oe(e)||" ",Kt(this,n,i,"text","textContent",e),r=!0)}return r}static _parseTemplateNodeAttribute(t,n,i,r,o){let a=this._parseBindings(o,n);if(a){let e=r,o="property";Dt.test(r)?o="attribute":"$"==r[r.length-1]&&(r=r.slice(0,-1),o="attribute");let s=oe(a);return s&&"attribute"==o&&("class"==r&&t.hasAttribute("class")&&(s+=" "+t.getAttribute(r)),t.setAttribute(r,s)),"attribute"==o&&"disable-upgrade$"==e&&t.setAttribute(r,""),"input"===t.localName&&"value"===e&&t.setAttribute(e,""),t.removeAttribute(e),"property"===o&&(r=st(r)),Kt(this,n,i,o,r,a,s),!0}return e._parseTemplateNodeAttribute.call(this,t,n,i,r,o)}static _parseTemplateNestedTemplate(t,n,i){let r=e._parseTemplateNestedTemplate.call(this,t,n,i);const o=t.parentNode,a=i.templateInfo,s="dom-if"===o.localName;C&&(s||"dom-repeat"===o.localName)&&(o.removeChild(t),(i=i.parentInfo).templateInfo=a,i.noted=!0,r=!1);let l=a.hostProps;if(A&&s)l&&(n.hostProps=Object.assign(n.hostProps||{},l),C||(i.parentInfo.noted=!0));else{let t="{";for(let e in l)Kt(this,n,i,"property","_host_"+e,[{mode:t,source:e,dependencies:[e],hostProp:!0}])}return r}static _parseBindings(t,e){let n,i=[],r=0;for(;null!==(n=re.exec(t));){n.index>r&&i.push({literal:t.slice(r,n.index)});let o=n[1][0],a=Boolean(n[2]),s=n[3].trim(),l=!1,c="",u=-1;"{"==o&&(u=s.indexOf("::"))>0&&(c=s.substring(u+2),s=s.substring(0,u),l=!0);let h=ae(s),d=[];if(h){let{args:t,methodName:n}=h;for(let e=0;e<t.length;e++){let n=t[e];n.literal||d.push(n)}let i=e.dynamicFns;(i&&i[n]||h.static)&&(d.push(n),h.dynamicFn=!0)}else d.push(s);i.push({source:s,mode:o,negate:a,customEvent:l,signature:h,dependencies:d,event:c}),r=re.lastIndex}if(r&&r<t.length){let e=t.substring(r);e&&i.push({literal:e})}return i.length?i:null}static _evaluateBinding(t,e,n,i,r,o){let a;return a=e.signature?ne(t,n,i,0,e.signature):n!=e.source?nt(t,e.source):o&&X(n)?nt(t,n):t.__data[n],e.negate&&(a=!a),a}}})),de=[],pe=I((t=>{const e=xt(t);function n(t){const e=Object.getPrototypeOf(t);return e.prototype instanceof r?e:null}function i(t){if(!t.hasOwnProperty(JSCompiler_renameProperty("__ownProperties",t))){let e=null;if(t.hasOwnProperty(JSCompiler_renameProperty("properties",t))){const n=t.properties;n&&(e=(
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
function e(t){const e={};for(let n in t){const i=t[n];e[n]="function"==typeof i?{type:i}:i}return e})(n))}t.__ownProperties=e}return t.__ownProperties}class r extends e{static get observedAttributes(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__observedAttributes",this))){const t=this._properties;this.__observedAttributes=t?Object.keys(t).map((t=>this.prototype._addPropertyToAttributeMap(t))):[]}return this.__observedAttributes}static finalize(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__finalized",this))){const t=n(this);t&&t.finalize(),this.__finalized=!0,this._finalizeClass()}}static _finalizeClass(){const t=i(this);t&&this.createProperties(t)}static get _properties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__properties",this))){const t=n(this);this.__properties=Object.assign({},t&&t._properties,i(this))}return this.__properties}static typeForProperty(t){const e=this._properties[t];return e&&e.type}_initializeProperties(){this.constructor.finalize(),super._initializeProperties()}connectedCallback(){super.connectedCallback&&super.connectedCallback(),this._enableProperties()}disconnectedCallback(){super.disconnectedCallback&&super.disconnectedCallback()}}return r})),fe=window.ShadyCSS&&window.ShadyCSS.cssBuild,me=I((t=>{const e=pe(he(t));function n(t,e,n,i){n.computed&&(n.readOnly=!0),n.computed&&(t._hasReadOnlyEffect(e)?console.warn(`Cannot redefine computed property '${e}'.`):t._createComputedProperty(e,n.computed,i)),n.readOnly&&!t._hasReadOnlyEffect(e)?t._createReadOnlyProperty(e,!n.computed):!1===n.readOnly&&t._hasReadOnlyEffect(e)&&console.warn(`Cannot make readOnly property '${e}' non-readOnly.`),n.reflectToAttribute&&!t._hasReflectEffect(e)?t._createReflectedProperty(e):!1===n.reflectToAttribute&&t._hasReflectEffect(e)&&console.warn(`Cannot make reflected property '${e}' non-reflected.`),n.notify&&!t._hasNotifyEffect(e)?t._createNotifyingProperty(e):!1===n.notify&&t._hasNotifyEffect(e)&&console.warn(`Cannot make notify property '${e}' non-notify.`),n.observer&&t._createPropertyObserver(e,n.observer,i[n.observer]),t._addPropertyToAttributeMap(e)}return class extends e{static get polymerElementVersion(){return"3.4.1"}static _finalizeClass(){e._finalizeClass.call(this);const t=(function n(t){return t.hasOwnProperty(JSCompiler_renameProperty("__ownObservers",t))||(t.__ownObservers=t.hasOwnProperty(JSCompiler_renameProperty("observers",t))?t.observers:null),t.__ownObservers})(this);t&&this.createObservers(t,this._properties),this._prepareTemplate()}static _prepareTemplate(){let t=this.template;t&&("string"==typeof t?(console.error("template getter must return HTMLTemplateElement"),t=null):w||(t=t.cloneNode(!0))),this.prototype._template=t}static createProperties(t){for(let e in t)n(this.prototype,e,t[e],t)}static createObservers(t,e){const n=this.prototype;for(let i=0;i<t.length;i++)n._createMethodObserver(t[i],e)}static get template(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_template",this))){const t=this.prototype.hasOwnProperty(JSCompiler_renameProperty("_template",this.prototype))?this.prototype._template:void 0;this._template=void 0!==t?t:this.hasOwnProperty(JSCompiler_renameProperty("is",this))&&(function t(e){let n=null;if(e&&(!b||x)&&(n=B.import(e,"template"),b&&!n))throw new Error(`strictTemplatePolicy: expecting dom-module or null template for ${e}`);return n})(this.is)||Object.getPrototypeOf(this.prototype).constructor.template}return this._template}static set template(t){this._template=t}static get importPath(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_importPath",this))){const t=this.importMeta;if(t)this._importPath=f(t.url);else{const t=B.import(this.is);this._importPath=t&&t.assetpath||Object.getPrototypeOf(this.prototype).constructor.importPath}}return this._importPath}constructor(){super()}_initializeProperties(){this.constructor.finalize(),this.constructor._finalizeTemplate(this.localName),super._initializeProperties(),this.rootPath=_,this.importPath=this.constructor.importPath;let t=(function e(t){if(!t.hasOwnProperty(JSCompiler_renameProperty("__propertyDefaults",t))){t.__propertyDefaults=null;let e=t._properties;for(let n in e){let i=e[n];"value"in i&&(t.__propertyDefaults=t.__propertyDefaults||{},t.__propertyDefaults[n]=i)}}return t.__propertyDefaults})(this.constructor);if(t)for(let e in t){let n=t[e];if(this._canApplyPropertyDefault(e)){let t="function"==typeof n.value?n.value.call(this):n.value;this._hasAccessor(e)?this._setPendingProperty(e,t,!0):this[e]=t}}}_canApplyPropertyDefault(t){return!this.hasOwnProperty(t)}static _processStyleText(t,e){return p(t,e)}static _finalizeTemplate(t){const e=this.prototype._template;if(e&&!e.__polymerFinalized){e.__polymerFinalized=!0;const n=this.importPath;(function n(t,e,i,r){if(!fe){const n=e.content.querySelectorAll("style"),o=G(e),a=(function o(t){let e=F(t);return e?W(e):[]})(i),s=e.content.firstElementChild;for(let n=0;n<a.length;n++){let i=a[n];i.textContent=t._processStyleText(i.textContent,r),e.content.insertBefore(i,s)}let l=0;for(let e=0;e<o.length;e++){let i=o[e],a=n[l];a!==i?(i=i.cloneNode(!0),a.parentNode.insertBefore(i,a)):l++,i.textContent=t._processStyleText(i.textContent,r)}}if(window.ShadyCSS&&window.ShadyCSS.prepareTemplate(e,i),P&&fe&&g){const n=e.content.querySelectorAll("style");if(n){let e="";Array.from(n).forEach((t=>{e+=t.textContent,t.parentNode.removeChild(t)})),t._styleSheet=new CSSStyleSheet,t._styleSheet.replaceSync(e)}}})(this,e,t,n?d(n):""),this.prototype._bindTemplate(e)}}connectedCallback(){window.ShadyCSS&&this._template&&window.ShadyCSS.styleElement(this),super.connectedCallback()}ready(){this._template&&(this.root=this._stampTemplate(this._template),this.$=this.root.$),super.ready()}_readyClients(){this._template&&(this.root=this._attachDom(this.root)),super._readyClients()}_attachDom(t){const e=Y(this);if(e.attachShadow)return t?(e.shadowRoot||(e.attachShadow({mode:"open",shadyUpgradeFragment:t}),e.shadowRoot.appendChild(t),this.constructor._styleSheet&&(e.shadowRoot.adoptedStyleSheets=[this.constructor._styleSheet])),M&&window.ShadyDOM&&window.ShadyDOM.flushInitial(e.shadowRoot),e.shadowRoot):null;throw new Error("ShadowDOM not available. PolymerElement can create dom as children instead of in ShadowDOM by setting `this.root = this;` before `ready`.")}updateStyles(t){window.ShadyCSS&&window.ShadyCSS.styleSubtree(this,t)}resolveUrl(t,e){return!e&&this.importPath&&(e=d(this.importPath)),d(t,e)}static _parseTemplateContent(t,n,i){return n.dynamicFns=n.dynamicFns||this._properties,e._parseTemplateContent.call(this,t,n,i)}static _addTemplatePropertyEffect(t,n,i){return!S||n in this._properties||i.info.part.signature&&i.info.part.signature.static||i.info.part.hostProp||t.nestedTemplate||console.warn(`Property '${n}' used in template but not declared in 'properties'; attribute will not be observed.`),e._addTemplatePropertyEffect.call(this,t,n,i)}}}));
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
class ge{constructor(t){this.value=t.toString()}toString(){return this.value}}const _e=function t(e,...n){const i=document.createElement("template");return i.innerHTML=n.reduce(((t,n,i)=>t+(function r(t){if(t instanceof HTMLTemplateElement)return t.innerHTML;if(t instanceof ge)return(function e(t){if(t instanceof ge)return t.value;throw new Error(`non-literal value passed to Polymer's htmlLiteral function: ${t}`)})(t);throw new Error(`non-template value passed to Polymer's html function: ${t}`)})(n)+e[i+1]),e[0]),i},ye=me(HTMLElement);
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */var ve="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function be(t,e,n){return t(n={path:e,exports:{},require:function(t,e){return(function n(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")})()}},n.exports),n.exports}function xe(t){if(t.__esModule)return t;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(t).forEach((function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})})),e}var we=be((function(t,e){(function(){var n,i="Expected a function",r="__lodash_hash_undefined__",o="__lodash_placeholder__",a=32,s=128,l=1/0,c=9007199254740991,u=NaN,h=4294967295,d=[["ary",s],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",a],["partialRight",64],["rearg",256]],p="[object Arguments]",f="[object Array]",m="[object Boolean]",g="[object Date]",_="[object Error]",y="[object Function]",v="[object GeneratorFunction]",b="[object Map]",x="[object Number]",w="[object Object]",S="[object Promise]",M="[object RegExp]",E="[object Set]",T="[object String]",C="[object Symbol]",A="[object WeakMap]",k="[object ArrayBuffer]",L="[object DataView]",P="[object Float32Array]",N="[object Float64Array]",I="[object Int8Array]",O="[object Int16Array]",R="[object Int32Array]",z="[object Uint8Array]",D="[object Uint8ClampedArray]",B="[object Uint16Array]",H="[object Uint32Array]",F=/\b__p \+= '';/g,V=/\b(__p \+=) '' \+/g,U=/(__e\(.*?\)|\b__t\)) \+\n'';/g,j=/&(?:amp|lt|gt|quot|#39);/g,G=/[&<>"']/g,W=RegExp(j.source),q=RegExp(G.source),Y=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,$=/<%=([\s\S]+?)%>/g,K=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Z=/^\w*$/,J=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Q=/[\\^$.*+?()[\]{}|]/g,tt=RegExp(Q.source),et=/^\s+/,nt=/\s/,it=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,rt=/\{\n\/\* \[wrapped with (.+)\] \*/,ot=/,? & /,at=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,st=/[()=,{}\[\]\/\s]/,lt=/\\(\\)?/g,ct=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ut=/\w*$/,ht=/^[-+]0x[0-9a-f]+$/i,dt=/^0b[01]+$/i,pt=/^\[object .+?Constructor\]$/,ft=/^0o[0-7]+$/i,mt=/^(?:0|[1-9]\d*)$/,gt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_t=/($^)/,yt=/['\n\r\u2028\u2029\\]/g,vt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",bt="a-z\\xdf-\\xf6\\xf8-\\xff",xt="A-Z\\xc0-\\xd6\\xd8-\\xde",wt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",St="["+wt+"]",Mt="["+vt+"]",Et="\\d+",Tt="["+bt+"]",Ct="[^\\ud800-\\udfff"+wt+Et+"\\u2700-\\u27bf"+bt+xt+"]",At="\\ud83c[\\udffb-\\udfff]",kt="[^\\ud800-\\udfff]",Lt="(?:\\ud83c[\\udde6-\\uddff]){2}",Pt="[\\ud800-\\udbff][\\udc00-\\udfff]",Nt="["+xt+"]",It="(?:"+Tt+"|"+Ct+")",Ot="(?:"+Nt+"|"+Ct+")",Rt="(?:['’](?:d|ll|m|re|s|t|ve))?",zt="(?:['’](?:D|LL|M|RE|S|T|VE))?",Dt="(?:"+Mt+"|"+At+")?",Bt="[\\ufe0e\\ufe0f]?",Ht=Bt+Dt+"(?:\\u200d(?:"+[kt,Lt,Pt].join("|")+")"+Bt+Dt+")*",Ft="(?:"+["[\\u2700-\\u27bf]",Lt,Pt].join("|")+")"+Ht,Vt="(?:"+[kt+Mt+"?",Mt,Lt,Pt,"[\\ud800-\\udfff]"].join("|")+")",Ut=RegExp("['’]","g"),jt=RegExp(Mt,"g"),Gt=RegExp(At+"(?="+At+")|"+Vt+Ht,"g"),Wt=RegExp([Nt+"?"+Tt+"+"+Rt+"(?="+[St,Nt,"$"].join("|")+")",Ot+"+"+zt+"(?="+[St,Nt+It,"$"].join("|")+")",Nt+"?"+It+"+"+Rt,Nt+"+"+zt,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Et,Ft].join("|"),"g"),qt=RegExp("[\\u200d\\ud800-\\udfff"+vt+"\\ufe0e\\ufe0f]"),Yt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Xt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],$t=-1,Kt={};Kt[P]=Kt[N]=Kt[I]=Kt[O]=Kt[R]=Kt[z]=Kt[D]=Kt[B]=Kt[H]=!0,Kt[p]=Kt[f]=Kt[k]=Kt[m]=Kt[L]=Kt[g]=Kt[_]=Kt[y]=Kt[b]=Kt[x]=Kt[w]=Kt[M]=Kt[E]=Kt[T]=Kt[A]=!1;var Zt={};Zt[p]=Zt[f]=Zt[k]=Zt[L]=Zt[m]=Zt[g]=Zt[P]=Zt[N]=Zt[I]=Zt[O]=Zt[R]=Zt[b]=Zt[x]=Zt[w]=Zt[M]=Zt[E]=Zt[T]=Zt[C]=Zt[z]=Zt[D]=Zt[B]=Zt[H]=!0,Zt[_]=Zt[y]=Zt[A]=!1;var Jt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Qt=parseFloat,te=parseInt,ee="object"==typeof ve&&ve&&ve.Object===Object&&ve,ne="object"==typeof self&&self&&self.Object===Object&&self,ie=ee||ne||Function("return this")(),re=e&&!e.nodeType&&e,oe=re&&t&&!t.nodeType&&t,ae=oe&&oe.exports===re,se=ae&&ee.process,le=(function(){try{return oe&&oe.require&&oe.require("util").types||se&&se.binding&&se.binding("util")}catch(t){}})(),ce=le&&le.isArrayBuffer,ue=le&&le.isDate,he=le&&le.isMap,de=le&&le.isRegExp,pe=le&&le.isSet,fe=le&&le.isTypedArray;function me(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function ge(t,e,n,i){for(var r=-1,o=null==t?0:t.length;++r<o;){var a=t[r];e(i,a,n(a),t)}return i}function _e(t,e){for(var n=-1,i=null==t?0:t.length;++n<i&&!1!==e(t[n],n,t););return t}function ye(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function be(t,e){for(var n=-1,i=null==t?0:t.length;++n<i;)if(!e(t[n],n,t))return!1;return!0}function xe(t,e){for(var n=-1,i=null==t?0:t.length,r=0,o=[];++n<i;){var a=t[n];e(a,n,t)&&(o[r++]=a)}return o}function we(t,e){return!(null==t||!t.length)&&Ne(t,e,0)>-1}function Se(t,e,n){for(var i=-1,r=null==t?0:t.length;++i<r;)if(n(e,t[i]))return!0;return!1}function Me(t,e){for(var n=-1,i=null==t?0:t.length,r=Array(i);++n<i;)r[n]=e(t[n],n,t);return r}function Ee(t,e){for(var n=-1,i=e.length,r=t.length;++n<i;)t[r+n]=e[n];return t}function Te(t,e,n,i){var r=-1,o=null==t?0:t.length;for(i&&o&&(n=t[++r]);++r<o;)n=e(n,t[r],r,t);return n}function Ce(t,e,n,i){var r=null==t?0:t.length;for(i&&r&&(n=t[--r]);r--;)n=e(n,t[r],r,t);return n}function Ae(t,e){for(var n=-1,i=null==t?0:t.length;++n<i;)if(e(t[n],n,t))return!0;return!1}var ke=ze("length");function Le(t,e,n){var i;return n(t,(function(t,n,r){if(e(t,n,r))return i=n,!1})),i}function Pe(t,e,n,i){for(var r=t.length,o=n+(i?1:-1);i?o--:++o<r;)if(e(t[o],o,t))return o;return-1}function Ne(t,e,n){return e==e?(function i(t,e,n){for(var i=n-1,r=t.length;++i<r;)if(t[i]===e)return i;return-1})(t,e,n):Pe(t,Oe,n)}function Ie(t,e,n,i){for(var r=n-1,o=t.length;++r<o;)if(i(t[r],e))return r;return-1}function Oe(t){return t!=t}function Re(t,e){var n=null==t?0:t.length;return n?He(t,e)/n:u}function ze(t){return function(e){return null==e?n:e[t]}}function De(t){return function(e){return null==t?n:t[e]}}function Be(t,e,n,i,r){return r(t,(function(t,r,o){n=i?(i=!1,t):e(n,t,r,o)})),n}function He(t,e){for(var i,r=-1,o=t.length;++r<o;){var a=e(t[r]);a!==n&&(i=i===n?a:i+a)}return i}function Fe(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}function Ve(t){return t?t.slice(0,an(t)+1).replace(et,""):t}function Ue(t){return function(e){return t(e)}}function je(t,e){return Me(e,(function(e){return t[e]}))}function Ge(t,e){return t.has(e)}function We(t,e){for(var n=-1,i=t.length;++n<i&&Ne(e,t[n],0)>-1;);return n}function qe(t,e){for(var n=t.length;n--&&Ne(e,t[n],0)>-1;);return n}function Ye(t,e){for(var n=t.length,i=0;n--;)t[n]===e&&++i;return i}var Xe=De({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","Ĳ":"IJ","ĳ":"ij","Œ":"Oe","œ":"oe","ŉ":"'n","ſ":"s"}),$e=De({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function Ke(t){return"\\"+Jt[t]}function Ze(t){return qt.test(t)}function Je(t){var e=-1,n=Array(t.size);return t.forEach((function(t,i){n[++e]=[i,t]})),n}function Qe(t,e){return function(n){return t(e(n))}}function tn(t,e){for(var n=-1,i=t.length,r=0,a=[];++n<i;){var s=t[n];s!==e&&s!==o||(t[n]=o,a[r++]=n)}return a}function en(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function nn(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}function rn(t){return Ze(t)?(function e(t){for(var e=Gt.lastIndex=0;Gt.test(t);)++e;return e})(t):ke(t)}function on(t){return Ze(t)?(function e(t){return t.match(Gt)||[]})(t):(function n(t){return t.split("")})(t)}function an(t){for(var e=t.length;e--&&nt.test(t.charAt(e)););return e}var sn=De({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),ln=(function t(e){var nt,vt=(e=null==e?ie:ln.defaults(ie.Object(),e,ln.pick(ie,Xt))).Array,bt=e.Date,xt=e.Error,wt=e.Function,St=e.Math,Mt=e.Object,Et=e.RegExp,Tt=e.String,Ct=e.TypeError,At=vt.prototype,kt=Mt.prototype,Lt=e["__core-js_shared__"],Pt=wt.prototype.toString,Nt=kt.hasOwnProperty,It=0,Ot=(nt=/[^.]+$/.exec(Lt&&Lt.keys&&Lt.keys.IE_PROTO||""))?"Symbol(src)_1."+nt:"",Rt=kt.toString,zt=Pt.call(Mt),Dt=ie._,Bt=Et("^"+Pt.call(Nt).replace(Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ht=ae?e.Buffer:n,Ft=e.Symbol,Vt=e.Uint8Array,Gt=Ht?Ht.allocUnsafe:n,qt=Qe(Mt.getPrototypeOf,Mt),Jt=Mt.create,ee=kt.propertyIsEnumerable,ne=At.splice,re=Ft?Ft.isConcatSpreadable:n,oe=Ft?Ft.iterator:n,se=Ft?Ft.toStringTag:n,le=(function(){try{var t=Po(Mt,"defineProperty");return t({},"",{}),t}catch(t){}})(),ve=e.clearTimeout!==ie.clearTimeout&&e.clearTimeout,ke=bt&&bt.now!==ie.Date.now&&bt.now,De=e.setTimeout!==ie.setTimeout&&e.setTimeout,cn=St.ceil,un=St.floor,hn=Mt.getOwnPropertySymbols,dn=Ht?Ht.isBuffer:n,pn=e.isFinite,fn=At.join,mn=Qe(Mt.keys,Mt),gn=St.max,_n=St.min,yn=bt.now,vn=e.parseInt,bn=St.random,xn=At.reverse,wn=Po(e,"DataView"),Sn=Po(e,"Map"),Mn=Po(e,"Promise"),En=Po(e,"Set"),Tn=Po(e,"WeakMap"),Cn=Po(Mt,"create"),An=Tn&&new Tn,kn={},Ln=oa(wn),Pn=oa(Sn),Nn=oa(Mn),In=oa(En),On=oa(Tn),Rn=Ft?Ft.prototype:n,zn=Rn?Rn.valueOf:n,Dn=Rn?Rn.toString:n;function Bn(t){if(Ms(t)&&!hs(t)&&!(t instanceof Un)){if(t instanceof Vn)return t;if(Nt.call(t,"__wrapped__"))return aa(t)}return new Vn(t)}var Hn=(function(){function t(){}return function(e){if(!Ss(e))return{};if(Jt)return Jt(e);t.prototype=e;var i=new t;return t.prototype=n,i}})();function Fn(){}function Vn(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=n}function Un(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=h,this.__views__=[]}function jn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function Gn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function Wn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function qn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Wn;++e<n;)this.add(t[e])}function Yn(t){var e=this.__data__=new Gn(t);this.size=e.size}function Xn(t,e){var n=hs(t),i=!n&&us(t),r=!n&&!i&&gs(t),o=!n&&!i&&!r&&Rs(t),a=n||i||r||o,s=a?Fe(t.length,Tt):[],l=s.length;for(var c in t)!e&&!Nt.call(t,c)||a&&("length"==c||r&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Bo(c,l))||s.push(c);return s}function $n(t){var e=t.length;return e?t[pr(0,e-1)]:n}function Kn(t,e){return ea(Xr(t),oi(e,0,t.length))}function Zn(t){return ea(Xr(t))}function Jn(t,e,i){(i!==n&&!ss(t[e],i)||i===n&&!(e in t))&&ii(t,e,i)}function Qn(t,e,i){var r=t[e];Nt.call(t,e)&&ss(r,i)&&(i!==n||e in t)||ii(t,e,i)}function ti(t,e){for(var n=t.length;n--;)if(ss(t[n][0],e))return n;return-1}function ei(t,e,n,i){return Ni(t,(function(t,r,o){e(i,t,n(t),o)})),i}function ni(t,e){return t&&$r(e,rl(e),t)}function ii(t,e,n){"__proto__"==e&&le?le(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function ri(t,e){for(var i=-1,r=e.length,o=vt(r),a=null==t;++i<r;)o[i]=a?n:Qs(t,e[i]);return o}function oi(t,e,i){return t==t&&(i!==n&&(t=t<=i?t:i),e!==n&&(t=t>=e?t:e)),t}function ai(t,e,i,r,o,a){var s,l=1&e,c=2&e,u=4&e;if(i&&(s=o?i(t,r,o,a):i(t)),s!==n)return s;if(!Ss(t))return t;var h=hs(t);if(h){if(s=(function d(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Nt.call(t,"index")&&(n.index=t.index,n.input=t.input),n})(t),!l)return Xr(t,s)}else{var f=Oo(t),_=f==y||f==v;if(gs(t))return Ur(t,l);if(f==w||f==p||_&&!o){if(s=c||_?{}:zo(t),!l)return c?(function A(t,e){return $r(t,Io(t),e)})(t,(function S(t,e){return t&&$r(e,ol(e),t)})(s,t)):(function F(t,e){return $r(t,No(t),e)})(t,ni(s,t))}else{if(!Zt[f])return o?t:{};s=(function V(t,e,n){var i=t.constructor;switch(e){case k:return jr(t);case m:case g:return new i(+t);case L:return(function r(t,e){var n=e?jr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)})(t,n);case P:case N:case I:case O:case R:case z:case D:case B:case H:return Gr(t,n);case b:return new i;case x:case T:return new i(t);case M:return(function o(t){var e=new t.constructor(t.source,ut.exec(t));return e.lastIndex=t.lastIndex,e})(t);case E:return new i;case C:return(function a(t){return zn?Mt(zn.call(t)):{}})(t)}})(t,f,l)}}a||(a=new Yn);var U=a.get(t);if(U)return U;a.set(t,s),Ps(t)?t.forEach((function(n){s.add(ai(n,e,i,n,t,a))})):Es(t)&&t.forEach((function(n,r){s.set(r,ai(n,e,i,r,t,a))}));var j=h?n:(u?c?Mo:So:c?ol:rl)(t);return _e(j||t,(function(n,r){j&&(n=t[r=n]),Qn(s,r,ai(n,e,i,r,t,a))})),s}function si(t,e,i){var r=i.length;if(null==t)return!r;for(t=Mt(t);r--;){var o=i[r],a=t[o];if(a===n&&!(o in t)||!(0,e[o])(a))return!1}return!0}function li(t,e,r){if("function"!=typeof t)throw new Ct(i);return Zo((function(){t.apply(n,r)}),e)}function ci(t,e,n,i){var r=-1,o=we,a=!0,s=t.length,l=[],c=e.length;if(!s)return l;n&&(e=Me(e,Ue(n))),i?(o=Se,a=!1):e.length>=200&&(o=Ge,a=!1,e=new qn(e));t:for(;++r<s;){var u=t[r],h=null==n?u:n(u);if(u=i||0!==u?u:0,a&&h==h){for(var d=c;d--;)if(e[d]===h)continue t;l.push(u)}else o(e,h,i)||l.push(u)}return l}Bn.templateSettings={escape:Y,evaluate:X,interpolate:$,variable:"",imports:{_:Bn}},(Bn.prototype=Fn.prototype).constructor=Bn,(Vn.prototype=Hn(Fn.prototype)).constructor=Vn,(Un.prototype=Hn(Fn.prototype)).constructor=Un,jn.prototype.clear=function ui(){this.__data__=Cn?Cn(null):{},this.size=0},jn.prototype.delete=function hi(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},jn.prototype.get=function di(t){var e=this.__data__;if(Cn){var i=e[t];return i===r?n:i}return Nt.call(e,t)?e[t]:n},jn.prototype.has=function pi(t){var e=this.__data__;return Cn?e[t]!==n:Nt.call(e,t)},jn.prototype.set=function fi(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=Cn&&e===n?r:e,this},Gn.prototype.clear=function mi(){this.__data__=[],this.size=0},Gn.prototype.delete=function gi(t){var e=this.__data__,n=ti(e,t);return!(n<0||(n==e.length-1?e.pop():ne.call(e,n,1),--this.size,0))},Gn.prototype.get=function _i(t){var e=this.__data__,i=ti(e,t);return i<0?n:e[i][1]},Gn.prototype.has=function yi(t){return ti(this.__data__,t)>-1},Gn.prototype.set=function vi(t,e){var n=this.__data__,i=ti(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this},Wn.prototype.clear=function bi(){this.size=0,this.__data__={hash:new jn,map:new(Sn||Gn),string:new jn}},Wn.prototype.delete=function xi(t){var e=ko(this,t).delete(t);return this.size-=e?1:0,e},Wn.prototype.get=function wi(t){return ko(this,t).get(t)},Wn.prototype.has=function Si(t){return ko(this,t).has(t)},Wn.prototype.set=function Mi(t,e){var n=ko(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this},qn.prototype.add=qn.prototype.push=function Ei(t){return this.__data__.set(t,r),this},qn.prototype.has=function Ti(t){return this.__data__.has(t)},Yn.prototype.clear=function Ci(){this.__data__=new Gn,this.size=0},Yn.prototype.delete=function Ai(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},Yn.prototype.get=function ki(t){return this.__data__.get(t)},Yn.prototype.has=function Li(t){return this.__data__.has(t)},Yn.prototype.set=function Pi(t,e){var n=this.__data__;if(n instanceof Gn){var i=n.__data__;if(!Sn||i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new Wn(i)}return n.set(t,e),this.size=n.size,this};var Ni=Jr(Fi),Ii=Jr(Vi,!0);function Oi(t,e){var n=!0;return Ni(t,(function(t,i,r){return n=!!e(t,i,r)})),n}function Ri(t,e,i){for(var r=-1,o=t.length;++r<o;){var a=t[r],s=e(a);if(null!=s&&(l===n?s==s&&!Os(s):i(s,l)))var l=s,c=a}return c}function zi(t,e){var n=[];return Ni(t,(function(t,i,r){e(t,i,r)&&n.push(t)})),n}function Di(t,e,n,i,r){var o=-1,a=t.length;for(n||(n=Do),r||(r=[]);++o<a;){var s=t[o];e>0&&n(s)?e>1?Di(s,e-1,n,i,r):Ee(r,s):i||(r[r.length]=s)}return r}var Bi=Qr(),Hi=Qr(!0);function Fi(t,e){return t&&Bi(t,e,rl)}function Vi(t,e){return t&&Hi(t,e,rl)}function Ui(t,e){return xe(e,(function(e){return bs(t[e])}))}function ji(t,e){for(var i=0,r=(e=Br(e,t)).length;null!=t&&i<r;)t=t[ra(e[i++])];return i&&i==r?t:n}function Gi(t,e,n){var i=e(t);return hs(t)?i:Ee(i,n(t))}function Wi(t){return null==t?t===n?"[object Undefined]":"[object Null]":se&&se in Mt(t)?(function e(t){var e=Nt.call(t,se),i=t[se];try{t[se]=n;var r=!0}catch(t){}var o=Rt.call(t);return r&&(e?t[se]=i:delete t[se]),o})(t):(function i(t){return Rt.call(t)})(t)}function qi(t,e){return t>e}function Yi(t,e){return null!=t&&Nt.call(t,e)}function Xi(t,e){return null!=t&&e in Mt(t)}function $i(t,e,i){for(var r=i?Se:we,o=t[0].length,a=t.length,s=a,l=vt(a),c=1/0,u=[];s--;){var h=t[s];s&&e&&(h=Me(h,Ue(e))),c=_n(h.length,c),l[s]=!i&&(e||o>=120&&h.length>=120)?new qn(s&&h):n}h=t[0];var d=-1,p=l[0];t:for(;++d<o&&u.length<c;){var f=h[d],m=e?e(f):f;if(f=i||0!==f?f:0,!(p?Ge(p,m):r(u,m,i))){for(s=a;--s;){var g=l[s];if(!(g?Ge(g,m):r(t[s],m,i)))continue t}p&&p.push(m),u.push(f)}}return u}function Ki(t,e,i){var r=null==(t=Yo(t,e=Br(e,t)))?t:t[ra(_a(e))];return null==r?n:me(r,t,i)}function Zi(t){return Ms(t)&&Wi(t)==p}function Ji(t,e,i,r,o){return t===e||(null==t||null==e||!Ms(t)&&!Ms(e)?t!=t&&e!=e:(function a(t,e,i,r,o,s){var l=hs(t),c=hs(e),u=l?f:Oo(t),h=c?f:Oo(e),d=(u=u==p?w:u)==w,y=(h=h==p?w:h)==w,v=u==h;if(v&&gs(t)){if(!gs(e))return!1;l=!0,d=!1}if(v&&!d)return s||(s=new Yn),l||Rs(t)?xo(t,e,i,r,o,s):(function S(t,e,n,i,r,o,a){switch(n){case L:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case k:return!(t.byteLength!=e.byteLength||!o(new Vt(t),new Vt(e)));case m:case g:case x:return ss(+t,+e);case _:return t.name==e.name&&t.message==e.message;case M:case T:return t==e+"";case b:var s=Je;case E:if(s||(s=en),t.size!=e.size&&!(1&i))return!1;var l=a.get(t);if(l)return l==e;i|=2,a.set(t,e);var c=xo(s(t),s(e),i,r,o,a);return a.delete(t),c;case C:if(zn)return zn.call(t)==zn.call(e)}return!1})(t,e,u,i,r,o,s);if(!(1&i)){var A=d&&Nt.call(t,"__wrapped__"),P=y&&Nt.call(e,"__wrapped__");if(A||P){var N=A?t.value():t,I=P?e.value():e;return s||(s=new Yn),o(N,I,i,r,s)}}return!!v&&(s||(s=new Yn),(function O(t,e,i,r,o,a){var s=1&i,l=So(t),c=l.length;if(c!=So(e).length&&!s)return!1;for(var u=c;u--;){var h=l[u];if(!(s?h in e:Nt.call(e,h)))return!1}var d=a.get(t),p=a.get(e);if(d&&p)return d==e&&p==t;var f=!0;a.set(t,e),a.set(e,t);for(var m=s;++u<c;){var g=t[h=l[u]],_=e[h];if(r)var y=s?r(_,g,h,e,t,a):r(g,_,h,t,e,a);if(!(y===n?g===_||o(g,_,i,r,a):y)){f=!1;break}m||(m="constructor"==h)}if(f&&!m){var v=t.constructor,b=e.constructor;v==b||!("constructor"in t)||!("constructor"in e)||"function"==typeof v&&v instanceof v&&"function"==typeof b&&b instanceof b||(f=!1)}return a.delete(t),a.delete(e),f})(t,e,i,r,o,s))})(t,e,i,r,Ji,o))}function Qi(t,e,i,r){var o=i.length,a=o,s=!r;if(null==t)return!a;for(t=Mt(t);o--;){var l=i[o];if(s&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++o<a;){var c=(l=i[o])[0],u=t[c],h=l[1];if(s&&l[2]){if(u===n&&!(c in t))return!1}else{var d=new Yn;if(r)var p=r(u,h,c,t,e,d);if(!(p===n?Ji(h,u,3,r,d):p))return!1}}return!0}function tr(t){return!(!Ss(t)||(function e(t){return!!Ot&&Ot in t})(t))&&(bs(t)?Bt:pt).test(oa(t))}function er(t){return"function"==typeof t?t:null==t?Ll:"object"==typeof t?hs(t)?ar(t[0],t[1]):or(t):Hl(t)}function nr(t){if(!jo(t))return mn(t);var e=[];for(var n in Mt(t))Nt.call(t,n)&&"constructor"!=n&&e.push(n);return e}function ir(t,e){return t<e}function rr(t,e){var n=-1,i=fs(t)?vt(t.length):[];return Ni(t,(function(t,r,o){i[++n]=e(t,r,o)})),i}function or(t){var e=Lo(t);return 1==e.length&&e[0][2]?Wo(e[0][0],e[0][1]):function(n){return n===t||Qi(n,t,e)}}function ar(t,e){return Fo(t)&&Go(e)?Wo(ra(t),e):function(i){var r=Qs(i,t);return r===n&&r===e?tl(i,t):Ji(e,r,3)}}function sr(t,e,i,r,o){t!==e&&Bi(e,(function(a,s){if(o||(o=new Yn),Ss(a))!(function l(t,e,i,r,o,a,s){var l=$o(t,i),c=$o(e,i),u=s.get(c);if(u)Jn(t,i,u);else{var h=a?a(l,c,i+"",t,e,s):n,d=h===n;if(d){var p=hs(c),f=!p&&gs(c),m=!p&&!f&&Rs(c);h=c,p||f||m?hs(l)?h=l:ms(l)?h=Xr(l):f?(d=!1,h=Ur(c,!0)):m?(d=!1,h=Gr(c,!0)):h=[]:As(c)||us(c)?(h=l,us(l)?h=Gs(l):Ss(l)&&!bs(l)||(h=zo(c))):d=!1}d&&(s.set(c,h),o(h,c,r,a,s),s.delete(c)),Jn(t,i,h)}})(t,e,s,i,sr,r,o);else{var c=r?r($o(t,s),a,s+"",t,e,o):n;c===n&&(c=a),Jn(t,s,c)}}),ol)}function lr(t,e){var i=t.length;if(i)return Bo(e+=e<0?i:0,i)?t[e]:n}function cr(t,e,n){e=e.length?Me(e,(function(t){return hs(t)?function(e){return ji(e,1===t.length?t[0]:t)}:t})):[Ll];var i=-1;return e=Me(e,Ue(Ao())),(function r(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t})(rr(t,(function(t,n,r){return{criteria:Me(e,(function(e){return e(t)})),index:++i,value:t}})),(function(t,e){return(function i(t,e,n){for(var i=-1,r=t.criteria,o=e.criteria,a=r.length,s=n.length;++i<a;){var l=Wr(r[i],o[i]);if(l)return i>=s?l:l*("desc"==n[i]?-1:1)}return t.index-e.index})(t,e,n)}))}function ur(t,e,n){for(var i=-1,r=e.length,o={};++i<r;){var a=e[i],s=ji(t,a);n(s,a)&&yr(o,Br(a,t),s)}return o}function hr(t,e,n,i){var r=i?Ie:Ne,o=-1,a=e.length,s=t;for(t===e&&(e=Xr(e)),n&&(s=Me(t,Ue(n)));++o<a;)for(var l=0,c=e[o],u=n?n(c):c;(l=r(s,u,l,i))>-1;)s!==t&&ne.call(s,l,1),ne.call(t,l,1);return t}function dr(t,e){for(var n=t?e.length:0,i=n-1;n--;){var r=e[n];if(n==i||r!==o){var o=r;Bo(r)?ne.call(t,r,1):Lr(t,r)}}return t}function pr(t,e){return t+un(bn()*(e-t+1))}function fr(t,e){var n="";if(!t||e<1||e>c)return n;do{e%2&&(n+=t),(e=un(e/2))&&(t+=t)}while(e);return n}function mr(t,e){return Jo(qo(t,e,Ll),t+"")}function gr(t){return $n(pl(t))}function _r(t,e){var n=pl(t);return ea(n,oi(e,0,n.length))}function yr(t,e,i,r){if(!Ss(t))return t;for(var o=-1,a=(e=Br(e,t)).length,s=a-1,l=t;null!=l&&++o<a;){var c=ra(e[o]),u=i;if("__proto__"===c||"constructor"===c||"prototype"===c)return t;if(o!=s){var h=l[c];(u=r?r(h,c,l):n)===n&&(u=Ss(h)?h:Bo(e[o+1])?[]:{})}Qn(l,c,u),l=l[c]}return t}var vr=An?function(t,e){return An.set(t,e),t}:Ll,br=le?function(t,e){return le(t,"toString",{configurable:!0,enumerable:!1,value:Cl(e),writable:!0})}:Ll;function xr(t){return ea(pl(t))}function wr(t,e,n){var i=-1,r=t.length;e<0&&(e=-e>r?0:r+e),(n=n>r?r:n)<0&&(n+=r),r=e>n?0:n-e>>>0,e>>>=0;for(var o=vt(r);++i<r;)o[i]=t[i+e];return o}function Sr(t,e){var n;return Ni(t,(function(t,i,r){return!(n=e(t,i,r))})),!!n}function Mr(t,e,n){var i=0,r=null==t?i:t.length;if("number"==typeof e&&e==e&&r<=2147483647){for(;i<r;){var o=i+r>>>1,a=t[o];null!==a&&!Os(a)&&(n?a<=e:a<e)?i=o+1:r=o}return r}return Er(t,e,Ll,n)}function Er(t,e,i,r){var o=0,a=null==t?0:t.length;if(0===a)return 0;for(var s=(e=i(e))!=e,l=null===e,c=Os(e),u=e===n;o<a;){var h=un((o+a)/2),d=i(t[h]),p=d!==n,f=null===d,m=d==d,g=Os(d);if(s)var _=r||m;else _=u?m&&(r||p):l?m&&p&&(r||!f):c?m&&p&&!f&&(r||!g):!f&&!g&&(r?d<=e:d<e);_?o=h+1:a=h}return _n(a,4294967294)}function Tr(t,e){for(var n=-1,i=t.length,r=0,o=[];++n<i;){var a=t[n],s=e?e(a):a;if(!n||!ss(s,l)){var l=s;o[r++]=0===a?0:a}}return o}function Cr(t){return"number"==typeof t?t:Os(t)?u:+t}function Ar(t){if("string"==typeof t)return t;if(hs(t))return Me(t,Ar)+"";if(Os(t))return Dn?Dn.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function kr(t,e,n){var i=-1,r=we,o=t.length,a=!0,s=[],l=s;if(n)a=!1,r=Se;else if(o>=200){var c=e?null:mo(t);if(c)return en(c);a=!1,r=Ge,l=new qn}else l=e?[]:s;t:for(;++i<o;){var u=t[i],h=e?e(u):u;if(u=n||0!==u?u:0,a&&h==h){for(var d=l.length;d--;)if(l[d]===h)continue t;e&&l.push(h),s.push(u)}else r(l,h,n)||(l!==s&&l.push(h),s.push(u))}return s}function Lr(t,e){return null==(t=Yo(t,e=Br(e,t)))||delete t[ra(_a(e))]}function Pr(t,e,n,i){return yr(t,e,n(ji(t,e)),i)}function Nr(t,e,n,i){for(var r=t.length,o=i?r:-1;(i?o--:++o<r)&&e(t[o],o,t););return n?wr(t,i?0:o,i?o+1:r):wr(t,i?o+1:0,i?r:o)}function Ir(t,e){var n=t;return n instanceof Un&&(n=n.value()),Te(e,(function(t,e){return e.func.apply(e.thisArg,Ee([t],e.args))}),n)}function Or(t,e,n){var i=t.length;if(i<2)return i?kr(t[0]):[];for(var r=-1,o=vt(i);++r<i;)for(var a=t[r],s=-1;++s<i;)s!=r&&(o[r]=ci(o[r]||a,t[s],e,n));return kr(Di(o,1),e,n)}function Rr(t,e,i){for(var r=-1,o=t.length,a=e.length,s={};++r<o;)i(s,t[r],r<a?e[r]:n);return s}function zr(t){return ms(t)?t:[]}function Dr(t){return"function"==typeof t?t:Ll}function Br(t,e){return hs(t)?t:Fo(t,e)?[t]:na(Ws(t))}var Hr=mr;function Fr(t,e,i){var r=t.length;return i=i===n?r:i,!e&&i>=r?t:wr(t,e,i)}var Vr=ve||function(t){return ie.clearTimeout(t)};function Ur(t,e){if(e)return t.slice();var n=t.length,i=Gt?Gt(n):new t.constructor(n);return t.copy(i),i}function jr(t){var e=new t.constructor(t.byteLength);return new Vt(e).set(new Vt(t)),e}function Gr(t,e){var n=e?jr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Wr(t,e){if(t!==e){var i=t!==n,r=null===t,o=t==t,a=Os(t),s=e!==n,l=null===e,c=e==e,u=Os(e);if(!l&&!u&&!a&&t>e||a&&s&&c&&!l&&!u||r&&s&&c||!i&&c||!o)return 1;if(!r&&!a&&!u&&t<e||u&&i&&o&&!r&&!a||l&&i&&o||!s&&o||!c)return-1}return 0}function qr(t,e,n,i){for(var r=-1,o=t.length,a=n.length,s=-1,l=e.length,c=gn(o-a,0),u=vt(l+c),h=!i;++s<l;)u[s]=e[s];for(;++r<a;)(h||r<o)&&(u[n[r]]=t[r]);for(;c--;)u[s++]=t[r++];return u}function Yr(t,e,n,i){for(var r=-1,o=t.length,a=-1,s=n.length,l=-1,c=e.length,u=gn(o-s,0),h=vt(u+c),d=!i;++r<u;)h[r]=t[r];for(var p=r;++l<c;)h[p+l]=e[l];for(;++a<s;)(d||r<o)&&(h[p+n[a]]=t[r++]);return h}function Xr(t,e){var n=-1,i=t.length;for(e||(e=vt(i));++n<i;)e[n]=t[n];return e}function $r(t,e,i,r){var o=!i;i||(i={});for(var a=-1,s=e.length;++a<s;){var l=e[a],c=r?r(i[l],t[l],l,i,t):n;c===n&&(c=t[l]),o?ii(i,l,c):Qn(i,l,c)}return i}function Kr(t,e){return function(n,i){var r=hs(n)?ge:ei,o=e?e():{};return r(n,t,Ao(i,2),o)}}function Zr(t){return mr((function(e,i){var r=-1,o=i.length,a=o>1?i[o-1]:n,s=o>2?i[2]:n;for(a=t.length>3&&"function"==typeof a?(o--,a):n,s&&Ho(i[0],i[1],s)&&(a=o<3?n:a,o=1),e=Mt(e);++r<o;){var l=i[r];l&&t(e,l,r,a)}return e}))}function Jr(t,e){return function(n,i){if(null==n)return n;if(!fs(n))return t(n,i);for(var r=n.length,o=e?r:-1,a=Mt(n);(e?o--:++o<r)&&!1!==i(a[o],o,a););return n}}function Qr(t){return function(e,n,i){for(var r=-1,o=Mt(e),a=i(e),s=a.length;s--;){var l=a[t?s:++r];if(!1===n(o[l],l,o))break}return e}}function to(t){return function(e){var i=Ze(e=Ws(e))?on(e):n,r=i?i[0]:e.charAt(0),o=i?Fr(i,1).join(""):e.slice(1);return r[t]()+o}}function eo(t){return function(e){return Te(Ml(gl(e).replace(Ut,"")),t,"")}}function no(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=Hn(t.prototype),i=t.apply(n,e);return Ss(i)?i:n}}function io(t){return function(e,i,r){var o=Mt(e);if(!fs(e)){var a=Ao(i,3);e=rl(e),i=function(t){return a(o[t],t,o)}}var s=t(e,i,r);return s>-1?o[a?e[s]:s]:n}}function ro(t){return wo((function(e){var r=e.length,o=r,a=Vn.prototype.thru;for(t&&e.reverse();o--;){var s=e[o];if("function"!=typeof s)throw new Ct(i);if(a&&!l&&"wrapper"==To(s))var l=new Vn([],!0)}for(o=l?o:r;++o<r;){var c=To(s=e[o]),u="wrapper"==c?Eo(s):n;l=u&&Vo(u[0])&&424==u[1]&&!u[4].length&&1==u[9]?l[To(u[0])].apply(l,u[3]):1==s.length&&Vo(s)?l[c]():l.thru(s)}return function(){var t=arguments,n=t[0];if(l&&1==t.length&&hs(n))return l.plant(n).value();for(var i=0,o=r?e[i].apply(this,t):n;++i<r;)o=e[i].call(this,o);return o}}))}function oo(t,e,i,r,o,a,l,c,u,h){var d=e&s,p=1&e,f=2&e,m=24&e,g=512&e,_=f?n:no(t);return function n(){for(var s=arguments.length,y=vt(s),v=s;v--;)y[v]=arguments[v];if(m)var b=Co(n),x=Ye(y,b);if(r&&(y=qr(y,r,o,m)),a&&(y=Yr(y,a,l,m)),s-=x,m&&s<h){var w=tn(y,b);return po(t,e,oo,n.placeholder,i,y,w,c,u,h-s)}var S=p?i:this,M=f?S[t]:t;return s=y.length,c?y=Xo(y,c):g&&s>1&&y.reverse(),d&&u<s&&(y.length=u),this&&this!==ie&&this instanceof n&&(M=_||no(M)),M.apply(S,y)}}function ao(t,e){return function(n,i){return(function r(t,e,n,i){return Fi(t,(function(t,r,o){e(i,n(t),r,o)})),i})(n,t,e(i),{})}}function so(t,e){return function(i,r){var o;if(i===n&&r===n)return e;if(i!==n&&(o=i),r!==n){if(o===n)return r;"string"==typeof i||"string"==typeof r?(i=Ar(i),r=Ar(r)):(i=Cr(i),r=Cr(r)),o=t(i,r)}return o}}function lo(t){return wo((function(e){return e=Me(e,Ue(Ao())),mr((function(n){var i=this;return t(e,(function(t){return me(t,i,n)}))}))}))}function co(t,e){var i=(e=e===n?" ":Ar(e)).length;if(i<2)return i?fr(e,t):e;var r=fr(e,cn(t/rn(e)));return Ze(e)?Fr(on(r),0,t).join(""):r.slice(0,t)}function uo(t){return function(e,i,r){return r&&"number"!=typeof r&&Ho(e,i,r)&&(i=r=n),e=Fs(e),i===n?(i=e,e=0):i=Fs(i),(function o(t,e,n,i){for(var r=-1,o=gn(cn((e-t)/(n||1)),0),a=vt(o);o--;)a[i?o:++r]=t,t+=n;return a})(e,i,r=r===n?e<i?1:-1:Fs(r),t)}}function ho(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=js(e),n=js(n)),t(e,n)}}function po(t,e,i,r,o,s,l,c,u,h){var d=8&e;e|=d?a:64,4&(e&=~(d?64:a))||(e&=-4);var p=[t,e,o,d?s:n,d?l:n,d?n:s,d?n:l,c,u,h],f=i.apply(n,p);return Vo(t)&&Ko(f,p),f.placeholder=r,Qo(f,t,e)}function fo(t){var e=St[t];return function(t,n){if(t=js(t),(n=null==n?0:_n(Vs(n),292))&&pn(t)){var i=(Ws(t)+"e").split("e");return+((i=(Ws(e(i[0]+"e"+(+i[1]+n)))+"e").split("e"))[0]+"e"+(+i[1]-n))}return e(t)}}var mo=En&&1/en(new En([,-0]))[1]==l?function(t){return new En(t)}:Rl;function go(t){return function(e){var n=Oo(e);return n==b?Je(e):n==E?nn(e):(function i(t,e){return Me(e,(function(e){return[e,t[e]]}))})(e,t(e))}}function _o(t,e,r,l,c,u,h,d){var p=2&e;if(!p&&"function"!=typeof t)throw new Ct(i);var f=l?l.length:0;if(f||(e&=-97,l=c=n),h=h===n?h:gn(Vs(h),0),d=d===n?d:Vs(d),f-=c?c.length:0,64&e){var m=l,g=c;l=c=n}var _=p?n:Eo(t),y=[t,e,r,l,c,m,g,u,h,d];if(_&&(function v(t,e){var n=t[1],i=e[1],r=n|i;if(!(r<131||i==s&&8==n||i==s&&256==n&&t[7].length<=e[8]||384==i&&e[7].length<=e[8]&&8==n))return t;1&i&&(t[2]=e[2],r|=1&n?0:4);var a=e[3];if(a){var l=t[3];t[3]=l?qr(l,a,e[4]):a,t[4]=l?tn(t[3],o):e[4]}(a=e[5])&&(t[5]=(l=t[5])?Yr(l,a,e[6]):a,t[6]=l?tn(t[5],o):e[6]),(a=e[7])&&(t[7]=a),i&s&&(t[8]=null==t[8]?e[8]:_n(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=r})(y,_),t=y[0],e=y[1],r=y[2],l=y[3],c=y[4],!(d=y[9]=y[9]===n?p?0:t.length:gn(y[9]-f,0))&&24&e&&(e&=-25),e&&1!=e)w=8==e||16==e?(function b(t,e,i){var r=no(t);return function o(){for(var a=arguments.length,s=vt(a),l=a,c=Co(o);l--;)s[l]=arguments[l];var u=a<3&&s[0]!==c&&s[a-1]!==c?[]:tn(s,c);return(a-=u.length)<i?po(t,e,oo,o.placeholder,n,s,u,n,n,i-a):me(this&&this!==ie&&this instanceof o?r:t,this,s)}})(t,e,d):e!=a&&33!=e||c.length?oo.apply(n,y):(function x(t,e,n,i){var r=1&e,o=no(t);return function e(){for(var a=-1,s=arguments.length,l=-1,c=i.length,u=vt(c+s),h=this&&this!==ie&&this instanceof e?o:t;++l<c;)u[l]=i[l];for(;s--;)u[l++]=arguments[++a];return me(h,r?n:this,u)}})(t,e,r,l);else var w=(function S(t,e,n){var i=1&e,r=no(t);return function e(){return(this&&this!==ie&&this instanceof e?r:t).apply(i?n:this,arguments)}})(t,e,r);return Qo((_?vr:Ko)(w,y),t,e)}function yo(t,e,i,r){return t===n||ss(t,kt[i])&&!Nt.call(r,i)?e:t}function vo(t,e,i,r,o,a){return Ss(t)&&Ss(e)&&(a.set(e,t),sr(t,e,n,vo,a),a.delete(e)),t}function bo(t){return As(t)?n:t}function xo(t,e,i,r,o,a){var s=1&i,l=t.length,c=e.length;if(l!=c&&!(s&&c>l))return!1;var u=a.get(t),h=a.get(e);if(u&&h)return u==e&&h==t;var d=-1,p=!0,f=2&i?new qn:n;for(a.set(t,e),a.set(e,t);++d<l;){var m=t[d],g=e[d];if(r)var _=s?r(g,m,d,e,t,a):r(m,g,d,t,e,a);if(_!==n){if(_)continue;p=!1;break}if(f){if(!Ae(e,(function(t,e){if(!Ge(f,e)&&(m===t||o(m,t,i,r,a)))return f.push(e)}))){p=!1;break}}else if(m!==g&&!o(m,g,i,r,a)){p=!1;break}}return a.delete(t),a.delete(e),p}function wo(t){return Jo(qo(t,n,da),t+"")}function So(t){return Gi(t,rl,No)}function Mo(t){return Gi(t,ol,Io)}var Eo=An?function(t){return An.get(t)}:Rl;function To(t){for(var e=t.name+"",n=kn[e],i=Nt.call(kn,e)?n.length:0;i--;){var r=n[i],o=r.func;if(null==o||o==t)return r.name}return e}function Co(t){return(Nt.call(Bn,"placeholder")?Bn:t).placeholder}function Ao(){var t=Bn.iteratee||Pl;return t=t===Pl?er:t,arguments.length?t(arguments[0],arguments[1]):t}function ko(t,e){var n=t.__data__;return(function i(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t})(e)?n["string"==typeof e?"string":"hash"]:n.map}function Lo(t){for(var e=rl(t),n=e.length;n--;){var i=e[n],r=t[i];e[n]=[i,r,Go(r)]}return e}function Po(t,e){var i=(function r(t,e){return null==t?n:t[e]})(t,e);return tr(i)?i:n}var No=hn?function(t){return null==t?[]:(t=Mt(t),xe(hn(t),(function(e){return ee.call(t,e)})))}:Ul,Io=hn?function(t){for(var e=[];t;)Ee(e,No(t)),t=qt(t);return e}:Ul,Oo=Wi;function Ro(t,e,n){for(var i=-1,r=(e=Br(e,t)).length,o=!1;++i<r;){var a=ra(e[i]);if(!(o=null!=t&&n(t,a)))break;t=t[a]}return o||++i!=r?o:!!(r=null==t?0:t.length)&&ws(r)&&Bo(a,r)&&(hs(t)||us(t))}function zo(t){return"function"!=typeof t.constructor||jo(t)?{}:Hn(qt(t))}function Do(t){return hs(t)||us(t)||!!(re&&t&&t[re])}function Bo(t,e){var n=typeof t;return!!(e=null==e?c:e)&&("number"==n||"symbol"!=n&&mt.test(t))&&t>-1&&t%1==0&&t<e}function Ho(t,e,n){if(!Ss(n))return!1;var i=typeof e;return!!("number"==i?fs(n)&&Bo(e,n.length):"string"==i&&e in n)&&ss(n[e],t)}function Fo(t,e){if(hs(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!Os(t))||Z.test(t)||!K.test(t)||null!=e&&t in Mt(e)}function Vo(t){var e=To(t),n=Bn[e];if("function"!=typeof n||!(e in Un.prototype))return!1;if(t===n)return!0;var i=Eo(n);return!!i&&t===i[0]}(wn&&Oo(new wn(new ArrayBuffer(1)))!=L||Sn&&Oo(new Sn)!=b||Mn&&Oo(Mn.resolve())!=S||En&&Oo(new En)!=E||Tn&&Oo(new Tn)!=A)&&(Oo=function(t){var e=Wi(t),i=e==w?t.constructor:n,r=i?oa(i):"";if(r)switch(r){case Ln:return L;case Pn:return b;case Nn:return S;case In:return E;case On:return A}return e});var Uo=Lt?bs:jl;function jo(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||kt)}function Go(t){return t==t&&!Ss(t)}function Wo(t,e){return function(i){return null!=i&&i[t]===e&&(e!==n||t in Mt(i))}}function qo(t,e,i){return e=gn(e===n?t.length-1:e,0),function(){for(var n=arguments,r=-1,o=gn(n.length-e,0),a=vt(o);++r<o;)a[r]=n[e+r];r=-1;for(var s=vt(e+1);++r<e;)s[r]=n[r];return s[e]=i(a),me(t,this,s)}}function Yo(t,e){return e.length<2?t:ji(t,wr(e,0,-1))}function Xo(t,e){for(var i=t.length,r=_n(e.length,i),o=Xr(t);r--;){var a=e[r];t[r]=Bo(a,i)?o[a]:n}return t}function $o(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var Ko=ta(vr),Zo=De||function(t,e){return ie.setTimeout(t,e)},Jo=ta(br);function Qo(t,e,n){var i=e+"";return Jo(t,(function a(t,e){var n=e.length;if(!n)return t;var i=n-1;return e[i]=(n>1?"& ":"")+e[i],e=e.join(n>2?", ":" "),t.replace(it,"{\n/* [wrapped with "+e+"] */\n")})(i,(function o(t,e){return _e(d,(function(n){var i="_."+n[0];e&n[1]&&!we(t,i)&&t.push(i)})),t.sort()})((function r(t){var e=t.match(rt);return e?e[1].split(ot):[]})(i),n)))}function ta(t){var e=0,i=0;return function(){var r=yn(),o=16-(r-i);if(i=r,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(n,arguments)}}function ea(t,e){var i=-1,r=t.length,o=r-1;for(e=e===n?r:e;++i<e;){var a=pr(i,o),s=t[a];t[a]=t[i],t[i]=s}return t.length=e,t}var na=(function ia(t){var e=es(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e})((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(J,(function(t,n,i,r){e.push(i?r.replace(lt,"$1"):n||t)})),e}));function ra(t){if("string"==typeof t||Os(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function oa(t){if(null!=t){try{return Pt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function aa(t){if(t instanceof Un)return t.clone();var e=new Vn(t.__wrapped__,t.__chain__);return e.__actions__=Xr(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var sa=mr((function(t,e){return ms(t)?ci(t,Di(e,1,ms,!0)):[]})),la=mr((function(t,e){var i=_a(e);return ms(i)&&(i=n),ms(t)?ci(t,Di(e,1,ms,!0),Ao(i,2)):[]})),ca=mr((function(t,e){var i=_a(e);return ms(i)&&(i=n),ms(t)?ci(t,Di(e,1,ms,!0),n,i):[]}));function ua(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var r=null==n?0:Vs(n);return r<0&&(r=gn(i+r,0)),Pe(t,Ao(e,3),r)}function ha(t,e,i){var r=null==t?0:t.length;if(!r)return-1;var o=r-1;return i!==n&&(o=Vs(i),o=i<0?gn(r+o,0):_n(o,r-1)),Pe(t,Ao(e,3),o,!0)}function da(t){return null!=t&&t.length?Di(t,1):[]}function pa(t){return t&&t.length?t[0]:n}var fa=mr((function(t){var e=Me(t,zr);return e.length&&e[0]===t[0]?$i(e):[]})),ma=mr((function(t){var e=_a(t),i=Me(t,zr);return e===_a(i)?e=n:i.pop(),i.length&&i[0]===t[0]?$i(i,Ao(e,2)):[]})),ga=mr((function(t){var e=_a(t),i=Me(t,zr);return(e="function"==typeof e?e:n)&&i.pop(),i.length&&i[0]===t[0]?$i(i,n,e):[]}));function _a(t){var e=null==t?0:t.length;return e?t[e-1]:n}var ya=mr(va);function va(t,e){return t&&t.length&&e&&e.length?hr(t,e):t}var ba=wo((function(t,e){var n=null==t?0:t.length,i=ri(t,e);return dr(t,Me(e,(function(t){return Bo(t,n)?+t:t})).sort(Wr)),i}));function xa(t){return null==t?t:xn.call(t)}var wa=mr((function(t){return kr(Di(t,1,ms,!0))})),Sa=mr((function(t){var e=_a(t);return ms(e)&&(e=n),kr(Di(t,1,ms,!0),Ao(e,2))})),Ma=mr((function(t){var e=_a(t);return e="function"==typeof e?e:n,kr(Di(t,1,ms,!0),n,e)}));function Ea(t){if(!t||!t.length)return[];var e=0;return t=xe(t,(function(t){if(ms(t))return e=gn(t.length,e),!0})),Fe(e,(function(e){return Me(t,ze(e))}))}function Ta(t,e){if(!t||!t.length)return[];var i=Ea(t);return null==e?i:Me(i,(function(t){return me(e,n,t)}))}var Ca=mr((function(t,e){return ms(t)?ci(t,e):[]})),Aa=mr((function(t){return Or(xe(t,ms))})),ka=mr((function(t){var e=_a(t);return ms(e)&&(e=n),Or(xe(t,ms),Ao(e,2))})),La=mr((function(t){var e=_a(t);return e="function"==typeof e?e:n,Or(xe(t,ms),n,e)})),Pa=mr(Ea),Na=mr((function(t){var e=t.length,i=e>1?t[e-1]:n;return i="function"==typeof i?(t.pop(),i):n,Ta(t,i)}));function Ia(t){var e=Bn(t);return e.__chain__=!0,e}function Oa(t,e){return e(t)}var Ra=wo((function(t){var e=t.length,i=e?t[0]:0,r=this.__wrapped__,o=function(e){return ri(e,t)};return!(e>1||this.__actions__.length)&&r instanceof Un&&Bo(i)?((r=r.slice(i,+i+(e?1:0))).__actions__.push({func:Oa,args:[o],thisArg:n}),new Vn(r,this.__chain__).thru((function(t){return e&&!t.length&&t.push(n),t}))):this.thru(o)})),za=Kr((function(t,e,n){Nt.call(t,n)?++t[n]:ii(t,n,1)})),Da=io(ua),Ba=io(ha);function Ha(t,e){return(hs(t)?_e:Ni)(t,Ao(e,3))}function Fa(t,e){return(hs(t)?ye:Ii)(t,Ao(e,3))}var Va=Kr((function(t,e,n){Nt.call(t,n)?t[n].push(e):ii(t,n,[e])})),Ua=mr((function(t,e,n){var i=-1,r="function"==typeof e,o=fs(t)?vt(t.length):[];return Ni(t,(function(t){o[++i]=r?me(e,t,n):Ki(t,e,n)})),o})),ja=Kr((function(t,e,n){ii(t,n,e)}));function Ga(t,e){return(hs(t)?Me:rr)(t,Ao(e,3))}var Wa=Kr((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]})),qa=mr((function(t,e){if(null==t)return[];var n=e.length;return n>1&&Ho(t,e[0],e[1])?e=[]:n>2&&Ho(e[0],e[1],e[2])&&(e=[e[0]]),cr(t,Di(e,1),[])})),Ya=ke||function(){return ie.Date.now()};function Xa(t,e,i){return e=i?n:e,_o(t,s,n,n,n,n,e=t&&null==e?t.length:e)}function $a(t,e){var r;if("function"!=typeof e)throw new Ct(i);return t=Vs(t),function(){return--t>0&&(r=e.apply(this,arguments)),t<=1&&(e=n),r}}var Ka=mr((function(t,e,n){var i=1;if(n.length){var r=tn(n,Co(Ka));i|=a}return _o(t,i,e,n,r)})),Za=mr((function(t,e,n){var i=3;if(n.length){var r=tn(n,Co(Za));i|=a}return _o(e,i,t,n,r)}));function Ja(t,e,r){var o,a,s,l,c,u,h=0,d=!1,p=!1,f=!0;if("function"!=typeof t)throw new Ct(i);function m(e){var i=o,r=a;return o=a=n,h=e,l=t.apply(r,i)}function g(t){return h=t,c=Zo(y,e),d?m(t):l}function _(t){var i=t-u;return u===n||i>=e||i<0||p&&t-h>=s}function y(){var t=Ya();if(_(t))return v(t);c=Zo(y,(function n(t){var n=e-(t-u);return p?_n(n,s-(t-h)):n})(t))}function v(t){return c=n,f&&o?m(t):(o=a=n,l)}function b(){var t=Ya(),i=_(t);if(o=arguments,a=this,u=t,i){if(c===n)return g(u);if(p)return Vr(c),c=Zo(y,e),m(u)}return c===n&&(c=Zo(y,e)),l}return e=js(e)||0,Ss(r)&&(d=!!r.leading,s=(p="maxWait"in r)?gn(js(r.maxWait)||0,e):s,f="trailing"in r?!!r.trailing:f),b.cancel=function x(){c!==n&&Vr(c),h=0,o=u=a=c=n},b.flush=function w(){return c===n?l:v(Ya())},b}var Qa=mr((function(t,e){return li(t,1,e)})),ts=mr((function(t,e,n){return li(t,js(e)||0,n)}));function es(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new Ct(i);var n=function(){var i=arguments,r=e?e.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=t.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(es.Cache||Wn),n}function ns(t){if("function"!=typeof t)throw new Ct(i);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}es.Cache=Wn;var is=Hr((function(t,e){var n=(e=1==e.length&&hs(e[0])?Me(e[0],Ue(Ao())):Me(Di(e,1),Ue(Ao()))).length;return mr((function(i){for(var r=-1,o=_n(i.length,n);++r<o;)i[r]=e[r].call(this,i[r]);return me(t,this,i)}))})),rs=mr((function(t,e){var i=tn(e,Co(rs));return _o(t,a,n,e,i)})),os=mr((function(t,e){var i=tn(e,Co(os));return _o(t,64,n,e,i)})),as=wo((function(t,e){return _o(t,256,n,n,n,e)}));function ss(t,e){return t===e||t!=t&&e!=e}var ls=ho(qi),cs=ho((function(t,e){return t>=e})),us=Zi((function(){return arguments})())?Zi:function(t){return Ms(t)&&Nt.call(t,"callee")&&!ee.call(t,"callee")},hs=vt.isArray,ds=ce?Ue(ce):function ps(t){return Ms(t)&&Wi(t)==k};function fs(t){return null!=t&&ws(t.length)&&!bs(t)}function ms(t){return Ms(t)&&fs(t)}var gs=dn||jl,_s=ue?Ue(ue):function ys(t){return Ms(t)&&Wi(t)==g};function vs(t){if(!Ms(t))return!1;var e=Wi(t);return e==_||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!As(t)}function bs(t){if(!Ss(t))return!1;var e=Wi(t);return e==y||e==v||"[object AsyncFunction]"==e||"[object Proxy]"==e}function xs(t){return"number"==typeof t&&t==Vs(t)}function ws(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=c}function Ss(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Ms(t){return null!=t&&"object"==typeof t}var Es=he?Ue(he):function Ts(t){return Ms(t)&&Oo(t)==b};function Cs(t){return"number"==typeof t||Ms(t)&&Wi(t)==x}function As(t){if(!Ms(t)||Wi(t)!=w)return!1;var e=qt(t);if(null===e)return!0;var n=Nt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Pt.call(n)==zt}var ks=de?Ue(de):function Ls(t){return Ms(t)&&Wi(t)==M},Ps=pe?Ue(pe):function Ns(t){return Ms(t)&&Oo(t)==E};function Is(t){return"string"==typeof t||!hs(t)&&Ms(t)&&Wi(t)==T}function Os(t){return"symbol"==typeof t||Ms(t)&&Wi(t)==C}var Rs=fe?Ue(fe):function zs(t){return Ms(t)&&ws(t.length)&&!!Kt[Wi(t)]},Ds=ho(ir),Bs=ho((function(t,e){return t<=e}));function Hs(t){if(!t)return[];if(fs(t))return Is(t)?on(t):Xr(t);if(oe&&t[oe])return(function e(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n})(t[oe]());var n=Oo(t);return(n==b?Je:n==E?en:pl)(t)}function Fs(t){return t?(t=js(t))===l||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function Vs(t){var e=Fs(t),n=e%1;return e==e?n?e-n:e:0}function Us(t){return t?oi(Vs(t),0,h):0}function js(t){if("number"==typeof t)return t;if(Os(t))return u;if(Ss(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Ss(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ve(t);var n=dt.test(t);return n||ft.test(t)?te(t.slice(2),n?2:8):ht.test(t)?u:+t}function Gs(t){return $r(t,ol(t))}function Ws(t){return null==t?"":Ar(t)}var qs=Zr((function(t,e){if(jo(e)||fs(e))$r(e,rl(e),t);else for(var n in e)Nt.call(e,n)&&Qn(t,n,e[n])})),Ys=Zr((function(t,e){$r(e,ol(e),t)})),Xs=Zr((function(t,e,n,i){$r(e,ol(e),t,i)})),$s=Zr((function(t,e,n,i){$r(e,rl(e),t,i)})),Ks=wo(ri),Zs=mr((function(t,e){t=Mt(t);var i=-1,r=e.length,o=r>2?e[2]:n;for(o&&Ho(e[0],e[1],o)&&(r=1);++i<r;)for(var a=e[i],s=ol(a),l=-1,c=s.length;++l<c;){var u=s[l],h=t[u];(h===n||ss(h,kt[u])&&!Nt.call(t,u))&&(t[u]=a[u])}return t})),Js=mr((function(t){return t.push(n,vo),me(sl,n,t)}));function Qs(t,e,i){var r=null==t?n:ji(t,e);return r===n?i:r}function tl(t,e){return null!=t&&Ro(t,e,Xi)}var el=ao((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Rt.call(e)),t[e]=n}),Cl(Ll)),nl=ao((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Rt.call(e)),Nt.call(t,e)?t[e].push(n):t[e]=[n]}),Ao),il=mr(Ki);function rl(t){return fs(t)?Xn(t):nr(t)}function ol(t){return fs(t)?Xn(t,!0):(function e(t){if(!Ss(t))return(function e(t){var e=[];if(null!=t)for(var n in Mt(t))e.push(n);return e})(t);var n=jo(t),i=[];for(var r in t)("constructor"!=r||!n&&Nt.call(t,r))&&i.push(r);return i})(t)}var al=Zr((function(t,e,n){sr(t,e,n)})),sl=Zr((function(t,e,n,i){sr(t,e,n,i)})),ll=wo((function(t,e){var n={};if(null==t)return n;var i=!1;e=Me(e,(function(e){return e=Br(e,t),i||(i=e.length>1),e})),$r(t,Mo(t),n),i&&(n=ai(n,7,bo));for(var r=e.length;r--;)Lr(n,e[r]);return n})),cl=wo((function(t,e){return null==t?{}:(function n(t,e){return ur(t,e,(function(e,n){return tl(t,n)}))})(t,e)}));function ul(t,e){if(null==t)return{};var n=Me(Mo(t),(function(t){return[t]}));return e=Ao(e),ur(t,n,(function(t,n){return e(t,n[0])}))}var hl=go(rl),dl=go(ol);function pl(t){return null==t?[]:je(t,rl(t))}var fl=eo((function(t,e,n){return e=e.toLowerCase(),t+(n?ml(e):e)}));function ml(t){return Sl(Ws(t).toLowerCase())}function gl(t){return(t=Ws(t))&&t.replace(gt,Xe).replace(jt,"")}var _l=eo((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),yl=eo((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),vl=to("toLowerCase"),bl=eo((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()})),xl=eo((function(t,e,n){return t+(n?" ":"")+Sl(e)})),wl=eo((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),Sl=to("toUpperCase");function Ml(t,e,i){return t=Ws(t),(e=i?n:e)===n?(function r(t){return Yt.test(t)})(t)?(function o(t){return t.match(Wt)||[]})(t):(function a(t){return t.match(at)||[]})(t):t.match(e)||[]}var El=mr((function(t,e){try{return me(t,n,e)}catch(t){return vs(t)?t:new xt(t)}})),Tl=wo((function(t,e){return _e(e,(function(e){e=ra(e),ii(t,e,Ka(t[e],t))})),t}));function Cl(t){return function(){return t}}var Al=ro(),kl=ro(!0);function Ll(t){return t}function Pl(t){return er("function"==typeof t?t:ai(t,1))}var Nl=mr((function(t,e){return function(n){return Ki(n,t,e)}})),Il=mr((function(t,e){return function(n){return Ki(t,n,e)}}));function Ol(t,e,n){var i=rl(e),r=Ui(e,i);null!=n||Ss(e)&&(r.length||!i.length)||(n=e,e=t,t=this,r=Ui(e,rl(e)));var o=!(Ss(n)&&"chain"in n&&!n.chain),a=bs(t);return _e(r,(function(n){var i=e[n];t[n]=i,a&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__),r=n.__actions__=Xr(this.__actions__);return r.push({func:i,args:arguments,thisArg:t}),n.__chain__=e,n}return i.apply(t,Ee([this.value()],arguments))})})),t}function Rl(){}var zl=lo(Me),Dl=lo(be),Bl=lo(Ae);function Hl(t){return Fo(t)?ze(ra(t)):(function e(t){return function(e){return ji(e,t)}})(t)}var Fl=uo(),Vl=uo(!0);function Ul(){return[]}function jl(){return!1}var Gl,Wl=so((function(t,e){return t+e}),0),ql=fo("ceil"),Yl=so((function(t,e){return t/e}),1),Xl=fo("floor"),$l=so((function(t,e){return t*e}),1),Kl=fo("round"),Zl=so((function(t,e){return t-e}),0);return Bn.after=function Jl(t,e){if("function"!=typeof e)throw new Ct(i);return t=Vs(t),function(){if(--t<1)return e.apply(this,arguments)}},Bn.ary=Xa,Bn.assign=qs,Bn.assignIn=Ys,Bn.assignInWith=Xs,Bn.assignWith=$s,Bn.at=Ks,Bn.before=$a,Bn.bind=Ka,Bn.bindAll=Tl,Bn.bindKey=Za,Bn.castArray=function Ql(){if(!arguments.length)return[];var t=arguments[0];return hs(t)?t:[t]},Bn.chain=Ia,Bn.chunk=function tc(t,e,i){e=(i?Ho(t,e,i):e===n)?1:gn(Vs(e),0);var r=null==t?0:t.length;if(!r||e<1)return[];for(var o=0,a=0,s=vt(cn(r/e));o<r;)s[a++]=wr(t,o,o+=e);return s},Bn.compact=function ec(t){for(var e=-1,n=null==t?0:t.length,i=0,r=[];++e<n;){var o=t[e];o&&(r[i++]=o)}return r},Bn.concat=function nc(){var t=arguments.length;if(!t)return[];for(var e=vt(t-1),n=arguments[0],i=t;i--;)e[i-1]=arguments[i];return Ee(hs(n)?Xr(n):[n],Di(e,1))},Bn.cond=function ic(t){var e=null==t?0:t.length,n=Ao();return t=e?Me(t,(function(t){if("function"!=typeof t[1])throw new Ct(i);return[n(t[0]),t[1]]})):[],mr((function(n){for(var i=-1;++i<e;){var r=t[i];if(me(r[0],this,n))return me(r[1],this,n)}}))},Bn.conforms=function rc(t){return(function e(t){var e=rl(t);return function(n){return si(n,t,e)}})(ai(t,1))},Bn.constant=Cl,Bn.countBy=za,Bn.create=function oc(t,e){var n=Hn(t);return null==e?n:ni(n,e)},Bn.curry=function t(e,i,r){var o=_o(e,8,n,n,n,n,n,i=r?n:i);return o.placeholder=t.placeholder,o},Bn.curryRight=function t(e,i,r){var o=_o(e,16,n,n,n,n,n,i=r?n:i);return o.placeholder=t.placeholder,o},Bn.debounce=Ja,Bn.defaults=Zs,Bn.defaultsDeep=Js,Bn.defer=Qa,Bn.delay=ts,Bn.difference=sa,Bn.differenceBy=la,Bn.differenceWith=ca,Bn.drop=function ac(t,e,i){var r=null==t?0:t.length;return r?wr(t,(e=i||e===n?1:Vs(e))<0?0:e,r):[]},Bn.dropRight=function sc(t,e,i){var r=null==t?0:t.length;return r?wr(t,0,(e=r-(e=i||e===n?1:Vs(e)))<0?0:e):[]},Bn.dropRightWhile=function lc(t,e){return t&&t.length?Nr(t,Ao(e,3),!0,!0):[]},Bn.dropWhile=function cc(t,e){return t&&t.length?Nr(t,Ao(e,3),!0):[]},Bn.fill=function uc(t,e,i,r){var o=null==t?0:t.length;return o?(i&&"number"!=typeof i&&Ho(t,e,i)&&(i=0,r=o),(function a(t,e,i,r){var o=t.length;for((i=Vs(i))<0&&(i=-i>o?0:o+i),(r=r===n||r>o?o:Vs(r))<0&&(r+=o),r=i>r?0:Us(r);i<r;)t[i++]=e;return t})(t,e,i,r)):[]},Bn.filter=function hc(t,e){return(hs(t)?xe:zi)(t,Ao(e,3))},Bn.flatMap=function dc(t,e){return Di(Ga(t,e),1)},Bn.flatMapDeep=function pc(t,e){return Di(Ga(t,e),l)},Bn.flatMapDepth=function fc(t,e,i){return i=i===n?1:Vs(i),Di(Ga(t,e),i)},Bn.flatten=da,Bn.flattenDeep=function mc(t){return null!=t&&t.length?Di(t,l):[]},Bn.flattenDepth=function gc(t,e){return null!=t&&t.length?Di(t,e=e===n?1:Vs(e)):[]},Bn.flip=function _c(t){return _o(t,512)},Bn.flow=Al,Bn.flowRight=kl,Bn.fromPairs=function yc(t){for(var e=-1,n=null==t?0:t.length,i={};++e<n;){var r=t[e];i[r[0]]=r[1]}return i},Bn.functions=function vc(t){return null==t?[]:Ui(t,rl(t))},Bn.functionsIn=function bc(t){return null==t?[]:Ui(t,ol(t))},Bn.groupBy=Va,Bn.initial=function xc(t){return null!=t&&t.length?wr(t,0,-1):[]},Bn.intersection=fa,Bn.intersectionBy=ma,Bn.intersectionWith=ga,Bn.invert=el,Bn.invertBy=nl,Bn.invokeMap=Ua,Bn.iteratee=Pl,Bn.keyBy=ja,Bn.keys=rl,Bn.keysIn=ol,Bn.map=Ga,Bn.mapKeys=function wc(t,e){var n={};return e=Ao(e,3),Fi(t,(function(t,i,r){ii(n,e(t,i,r),t)})),n},Bn.mapValues=function Sc(t,e){var n={};return e=Ao(e,3),Fi(t,(function(t,i,r){ii(n,i,e(t,i,r))})),n},Bn.matches=function Mc(t){return or(ai(t,1))},Bn.matchesProperty=function Ec(t,e){return ar(t,ai(e,1))},Bn.memoize=es,Bn.merge=al,Bn.mergeWith=sl,Bn.method=Nl,Bn.methodOf=Il,Bn.mixin=Ol,Bn.negate=ns,Bn.nthArg=function Tc(t){return t=Vs(t),mr((function(e){return lr(e,t)}))},Bn.omit=ll,Bn.omitBy=function Cc(t,e){return ul(t,ns(Ao(e)))},Bn.once=function Ac(t){return $a(2,t)},Bn.orderBy=function kc(t,e,i,r){return null==t?[]:(hs(e)||(e=null==e?[]:[e]),hs(i=r?n:i)||(i=null==i?[]:[i]),cr(t,e,i))},Bn.over=zl,Bn.overArgs=is,Bn.overEvery=Dl,Bn.overSome=Bl,Bn.partial=rs,Bn.partialRight=os,Bn.partition=Wa,Bn.pick=cl,Bn.pickBy=ul,Bn.property=Hl,Bn.propertyOf=function Lc(t){return function(e){return null==t?n:ji(t,e)}},Bn.pull=ya,Bn.pullAll=va,Bn.pullAllBy=function Pc(t,e,n){return t&&t.length&&e&&e.length?hr(t,e,Ao(n,2)):t},Bn.pullAllWith=function Nc(t,e,i){return t&&t.length&&e&&e.length?hr(t,e,n,i):t},Bn.pullAt=ba,Bn.range=Fl,Bn.rangeRight=Vl,Bn.rearg=as,Bn.reject=function Ic(t,e){return(hs(t)?xe:zi)(t,ns(Ao(e,3)))},Bn.remove=function Oc(t,e){var n=[];if(!t||!t.length)return n;var i=-1,r=[],o=t.length;for(e=Ao(e,3);++i<o;){var a=t[i];e(a,i,t)&&(n.push(a),r.push(i))}return dr(t,r),n},Bn.rest=function Rc(t,e){if("function"!=typeof t)throw new Ct(i);return mr(t,e=e===n?e:Vs(e))},Bn.reverse=xa,Bn.sampleSize=function zc(t,e,i){return e=(i?Ho(t,e,i):e===n)?1:Vs(e),(hs(t)?Kn:_r)(t,e)},Bn.set=function Dc(t,e,n){return null==t?t:yr(t,e,n)},Bn.setWith=function Bc(t,e,i,r){return r="function"==typeof r?r:n,null==t?t:yr(t,e,i,r)},Bn.shuffle=function Hc(t){return(hs(t)?Zn:xr)(t)},Bn.slice=function Fc(t,e,i){var r=null==t?0:t.length;return r?(i&&"number"!=typeof i&&Ho(t,e,i)?(e=0,i=r):(e=null==e?0:Vs(e),i=i===n?r:Vs(i)),wr(t,e,i)):[]},Bn.sortBy=qa,Bn.sortedUniq=function Vc(t){return t&&t.length?Tr(t):[]},Bn.sortedUniqBy=function Uc(t,e){return t&&t.length?Tr(t,Ao(e,2)):[]},Bn.split=function jc(t,e,i){return i&&"number"!=typeof i&&Ho(t,e,i)&&(e=i=n),(i=i===n?h:i>>>0)?(t=Ws(t))&&("string"==typeof e||null!=e&&!ks(e))&&!(e=Ar(e))&&Ze(t)?Fr(on(t),0,i):t.split(e,i):[]},Bn.spread=function Gc(t,e){if("function"!=typeof t)throw new Ct(i);return e=null==e?0:gn(Vs(e),0),mr((function(n){var i=n[e],r=Fr(n,0,e);return i&&Ee(r,i),me(t,this,r)}))},Bn.tail=function Wc(t){var e=null==t?0:t.length;return e?wr(t,1,e):[]},Bn.take=function qc(t,e,i){return t&&t.length?wr(t,0,(e=i||e===n?1:Vs(e))<0?0:e):[]},Bn.takeRight=function Yc(t,e,i){var r=null==t?0:t.length;return r?wr(t,(e=r-(e=i||e===n?1:Vs(e)))<0?0:e,r):[]},Bn.takeRightWhile=function Xc(t,e){return t&&t.length?Nr(t,Ao(e,3),!1,!0):[]},Bn.takeWhile=function $c(t,e){return t&&t.length?Nr(t,Ao(e,3)):[]},Bn.tap=function Kc(t,e){return e(t),t},Bn.throttle=function Zc(t,e,n){var r=!0,o=!0;if("function"!=typeof t)throw new Ct(i);return Ss(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),Ja(t,e,{leading:r,maxWait:e,trailing:o})},Bn.thru=Oa,Bn.toArray=Hs,Bn.toPairs=hl,Bn.toPairsIn=dl,Bn.toPath=function Jc(t){return hs(t)?Me(t,ra):Os(t)?[t]:Xr(na(Ws(t)))},Bn.toPlainObject=Gs,Bn.transform=function Qc(t,e,n){var i=hs(t),r=i||gs(t)||Rs(t);if(e=Ao(e,4),null==n){var o=t&&t.constructor;n=r?i?new o:[]:Ss(t)&&bs(o)?Hn(qt(t)):{}}return(r?_e:Fi)(t,(function(t,i,r){return e(n,t,i,r)})),n},Bn.unary=function tu(t){return Xa(t,1)},Bn.union=wa,Bn.unionBy=Sa,Bn.unionWith=Ma,Bn.uniq=function eu(t){return t&&t.length?kr(t):[]},Bn.uniqBy=function nu(t,e){return t&&t.length?kr(t,Ao(e,2)):[]},Bn.uniqWith=function iu(t,e){return e="function"==typeof e?e:n,t&&t.length?kr(t,n,e):[]},Bn.unset=function ru(t,e){return null==t||Lr(t,e)},Bn.unzip=Ea,Bn.unzipWith=Ta,Bn.update=function ou(t,e,n){return null==t?t:Pr(t,e,Dr(n))},Bn.updateWith=function au(t,e,i,r){return r="function"==typeof r?r:n,null==t?t:Pr(t,e,Dr(i),r)},Bn.values=pl,Bn.valuesIn=function su(t){return null==t?[]:je(t,ol(t))},Bn.without=Ca,Bn.words=Ml,Bn.wrap=function lu(t,e){return rs(Dr(e),t)},Bn.xor=Aa,Bn.xorBy=ka,Bn.xorWith=La,Bn.zip=Pa,Bn.zipObject=function cu(t,e){return Rr(t||[],e||[],Qn)},Bn.zipObjectDeep=function uu(t,e){return Rr(t||[],e||[],yr)},Bn.zipWith=Na,Bn.entries=hl,Bn.entriesIn=dl,Bn.extend=Ys,Bn.extendWith=Xs,Ol(Bn,Bn),Bn.add=Wl,Bn.attempt=El,Bn.camelCase=fl,Bn.capitalize=ml,Bn.ceil=ql,Bn.clamp=function hu(t,e,i){return i===n&&(i=e,e=n),i!==n&&(i=(i=js(i))==i?i:0),e!==n&&(e=(e=js(e))==e?e:0),oi(js(t),e,i)},Bn.clone=function du(t){return ai(t,4)},Bn.cloneDeep=function pu(t){return ai(t,5)},Bn.cloneDeepWith=function fu(t,e){return ai(t,5,e="function"==typeof e?e:n)},Bn.cloneWith=function mu(t,e){return ai(t,4,e="function"==typeof e?e:n)},Bn.conformsTo=function gu(t,e){return null==e||si(t,e,rl(e))},Bn.deburr=gl,Bn.defaultTo=function _u(t,e){return null==t||t!=t?e:t},Bn.divide=Yl,Bn.endsWith=function yu(t,e,i){t=Ws(t),e=Ar(e);var r=t.length,o=i=i===n?r:oi(Vs(i),0,r);return(i-=e.length)>=0&&t.slice(i,o)==e},Bn.eq=ss,Bn.escape=function vu(t){return(t=Ws(t))&&q.test(t)?t.replace(G,$e):t},Bn.escapeRegExp=function bu(t){return(t=Ws(t))&&tt.test(t)?t.replace(Q,"\\$&"):t},Bn.every=function xu(t,e,i){var r=hs(t)?be:Oi;return i&&Ho(t,e,i)&&(e=n),r(t,Ao(e,3))},Bn.find=Da,Bn.findIndex=ua,Bn.findKey=function wu(t,e){return Le(t,Ao(e,3),Fi)},Bn.findLast=Ba,Bn.findLastIndex=ha,Bn.findLastKey=function Su(t,e){return Le(t,Ao(e,3),Vi)},Bn.floor=Xl,Bn.forEach=Ha,Bn.forEachRight=Fa,Bn.forIn=function Mu(t,e){return null==t?t:Bi(t,Ao(e,3),ol)},Bn.forInRight=function Eu(t,e){return null==t?t:Hi(t,Ao(e,3),ol)},Bn.forOwn=function Tu(t,e){return t&&Fi(t,Ao(e,3))},Bn.forOwnRight=function Cu(t,e){return t&&Vi(t,Ao(e,3))},Bn.get=Qs,Bn.gt=ls,Bn.gte=cs,Bn.has=function Au(t,e){return null!=t&&Ro(t,e,Yi)},Bn.hasIn=tl,Bn.head=pa,Bn.identity=Ll,Bn.includes=function ku(t,e,n,i){t=fs(t)?t:pl(t),n=n&&!i?Vs(n):0;var r=t.length;return n<0&&(n=gn(r+n,0)),Is(t)?n<=r&&t.indexOf(e,n)>-1:!!r&&Ne(t,e,n)>-1},Bn.indexOf=function Lu(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var r=null==n?0:Vs(n);return r<0&&(r=gn(i+r,0)),Ne(t,e,r)},Bn.inRange=function Pu(t,e,i){return e=Fs(e),i===n?(i=e,e=0):i=Fs(i),(function r(t,e,n){return t>=_n(e,n)&&t<gn(e,n)})(t=js(t),e,i)},Bn.invoke=il,Bn.isArguments=us,Bn.isArray=hs,Bn.isArrayBuffer=ds,Bn.isArrayLike=fs,Bn.isArrayLikeObject=ms,Bn.isBoolean=function Nu(t){return!0===t||!1===t||Ms(t)&&Wi(t)==m},Bn.isBuffer=gs,Bn.isDate=_s,Bn.isElement=function Iu(t){return Ms(t)&&1===t.nodeType&&!As(t)},Bn.isEmpty=function Ou(t){if(null==t)return!0;if(fs(t)&&(hs(t)||"string"==typeof t||"function"==typeof t.splice||gs(t)||Rs(t)||us(t)))return!t.length;var e=Oo(t);if(e==b||e==E)return!t.size;if(jo(t))return!nr(t).length;for(var n in t)if(Nt.call(t,n))return!1;return!0},Bn.isEqual=function Ru(t,e){return Ji(t,e)},Bn.isEqualWith=function zu(t,e,i){var r=(i="function"==typeof i?i:n)?i(t,e):n;return r===n?Ji(t,e,n,i):!!r},Bn.isError=vs,Bn.isFinite=function Du(t){return"number"==typeof t&&pn(t)},Bn.isFunction=bs,Bn.isInteger=xs,Bn.isLength=ws,Bn.isMap=Es,Bn.isMatch=function Bu(t,e){return t===e||Qi(t,e,Lo(e))},Bn.isMatchWith=function Hu(t,e,i){return i="function"==typeof i?i:n,Qi(t,e,Lo(e),i)},Bn.isNaN=function Fu(t){return Cs(t)&&t!=+t},Bn.isNative=function Vu(t){if(Uo(t))throw new xt("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return tr(t)},Bn.isNil=function Uu(t){return null==t},Bn.isNull=function ju(t){return null===t},Bn.isNumber=Cs,Bn.isObject=Ss,Bn.isObjectLike=Ms,Bn.isPlainObject=As,Bn.isRegExp=ks,Bn.isSafeInteger=function Gu(t){return xs(t)&&t>=-9007199254740991&&t<=c},Bn.isSet=Ps,Bn.isString=Is,Bn.isSymbol=Os,Bn.isTypedArray=Rs,Bn.isUndefined=function Wu(t){return t===n},Bn.isWeakMap=function qu(t){return Ms(t)&&Oo(t)==A},Bn.isWeakSet=function Yu(t){return Ms(t)&&"[object WeakSet]"==Wi(t)},Bn.join=function Xu(t,e){return null==t?"":fn.call(t,e)},Bn.kebabCase=_l,Bn.last=_a,Bn.lastIndexOf=function $u(t,e,i){var r=null==t?0:t.length;if(!r)return-1;var o=r;return i!==n&&(o=(o=Vs(i))<0?gn(r+o,0):_n(o,r-1)),e==e?(function a(t,e,n){for(var i=n+1;i--;)if(t[i]===e)return i;return i})(t,e,o):Pe(t,Oe,o,!0)},Bn.lowerCase=yl,Bn.lowerFirst=vl,Bn.lt=Ds,Bn.lte=Bs,Bn.max=function Ku(t){return t&&t.length?Ri(t,Ll,qi):n},Bn.maxBy=function Zu(t,e){return t&&t.length?Ri(t,Ao(e,2),qi):n},Bn.mean=function Ju(t){return Re(t,Ll)},Bn.meanBy=function Qu(t,e){return Re(t,Ao(e,2))},Bn.min=function th(t){return t&&t.length?Ri(t,Ll,ir):n},Bn.minBy=function eh(t,e){return t&&t.length?Ri(t,Ao(e,2),ir):n},Bn.stubArray=Ul,Bn.stubFalse=jl,Bn.stubObject=function nh(){return{}},Bn.stubString=function ih(){return""},Bn.stubTrue=function rh(){return!0},Bn.multiply=$l,Bn.nth=function oh(t,e){return t&&t.length?lr(t,Vs(e)):n},Bn.noConflict=function ah(){return ie._===this&&(ie._=Dt),this},Bn.noop=Rl,Bn.now=Ya,Bn.pad=function sh(t,e,n){t=Ws(t);var i=(e=Vs(e))?rn(t):0;if(!e||i>=e)return t;var r=(e-i)/2;return co(un(r),n)+t+co(cn(r),n)},Bn.padEnd=function lh(t,e,n){t=Ws(t);var i=(e=Vs(e))?rn(t):0;return e&&i<e?t+co(e-i,n):t},Bn.padStart=function ch(t,e,n){t=Ws(t);var i=(e=Vs(e))?rn(t):0;return e&&i<e?co(e-i,n)+t:t},Bn.parseInt=function uh(t,e,n){return n||null==e?e=0:e&&(e=+e),vn(Ws(t).replace(et,""),e||0)},Bn.random=function hh(t,e,i){if(i&&"boolean"!=typeof i&&Ho(t,e,i)&&(e=i=n),i===n&&("boolean"==typeof e?(i=e,e=n):"boolean"==typeof t&&(i=t,t=n)),t===n&&e===n?(t=0,e=1):(t=Fs(t),e===n?(e=t,t=0):e=Fs(e)),t>e){var r=t;t=e,e=r}if(i||t%1||e%1){var o=bn();return _n(t+o*(e-t+Qt("1e-"+((o+"").length-1))),e)}return pr(t,e)},Bn.reduce=function dh(t,e,n){var i=hs(t)?Te:Be,r=arguments.length<3;return i(t,Ao(e,4),n,r,Ni)},Bn.reduceRight=function ph(t,e,n){var i=hs(t)?Ce:Be,r=arguments.length<3;return i(t,Ao(e,4),n,r,Ii)},Bn.repeat=function fh(t,e,i){return e=(i?Ho(t,e,i):e===n)?1:Vs(e),fr(Ws(t),e)},Bn.replace=function mh(){var t=arguments,e=Ws(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Bn.result=function gh(t,e,i){var r=-1,o=(e=Br(e,t)).length;for(o||(o=1,t=n);++r<o;){var a=null==t?n:t[ra(e[r])];a===n&&(r=o,a=i),t=bs(a)?a.call(t):a}return t},Bn.round=Kl,Bn.runInContext=t,Bn.sample=function _h(t){return(hs(t)?$n:gr)(t)},Bn.size=function yh(t){if(null==t)return 0;if(fs(t))return Is(t)?rn(t):t.length;var e=Oo(t);return e==b||e==E?t.size:nr(t).length},Bn.snakeCase=bl,Bn.some=function vh(t,e,i){var r=hs(t)?Ae:Sr;return i&&Ho(t,e,i)&&(e=n),r(t,Ao(e,3))},Bn.sortedIndex=function bh(t,e){return Mr(t,e)},Bn.sortedIndexBy=function xh(t,e,n){return Er(t,e,Ao(n,2))},Bn.sortedIndexOf=function wh(t,e){var n=null==t?0:t.length;if(n){var i=Mr(t,e);if(i<n&&ss(t[i],e))return i}return-1},Bn.sortedLastIndex=function Sh(t,e){return Mr(t,e,!0)},Bn.sortedLastIndexBy=function Mh(t,e,n){return Er(t,e,Ao(n,2),!0)},Bn.sortedLastIndexOf=function Eh(t,e){if(null!=t&&t.length){var n=Mr(t,e,!0)-1;if(ss(t[n],e))return n}return-1},Bn.startCase=xl,Bn.startsWith=function Th(t,e,n){return t=Ws(t),n=null==n?0:oi(Vs(n),0,t.length),e=Ar(e),t.slice(n,n+e.length)==e},Bn.subtract=Zl,Bn.sum=function Ch(t){return t&&t.length?He(t,Ll):0},Bn.sumBy=function Ah(t,e){return t&&t.length?He(t,Ao(e,2)):0},Bn.template=function kh(t,e,i){var r=Bn.templateSettings;i&&Ho(t,e,i)&&(e=n),t=Ws(t),e=Xs({},e,r,yo);var o,a,s=Xs({},e.imports,r.imports,yo),l=rl(s),c=je(s,l),u=0,h=e.interpolate||_t,d="__p += '",p=Et((e.escape||_t).source+"|"+h.source+"|"+(h===$?ct:_t).source+"|"+(e.evaluate||_t).source+"|$","g"),f="//# sourceURL="+(Nt.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++$t+"]")+"\n";t.replace(p,(function(e,n,i,r,s,l){return i||(i=r),d+=t.slice(u,l).replace(yt,Ke),n&&(o=!0,d+="' +\n__e("+n+") +\n'"),s&&(a=!0,d+="';\n"+s+";\n__p += '"),i&&(d+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),u=l+e.length,e})),d+="';\n";var m=Nt.call(e,"variable")&&e.variable;if(m){if(st.test(m))throw new xt("Invalid `variable` option passed into `_.template`")}else d="with (obj) {\n"+d+"\n}\n";d=(a?d.replace(F,""):d).replace(V,"$1").replace(U,"$1;"),d="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var g=El((function(){return wt(l,f+"return "+d).apply(n,c)}));if(g.source=d,vs(g))throw g;return g},Bn.times=function Lh(t,e){if((t=Vs(t))<1||t>c)return[];var n=h,i=_n(t,h);e=Ao(e),t-=h;for(var r=Fe(i,e);++n<t;)e(n);return r},Bn.toFinite=Fs,Bn.toInteger=Vs,Bn.toLength=Us,Bn.toLower=function Ph(t){return Ws(t).toLowerCase()},Bn.toNumber=js,Bn.toSafeInteger=function Nh(t){return t?oi(Vs(t),-9007199254740991,c):0===t?t:0},Bn.toString=Ws,Bn.toUpper=function Ih(t){return Ws(t).toUpperCase()},Bn.trim=function Oh(t,e,i){if((t=Ws(t))&&(i||e===n))return Ve(t);if(!t||!(e=Ar(e)))return t;var r=on(t),o=on(e);return Fr(r,We(r,o),qe(r,o)+1).join("")},Bn.trimEnd=function Rh(t,e,i){if((t=Ws(t))&&(i||e===n))return t.slice(0,an(t)+1);if(!t||!(e=Ar(e)))return t;var r=on(t);return Fr(r,0,qe(r,on(e))+1).join("")},Bn.trimStart=function zh(t,e,i){if((t=Ws(t))&&(i||e===n))return t.replace(et,"");if(!t||!(e=Ar(e)))return t;var r=on(t);return Fr(r,We(r,on(e))).join("")},Bn.truncate=function Dh(t,e){var i=30,r="...";if(Ss(e)){var o="separator"in e?e.separator:o;i="length"in e?Vs(e.length):i,r="omission"in e?Ar(e.omission):r}var a=(t=Ws(t)).length;if(Ze(t)){var s=on(t);a=s.length}if(i>=a)return t;var l=i-rn(r);if(l<1)return r;var c=s?Fr(s,0,l).join(""):t.slice(0,l);if(o===n)return c+r;if(s&&(l+=c.length-l),ks(o)){if(t.slice(l).search(o)){var u,h=c;for(o.global||(o=Et(o.source,Ws(ut.exec(o))+"g")),o.lastIndex=0;u=o.exec(h);)var d=u.index;c=c.slice(0,d===n?l:d)}}else if(t.indexOf(Ar(o),l)!=l){var p=c.lastIndexOf(o);p>-1&&(c=c.slice(0,p))}return c+r},Bn.unescape=function Bh(t){return(t=Ws(t))&&W.test(t)?t.replace(j,sn):t},Bn.uniqueId=function Hh(t){var e=++It;return Ws(t)+e},Bn.upperCase=wl,Bn.upperFirst=Sl,Bn.each=Ha,Bn.eachRight=Fa,Bn.first=pa,Ol(Bn,(Gl={},Fi(Bn,(function(t,e){Nt.call(Bn.prototype,e)||(Gl[e]=t)})),Gl),{chain:!1}),Bn.VERSION="4.17.21",_e(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Bn[t].placeholder=Bn})),_e(["drop","take"],(function(t,e){Un.prototype[t]=function(i){i=i===n?1:gn(Vs(i),0);var r=this.__filtered__&&!e?new Un(this):this.clone();return r.__filtered__?r.__takeCount__=_n(i,r.__takeCount__):r.__views__.push({size:_n(i,h),type:t+(r.__dir__<0?"Right":"")}),r},Un.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),_e(["filter","map","takeWhile"],(function(t,e){var n=e+1,i=1==n||3==n;Un.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Ao(t,3),type:n}),e.__filtered__=e.__filtered__||i,e}})),_e(["head","last"],(function(t,e){var n="take"+(e?"Right":"");Un.prototype[t]=function(){return this[n](1).value()[0]}})),_e(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");Un.prototype[t]=function(){return this.__filtered__?new Un(this):this[n](1)}})),Un.prototype.compact=function(){return this.filter(Ll)},Un.prototype.find=function(t){return this.filter(t).head()},Un.prototype.findLast=function(t){return this.reverse().find(t)},Un.prototype.invokeMap=mr((function(t,e){return"function"==typeof t?new Un(this):this.map((function(n){return Ki(n,t,e)}))})),Un.prototype.reject=function(t){return this.filter(ns(Ao(t)))},Un.prototype.slice=function(t,e){t=Vs(t);var i=this;return i.__filtered__&&(t>0||e<0)?new Un(i):(t<0?i=i.takeRight(-t):t&&(i=i.drop(t)),e!==n&&(i=(e=Vs(e))<0?i.dropRight(-e):i.take(e-t)),i)},Un.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Un.prototype.toArray=function(){return this.take(h)},Fi(Un.prototype,(function(t,e){var i=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),o=Bn[r?"take"+("last"==e?"Right":""):e],a=r||/^find/.test(e);o&&(Bn.prototype[e]=function(){var e=this.__wrapped__,s=r?[1]:arguments,l=e instanceof Un,c=s[0],u=l||hs(e),h=function(t){var e=o.apply(Bn,Ee([t],s));return r&&d?e[0]:e};u&&i&&"function"==typeof c&&1!=c.length&&(l=u=!1);var d=this.__chain__,p=!!this.__actions__.length,f=a&&!d,m=l&&!p;if(!a&&u){e=m?e:new Un(this);var g=t.apply(e,s);return g.__actions__.push({func:Oa,args:[h],thisArg:n}),new Vn(g,d)}return f&&m?t.apply(this,s):(g=this.thru(h),f?r?g.value()[0]:g.value():g)})})),_e(["pop","push","shift","sort","splice","unshift"],(function(t){var e=At[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",i=/^(?:pop|shift)$/.test(t);Bn.prototype[t]=function(){var t=arguments;if(i&&!this.__chain__){var r=this.value();return e.apply(hs(r)?r:[],t)}return this[n]((function(n){return e.apply(hs(n)?n:[],t)}))}})),Fi(Un.prototype,(function(t,e){var n=Bn[e];if(n){var i=n.name+"";Nt.call(kn,i)||(kn[i]=[]),kn[i].push({name:e,func:n})}})),kn[oo(n,2).name]=[{name:"wrapper",func:n}],Un.prototype.clone=function Fh(){var t=new Un(this.__wrapped__);return t.__actions__=Xr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Xr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Xr(this.__views__),t},Un.prototype.reverse=function Vh(){if(this.__filtered__){var t=new Un(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Un.prototype.value=function Uh(){var t=this.__wrapped__.value(),e=this.__dir__,n=hs(t),i=e<0,r=n?t.length:0,o=(function a(t,e,n){for(var i=-1,r=n.length;++i<r;){var o=n[i],a=o.size;switch(o.type){case"drop":t+=a;break;case"dropRight":e-=a;break;case"take":e=_n(e,t+a);break;case"takeRight":t=gn(t,e-a)}}return{start:t,end:e}})(0,r,this.__views__),s=o.start,l=o.end,c=l-s,u=i?l:s-1,h=this.__iteratees__,d=h.length,p=0,f=_n(c,this.__takeCount__);if(!n||!i&&r==c&&f==c)return Ir(t,this.__actions__);var m=[];t:for(;c--&&p<f;){for(var g=-1,_=t[u+=e];++g<d;){var y=h[g],v=y.type,b=(0,y.iteratee)(_);if(2==v)_=b;else if(!b){if(1==v)continue t;break t}}m[p++]=_}return m},Bn.prototype.at=Ra,Bn.prototype.chain=function jh(){return Ia(this)},Bn.prototype.commit=function Gh(){return new Vn(this.value(),this.__chain__)},Bn.prototype.next=function Wh(){this.__values__===n&&(this.__values__=Hs(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?n:this.__values__[this.__index__++]}},Bn.prototype.plant=function qh(t){for(var e,i=this;i instanceof Fn;){var r=aa(i);r.__index__=0,r.__values__=n,e?o.__wrapped__=r:e=r;var o=r;i=i.__wrapped__}return o.__wrapped__=t,e},Bn.prototype.reverse=function Yh(){var t=this.__wrapped__;if(t instanceof Un){var e=t;return this.__actions__.length&&(e=new Un(this)),(e=e.reverse()).__actions__.push({func:Oa,args:[xa],thisArg:n}),new Vn(e,this.__chain__)}return this.thru(xa)},Bn.prototype.toJSON=Bn.prototype.valueOf=Bn.prototype.value=function Xh(){return Ir(this.__wrapped__,this.__actions__)},Bn.prototype.first=Bn.prototype.head,oe&&(Bn.prototype[oe]=function $h(){return this}),Bn})();oe?((oe.exports=ln)._=ln,re._=ln):ie._=ln}).call(ve)}));
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */const Se=!(window.ShadyDOM&&window.ShadyDOM.inUse);let Me,Ee;function Te(t){Me=(!t||!t.shimcssproperties)&&(Se||Boolean(!navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)&&window.CSS&&CSS.supports&&CSS.supports("box-shadow","0 0 0 var(--foo)")))}window.ShadyCSS&&void 0!==window.ShadyCSS.cssBuild&&(Ee=window.ShadyCSS.cssBuild);const Ce=Boolean(window.ShadyCSS&&window.ShadyCSS.disableRuntime);window.ShadyCSS&&void 0!==window.ShadyCSS.nativeCss?Me=window.ShadyCSS.nativeCss:window.ShadyCSS?(Te(window.ShadyCSS),window.ShadyCSS=void 0):Te(window.WebComponents&&window.WebComponents.flags);const Ae=Me;
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */class ke{constructor(){this.start=0,this.end=0,this.previous=null,this.parent=null,this.rules=null,this.parsedCssText="",this.cssText="",this.atRule=!1,this.type=0,this.keyframesName="",this.selector="",this.parsedSelector=""}}function Le(t){return Pe((function n(t){let e=new ke;e.start=0,e.end=t.length;let n=e;for(let i=0,r=t.length;i<r;i++)if(t[i]===Oe){n.rules||(n.rules=[]);let t=n,e=t.rules[t.rules.length-1]||null;n=new ke,n.start=i+1,n.parent=t,n.previous=e,t.rules.push(n)}else t[i]===Re&&(n.end=i+1,n=n.parent||e);return e})(t=(function e(t){return t.replace(ze.comments,"").replace(ze.port,"")})(t)),t)}function Pe(t,e){let n=e.substring(t.start,t.end-1);if(t.parsedCssText=t.cssText=n.trim(),t.parent){n=e.substring(t.previous?t.previous.end:t.parent.start,t.start-1),n=(function i(t){return t.replace(/\\([0-9a-f]{1,6})\s/gi,(function(){let t=arguments[1],e=6-t.length;for(;e--;)t="0"+t;return"\\"+t}))})(n),n=n.replace(ze.multipleSpaces," "),n=n.substring(n.lastIndexOf(";")+1);let i=t.parsedSelector=t.selector=n.trim();t.atRule=0===i.indexOf(He),t.atRule?0===i.indexOf(Be)?t.type=Ie.MEDIA_RULE:i.match(ze.keyframesRule)&&(t.type=Ie.KEYFRAMES_RULE,t.keyframesName=t.selector.split(ze.multipleSpaces).pop()):t.type=0===i.indexOf(De)?Ie.MIXIN_RULE:Ie.STYLE_RULE}let r=t.rules;if(r)for(let t,n=0,i=r.length;n<i&&(t=r[n]);n++)Pe(t,e);return t}function Ne(t,e,n=""){let i="";if(t.cssText||t.rules){let n=t.rules;if(n&&!(function r(t){let e=t[0];return Boolean(e)&&Boolean(e.selector)&&0===e.selector.indexOf(De)})(n))for(let t,r=0,o=n.length;r<o&&(t=n[r]);r++)i=Ne(t,e,i);else i=e?t.cssText:(function o(t){return(function n(t){return t.replace(ze.mixinApply,"").replace(ze.varApply,"")})(t=(function e(t){return t.replace(ze.customProp,"").replace(ze.mixinProp,"")})(t))})(t.cssText),i=i.trim(),i&&(i="  "+i+"\n")}return i&&(t.selector&&(n+=t.selector+" "+Oe+"\n"),n+=i,t.selector&&(n+=Re+"\n\n")),n}const Ie={STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1e3},Oe="{",Re="}",ze={comments:/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},De="--",Be="@media",He="@",Fe=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gi,Ve=/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,Ue=/@media\s(.*)/,je=new Set;function Ge(t){const e=t.textContent;if(!je.has(e)){je.add(e);const t=document.createElement("style");t.setAttribute("shady-unscoped",""),t.textContent=e,document.head.appendChild(t)}}function We(t){return t.hasAttribute("shady-unscoped")}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */function qe(t,e){return t?("string"==typeof t&&(t=Le(t)),e&&Xe(t,e),Ne(t,Ae)):""}function Ye(t){return!t.__cssRules&&t.textContent&&(t.__cssRules=Le(t.textContent)),t.__cssRules||null}function Xe(t,e,n,i){if(!t)return;let r=!1,o=t.type;if(i&&o===Ie.MEDIA_RULE){let e=t.selector.match(Ue);e&&(window.matchMedia(e[1]).matches||(r=!0))}o===Ie.STYLE_RULE?e(t):n&&o===Ie.KEYFRAMES_RULE?n(t):o===Ie.MIXIN_RULE&&(r=!0);let a=t.rules;if(a&&!r)for(let t,r=0,o=a.length;r<o&&(t=a[r]);r++)Xe(t,e,n,i)}function $e(t,e){let n=t.indexOf("var(");if(-1===n)return e(t,"","","");let i=(function r(t,e){let n=0;for(let i=e,r=t.length;i<r;i++)if("("===t[i])n++;else if(")"===t[i]&&0==--n)return i;return-1})(t,n+3),o=t.substring(n+4,i),a=t.substring(0,n),s=$e(t.substring(i+1),e),l=o.indexOf(",");return-1===l?e(a,o.trim(),"",s):e(a,o.substring(0,l).trim(),o.substring(l+1).trim(),s)}window.ShadyDOM&&window;const Ke="css-build";function Ze(t){return""!==(function e(t){if(void 0!==Ee)return Ee;if(void 0===t.__cssBuild){const e=t.getAttribute(Ke);if(e)t.__cssBuild=e;else{const e=(function e(t){const e="template"===t.localName?t.content.firstChild:t.firstChild;if(e instanceof Comment){const t=e.textContent.trim().split(":");if(t[0]===Ke)return t[1]}return""})(t);""!==e&&(function n(t){const e="template"===t.localName?t.content.firstChild:t.firstChild;e.parentNode.removeChild(e)}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */)(t),t.__cssBuild=e}}return t.__cssBuild||""})(t)}function Je(t,e){for(let n in e)null===n?t.style.removeProperty(n):t.style.setProperty(n,e[n])}function Qe(t,e){const n=window.getComputedStyle(t).getPropertyValue(e);return n?n.trim():""}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const tn=/;\s*/m,en=/^\s*(initial)|(inherit)\s*$/,nn=/\s*!important/;class rn{constructor(){this._map={}}set(t,e){t=t.trim(),this._map[t]={properties:e,dependants:{}}}get(t){return t=t.trim(),this._map[t]||null}}let on=null;class an{constructor(){this._currentElement=null,this._measureElement=null,this._map=new rn}detectMixin(t){return(function e(t){const e=Ve.test(t)||Fe.test(t);return Ve.lastIndex=0,Fe.lastIndex=0,e})(t)}gatherStyles(t){const e=(function n(t){const e=[],n=t.querySelectorAll("style");for(let t=0;t<n.length;t++){const i=n[t];We(i)?Se||(Ge(i),i.parentNode.removeChild(i)):(e.push(i.textContent),i.parentNode.removeChild(i))}return e.join("").trim()})(t.content);if(e){const n=document.createElement("style");return n.textContent=e,t.content.insertBefore(n,t.content.firstChild),n}return null}transformTemplate(t,e){void 0===t._gatheredStyle&&(t._gatheredStyle=this.gatherStyles(t));const n=t._gatheredStyle;return n?this.transformStyle(n,e):null}transformStyle(t,e=""){let n=Ye(t);return this.transformRules(n,e),t.textContent=qe(n),n}transformCustomStyle(t){let e=Ye(t);return Xe(e,(t=>{":root"===t.selector&&(t.selector="html"),this.transformRule(t)})),t.textContent=qe(e),e}transformRules(t,e){this._currentElement=e,Xe(t,(t=>{this.transformRule(t)})),this._currentElement=null}transformRule(t){t.cssText=this.transformCssText(t.parsedCssText,t),":root"===t.selector&&(t.selector=":host > *")}transformCssText(t,e){return t=t.replace(Fe,((t,n,i,r)=>this._produceCssProperties(t,n,i,r,e))),this._consumeCssProperties(t,e)}_getInitialValueForProperty(t){return this._measureElement||(this._measureElement=document.createElement("meta"),this._measureElement.setAttribute("apply-shim-measure",""),this._measureElement.style.all="initial",document.head.appendChild(this._measureElement)),window.getComputedStyle(this._measureElement).getPropertyValue(t)}_fallbacksFromPreviousRules(t){let e=t;for(;e.parent;)e=e.parent;const n={};let i=!1;return Xe(e,(e=>{i=i||e===t,i||e.selector===t.selector&&Object.assign(n,this._cssTextToMap(e.parsedCssText))})),n}_consumeCssProperties(t,e){let n=null;for(;n=Ve.exec(t);){let i=n[0],r=n[1],o=n.index,a=o+i.indexOf("@apply"),s=o+i.length,l=t.slice(0,a),c=t.slice(s),u=e?this._fallbacksFromPreviousRules(e):{};Object.assign(u,this._cssTextToMap(l));let h=this._atApplyToCssProperties(r,u);t=`${l}${h}${c}`,Ve.lastIndex=o+h.length}return t}_atApplyToCssProperties(t,e){t=t.replace(tn,"");let n=[],i=this._map.get(t);if(i||(this._map.set(t,{}),i=this._map.get(t)),i){let r,o,a;this._currentElement&&(i.dependants[this._currentElement]=!0);const s=i.properties;for(r in s)a=e&&e[r],o=[r,": var(",t,"_-_",r],a&&o.push(",",a.replace(nn,"")),o.push(")"),nn.test(s[r])&&o.push(" !important"),n.push(o.join(""))}return n.join("; ")}_replaceInitialOrInherit(t,e){let n=en.exec(e);return n&&(e=n[1]?this._getInitialValueForProperty(t):"apply-shim-inherit"),e}_cssTextToMap(t,e=!1){let n,i,r=t.split(";"),o={};for(let t,a,s=0;s<r.length;s++)t=r[s],t&&(a=t.split(":"),a.length>1&&(n=a[0].trim(),i=a.slice(1).join(":"),e&&(i=this._replaceInitialOrInherit(n,i)),o[n]=i));return o}_invalidateMixinEntry(t){if(on)for(let e in t.dependants)e!==this._currentElement&&on(e)}_produceCssProperties(t,e,n,i,r){if(n&&$e(n,((t,e)=>{e&&this._map.get(e)&&(i=`@apply ${e};`)})),!i)return t;let o=this._consumeCssProperties(""+i,r),a=t.slice(0,t.indexOf("--")),s=this._cssTextToMap(o,!0),l=s,c=this._map.get(e),u=c&&c.properties;u?l=Object.assign(Object.create(u),s):this._map.set(e,l);let h,d,p=[],f=!1;for(h in l)d=s[h],void 0===d&&(d="initial"),u&&!(h in u)&&(f=!0),p.push(`${e}_-_${h}: ${d}`);return f&&this._invalidateMixinEntry(c),c&&(c.properties=l),n&&(a=`${t};${a}`),`${a}${p.join("; ")};`}}an.prototype.detectMixin=an.prototype.detectMixin,an.prototype.transformStyle=an.prototype.transformStyle,an.prototype.transformCustomStyle=an.prototype.transformCustomStyle,an.prototype.transformRules=an.prototype.transformRules,an.prototype.transformRule=an.prototype.transformRule,an.prototype.transformTemplate=an.prototype.transformTemplate,an.prototype._separator="_-_",Object.defineProperty(an.prototype,"invalidCallback",{get:()=>on,set(t){on=t}});
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const sn={},ln="_applyShimCurrentVersion",cn="_applyShimNextVersion",un="_applyShimValidatingVersion",hn=Promise.resolve();
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */function dn(t){let e=sn[t];e&&(function n(t){t[ln]=t[ln]||0,t[un]=t[un]||0,t[cn]=(t[cn]||0)+1})(e)}function pn(t){return t[ln]===t[cn]}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
let fn,mn=null,gn=window.HTMLImports&&window.HTMLImports.whenReady||null;function _n(t){requestAnimationFrame((function(){gn?gn(t):(mn||(mn=new Promise((t=>{fn=t})),"complete"===document.readyState?fn():document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&fn()}))),mn.then((function(){t&&t()})))}))}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */const yn="__seenByShadyCSS",vn="__shadyCSSCachedStyle";let bn=null,xn=null;class wn{constructor(){this.customStyles=[],this.enqueued=!1,_n((()=>{window.ShadyCSS.flushCustomStyles&&window.ShadyCSS.flushCustomStyles()}))}enqueueDocumentValidation(){!this.enqueued&&xn&&(this.enqueued=!0,_n(xn))}addCustomStyle(t){t[yn]||(t[yn]=!0,this.customStyles.push(t),this.enqueueDocumentValidation())}getStyleForCustomStyle(t){if(t[vn])return t[vn];let e;return e=t.getStyle?t.getStyle():t,e}processStyles(){const t=this.customStyles;for(let e=0;e<t.length;e++){const n=t[e];if(n[vn])continue;const i=this.getStyleForCustomStyle(n);if(i){const t=i.__appliedElement||i;bn&&bn(t),n[vn]=t}}return t}}wn.prototype.addCustomStyle=wn.prototype.addCustomStyle,wn.prototype.getStyleForCustomStyle=wn.prototype.getStyleForCustomStyle,wn.prototype.processStyles=wn.prototype.processStyles,Object.defineProperties(wn.prototype,{transformCallback:{get:()=>bn,set(t){bn=t}},validateCallback:{get:()=>xn,set(t){let e=!1;xn||(e=!0),xn=t,e&&this.enqueueDocumentValidation()}}});
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const Sn=new an;class Mn{constructor(){this.customStyleInterface=null,Sn.invalidCallback=dn}ensure(){this.customStyleInterface||window.ShadyCSS.CustomStyleInterface&&(this.customStyleInterface=window.ShadyCSS.CustomStyleInterface,this.customStyleInterface.transformCallback=t=>{Sn.transformCustomStyle(t)},this.customStyleInterface.validateCallback=()=>{requestAnimationFrame((()=>{this.customStyleInterface.enqueued&&this.flushCustomStyles()}))})}prepareTemplate(t,e){if(this.ensure(),Ze(t))return;sn[e]=t;let n=Sn.transformTemplate(t,e);t._styleAst=n}flushCustomStyles(){if(this.ensure(),!this.customStyleInterface)return;let t=this.customStyleInterface.processStyles();if(this.customStyleInterface.enqueued){for(let e=0;e<t.length;e++){let n=this.customStyleInterface.getStyleForCustomStyle(t[e]);n&&Sn.transformCustomStyle(n)}this.customStyleInterface.enqueued=!1}}styleSubtree(t,e){if(this.ensure(),e&&Je(t,e),t.shadowRoot){this.styleElement(t);let e=t.shadowRoot.children||t.shadowRoot.childNodes;for(let t=0;t<e.length;t++)this.styleSubtree(e[t])}else{let e=t.children||t.childNodes;for(let t=0;t<e.length;t++)this.styleSubtree(e[t])}}styleElement(t){this.ensure();let{is:e}=(function n(t){let e=t.localName,n="",i="";return e?e.indexOf("-")>-1?n=e:(i=e,n=t.getAttribute&&t.getAttribute("is")||""):(n=t.is,i=t.extends),{is:n,typeExtension:i}})(t),i=sn[e];if((!i||!Ze(i))&&i&&!pn(i)){(function r(t){return!pn(t)&&t[un]===t[cn]})(i)||(this.prepareTemplate(i,e),(function o(t){t[un]=t[cn],t._validating||(t._validating=!0,hn.then((function(){t[ln]=t[cn],t._validating=!1})))})(i));let n=t.shadowRoot;if(n){let t=n.querySelector("style");t&&(t.__cssRules=i._styleAst,t.textContent=qe(i._styleAst))}}}styleDocument(t){this.ensure(),this.styleSubtree(document.body,t)}}if(!window.ShadyCSS||!window.ShadyCSS.ScopingShim){const t=new Mn;let e=window.ShadyCSS&&window.ShadyCSS.CustomStyleInterface;window.ShadyCSS={prepareTemplate(e,n,i){t.flushCustomStyles(),t.prepareTemplate(e,n)},prepareTemplateStyles(t,e,n){window.ShadyCSS.prepareTemplate(t,e,n)},prepareTemplateDom(t,e){},styleSubtree(e,n){t.flushCustomStyles(),t.styleSubtree(e,n)},styleElement(e){t.flushCustomStyles(),t.styleElement(e)},styleDocument(e){t.flushCustomStyles(),t.styleDocument(e)},getComputedStyleValue:(t,e)=>Qe(t,e),flushCustomStyles(){t.flushCustomStyles()},nativeCss:Ae,nativeShadow:Se,cssBuild:Ee,disableRuntime:Ce},e&&(window.ShadyCSS.CustomStyleInterface=e)}window.ShadyCSS.ApplyShim=Sn;
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
class En{constructor(){this._asyncModule=null,this._callback=null,this._timer=null}setConfig(t,e){this._asyncModule=t,this._callback=e,this._timer=this._asyncModule.run((()=>{this._timer=null,Tn.delete(this),this._callback()}))}cancel(){this.isActive()&&(this._cancelAsync(),Tn.delete(this))}_cancelAsync(){this.isActive()&&(this._asyncModule.cancel(this._timer),this._timer=null)}flush(){this.isActive()&&(this.cancel(),this._callback())}isActive(){return null!=this._timer}static debounce(t,e,n){return t instanceof En?t._cancelAsync():t=new En,t.setConfig(e,n),t}}let Tn=new Set;const Cn=function(t){Tn.add(t)},An=function(){const t=Boolean(Tn.size);return Tn.forEach((t=>{try{t.flush()}catch(t){setTimeout((()=>{throw t}))}})),t};
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
let kn="string"==typeof document.head.style.touchAction,Ln="__polymerGestures",Pn="__polymerGesturesHandled",Nn="__polymerGesturesTouchAction",In=["mousedown","mousemove","mouseup","click"],On=[0,1,4,2],Rn=(function(){try{return 1===new MouseEvent("test",{buttons:1}).buttons}catch(t){return!1}})();function zn(t){return In.indexOf(t)>-1}let Dn=!1;function Bn(t){if(!zn(t)&&"touchend"!==t)return kn&&Dn&&v?{passive:!0}:void 0}!(function(){try{let t=Object.defineProperty({},"passive",{get(){Dn=!0}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(t){}})();let Hn=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);const Fn=[],Vn={button:!0,input:!0,keygen:!0,meter:!0,output:!0,textarea:!0,progress:!0,select:!0},Un={button:!0,command:!0,fieldset:!0,input:!0,keygen:!0,optgroup:!0,option:!0,select:!0,textarea:!0};function jn(t){let e=Array.prototype.slice.call(t.labels||[]);if(!e.length){e=[];let n=t.getRootNode();if(t.id){let i=n.querySelectorAll(`label[for = ${t.id}]`);for(let t=0;t<i.length;t++)e.push(i[t])}}return e}let Gn=function(t){let e=t.sourceCapabilities;if((!e||e.firesTouchEvents)&&(t[Pn]={skip:!0},"click"===t.type)){let e=!1,n=Zn(t);for(let t=0;t<n.length;t++){if(n[t].nodeType===Node.ELEMENT_NODE)if("label"===n[t].localName)Fn.push(n[t]);else if(Vn[n[t].localName]){let i=jn(n[t]);for(let t=0;t<i.length;t++)e=e||Fn.indexOf(i[t])>-1}if(n[t]===Yn.mouse.target)return}if(e)return;t.preventDefault(),t.stopPropagation()}};function Wn(t){let e=Hn?["click"]:In;for(let n,i=0;i<e.length;i++)n=e[i],t?(Fn.length=0,document.addEventListener(n,Gn,!0)):document.removeEventListener(n,Gn,!0)}function qn(t){let e=t.type;if(!zn(e))return!1;if("mousemove"===e){let e=void 0===t.buttons?1:t.buttons;return t instanceof window.MouseEvent&&!Rn&&(e=On[t.which]||0),Boolean(1&e)}return 0===(void 0===t.button?0:t.button)}let Yn={mouse:{target:null,mouseIgnoreJob:null},touch:{x:0,y:0,id:-1,scrollDecided:!1}};function Xn(t,e,n){t.movefn=e,t.upfn=n,document.addEventListener("mousemove",e),document.addEventListener("mouseup",n)}function $n(t){document.removeEventListener("mousemove",t.movefn),document.removeEventListener("mouseup",t.upfn),t.movefn=null,t.upfn=null}document.addEventListener("touchend",(function Kn(t){Yn.mouse.mouseIgnoreJob||Wn(!0),Yn.mouse.target=Zn(t)[0],Yn.mouse.mouseIgnoreJob=En.debounce(Yn.mouse.mouseIgnoreJob,gt.after(2500),(function(){Wn(),Yn.mouse.target=null,Yn.mouse.mouseIgnoreJob=null}))}),!!Dn&&{passive:!0});const Zn=window.ShadyDOM&&window.ShadyDOM.noPatch?window.ShadyDOM.composedPath:t=>t.composedPath&&t.composedPath()||[],Jn={},Qn=[];function ti(t){const e=Zn(t);return e.length>0?e[0]:t.target}function ei(t){let e,n=t.type,i=t.currentTarget[Ln];if(!i)return;let r=i[n];if(r){if(!t[Pn]&&(t[Pn]={},"touch"===n.slice(0,5))){let e=(t=t).changedTouches[0];if("touchstart"===n&&1===t.touches.length&&(Yn.touch.id=e.identifier),Yn.touch.id!==e.identifier)return;kn||"touchstart"!==n&&"touchmove"!==n||(function o(t){let e=t.changedTouches[0],n=t.type;if("touchstart"===n)Yn.touch.x=e.clientX,Yn.touch.y=e.clientY,Yn.touch.scrollDecided=!1;else if("touchmove"===n){if(Yn.touch.scrollDecided)return;Yn.touch.scrollDecided=!0;let n=(function i(t){let e="auto",n=Zn(t);for(let t,i=0;i<n.length;i++)if(t=n[i],t[Nn]){e=t[Nn];break}return e})(t),i=!1,r=Math.abs(Yn.touch.x-e.clientX),o=Math.abs(Yn.touch.y-e.clientY);t.cancelable&&("none"===n?i=!0:"pan-x"===n?i=o>r:"pan-y"===n&&(i=r>o)),i?t.preventDefault():ai("track")}})(t)}if(e=t[Pn],!e.skip){for(let n,i=0;i<Qn.length;i++)n=Qn[i],r[n.name]&&!e[n.name]&&n.flow&&n.flow.start.indexOf(t.type)>-1&&n.reset&&n.reset();for(let i,o=0;o<Qn.length;o++)i=Qn[o],r[i.name]&&!e[i.name]&&(e[i.name]=!0,i[n](t))}}}function ni(t,e,n){return!!Jn[e]&&((function i(t,e,n){let i=Jn[e],r=i.deps,o=i.name,a=t[Ln];a||(t[Ln]=a={});for(let e,n,i=0;i<r.length;i++)e=r[i],Hn&&zn(e)&&"click"!==e||(n=a[e],n||(a[e]=n={_count:0}),0===n._count&&t.addEventListener(e,ei,Bn(e)),n[o]=(n[o]||0)+1,n._count=(n._count||0)+1);t.addEventListener(e,n),i.touchAction&&ri(t,i.touchAction)})(t,e,n),!0)}function ii(t){Qn.push(t);for(let e=0;e<t.emits.length;e++)Jn[t.emits[e]]=t}function ri(t,e){kn&&t instanceof HTMLElement&&vt.run((()=>{t.style.touchAction=e})),t[Nn]=e}function oi(t,e,n){let i=new Event(e,{bubbles:!0,cancelable:!0,composed:!0});if(i.detail=n,Y(t).dispatchEvent(i),i.defaultPrevented){let t=n.preventer||n.sourceEvent;t&&t.preventDefault&&t.preventDefault()}}function ai(t){let e=(function n(t){for(let e,n=0;n<Qn.length;n++){e=Qn[n];for(let n,i=0;i<e.emits.length;i++)if(n=e.emits[i],n===t)return e}return null})(t);e.info&&(e.info.prevent=!0)}function si(t,e,n,i){e&&oi(e,t,{x:n.clientX,y:n.clientY,sourceEvent:n,preventer:i,prevent:function(t){return ai(t)}})}function li(t,e,n){if(t.prevent)return!1;if(t.started)return!0;let i=Math.abs(t.x-e),r=Math.abs(t.y-n);return i>=5||r>=5}function ci(t,e,n){if(!e)return;let i,r=t.moves[t.moves.length-2],o=t.moves[t.moves.length-1],a=0;r&&(i=o.x-r.x,a=o.y-r.y),oi(e,"track",{state:t.state,x:n.clientX,y:n.clientY,dx:o.x-t.x,dy:o.y-t.y,ddx:i,ddy:a,sourceEvent:n,hover:function(){return(function t(e,n){let i=document.elementFromPoint(e,n),r=i;for(;r&&r.shadowRoot&&!window.ShadyDOM;){let t=r;if(r=r.shadowRoot.elementFromPoint(e,n),t===r)break;r&&(i=r)}return i})(n.clientX,n.clientY)}})}function ui(t,e,n){let i=Math.abs(e.clientX-t.x),r=Math.abs(e.clientY-t.y),o=ti(n||e);!o||Un[o.localName]&&o.hasAttribute("disabled")||(isNaN(i)||isNaN(r)||i<=25&&r<=25||(function a(t){if("click"===t.type){if(0===t.detail)return!0;let e=ti(t);if(!e.nodeType||e.nodeType!==Node.ELEMENT_NODE)return!0;let n=e.getBoundingClientRect(),i=t.pageX,r=t.pageY;return!(i>=n.left&&i<=n.right&&r>=n.top&&r<=n.bottom)}return!1})(e))&&(t.prevent||oi(o,"tap",{x:e.clientX,y:e.clientY,sourceEvent:e,preventer:n}))}ii({name:"downup",deps:["mousedown","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["down","up"],info:{movefn:null,upfn:null},reset:function(){$n(this.info)},mousedown:function(t){if(!qn(t))return;let e=ti(t),n=this;Xn(this.info,(function t(i){qn(i)||(si("up",e,i),$n(n.info))}),(function t(i){qn(i)&&si("up",e,i),$n(n.info)})),si("down",e,t)},touchstart:function(t){si("down",ti(t),t.changedTouches[0],t)},touchend:function(t){si("up",ti(t),t.changedTouches[0],t)}}),ii({name:"track",touchAction:"none",deps:["mousedown","touchstart","touchmove","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["track"],info:{x:0,y:0,state:"start",started:!1,moves:[],addMove:function(t){this.moves.length>2&&this.moves.shift(),this.moves.push(t)},movefn:null,upfn:null,prevent:!1},reset:function(){this.info.state="start",this.info.started=!1,this.info.moves=[],this.info.x=0,this.info.y=0,this.info.prevent=!1,$n(this.info)},mousedown:function(t){if(!qn(t))return;let e=ti(t),n=this,i=function t(i){let r=i.clientX,o=i.clientY;li(n.info,r,o)&&(n.info.state=n.info.started?"mouseup"===i.type?"end":"track":"start","start"===n.info.state&&ai("tap"),n.info.addMove({x:r,y:o}),qn(i)||(n.info.state="end",$n(n.info)),e&&ci(n.info,e,i),n.info.started=!0)};Xn(this.info,i,(function t(e){n.info.started&&i(e),$n(n.info)})),this.info.x=t.clientX,this.info.y=t.clientY},touchstart:function(t){let e=t.changedTouches[0];this.info.x=e.clientX,this.info.y=e.clientY},touchmove:function(t){let e=ti(t),n=t.changedTouches[0],i=n.clientX,r=n.clientY;li(this.info,i,r)&&("start"===this.info.state&&ai("tap"),this.info.addMove({x:i,y:r}),ci(this.info,e,n),this.info.state="track",this.info.started=!0)},touchend:function(t){let e=ti(t),n=t.changedTouches[0];this.info.started&&(this.info.state="end",this.info.addMove({x:n.clientX,y:n.clientY}),ci(this.info,e,n))}}),ii({name:"tap",deps:["mousedown","click","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["click","touchend"]},emits:["tap"],info:{x:NaN,y:NaN,prevent:!1},reset:function(){this.info.x=NaN,this.info.y=NaN,this.info.prevent=!1},mousedown:function(t){qn(t)&&(this.info.x=t.clientX,this.info.y=t.clientY)},click:function(t){qn(t)&&ui(this.info,t)},touchstart:function(t){const e=t.changedTouches[0];this.info.x=e.clientX,this.info.y=e.clientY},touchend:function(t){ui(this.info,t.changedTouches[0],t)}});const hi=ti,di=I((t=>class extends t{_addEventListenerToNode(t,e,n){ni(t,e,n)||super._addEventListenerToNode(t,e,n)}_removeEventListenerFromNode(t,e,n){(function i(t,e,n){return!!Jn[e]&&((function i(t,e,n){let i=Jn[e],r=i.deps,o=i.name,a=t[Ln];if(a)for(let e,n,i=0;i<r.length;i++)e=r[i],n=a[e],n&&n[o]&&(n[o]=(n[o]||1)-1,n._count=(n._count||1)-1,0===n._count&&t.removeEventListener(e,ei,Bn(e)));t.removeEventListener(e,n)})(t,e,n),!0)})(t,e,n)||super._removeEventListenerFromNode(t,e,n)}})),pi=/:host\(:dir\((ltr|rtl)\)\)/g,fi=/([\s\w-#\.\[\]\*]*):dir\((ltr|rtl)\)/g,mi=/:dir\((?:ltr|rtl)\)/,gi=Boolean(window.ShadyDOM&&window.ShadyDOM.inUse),_i=[];
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */let yi=null,vi="";function bi(){vi=document.documentElement.getAttribute("dir")}function xi(t){t.__autoDirOptOut||t.setAttribute("dir",vi)}function wi(){bi(),vi=document.documentElement.getAttribute("dir");for(let t=0;t<_i.length;t++)xi(_i[t])}const Si=I((t=>{gi||yi||(bi(),yi=new MutationObserver(wi),yi.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}));const e=Mt(t);class n extends e{static _processStyleText(t,n){return t=e._processStyleText.call(this,t,n),!gi&&mi.test(t)&&(t=this._replaceDirInCssText(t),this.__activateDir=!0),t}static _replaceDirInCssText(t){let e=t;return e=e.replace(pi,':host([dir="$1"])'),e=e.replace(fi,':host([dir="$2"]) $1'),e}constructor(){super(),this.__autoDirOptOut=!1}ready(){super.ready(),this.__autoDirOptOut=this.hasAttribute("dir")}connectedCallback(){e.prototype.connectedCallback&&super.connectedCallback(),this.constructor.__activateDir&&((function t(){yi&&yi.takeRecords().length&&wi()})(),_i.push(this),xi(this))}disconnectedCallback(){if(e.prototype.disconnectedCallback&&super.disconnectedCallback(),this.constructor.__activateDir){const t=_i.indexOf(this);t>-1&&_i.splice(t,1)}}}return n.__activateDir=!1,n}));
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */let Mi=!1,Ei=[],Ti=[];function Ci(){Mi=!0,requestAnimationFrame((function(){Mi=!1,(function t(e){for(;e.length;)Ai(e.shift())})(Ei),setTimeout((function(){!(function t(e){for(let t=0,n=e.length;t<n;t++)Ai(e.shift())})(Ti)}))}))}function Ai(t){const e=t[0],n=t[1],i=t[2];try{n.apply(e,i)}catch(t){setTimeout((()=>{throw t}))}}function ki(t,e,n){Mi||Ci(),Ti.push([t,e,n])}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */function Li(){document.body.removeAttribute("unresolved")}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
function Pi(t,e,n){return{index:t,removed:e,addedCount:n}}function Ni(t,e){return(function n(t,e,i,r,o,a){let s,l=0,c=0,u=Math.min(i-e,a-o);if(0==e&&0==o&&(l=(function h(t,e,n){for(let i=0;i<n;i++)if(!Ii(t[i],e[i]))return i;return n})(t,r,u)),i==t.length&&a==r.length&&(c=(function d(t,e,n){let i=t.length,r=e.length,o=0;for(;o<n&&Ii(t[--i],e[--r]);)o++;return o})(t,r,u-l)),o+=l,a-=c,(i-=c)-(e+=l)==0&&a-o==0)return[];if(e==i){for(s=Pi(e,[],0);o<a;)s.removed.push(r[o++]);return[s]}if(o==a)return[Pi(e,[],i-e)];let p=(function m(t){let e=t.length-1,n=t[0].length-1,i=t[e][n],r=[];for(;e>0||n>0;){if(0==e){r.push(2),n--;continue}if(0==n){r.push(3),e--;continue}let o,a=t[e-1][n-1],s=t[e-1][n],l=t[e][n-1];o=s<l?s<a?s:a:l<a?l:a,o==a?(a==i?r.push(0):(r.push(1),i=a),e--,n--):o==s?(r.push(3),e--,i=s):(r.push(2),n--,i=l)}return r.reverse(),r})((function f(t,e,n,i,r,o){let a=o-r+1,s=n-e+1,l=new Array(a);for(let t=0;t<a;t++)l[t]=new Array(s),l[t][0]=t;for(let t=0;t<s;t++)l[0][t]=t;for(let n=1;n<a;n++)for(let o=1;o<s;o++)if(Ii(t[e+o-1],i[r+n-1]))l[n][o]=l[n-1][o-1];else{let t=l[n-1][o]+1,e=l[n][o-1]+1;l[n][o]=t<e?t:e}return l})(t,e,i,r,o,a));s=void 0;let g=[],_=e,y=o;for(let t=0;t<p.length;t++)switch(p[t]){case 0:s&&(g.push(s),s=void 0),_++,y++;break;case 1:s||(s=Pi(_,[],0)),s.addedCount++,_++,s.removed.push(r[y]),y++;break;case 2:s||(s=Pi(_,[],0)),s.addedCount++,_++;break;case 3:s||(s=Pi(_,[],0)),s.removed.push(r[y]),y++}return s&&g.push(s),g})(t,0,t.length,e,0,e.length)}function Ii(t,e){return t===e}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */function Oi(t){return"slot"===t.localName}"interactive"===document.readyState||"complete"===document.readyState?Li():window.addEventListener("DOMContentLoaded",Li);let Ri=class{static getFlattenedNodes(t){const e=Y(t);return Oi(t)?(t=t,e.assignedNodes({flatten:!0})):Array.from(e.childNodes).map((t=>Oi(t)?Y(t=t).assignedNodes({flatten:!0}):[t])).reduce(((t,e)=>t.concat(e)),[])}constructor(t,e){this._shadyChildrenObserver=null,this._nativeChildrenObserver=null,this._connected=!1,this._target=t,this.callback=e,this._effectiveNodes=[],this._observer=null,this._scheduled=!1,this._boundSchedule=()=>{this._schedule()},this.connect(),this._schedule()}connect(){Oi(this._target)?this._listenSlots([this._target]):Y(this._target).children&&(this._listenSlots(Y(this._target).children),window.ShadyDOM?this._shadyChildrenObserver=window.ShadyDOM.observeChildren(this._target,(t=>{this._processMutations(t)})):(this._nativeChildrenObserver=new MutationObserver((t=>{this._processMutations(t)})),this._nativeChildrenObserver.observe(this._target,{childList:!0}))),this._connected=!0}disconnect(){Oi(this._target)?this._unlistenSlots([this._target]):Y(this._target).children&&(this._unlistenSlots(Y(this._target).children),window.ShadyDOM&&this._shadyChildrenObserver?(window.ShadyDOM.unobserveChildren(this._shadyChildrenObserver),this._shadyChildrenObserver=null):this._nativeChildrenObserver&&(this._nativeChildrenObserver.disconnect(),this._nativeChildrenObserver=null)),this._connected=!1}_schedule(){this._scheduled||(this._scheduled=!0,vt.run((()=>this.flush())))}_processMutations(t){this._processSlotMutations(t),this.flush()}_processSlotMutations(t){if(t)for(let e=0;e<t.length;e++){let n=t[e];n.addedNodes&&this._listenSlots(n.addedNodes),n.removedNodes&&this._unlistenSlots(n.removedNodes)}}flush(){if(!this._connected)return!1;window.ShadyDOM&&ShadyDOM.flush(),this._nativeChildrenObserver?this._processSlotMutations(this._nativeChildrenObserver.takeRecords()):this._shadyChildrenObserver&&this._processSlotMutations(this._shadyChildrenObserver.takeRecords()),this._scheduled=!1;let t={target:this._target,addedNodes:[],removedNodes:[]},e=this.constructor.getFlattenedNodes(this._target),n=Ni(e,this._effectiveNodes);for(let e,i=0;i<n.length&&(e=n[i]);i++)for(let n,i=0;i<e.removed.length&&(n=e.removed[i]);i++)t.removedNodes.push(n);for(let i,r=0;r<n.length&&(i=n[r]);r++)for(let n=i.index;n<i.index+i.addedCount;n++)t.addedNodes.push(e[n]);this._effectiveNodes=e;let i=!1;return(t.addedNodes.length||t.removedNodes.length)&&(i=!0,this.callback.call(this._target,t)),i}_listenSlots(t){for(let e=0;e<t.length;e++){let n=t[e];Oi(n)&&n.addEventListener("slotchange",this._boundSchedule)}}_unlistenSlots(t){for(let e=0;e<t.length;e++){let n=t[e];Oi(n)&&n.removeEventListener("slotchange",this._boundSchedule)}}};
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */const zi=function(){let t,e;do{t=window.ShadyDOM&&ShadyDOM.flush(),window.ShadyCSS&&window.ShadyCSS.ScopingShim&&window.ShadyCSS.ScopingShim.flush(),e=An()}while(t||e)},Di=Element.prototype,Bi=Di.matches||Di.matchesSelector||Di.mozMatchesSelector||Di.msMatchesSelector||Di.oMatchesSelector||Di.webkitMatchesSelector,Hi=function(t,e){return Bi.call(t,e)};
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */class Fi{constructor(t){window.ShadyDOM&&window.ShadyDOM.inUse&&window.ShadyDOM.patch(t),this.node=t}observeNodes(t){return new Ri(this.node,t)}unobserveNodes(t){t.disconnect()}notifyObserver(){}deepContains(t){if(Y(this.node).contains(t))return!0;let e=t,n=t.ownerDocument;for(;e&&e!==n&&e!==this.node;)e=Y(e).parentNode||Y(e).host;return e===this.node}getOwnerRoot(){return Y(this.node).getRootNode()}getDistributedNodes(){return"slot"===this.node.localName?Y(this.node).assignedNodes({flatten:!0}):[]}getDestinationInsertionPoints(){let t=[],e=Y(this.node).assignedSlot;for(;e;)t.push(e),e=Y(e).assignedSlot;return t}importNode(t,e){let n=this.node instanceof Document?this.node:this.node.ownerDocument;return Y(n).importNode(t,e)}getEffectiveChildNodes(){return Ri.getFlattenedNodes(this.node)}queryDistributedElements(t){let e=this.getEffectiveChildNodes(),n=[];for(let i,r=0,o=e.length;r<o&&(i=e[r]);r++)i.nodeType===Node.ELEMENT_NODE&&Hi(i,t)&&n.push(i);return n}get activeElement(){let t=this.node;return void 0!==t._activeElement?t._activeElement:t.activeElement}}function Vi(t,e){for(let n=0;n<e.length;n++){let i=e[n];Object.defineProperty(t,i,{get:function(){return this.node[i]},configurable:!0})}}class Ui{constructor(t){this.event=t}get rootTarget(){return this.path[0]}get localTarget(){return this.event.target}get path(){return this.event.composedPath()}}let ji=Fi;if(window.ShadyDOM&&window.ShadyDOM.inUse&&window.ShadyDOM.noPatch&&window.ShadyDOM.Wrapper){class t extends window.ShadyDOM.Wrapper{}Object.getOwnPropertyNames(Fi.prototype).forEach((e=>{"activeElement"!=e&&(t.prototype[e]=Fi.prototype[e])})),Vi(t.prototype,["classList"]),ji=t,Object.defineProperties(Ui.prototype,{localTarget:{get(){const t=this.event.currentTarget,e=t&&qi(t).getOwnerRoot(),n=this.path;for(let t=0;t<n.length;t++){const i=n[t];if(qi(i).getOwnerRoot()===e)return i}},configurable:!0},path:{get(){return window.ShadyDOM.composedPath(this.event)},configurable:!0}})}else!(function Gi(t,e){for(let n=0;n<e.length;n++){let i=e[n];t[i]=function(){return this.node[i].apply(this.node,arguments)}}})(Fi.prototype,["cloneNode","appendChild","insertBefore","removeChild","replaceChild","setAttribute","removeAttribute","querySelector","querySelectorAll"]),Vi(Fi.prototype,["parentNode","firstChild","lastChild","nextSibling","previousSibling","firstElementChild","lastElementChild","nextElementSibling","previousElementSibling","childNodes","children","classList"]),(function Wi(t,e){for(let n=0;n<e.length;n++){let i=e[n];Object.defineProperty(t,i,{get:function(){return this.node[i]},set:function(t){this.node[i]=t},configurable:!0})}})(Fi.prototype,["textContent","innerHTML","className"]);const qi=function(t){if((t=t||document)instanceof ji)return t;if(t instanceof Ui)return t;let e=t.__domApi;return e||(e=t instanceof Event?new Ui(t):new ji(t),t.__domApi=e),e},Yi=window.ShadyDOM,Xi=window.ShadyCSS;
/**
    @license
    Copyright (c) 2019 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */function $i(t,e){return Y(t).getRootNode()===e}
/**
     * @fileoverview
     * @suppress {checkPrototypalTypes}
     * @license Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
     * This code may only be used under the BSD style license found at
     * http://polymer.github.io/LICENSE.txt The complete set of authors may be found
     * at http://polymer.github.io/AUTHORS.txt The complete set of contributors may
     * be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by
     * Google as part of the polymer project is also subject to an additional IP
     * rights grant found at http://polymer.github.io/PATENTS.txt
     */
const Ki="disable-upgrade",Zi=t=>{for(;t;){const e=Object.getOwnPropertyDescriptor(t,"observedAttributes");if(e)return e.get;t=Object.getPrototypeOf(t.prototype).constructor}return()=>[]};I((t=>{const e=me(t);let n=Zi(e);return class extends e{constructor(){super()}static get observedAttributes(){return n.call(this).concat(Ki)}_initializeProperties(){this.hasAttribute(Ki)?this.__isUpgradeDisabled=!0:super._initializeProperties()}_enableProperties(){this.__isUpgradeDisabled||super._enableProperties()}_canApplyPropertyDefault(t){return super._canApplyPropertyDefault(t)&&!(this.__isUpgradeDisabled&&this._isPropertyPending(t))}attributeChangedCallback(t,e,n,i){t==Ki?this.__isUpgradeDisabled&&null==n&&(super._initializeProperties(),this.__isUpgradeDisabled=!1,Y(this).isConnected&&super.connectedCallback()):super.attributeChangedCallback(t,e,n,i)}connectedCallback(){this.__isUpgradeDisabled||super.connectedCallback()}disconnectedCallback(){this.__isUpgradeDisabled||super.disconnectedCallback()}}}));
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const Ji="disable-upgrade";let Qi=window.ShadyCSS;const tr=I((t=>{const e=di(me(t)),n=fe?e:Si(e),i=Zi(n),r={x:"pan-x",y:"pan-y",none:"none",all:"auto"};class o extends n{constructor(){super()}static get importMeta(){return this.prototype.importMeta}created(){}__attributeReaction(t,e,n){(this.__dataAttributes&&this.__dataAttributes[t]||t===Ji)&&this.attributeChangedCallback(t,e,n,null)}setAttribute(t,e){if(L&&!this._legacyForceObservedAttributes){const n=this.getAttribute(t);super.setAttribute(t,e),this.__attributeReaction(t,n,String(e))}else super.setAttribute(t,e)}removeAttribute(t){if(L&&!this._legacyForceObservedAttributes){const e=this.getAttribute(t);super.removeAttribute(t),this.__attributeReaction(t,e,null)}else super.removeAttribute(t)}static get observedAttributes(){return L&&!this.prototype._legacyForceObservedAttributes?(this.hasOwnProperty(JSCompiler_renameProperty("__observedAttributes",this))||(this.__observedAttributes=[]),this.__observedAttributes):i.call(this).concat(Ji)}_enableProperties(){this.__isUpgradeDisabled||super._enableProperties()}_canApplyPropertyDefault(t){return super._canApplyPropertyDefault(t)&&!(this.__isUpgradeDisabled&&this._isPropertyPending(t))}connectedCallback(){this.__needsAttributesAtConnected&&this._takeAttributes(),this.__isUpgradeDisabled||(super.connectedCallback(),this.isAttached=!0,this.attached())}attached(){}disconnectedCallback(){this.__isUpgradeDisabled||(super.disconnectedCallback(),this.isAttached=!1,this.detached())}detached(){}attributeChangedCallback(t,e,n,i){e!==n&&(t==Ji?this.__isUpgradeDisabled&&null==n&&(this._initializeProperties(),this.__isUpgradeDisabled=!1,Y(this).isConnected&&this.connectedCallback()):(super.attributeChangedCallback(t,e,n,i),this.attributeChanged(t,e,n)))}attributeChanged(t,e,n){}_initializeProperties(){if(w&&this.hasAttribute(Ji))this.__isUpgradeDisabled=!0;else{let t=Object.getPrototypeOf(this);t.hasOwnProperty(JSCompiler_renameProperty("__hasRegisterFinished",t))||(this._registered(),t.__hasRegisterFinished=!0),super._initializeProperties(),this.root=this,this.created(),L&&!this._legacyForceObservedAttributes&&(this.hasAttributes()?this._takeAttributes():this.parentNode||(this.__needsAttributesAtConnected=!0)),this._applyListeners()}}_takeAttributes(){const t=this.attributes;for(let e=0,n=t.length;e<n;e++){const n=t[e];this.__attributeReaction(n.name,null,n.value)}}_registered(){}ready(){this._ensureAttributes(),super.ready()}_ensureAttributes(){}_applyListeners(){}serialize(t){return this._serializeValue(t)}deserialize(t,e){return this._deserializeValue(t,e)}reflectPropertyToAttribute(t,e,n){this._propertyToAttribute(t,e,n)}serializeValueToAttribute(t,e,n){this._valueToNodeAttribute(n||this,t,e)}extend(t,e){if(!t||!e)return t||e;let n=Object.getOwnPropertyNames(e);for(let i,r=0;r<n.length&&(i=n[r]);r++){let n=Object.getOwnPropertyDescriptor(e,i);n&&Object.defineProperty(t,i,n)}return t}mixin(t,e){for(let n in e)t[n]=e[n];return t}chainObject(t,e){return t&&e&&t!==e&&(t.__proto__=e),t}instanceTemplate(t){let e=this.constructor._contentForTemplate(t);return document.importNode(e,!0)}fire(t,e,n){n=n||{},e=null==e?{}:e;let i=new Event(t,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});return i.detail=e,Y(n.node||this).dispatchEvent(i),i}listen(t,e,n){t=t||this;let i=this.__boundListeners||(this.__boundListeners=new WeakMap),r=i.get(t);r||(r={},i.set(t,r));let o=e+n;r[o]||(r[o]=this._addMethodEventListenerToNode(t,e,n,this))}unlisten(t,e,n){t=t||this;let i=this.__boundListeners&&this.__boundListeners.get(t),r=e+n,o=i&&i[r];o&&(this._removeEventListenerFromNode(t,e,o),i[r]=null)}setScrollDirection(t,e){ri(e||this,r[t]||"auto")}$$(t){return this.root.querySelector(t)}get domHost(){let t=Y(this).getRootNode();return t instanceof DocumentFragment?t.host:t}distributeContent(){const t=qi(this);window.ShadyDOM&&t.shadowRoot&&ShadyDOM.flush()}getEffectiveChildNodes(){return qi(this).getEffectiveChildNodes()}queryDistributedElements(t){return qi(this).queryDistributedElements(t)}getEffectiveChildren(){return this.getEffectiveChildNodes().filter((function(t){return t.nodeType===Node.ELEMENT_NODE}))}getEffectiveTextContent(){let t=this.getEffectiveChildNodes(),e=[];for(let n,i=0;n=t[i];i++)n.nodeType!==Node.COMMENT_NODE&&e.push(n.textContent);return e.join("")}queryEffectiveChildren(t){let e=this.queryDistributedElements(t);return e&&e[0]}queryAllEffectiveChildren(t){return this.queryDistributedElements(t)}getContentChildNodes(t){let e=this.root.querySelector(t||"slot");return e?qi(e).getDistributedNodes():[]}getContentChildren(t){return this.getContentChildNodes(t).filter((function(t){return t.nodeType===Node.ELEMENT_NODE}))}isLightDescendant(t){const e=this;return e!==t&&Y(e).contains(t)&&Y(e).getRootNode()===Y(t).getRootNode()}isLocalDescendant(t){return this.root===Y(t).getRootNode()}scopeSubtree(t,e=!1){return(function n(t,e=!1){if(!Yi||!Xi)return null;if(!Yi.handlesDynamicScoping)return null;const n=Xi.ScopingShim;if(!n)return null;const i=n.scopeForNode(t),r=Y(t).getRootNode(),o=t=>{if(!$i(t,r))return;const e=Array.from(Yi.nativeMethods.querySelectorAll.call(t,"*"));e.push(t);for(let t=0;t<e.length;t++){const o=e[t];if(!$i(o,r))continue;const a=n.currentScopeForNode(o);a!==i&&(""!==a&&n.unscopeNode(o,a),n.scopeNode(o,i))}};if(o(t),e){const e=new MutationObserver((t=>{for(let e=0;e<t.length;e++){const n=t[e];for(let t=0;t<n.addedNodes.length;t++){const e=n.addedNodes[t];e.nodeType===Node.ELEMENT_NODE&&o(e)}}}));return e.observe(t,{childList:!0,subtree:!0}),e}return null})(t,e)}getComputedStyleValue(t){return Qi.getComputedStyleValue(this,t)}debounce(t,e,n){return this._debouncers=this._debouncers||{},this._debouncers[t]=En.debounce(this._debouncers[t],n>0?gt.after(n):vt,e.bind(this))}isDebouncerActive(t){this._debouncers=this._debouncers||{};let e=this._debouncers[t];return!(!e||!e.isActive())}flushDebouncer(t){this._debouncers=this._debouncers||{};let e=this._debouncers[t];e&&e.flush()}cancelDebouncer(t){this._debouncers=this._debouncers||{};let e=this._debouncers[t];e&&e.cancel()}async(t,e){return e>0?gt.run(t.bind(this),e):~vt.run(t.bind(this))}cancelAsync(t){t<0?vt.cancel(~t):gt.cancel(t)}create(t,e){let n=document.createElement(t);if(e)if(n.setProperties)n.setProperties(e);else for(let t in e)n[t]=e[t];return n}elementMatches(t,e){return Hi(e||this,t)}toggleAttribute(t,e){let n=this;return 3===arguments.length&&(n=arguments[2]),1==arguments.length&&(e=!n.hasAttribute(t)),e?(Y(n).setAttribute(t,""),!0):(Y(n).removeAttribute(t),!1)}toggleClass(t,e,n){n=n||this,1==arguments.length&&(e=!n.classList.contains(t)),e?n.classList.add(t):n.classList.remove(t)}transform(t,e){(e=e||this).style.webkitTransform=t,e.style.transform=t}translate3d(t,e,n,i){this.transform("translate3d("+t+","+e+","+n+")",i=i||this)}arrayDelete(t,e){let n;if(Array.isArray(t)){if(n=t.indexOf(e),n>=0)return t.splice(n,1)}else if(n=nt(this,t).indexOf(e),n>=0)return this.splice(t,n,1);return null}_logger(t,e){switch(Array.isArray(e)&&1===e.length&&Array.isArray(e[0])&&(e=e[0]),t){case"log":case"warn":case"error":console[t](...e)}}_log(...t){this._logger("log",t)}_warn(...t){this._logger("warn",t)}_error(...t){this._logger("error",t)}_logf(t,...e){return["[%s::%s]",this.is,t,...e]}}return o.prototype.is="",o}));function er(t,e){let n=0,i=0;for(;;){if(n===t.length)return i===e.length?0:-1;if(i===e.length)return 1;if(ir(t[n])&&ir(e[i])){const r=n,o=i;n=nr(t,n+1),i=nr(e,i+1);const a=parseFloat(t.slice(r,n)),s=parseFloat(e.slice(o,i));if(a<s)return-1;if(a>s)return 1}else{if(rr(t[n])){if(!rr(e[i]))return-1}else{if(rr(e[i]))return 1;if(t[n]<e[i])return-1;if(t[n]>e[i])return 1}n++,i++}}}function nr(t,e){let n;!(function(t){t[t.NATURAL=0]="NATURAL",t[t.REAL=1]="REAL",t[t.EXPONENT_SIGN=2]="EXPONENT_SIGN",t[t.EXPONENT=3]="EXPONENT"})(n||(n={}));let i=n.NATURAL;for(;e<t.length;e++)if(i===n.NATURAL){if("."===t[e])i=n.REAL;else if("e"===t[e]||"E"===t[e])i=n.EXPONENT_SIGN;else if(!ir(t[e]))break}else if(i===n.REAL){if("e"===t[e]||"E"===t[e])i=n.EXPONENT_SIGN;else if(!ir(t[e]))break}else if(i===n.EXPONENT_SIGN){if(!ir(t[e])&&"+"!==t[e]&&"-"!==t[e])break;i=n.EXPONENT}else if(i===n.EXPONENT&&!ir(t[e]))break;return e}function ir(t){return"0"<=t&&t<="9"}function rr(t){return"/"===t||"_"===t||ir(t)}function or(t){return we.union.apply(null,we.values(t)).sort(er)}class ar extends Error{constructor(){super(...arguments),this.name="RequestCancellationError"}}class sr extends Error{constructor(t){super(t),this.name="InvalidRequestOptionsError",Object.setPrototypeOf(this,sr.prototype)}}class lr extends Error{constructor(t,e){super(),this.message=`RequestNetworkError: ${t.status} at ${e}`,this.name="RequestNetworkError",this.req=t,this.url=e}}var cr;!(function(t){t.GET="GET",t.POST="POST"})(cr||(cr={}));class ur{validate(){if(this.methodType===cr.GET&&this.body)throw new sr("body must be missing for a GET request.")}}class hr{constructor(t=1e3,e=3){this._queue=[],this._nActiveRequests=0,this._nSimultaneousRequests=t,this._maxRetries=e}request(t,e){const n=(function i(t){const e=new ur;return t?(e.methodType=cr.POST,e.body=(function n(t){const e=new FormData;for(const[n,i]of Object.entries(t)){const t=Array.isArray(i)?i:[i];for(const i of t)e.append(n,i)}return e})(t),e):(e.methodType=cr.GET,e)})(e);return this.requestWithOptions(t,n)}requestWithOptions(t,e){return e.validate(),new Promise(((t,e)=>{this._queue.push({resolve:t,reject:e}),this.launchRequests()})).then((()=>this.promiseWithRetries(t,this._maxRetries,e))).then((t=>(this._nActiveRequests--,this.launchRequests(),t)),(t=>("RequestNetworkError"===t.name&&(this._nActiveRequests--,this.launchRequests()),Promise.reject(t))))}fetch(t,e){return new Promise(((t,e)=>{this._queue.push({resolve:t,reject:e}),this.launchRequests()})).then((()=>{let n=1;return new Promise((i=>{const r=()=>{fetch(t,e).then((t=>{if(!t.ok&&this._maxRetries>n)return n++,void r();i(t),this._nActiveRequests--,this.launchRequests()}))};r()}))}))}clearQueue(){for(;this._queue.length>0;)this._queue.pop().reject(new ar("Request cancelled by clearQueue"))}activeRequests(){return this._nActiveRequests}outstandingRequests(){return this._nActiveRequests+this._queue.length}launchRequests(){for(;this._nActiveRequests<this._nSimultaneousRequests&&this._queue.length>0;)this._nActiveRequests++,this._queue.pop().resolve(void 0)}promiseWithRetries(t,e,n){return this._promiseFromUrl(t,n).then((t=>t),(i=>e>0?this.promiseWithRetries(t,e-1,n):Promise.reject(i)))}_promiseFromUrl(t,e){return new Promise(((n,i)=>{const r=(function o(t,e,n,i){const r=new XMLHttpRequest;return r.open(t,e),n&&(r.withCredentials=n),i&&r.setRequestHeader("Content-Type",i),r})(e.methodType,t,e.withCredentials,e.contentType);r.onload=function(){200===r.status?n(JSON.parse(r.responseText)):i(new lr(r,t))},r.onerror=function(){i(new lr(r,t))},e.body?r.send(e.body):r.send()}))}}const dr="experimentalPlugin",pr=new URLSearchParams(window.location.search);let fr=mr();function mr(t="data",e=pr){return"/"===t[t.length-1]&&(t=t.slice(0,t.length-1)),{environment:()=>_r(t,"/environment"),experiments:()=>_r(t,"/experiments"),pluginRoute:(e,n,i)=>_r(t+"/plugin",`/${e}${n}`,i),pluginsListing:()=>_r(t,"/plugins_listing",yr({[dr]:e.getAll(dr)})),runs:()=>_r(t,"/runs"),runsForExperiment:e=>_r(t,"/experiment_runs",yr({experiment:String(e)}))}}function gr(){return fr}function _r(t,e,n=new URLSearchParams){let i=t+e;return String(n)&&(i+=(e.includes("?")?"&":"?")+String(n)),i}function yr(t={}){const e=Object.keys(t).sort().filter((e=>t[e])),n=new URLSearchParams;return e.forEach((e=>{const i=t[e];(Array.isArray(i)?i:[i]).forEach((t=>n.append(e,t)))})),n}var vr;function br(t,e){const n=(()=>{try{return new RegExp(e)}catch(t){return null}})();return{name:e,metadata:{type:vr.SEARCH_RESULTS,validRegex:!!n,universalRegex:".*"===e},items:n?t.filter((t=>t.match(n))):[]}}function xr(t,e,n){const i=(function r(t,e=""){const n=[br(t,e)],i=(function r(t,e="/"){const n=[],i={};return t.forEach((t=>{const r=t.indexOf(e),o=r>=0?t.slice(0,r):t;if(!i[o]){const t={name:o,metadata:{type:vr.PREFIX_GROUP},items:[]};i[o]=t,n.push(t)}i[o].items.push(t)})),n})(t);return[].concat(n,i)})(or(t),n),o=(function a(t){const e=new Map;return Object.keys(t).forEach((n=>{t[n].forEach((t=>{const i=e.get(t)||[];i.push(n),e.set(t,i)}))})),e})(we.pick(t,e));return i.map((({name:t,metadata:e,items:n})=>({name:t,metadata:e,items:n.map((t=>({tag:t,runs:(o.get(t)||[]).slice()})))})))}function wr(t,e){const n=er(t.tag,e.tag);return 0!=n?n:er(t.run,e.run)}function Sr(t,e,n){return xr(t,e,n).map((function i(t){const e=we.flatten(t.items.map((({tag:t,runs:e})=>e.map((e=>({tag:t,run:e}))))));return e.sort(wr),{name:t.name,metadata:t.metadata,items:e}}))}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */!(function(t){t[t.SEARCH_RESULTS=0]="SEARCH_RESULTS",t[t.PREFIX_GROUP=1]="PREFIX_GROUP"})(vr||(vr={}));const Mr={attached:!0,detached:!0,ready:!0,created:!0,beforeRegister:!0,registered:!0,attributeChanged:!0,listeners:!0,hostAttributes:!0},Er={attached:!0,detached:!0,ready:!0,created:!0,beforeRegister:!0,registered:!0,attributeChanged:!0,behaviors:!0,_noAccessors:!0},Tr=Object.assign({listeners:!0,hostAttributes:!0,properties:!0,observers:!0},Er);function Cr(t,e,n,i){!(function r(t,e,n){const i=t._noAccessors,r=Object.getOwnPropertyNames(t);for(let o=0;o<r.length;o++){let a=r[o];if(!(a in n))if(i)e[a]=t[a];else{let n=Object.getOwnPropertyDescriptor(t,a);n&&(n.configurable=!0,Object.defineProperty(e,a,n))}}})(e,t,i);for(let t in Mr)e[t]&&(n[t]=n[t]||[],n[t].push(e[t]))}function Ar(t,e,n){e=e||[];for(let i=t.length-1;i>=0;i--){let r=t[i];r?Array.isArray(r)?Ar(r,e):e.indexOf(r)<0&&(!n||n.indexOf(r)<0)&&e.unshift(r):console.warn("behavior is null, check for missing or 404 import")}return e}function kr(t,e){for(const n in e){const i=t[n],r=e[n];t[n]=!("value"in r)&&i&&"value"in i?Object.assign({value:i.value},r):r}}const Lr=tr(HTMLElement);function Pr(t,e,n){let i;const r={};class o extends e{static _finalizeClass(){if(this.hasOwnProperty(JSCompiler_renameProperty("generatedFrom",this))){if(i)for(let t,e=0;e<i.length;e++)t=i[e],t.properties&&this.createProperties(t.properties),t.observers&&this.createObservers(t.observers,t.properties);t.properties&&this.createProperties(t.properties),t.observers&&this.createObservers(t.observers,t.properties),this._prepareTemplate()}else e._finalizeClass.call(this)}static get properties(){const e={};if(i)for(let t=0;t<i.length;t++)kr(e,i[t].properties);return kr(e,t.properties),e}static get observers(){let e=[];if(i)for(let t,n=0;n<i.length;n++)t=i[n],t.observers&&(e=e.concat(t.observers));return t.observers&&(e=e.concat(t.observers)),e}created(){super.created();const t=r.created;if(t)for(let e=0;e<t.length;e++)t[e].call(this)}_registered(){const t=o.prototype;if(!t.hasOwnProperty(JSCompiler_renameProperty("__hasRegisterFinished",t))){t.__hasRegisterFinished=!0,super._registered(),w&&a(t);const e=Object.getPrototypeOf(this);let n=r.beforeRegister;if(n)for(let t=0;t<n.length;t++)n[t].call(e);if(n=r.registered,n)for(let t=0;t<n.length;t++)n[t].call(e)}}_applyListeners(){super._applyListeners();const t=r.listeners;if(t)for(let e=0;e<t.length;e++){const n=t[e];if(n)for(let t in n)this._addMethodEventListenerToNode(this,t,n[t])}}_ensureAttributes(){const t=r.hostAttributes;if(t)for(let e=t.length-1;e>=0;e--){const n=t[e];for(let t in n)this._ensureAttribute(t,n[t])}super._ensureAttributes()}ready(){super.ready();let t=r.ready;if(t)for(let e=0;e<t.length;e++)t[e].call(this)}attached(){super.attached();let t=r.attached;if(t)for(let e=0;e<t.length;e++)t[e].call(this)}detached(){super.detached();let t=r.detached;if(t)for(let e=0;e<t.length;e++)t[e].call(this)}attributeChanged(t,e,n){super.attributeChanged();let i=r.attributeChanged;if(i)for(let r=0;r<i.length;r++)i[r].call(this,t,e,n)}}if(n){Array.isArray(n)||(n=[n]);let t=e.prototype.behaviors;i=Ar(n,null,t),o.prototype.behaviors=t?t.concat(n):i}const a=e=>{i&&(function n(t,e,i){for(let n=0;n<e.length;n++)Cr(t,e[n],i,Tr)})(e,i,r),Cr(e,t,r,Er)};return w||a(o.prototype),o.generatedFrom=t,o}const Nr=function(t,e){t||console.warn("Polymer.Class requires `info` argument");let n=e?e(Lr):Lr;return n=Pr(t,n,t.behaviors),n.is=n.prototype.is=t.is,n},Ir=function(t){let e;return e="function"==typeof t?t:Ir.Class(t),t._legacyForceObservedAttributes&&(e.prototype._legacyForceObservedAttributes=t._legacyForceObservedAttributes),customElements.define(e.is,e),e};
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
function Or(t,e,n,i,r){let o;r&&(o="object"==typeof n&&null!==n,o&&(i=t.__dataTemp[e]));let a=i!==n&&(i==i||n==n);return o&&a&&(t.__dataTemp[e]=n),a}Ir.Class=Nr;const Rr=I((t=>class extends t{_shouldPropertyChange(t,e,n){return Or(this,t,e,n,!0)}})),zr=I((t=>class extends t{static get properties(){return{mutableData:Boolean}}_shouldPropertyChange(t,e,n){return Or(this,t,e,n,this.mutableData)}}));Rr._mutablePropertyChange=Or;
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
let Dr=null;function Br(){return Dr}Br.prototype=Object.create(HTMLTemplateElement.prototype,{constructor:{value:Br,writable:!0}});const Hr=he(Br),Fr=Rr(Hr),Vr=he(class{});function Ur(t,e){for(let n=0;n<e.length;n++){let i=e[n];if(Boolean(t)!=Boolean(i.__hideTemplateChildren__))if(i.nodeType===Node.TEXT_NODE)t?(i.__polymerTextContent__=i.textContent,i.textContent=""):i.textContent=i.__polymerTextContent__;else if("slot"===i.localName)if(t)i.__polymerReplaced__=document.createComment("hidden-slot"),Y(Y(i).parentNode).replaceChild(i.__polymerReplaced__,i);else{const t=i.__polymerReplaced__;t&&Y(Y(t).parentNode).replaceChild(i,t)}else i.style&&(t?(i.__polymerDisplay__=i.style.display,i.style.display="none"):i.style.display=i.__polymerDisplay__);i.__hideTemplateChildren__=t,i._showHideChildren&&i._showHideChildren(t)}}class jr extends Vr{constructor(t){super(),this._configureProperties(t),this.root=this._stampTemplate(this.__dataHost);let e=[];this.children=e;for(let t=this.root.firstChild;t;t=t.nextSibling)e.push(t),t.__templatizeInstance=this;this.__templatizeOwner&&this.__templatizeOwner.__hideTemplateChildren__&&this._showHideChildren(!0);let n=this.__templatizeOptions;(t&&n.instanceProps||!n.instanceProps)&&this._enableProperties()}_configureProperties(t){if(this.__templatizeOptions.forwardHostProp)for(let t in this.__hostProps)this._setPendingProperty(t,this.__dataHost["_host_"+t]);for(let e in t)this._setPendingProperty(e,t[e])}forwardHostProp(t,e){this._setPendingPropertyOrPath(t,e,!1,!0)&&this.__dataHost._enqueueClient(this)}_addEventListenerToNode(t,e,n){if(this._methodHost&&this.__templatizeOptions.parentModel)this._methodHost._addEventListenerToNode(t,e,(t=>{t.model=this,n(t)}));else{let i=this.__dataHost.__dataHost;i&&i._addEventListenerToNode(t,e,n)}}_showHideChildren(t){Ur(t,this.children)}_setUnmanagedPropertyToNode(t,e,n){t.__hideTemplateChildren__&&t.nodeType==Node.TEXT_NODE&&"textContent"==e?t.__polymerTextContent__=n:super._setUnmanagedPropertyToNode(t,e,n)}get parentModel(){let t=this.__parentModel;if(!t){let e;t=this;do{t=t.__dataHost.__dataHost}while((e=t.__templatizeOptions)&&!e.parentModel);this.__parentModel=t}return t}dispatchEvent(t){return!0}}const Gr=Rr(jr);function Wr(t){let e=t.__dataHost;return e&&e._methodHost||e}function qr(t,e){return function t(n,i,r){e.call(n.__templatizeOwner,i.substring("_host_".length),r[i])}}function Yr(t,e){return function t(n,i,r){e.call(n.__templatizeOwner,n,i,r[i])}}function Xr(t,e,n){if(b&&!Wr(t))throw new Error("strictTemplatePolicy: template owner not trusted");if(n=n||{},t.__templatizeOwner)throw new Error("A <template> can only be templatized once");t.__templatizeOwner=e;let i=(e?e.constructor:jr)._parseTemplate(t),r=i.templatizeInstanceClass;r||(r=(function o(t,e,n){let i=n.mutableData?Gr:jr;Xr.mixin&&(i=Xr.mixin(i));let r=class extends i{};return r.prototype.__templatizeOptions=n,r.prototype._bindTemplate(t),(function o(t,e,n,i){let r=n.hostProps||{};for(let e in i.instanceProps){delete r[e];let n=i.notifyInstanceProp;n&&t.prototype._addPropertyEffect(e,t.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:Yr(0,n)})}if(i.forwardHostProp&&e.__dataHost)for(let e in r)n.hasHostProps||(n.hasHostProps=!0),t.prototype._addPropertyEffect(e,t.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:function t(e,n,i){e.__dataHost._setPendingPropertyOrPath("_host_"+n,i[n],!0,!0)}})})(r,t,e,n),r})(t,i,n),i.templatizeInstanceClass=r);const a=Wr(t);!(function s(t,e,n,i){let r=n.forwardHostProp;if(r&&e.hasHostProps){const o="template"==t.localName;let a=e.templatizeTemplateClass;if(!a){if(o){let t=n.mutableData?Fr:Hr;class i extends t{}a=e.templatizeTemplateClass=i}else{const n=t.constructor;class i extends n{}a=e.templatizeTemplateClass=i}let s=e.hostProps;for(let t in s)a.prototype._addPropertyEffect("_host_"+t,a.prototype.PROPERTY_EFFECT_TYPES.PROPAGATE,{fn:qr(0,r)}),a.prototype._createNotifyingProperty("_host_"+t);S&&i&&(function o(t,e,n){const i=n.constructor._properties,{propertyEffects:r}=t,{instanceProps:o}=e;for(let t in r)if(!(i[t]||o&&o[t])){const e=r[t];for(let n=0;n<e.length;n++){const{part:i}=e[n].info;if(!i.signature||!i.signature.static){console.warn(`Property '${t}' used in template but not declared in 'properties'; attribute will not be observed.`);break}}}})(e,n,i)}if(t.__dataProto&&Object.assign(t.__data,t.__dataProto),o)!(function a(t,e){Dr=t,Object.setPrototypeOf(t,e.prototype),new e,Dr=null})(t,a),t.__dataTemp={},t.__dataPending=null,t.__dataOld=null,t._enableProperties();else{Object.setPrototypeOf(t,a.prototype);const n=e.hostProps;for(let e in n)if(e="_host_"+e,e in t){const n=t[e];delete t[e],t.__data[e]=n}}}})(t,i,n,a);let l=class extends r{};return l.prototype._methodHost=a,l.prototype.__dataHost=t,l.prototype.__templatizeOwner=e,l.prototype.__hostProps=i.hostProps,l=l,l}function $r(t,e){let n;for(;e;)if(n=e.__dataHost?e:e.__templatizeInstance){if(n.__dataHost==t)return n;e=n.__dataHost}else e=Y(e).parentNode;return null}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */const Kr={templatize(t,e){this._templatizerTemplate=t,this.ctor=Xr(t,this,{mutableData:Boolean(e),parentModel:this._parentModel,instanceProps:this._instanceProps,forwardHostProp:this._forwardHostPropV2,notifyInstanceProp:this._notifyInstancePropV2})},stamp(t){return new this.ctor(t)},modelForElement(t){return $r(this._templatizerTemplate,t)}};
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */let Zr=!1;function Jr(){if(w&&!m){if(!Zr){Zr=!0;const t=document.createElement("style");t.textContent="dom-bind,dom-if,dom-repeat{display:none;}",document.head.appendChild(t)}return!0}return!1}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */const Qr=di(zr(he(HTMLElement)));customElements.define("dom-bind",class extends Qr{static get observedAttributes(){return["mutable-data"]}constructor(){if(super(),b)throw new Error("strictTemplatePolicy: dom-bind not allowed");this.root=null,this.$=null,this.__children=null}attributeChangedCallback(t,e,n,i){this.mutableData=!0}connectedCallback(){Jr()||(this.style.display="none"),this.render()}disconnectedCallback(){this.__removeChildren()}__insertChildren(){Y(Y(this).parentNode).insertBefore(this.root,this)}__removeChildren(){if(this.__children)for(let t=0;t<this.__children.length;t++)this.root.appendChild(this.__children[t])}render(){let t;if(!this.__children){if(t=t||this.querySelector("template"),!t){let e=new MutationObserver((()=>{if(t=this.querySelector("template"),!t)throw new Error("dom-bind requires a <template> child");e.disconnect(),this.render()}));return void e.observe(this,{childList:!0})}this.root=this._stampTemplate(t),this.$=this.root.$,this.__children=[];for(let t=this.root.firstChild;t;t=t.nextSibling)this.__children[this.__children.length]=t;this._enableProperties()}this.__insertChildren(),this.dispatchEvent(new CustomEvent("dom-change",{bubbles:!0,composed:!0}))}});
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const to=zr(ye);class eo extends to{static get is(){return"dom-repeat"}static get template(){return null}static get properties(){return{items:{type:Array},as:{type:String,value:"item"},indexAs:{type:String,value:"index"},itemsIndexAs:{type:String,value:"itemsIndex"},sort:{type:Function,observer:"__sortChanged"},filter:{type:Function,observer:"__filterChanged"},observe:{type:String,observer:"__observeChanged"},delay:Number,renderedItemCount:{type:Number,notify:!k,readOnly:!0},initialCount:{type:Number},targetFramerate:{type:Number,value:20},_targetFrameTime:{type:Number,computed:"__computeFrameTime(targetFramerate)"},notifyDomChange:{type:Boolean},reuseChunkedInstances:{type:Boolean}}}static get observers(){return["__itemsChanged(items.*)"]}constructor(){super(),this.__instances=[],this.__renderDebouncer=null,this.__itemsIdxToInstIdx={},this.__chunkCount=null,this.__renderStartTime=null,this.__itemsArrayChanged=!1,this.__shouldMeasureChunk=!1,this.__shouldContinueChunking=!1,this.__chunkingId=0,this.__sortFn=null,this.__filterFn=null,this.__observePaths=null,this.__ctor=null,this.__isDetached=!0,this.template=null}disconnectedCallback(){super.disconnectedCallback(),this.__isDetached=!0;for(let t=0;t<this.__instances.length;t++)this.__detachInstance(t)}connectedCallback(){if(super.connectedCallback(),Jr()||(this.style.display="none"),this.__isDetached){this.__isDetached=!1;let t=Y(Y(this).parentNode);for(let e=0;e<this.__instances.length;e++)this.__attachInstance(e,t)}}__ensureTemplatized(){if(!this.__ctor){const t=this;let e=this.template=t._templateInfo?t:this.querySelector("template");if(!e){let t=new MutationObserver((()=>{if(!this.querySelector("template"))throw new Error("dom-repeat requires a <template> child");t.disconnect(),this.__render()}));return t.observe(this,{childList:!0}),!1}let n={};n[this.as]=!0,n[this.indexAs]=!0,n[this.itemsIndexAs]=!0,this.__ctor=Xr(e,this,{mutableData:this.mutableData,parentModel:!0,instanceProps:n,forwardHostProp:function(t,e){let n=this.__instances;for(let i,r=0;r<n.length&&(i=n[r]);r++)i.forwardHostProp(t,e)},notifyInstanceProp:function(t,e,n){if(Q(this.as,e)){let i=t[this.itemsIndexAs];e==this.as&&(this.items[i]=n);let r=J(this.as,`${JSCompiler_renameProperty("items",this)}.${i}`,e);this.notifyPath(r,n)}}})}return!0}__getMethodHost(){return this.__dataHost._methodHost||this.__dataHost}__functionFromPropertyValue(t){if("string"==typeof t){let e=t,n=this.__getMethodHost();return function(){return n[e].apply(n,arguments)}}return t}__sortChanged(t){this.__sortFn=this.__functionFromPropertyValue(t),this.items&&this.__debounceRender(this.__render)}__filterChanged(t){this.__filterFn=this.__functionFromPropertyValue(t),this.items&&this.__debounceRender(this.__render)}__computeFrameTime(t){return Math.ceil(1e3/t)}__observeChanged(){this.__observePaths=this.observe&&this.observe.replace(".*",".").split(" ")}__handleObservedPaths(t){if(this.__sortFn||this.__filterFn)if(t){if(this.__observePaths){let e=this.__observePaths;for(let n=0;n<e.length;n++)0===t.indexOf(e[n])&&this.__debounceRender(this.__render,this.delay)}}else this.__debounceRender(this.__render,this.delay)}__itemsChanged(t){this.items&&!Array.isArray(this.items)&&console.warn("dom-repeat expected array for `items`, found",this.items),this.__handleItemPath(t.path,t.value)||("items"===t.path&&(this.__itemsArrayChanged=!0),this.__debounceRender(this.__render))}__debounceRender(t,e=0){this.__renderDebouncer=En.debounce(this.__renderDebouncer,e>0?gt.after(e):vt,t.bind(this)),Cn(this.__renderDebouncer)}render(){this.__debounceRender(this.__render),zi()}__render(){if(!this.__ensureTemplatized())return;let t=this.items||[];const e=this.__sortAndFilterItems(t),n=this.__calculateLimit(e.length);this.__updateInstances(t,n,e),this.initialCount&&(this.__shouldMeasureChunk||this.__shouldContinueChunking)&&(cancelAnimationFrame(this.__chunkingId),this.__chunkingId=requestAnimationFrame((()=>this.__continueChunking()))),this._setRenderedItemCount(this.__instances.length),k&&!this.notifyDomChange||this.dispatchEvent(new CustomEvent("dom-change",{bubbles:!0,composed:!0}))}__sortAndFilterItems(t){let e=new Array(t.length);for(let n=0;n<t.length;n++)e[n]=n;return this.__filterFn&&(e=e.filter(((e,n,i)=>this.__filterFn(t[e],n,i)))),this.__sortFn&&e.sort(((e,n)=>this.__sortFn(t[e],t[n]))),e}__calculateLimit(t){let e=t;const n=this.__instances.length;if(this.initialCount){let i;!this.__chunkCount||this.__itemsArrayChanged&&!this.reuseChunkedInstances?(e=Math.min(t,this.initialCount),i=Math.max(e-n,0),this.__chunkCount=i||1):(i=Math.min(Math.max(t-n,0),this.__chunkCount),e=Math.min(n+i,t)),this.__shouldMeasureChunk=i===this.__chunkCount,this.__shouldContinueChunking=e<t,this.__renderStartTime=performance.now()}return this.__itemsArrayChanged=!1,e}__continueChunking(){if(this.__shouldMeasureChunk){const t=performance.now()-this.__renderStartTime;this.__chunkCount=Math.round(this.__chunkCount*(this._targetFrameTime/t))||1}this.__shouldContinueChunking&&this.__debounceRender(this.__render)}__updateInstances(t,e,n){const i=this.__itemsIdxToInstIdx={};let r;for(r=0;r<e;r++){let e=this.__instances[r],o=n[r],a=t[o];i[o]=r,e?(e._setPendingProperty(this.as,a),e._setPendingProperty(this.indexAs,r),e._setPendingProperty(this.itemsIndexAs,o),e._flushProperties()):this.__insertInstance(a,r,o)}for(let t=this.__instances.length-1;t>=r;t--)this.__detachAndRemoveInstance(t)}__detachInstance(t){let e=this.__instances[t];const n=Y(e.root);for(let t=0;t<e.children.length;t++)n.appendChild(e.children[t]);return e}__attachInstance(t,e){e.insertBefore(this.__instances[t].root,this)}__detachAndRemoveInstance(t){this.__detachInstance(t),this.__instances.splice(t,1)}__stampInstance(t,e,n){let i={};return i[this.as]=t,i[this.indexAs]=e,i[this.itemsIndexAs]=n,new this.__ctor(i)}__insertInstance(t,e,n){const i=this.__stampInstance(t,e,n);let r=this.__instances[e+1],o=r?r.children[0]:this;return Y(Y(this).parentNode).insertBefore(i.root,o),this.__instances[e]=i,i}_showHideChildren(t){for(let e=0;e<this.__instances.length;e++)this.__instances[e]._showHideChildren(t)}__handleItemPath(t,e){let n=t.slice(6),i=n.indexOf("."),r=i<0?n:n.substring(0,i);if(r==parseInt(r,10)){let t=i<0?"":n.substring(i+1);this.__handleObservedPaths(t);let o=this.__instances[this.__itemsIdxToInstIdx[r]];return o&&(o._setPendingPropertyOrPath(this.as+(t?"."+t:""),e,!1,!0),o._flushProperties()),!0}}itemForElement(t){let e=this.modelForElement(t);return e&&e[this.as]}indexForElement(t){let e=this.modelForElement(t);return e&&e[this.indexAs]}modelForElement(t){return $r(this.template,t)}}customElements.define(eo.is,eo);
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
class no extends ye{static get is(){return"dom-if"}static get template(){return null}static get properties(){return{if:{type:Boolean,observer:"__debounceRender"},restamp:{type:Boolean,observer:"__debounceRender"},notifyDomChange:{type:Boolean}}}constructor(){super(),this.__renderDebouncer=null,this._lastIf=!1,this.__hideTemplateChildren__=!1}__debounceRender(){this.__renderDebouncer=En.debounce(this.__renderDebouncer,vt,(()=>this.__render())),Cn(this.__renderDebouncer)}disconnectedCallback(){super.disconnectedCallback();const t=Y(this).parentNode;t&&(t.nodeType!=Node.DOCUMENT_FRAGMENT_NODE||Y(t).host)||this.__teardownInstance()}connectedCallback(){super.connectedCallback(),Jr()||(this.style.display="none"),this.if&&this.__debounceRender()}__ensureTemplate(){if(!this.__template){const t=this;let e=t._templateInfo?t:Y(t).querySelector("template");if(!e){let t=new MutationObserver((()=>{if(!Y(this).querySelector("template"))throw new Error("dom-if requires a <template> child");t.disconnect(),this.__render()}));return t.observe(this,{childList:!0}),!1}this.__template=e}return!0}__ensureInstance(){let t=Y(this).parentNode;if(this.__hasInstance()){let e=this.__getInstanceNodes();if(e&&e.length&&Y(this).previousSibling!==e[e.length-1])for(let n,i=0;i<e.length&&(n=e[i]);i++)Y(t).insertBefore(n,this)}else{if(!t)return!1;if(!this.__ensureTemplate())return!1;this.__createAndInsertInstance(t)}return!0}render(){zi()}__render(){if(this.if){if(!this.__ensureInstance())return}else this.restamp&&this.__teardownInstance();this._showHideChildren(),k&&!this.notifyDomChange||this.if==this._lastIf||(this.dispatchEvent(new CustomEvent("dom-change",{bubbles:!0,composed:!0})),this._lastIf=this.if)}__hasInstance(){}__getInstanceNodes(){}__createAndInsertInstance(t){}__teardownInstance(){}_showHideChildren(){}}const io=A?class extends no{constructor(){super(),this.__instance=null,this.__syncInfo=null}__hasInstance(){return Boolean(this.__instance)}__getInstanceNodes(){return this.__instance.templateInfo.childNodes}__createAndInsertInstance(t){const e=this.__dataHost||this;if(b&&!this.__dataHost)throw new Error("strictTemplatePolicy: template owner not trusted");const n=e._bindTemplate(this.__template,!0);n.runEffects=(t,e,n)=>{let i=this.__syncInfo;if(this.if)i&&(this.__syncInfo=null,this._showHideChildren(),e=Object.assign(i.changedProps,e)),t(e,n);else if(this.__instance)if(i||(i=this.__syncInfo={runEffects:t,changedProps:{}}),n)for(const t in e){const e=$(t);i.changedProps[e]=this.__dataHost[e]}else Object.assign(i.changedProps,e)},this.__instance=e._stampTemplate(this.__template,n),Y(t).insertBefore(this.__instance,this)}__syncHostProperties(){const t=this.__syncInfo;t&&(this.__syncInfo=null,t.runEffects(t.changedProps,!1))}__teardownInstance(){this.__instance&&((this.__dataHost||this)._removeBoundDom(this.__instance),this.__instance=null,this.__syncInfo=null)}_showHideChildren(){const t=this.__hideTemplateChildren__||!this.if;this.__instance&&Boolean(this.__instance.__hidden)!==t&&(this.__instance.__hidden=t,Ur(t,this.__instance.templateInfo.childNodes)),t||this.__syncHostProperties()}}:class extends no{constructor(){super(),this.__ctor=null,this.__instance=null,this.__invalidProps=null}__hasInstance(){return Boolean(this.__instance)}__getInstanceNodes(){return this.__instance.children}__createAndInsertInstance(t){this.__ctor||(this.__ctor=Xr(this.__template,this,{mutableData:!0,forwardHostProp:function(t,e){this.__instance&&(this.if?this.__instance.forwardHostProp(t,e):(this.__invalidProps=this.__invalidProps||Object.create(null),this.__invalidProps[$(t)]=!0))}})),this.__instance=new this.__ctor,Y(t).insertBefore(this.__instance.root,this)}__teardownInstance(){if(this.__instance){let t=this.__instance.children;if(t&&t.length){let e=Y(t[0]).parentNode;if(e){e=Y(e);for(let n,i=0;i<t.length&&(n=t[i]);i++)e.removeChild(n)}}this.__invalidProps=null,this.__instance=null}}__syncHostProperties(){let t=this.__invalidProps;if(t){this.__invalidProps=null;for(let e in t)this.__instance._setPendingProperty(e,this.__dataHost[e]);this.__instance._flushProperties()}}_showHideChildren(){const t=this.__hideTemplateChildren__||!this.if;this.__instance&&Boolean(this.__instance.__hidden)!==t&&(this.__instance.__hidden=t,this.__instance._showHideChildren(t)),t||this.__syncHostProperties()}};customElements.define(io.is,io);
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
let ro=I((t=>{let e=me(t);return class extends e{static get properties(){return{items:{type:Array},multi:{type:Boolean,value:!1},selected:{type:Object,notify:!0},selectedItem:{type:Object,notify:!0},toggle:{type:Boolean,value:!1}}}static get observers(){return["__updateSelection(multi, items.*)"]}constructor(){super(),this.__lastItems=null,this.__lastMulti=null,this.__selectedMap=null}__updateSelection(t,e){let n=e.path;if(n==JSCompiler_renameProperty("items",this)){let n=e.base||[],i=this.__lastItems;if(t!==this.__lastMulti&&this.clearSelection(),i){let t=Ni(n,i);this.__applySplices(t)}this.__lastItems=n,this.__lastMulti=t}else if(e.path==`${JSCompiler_renameProperty("items",this)}.splices`)this.__applySplices(e.value.indexSplices);else{let t=n.slice(`${JSCompiler_renameProperty("items",this)}.`.length),e=parseInt(t,10);t.indexOf(".")<0&&t==e&&this.__deselectChangedIdx(e)}}__applySplices(t){let e=this.__selectedMap;for(let n=0;n<t.length;n++){let i=t[n];e.forEach(((t,n)=>{t<i.index||e.set(n,t>=i.index+i.removed.length?t+i.addedCount-i.removed.length:-1)}));for(let t=0;t<i.addedCount;t++){let n=i.index+t;e.has(this.items[n])&&e.set(this.items[n],n)}}this.__updateLinks();let n=0;e.forEach(((t,i)=>{t<0?(this.multi?this.splice(JSCompiler_renameProperty("selected",this),n,1):this.selected=this.selectedItem=null,e.delete(i)):n++}))}__updateLinks(){if(this.__dataLinkedPaths={},this.multi){let t=0;this.__selectedMap.forEach((e=>{e>=0&&this.linkPaths(`${JSCompiler_renameProperty("items",this)}.${e}`,`${JSCompiler_renameProperty("selected",this)}.${t++}`)}))}else this.__selectedMap.forEach((t=>{this.linkPaths(JSCompiler_renameProperty("selected",this),`${JSCompiler_renameProperty("items",this)}.${t}`),this.linkPaths(JSCompiler_renameProperty("selectedItem",this),`${JSCompiler_renameProperty("items",this)}.${t}`)}))}clearSelection(){this.__dataLinkedPaths={},this.__selectedMap=new Map,this.selected=this.multi?[]:null,this.selectedItem=null}isSelected(t){return this.__selectedMap.has(t)}isIndexSelected(t){return this.isSelected(this.items[t])}__deselectChangedIdx(t){let e=this.__selectedIndexForItemIndex(t);if(e>=0){let t=0;this.__selectedMap.forEach(((n,i)=>{e==t++&&this.deselect(i)}))}}__selectedIndexForItemIndex(t){let e=this.__dataLinkedPaths[`${JSCompiler_renameProperty("items",this)}.${t}`];if(e)return parseInt(e.slice(`${JSCompiler_renameProperty("selected",this)}.`.length),10)}deselect(t){let e=this.__selectedMap.get(t);if(e>=0){let n;this.__selectedMap.delete(t),this.multi&&(n=this.__selectedIndexForItemIndex(e)),this.__updateLinks(),this.multi?this.splice(JSCompiler_renameProperty("selected",this),n,1):this.selected=this.selectedItem=null}}deselectIndex(t){this.deselect(this.items[t])}select(t){this.selectIndex(this.items.indexOf(t))}selectIndex(t){let e=this.items[t];this.isSelected(e)?this.toggle&&this.deselectIndex(t):(this.multi||this.__selectedMap.clear(),this.__selectedMap.set(e,t),this.__updateLinks(),this.multi?this.push(JSCompiler_renameProperty("selected",this),e):this.selected=this.selectedItem=e)}}}))(ye);class oo extends ro{static get is(){return"array-selector"}static get template(){return null}}customElements.define(oo.is,oo);
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const ao=new wn;window.ShadyCSS||(window.ShadyCSS={prepareTemplate(t,e,n){},prepareTemplateDom(t,e){},prepareTemplateStyles(t,e,n){},styleSubtree(t,e){ao.processStyles(),Je(t,e)},styleElement(t){ao.processStyles()},styleDocument(t){ao.processStyles(),Je(document.body,t)},getComputedStyleValue:(t,e)=>Qe(t,e),flushCustomStyles(){},nativeCss:Ae,nativeShadow:Se,cssBuild:Ee,disableRuntime:Ce}),window.ShadyCSS.CustomStyleInterface=ao;
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const so="include",lo=window.ShadyCSS.CustomStyleInterface;class co extends HTMLElement{constructor(){super(),this._style=null,lo.addCustomStyle(this)}getStyle(){if(this._style)return this._style;const t=this.querySelector("style");if(!t)return null;this._style=t;const e=t.getAttribute(so);return e&&(t.removeAttribute(so),t.textContent=(function n(t){let e=t.trim().split(/\s+/),n="";for(let t=0;t<e.length;t++)n+=q(e[t]);return n})(e)+t.textContent),this.ownerDocument!==window.document&&window.document.head.appendChild(this),this._style}}
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
let uo;window.customElements.define("custom-style",co),uo=Rr._mutablePropertyChange;const ho={properties:{mutableData:Boolean},_shouldPropertyChange(t,e,n){return uo(this,t,e,n,this.mutableData)}},po=tr(HTMLElement).prototype;
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
var fo=new Set;const mo={properties:{_parentResizable:{type:Object,observer:"_parentResizableChanged"},_notifyingDescendant:{type:Boolean,value:!1}},listeners:{"iron-request-resize-notifications":"_onIronRequestResizeNotifications"},created:function(){this._interestedResizables=[],this._boundNotifyResize=this.notifyResize.bind(this),this._boundOnDescendantIronResize=this._onDescendantIronResize.bind(this)},attached:function(){this._requestResizeNotifications()},detached:function(){this._parentResizable?this._parentResizable.stopResizeNotificationsFor(this):(fo.delete(this),window.removeEventListener("resize",this._boundNotifyResize)),this._parentResizable=null},notifyResize:function(){this.isAttached&&(this._interestedResizables.forEach((function(t){this.resizerShouldNotify(t)&&this._notifyDescendant(t)}),this),this._fireResize())},assignParentResizable:function(t){this._parentResizable&&this._parentResizable.stopResizeNotificationsFor(this),this._parentResizable=t,t&&-1===t._interestedResizables.indexOf(this)&&(t._interestedResizables.push(this),t._subscribeIronResize(this))},stopResizeNotificationsFor:function(t){var e=this._interestedResizables.indexOf(t);e>-1&&(this._interestedResizables.splice(e,1),this._unsubscribeIronResize(t))},_subscribeIronResize:function(t){t.addEventListener("iron-resize",this._boundOnDescendantIronResize)},_unsubscribeIronResize:function(t){t.removeEventListener("iron-resize",this._boundOnDescendantIronResize)},resizerShouldNotify:function(t){return!0},_onDescendantIronResize:function(t){this._notifyingDescendant?t.stopPropagation():m||this._fireResize()},_fireResize:function(){this.fire("iron-resize",null,{node:this,bubbles:!1})},_onIronRequestResizeNotifications:function(t){var e=qi(t).rootTarget;e!==this&&(e.assignParentResizable(this),this._notifyDescendant(e),t.stopPropagation())},_parentResizableChanged:function(t){t&&window.removeEventListener("resize",this._boundNotifyResize)},_notifyDescendant:function(t){this.isAttached&&(this._notifyingDescendant=!0,t.notifyResize(),this._notifyingDescendant=!1)},_requestResizeNotifications:function(){if(this.isAttached)if("loading"===document.readyState){var t=this._requestResizeNotifications.bind(this);document.addEventListener("readystatechange",(function e(){document.removeEventListener("readystatechange",e),t()}))}else this._findParent(),this._parentResizable?this._parentResizable._interestedResizables.forEach((function(t){t!==this&&t._findParent()}),this):(fo.forEach((function(t){t!==this&&t._findParent()}),this),window.addEventListener("resize",this._boundNotifyResize),this.notifyResize())},_findParent:function(){this.assignParentResizable(null),this.fire("iron-request-resize-notifications",null,{node:this,bubbles:!0,cancelable:!0}),this._parentResizable?fo.delete(this):fo.add(this)}};var go=Object.freeze({__proto__:null,IronResizableBehavior:mo});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */Ir({_template:_e`
    <style>
      :host {
        display: block;
        transition-duration: var(--iron-collapse-transition-duration, 300ms);
        /* Safari 10 needs this property prefixed to correctly apply the custom property */
        -webkit-transition-duration: var(--iron-collapse-transition-duration, 300ms);
        overflow: visible;
      }

      :host(.iron-collapse-closed) {
        display: none;
      }

      :host(:not(.iron-collapse-opened)) {
        overflow: hidden;
      }
    </style>

    <slot></slot>
`,is:"iron-collapse",behaviors:[mo],properties:{horizontal:{type:Boolean,value:!1,observer:"_horizontalChanged"},opened:{type:Boolean,value:!1,notify:!0,observer:"_openedChanged"},transitioning:{type:Boolean,notify:!0,readOnly:!0},noAnimation:{type:Boolean},_desiredSize:{type:String,value:""}},get dimension(){return this.horizontal?"width":"height"},get _dimensionMax(){return this.horizontal?"maxWidth":"maxHeight"},get _dimensionMaxCss(){return this.horizontal?"max-width":"max-height"},hostAttributes:{role:"group","aria-hidden":"true"},listeners:{transitionend:"_onTransitionEnd"},toggle:function(){this.opened=!this.opened},show:function(){this.opened=!0},hide:function(){this.opened=!1},updateSize:function(t,e){t="auto"===t?"":t;var n=e&&!this.noAnimation&&this.isAttached&&this._desiredSize!==t;if(this._desiredSize=t,this._updateTransition(!1),n){var i=this._calcSize();""===t&&(this.style[this._dimensionMax]="",t=this._calcSize()),this.style[this._dimensionMax]=i,this.scrollTop=this.scrollTop,this._updateTransition(!0),n=t!==i}this.style[this._dimensionMax]=t,n||this._transitionEnd()},enableTransition:function(t){po._warn("`enableTransition()` is deprecated, use `noAnimation` instead."),this.noAnimation=!t},_updateTransition:function(t){this.style.transitionDuration=t&&!this.noAnimation?"":"0s"},_horizontalChanged:function(){this.style.transitionProperty=this._dimensionMaxCss,this.style["maxWidth"===this._dimensionMax?"maxHeight":"maxWidth"]="",this.updateSize(this.opened?"auto":"0px",!1)},_openedChanged:function(){this.setAttribute("aria-hidden",!this.opened),this._setTransitioning(!0),this.toggleClass("iron-collapse-closed",!1),this.toggleClass("iron-collapse-opened",!1),this.updateSize(this.opened?"auto":"0px",!0),this.opened&&this.focus()},_transitionEnd:function(){this.style[this._dimensionMax]=this._desiredSize,this.toggleClass("iron-collapse-closed",!this.opened),this.toggleClass("iron-collapse-opened",this.opened),this._updateTransition(!1),this.notifyResize(),this._setTransitioning(!1)},_onTransitionEnd:function(t){qi(t).rootTarget===this&&this._transitionEnd()},_calcSize:function(){return this.getBoundingClientRect()[this.dimension]+"px"}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const _o=_e`
/* Most common used flex styles*/
<dom-module id="iron-flex">
  <template>
    <style>
      .layout.horizontal,
      .layout.vertical {
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
      }

      .layout.inline {
        display: -ms-inline-flexbox;
        display: -webkit-inline-flex;
        display: inline-flex;
      }

      .layout.horizontal {
        -ms-flex-direction: row;
        -webkit-flex-direction: row;
        flex-direction: row;
      }

      .layout.vertical {
        -ms-flex-direction: column;
        -webkit-flex-direction: column;
        flex-direction: column;
      }

      .layout.wrap {
        -ms-flex-wrap: wrap;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
      }

      .layout.no-wrap {
        -ms-flex-wrap: nowrap;
        -webkit-flex-wrap: nowrap;
        flex-wrap: nowrap;
      }

      .layout.center,
      .layout.center-center {
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
      }

      .layout.center-justified,
      .layout.center-center {
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
      }

      .flex {
        -ms-flex: 1 1 0.000000001px;
        -webkit-flex: 1;
        flex: 1;
        -webkit-flex-basis: 0.000000001px;
        flex-basis: 0.000000001px;
      }

      .flex-auto {
        -ms-flex: 1 1 auto;
        -webkit-flex: 1 1 auto;
        flex: 1 1 auto;
      }

      .flex-none {
        -ms-flex: none;
        -webkit-flex: none;
        flex: none;
      }
    </style>
  </template>
</dom-module>
/* Basic flexbox reverse styles */
<dom-module id="iron-flex-reverse">
  <template>
    <style>
      .layout.horizontal-reverse,
      .layout.vertical-reverse {
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
      }

      .layout.horizontal-reverse {
        -ms-flex-direction: row-reverse;
        -webkit-flex-direction: row-reverse;
        flex-direction: row-reverse;
      }

      .layout.vertical-reverse {
        -ms-flex-direction: column-reverse;
        -webkit-flex-direction: column-reverse;
        flex-direction: column-reverse;
      }

      .layout.wrap-reverse {
        -ms-flex-wrap: wrap-reverse;
        -webkit-flex-wrap: wrap-reverse;
        flex-wrap: wrap-reverse;
      }
    </style>
  </template>
</dom-module>
/* Flexbox alignment */
<dom-module id="iron-flex-alignment">
  <template>
    <style>
      /**
       * Alignment in cross axis.
       */
      .layout.start {
        -ms-flex-align: start;
        -webkit-align-items: flex-start;
        align-items: flex-start;
      }

      .layout.center,
      .layout.center-center {
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
      }

      .layout.end {
        -ms-flex-align: end;
        -webkit-align-items: flex-end;
        align-items: flex-end;
      }

      .layout.baseline {
        -ms-flex-align: baseline;
        -webkit-align-items: baseline;
        align-items: baseline;
      }

      /**
       * Alignment in main axis.
       */
      .layout.start-justified {
        -ms-flex-pack: start;
        -webkit-justify-content: flex-start;
        justify-content: flex-start;
      }

      .layout.center-justified,
      .layout.center-center {
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
      }

      .layout.end-justified {
        -ms-flex-pack: end;
        -webkit-justify-content: flex-end;
        justify-content: flex-end;
      }

      .layout.around-justified {
        -ms-flex-pack: distribute;
        -webkit-justify-content: space-around;
        justify-content: space-around;
      }

      .layout.justified {
        -ms-flex-pack: justify;
        -webkit-justify-content: space-between;
        justify-content: space-between;
      }

      /**
       * Self alignment.
       */
      .self-start {
        -ms-align-self: flex-start;
        -webkit-align-self: flex-start;
        align-self: flex-start;
      }

      .self-center {
        -ms-align-self: center;
        -webkit-align-self: center;
        align-self: center;
      }

      .self-end {
        -ms-align-self: flex-end;
        -webkit-align-self: flex-end;
        align-self: flex-end;
      }

      .self-stretch {
        -ms-align-self: stretch;
        -webkit-align-self: stretch;
        align-self: stretch;
      }

      .self-baseline {
        -ms-align-self: baseline;
        -webkit-align-self: baseline;
        align-self: baseline;
      }

      /**
       * multi-line alignment in main axis.
       */
      .layout.start-aligned {
        -ms-flex-line-pack: start;  /* IE10 */
        -ms-align-content: flex-start;
        -webkit-align-content: flex-start;
        align-content: flex-start;
      }

      .layout.end-aligned {
        -ms-flex-line-pack: end;  /* IE10 */
        -ms-align-content: flex-end;
        -webkit-align-content: flex-end;
        align-content: flex-end;
      }

      .layout.center-aligned {
        -ms-flex-line-pack: center;  /* IE10 */
        -ms-align-content: center;
        -webkit-align-content: center;
        align-content: center;
      }

      .layout.between-aligned {
        -ms-flex-line-pack: justify;  /* IE10 */
        -ms-align-content: space-between;
        -webkit-align-content: space-between;
        align-content: space-between;
      }

      .layout.around-aligned {
        -ms-flex-line-pack: distribute;  /* IE10 */
        -ms-align-content: space-around;
        -webkit-align-content: space-around;
        align-content: space-around;
      }
    </style>
  </template>
</dom-module>
/* Non-flexbox positioning helper styles */
<dom-module id="iron-flex-factors">
  <template>
    <style>
      .flex,
      .flex-1 {
        -ms-flex: 1 1 0.000000001px;
        -webkit-flex: 1;
        flex: 1;
        -webkit-flex-basis: 0.000000001px;
        flex-basis: 0.000000001px;
      }

      .flex-2 {
        -ms-flex: 2;
        -webkit-flex: 2;
        flex: 2;
      }

      .flex-3 {
        -ms-flex: 3;
        -webkit-flex: 3;
        flex: 3;
      }

      .flex-4 {
        -ms-flex: 4;
        -webkit-flex: 4;
        flex: 4;
      }

      .flex-5 {
        -ms-flex: 5;
        -webkit-flex: 5;
        flex: 5;
      }

      .flex-6 {
        -ms-flex: 6;
        -webkit-flex: 6;
        flex: 6;
      }

      .flex-7 {
        -ms-flex: 7;
        -webkit-flex: 7;
        flex: 7;
      }

      .flex-8 {
        -ms-flex: 8;
        -webkit-flex: 8;
        flex: 8;
      }

      .flex-9 {
        -ms-flex: 9;
        -webkit-flex: 9;
        flex: 9;
      }

      .flex-10 {
        -ms-flex: 10;
        -webkit-flex: 10;
        flex: 10;
      }

      .flex-11 {
        -ms-flex: 11;
        -webkit-flex: 11;
        flex: 11;
      }

      .flex-12 {
        -ms-flex: 12;
        -webkit-flex: 12;
        flex: 12;
      }
    </style>
  </template>
</dom-module>
<dom-module id="iron-positioning">
  <template>
    <style>
      .block {
        display: block;
      }

      [hidden] {
        display: none !important;
      }

      .invisible {
        visibility: hidden !important;
      }

      .relative {
        position: relative;
      }

      .fit {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
      }

      body.fullbleed {
        margin: 0;
        height: 100vh;
      }

      .scroll {
        -webkit-overflow-scrolling: touch;
        overflow: auto;
      }

      /* fixed position */
      .fixed-bottom,
      .fixed-left,
      .fixed-right,
      .fixed-top {
        position: fixed;
      }

      .fixed-top {
        top: 0;
        left: 0;
        right: 0;
      }

      .fixed-right {
        top: 0;
        right: 0;
        bottom: 0;
      }

      .fixed-bottom {
        right: 0;
        bottom: 0;
        left: 0;
      }

      .fixed-left {
        top: 0;
        bottom: 0;
        left: 0;
      }
    </style>
  </template>
</dom-module>
`;_o.setAttribute("style","display: none;"),document.head.appendChild(_o.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const yo=_e`
<custom-style>
  <style is="custom-style">
    [hidden] {
      display: none !important;
    }
  </style>
</custom-style>
<custom-style>
  <style is="custom-style">
    html {

      --layout: {
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
      };

      --layout-inline: {
        display: -ms-inline-flexbox;
        display: -webkit-inline-flex;
        display: inline-flex;
      };

      --layout-horizontal: {
        @apply --layout;

        -ms-flex-direction: row;
        -webkit-flex-direction: row;
        flex-direction: row;
      };

      --layout-horizontal-reverse: {
        @apply --layout;

        -ms-flex-direction: row-reverse;
        -webkit-flex-direction: row-reverse;
        flex-direction: row-reverse;
      };

      --layout-vertical: {
        @apply --layout;

        -ms-flex-direction: column;
        -webkit-flex-direction: column;
        flex-direction: column;
      };

      --layout-vertical-reverse: {
        @apply --layout;

        -ms-flex-direction: column-reverse;
        -webkit-flex-direction: column-reverse;
        flex-direction: column-reverse;
      };

      --layout-wrap: {
        -ms-flex-wrap: wrap;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
      };

      --layout-wrap-reverse: {
        -ms-flex-wrap: wrap-reverse;
        -webkit-flex-wrap: wrap-reverse;
        flex-wrap: wrap-reverse;
      };

      --layout-flex-auto: {
        -ms-flex: 1 1 auto;
        -webkit-flex: 1 1 auto;
        flex: 1 1 auto;
      };

      --layout-flex-none: {
        -ms-flex: none;
        -webkit-flex: none;
        flex: none;
      };

      --layout-flex: {
        -ms-flex: 1 1 0.000000001px;
        -webkit-flex: 1;
        flex: 1;
        -webkit-flex-basis: 0.000000001px;
        flex-basis: 0.000000001px;
      };

      --layout-flex-2: {
        -ms-flex: 2;
        -webkit-flex: 2;
        flex: 2;
      };

      --layout-flex-3: {
        -ms-flex: 3;
        -webkit-flex: 3;
        flex: 3;
      };

      --layout-flex-4: {
        -ms-flex: 4;
        -webkit-flex: 4;
        flex: 4;
      };

      --layout-flex-5: {
        -ms-flex: 5;
        -webkit-flex: 5;
        flex: 5;
      };

      --layout-flex-6: {
        -ms-flex: 6;
        -webkit-flex: 6;
        flex: 6;
      };

      --layout-flex-7: {
        -ms-flex: 7;
        -webkit-flex: 7;
        flex: 7;
      };

      --layout-flex-8: {
        -ms-flex: 8;
        -webkit-flex: 8;
        flex: 8;
      };

      --layout-flex-9: {
        -ms-flex: 9;
        -webkit-flex: 9;
        flex: 9;
      };

      --layout-flex-10: {
        -ms-flex: 10;
        -webkit-flex: 10;
        flex: 10;
      };

      --layout-flex-11: {
        -ms-flex: 11;
        -webkit-flex: 11;
        flex: 11;
      };

      --layout-flex-12: {
        -ms-flex: 12;
        -webkit-flex: 12;
        flex: 12;
      };

      /* alignment in cross axis */

      --layout-start: {
        -ms-flex-align: start;
        -webkit-align-items: flex-start;
        align-items: flex-start;
      };

      --layout-center: {
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
      };

      --layout-end: {
        -ms-flex-align: end;
        -webkit-align-items: flex-end;
        align-items: flex-end;
      };

      --layout-baseline: {
        -ms-flex-align: baseline;
        -webkit-align-items: baseline;
        align-items: baseline;
      };

      /* alignment in main axis */

      --layout-start-justified: {
        -ms-flex-pack: start;
        -webkit-justify-content: flex-start;
        justify-content: flex-start;
      };

      --layout-center-justified: {
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
      };

      --layout-end-justified: {
        -ms-flex-pack: end;
        -webkit-justify-content: flex-end;
        justify-content: flex-end;
      };

      --layout-around-justified: {
        -ms-flex-pack: distribute;
        -webkit-justify-content: space-around;
        justify-content: space-around;
      };

      --layout-justified: {
        -ms-flex-pack: justify;
        -webkit-justify-content: space-between;
        justify-content: space-between;
      };

      --layout-center-center: {
        @apply --layout-center;
        @apply --layout-center-justified;
      };

      /* self alignment */

      --layout-self-start: {
        -ms-align-self: flex-start;
        -webkit-align-self: flex-start;
        align-self: flex-start;
      };

      --layout-self-center: {
        -ms-align-self: center;
        -webkit-align-self: center;
        align-self: center;
      };

      --layout-self-end: {
        -ms-align-self: flex-end;
        -webkit-align-self: flex-end;
        align-self: flex-end;
      };

      --layout-self-stretch: {
        -ms-align-self: stretch;
        -webkit-align-self: stretch;
        align-self: stretch;
      };

      --layout-self-baseline: {
        -ms-align-self: baseline;
        -webkit-align-self: baseline;
        align-self: baseline;
      };

      /* multi-line alignment in main axis */

      --layout-start-aligned: {
        -ms-flex-line-pack: start;  /* IE10 */
        -ms-align-content: flex-start;
        -webkit-align-content: flex-start;
        align-content: flex-start;
      };

      --layout-end-aligned: {
        -ms-flex-line-pack: end;  /* IE10 */
        -ms-align-content: flex-end;
        -webkit-align-content: flex-end;
        align-content: flex-end;
      };

      --layout-center-aligned: {
        -ms-flex-line-pack: center;  /* IE10 */
        -ms-align-content: center;
        -webkit-align-content: center;
        align-content: center;
      };

      --layout-between-aligned: {
        -ms-flex-line-pack: justify;  /* IE10 */
        -ms-align-content: space-between;
        -webkit-align-content: space-between;
        align-content: space-between;
      };

      --layout-around-aligned: {
        -ms-flex-line-pack: distribute;  /* IE10 */
        -ms-align-content: space-around;
        -webkit-align-content: space-around;
        align-content: space-around;
      };

      /*******************************
                Other Layout
      *******************************/

      --layout-block: {
        display: block;
      };

      --layout-invisible: {
        visibility: hidden !important;
      };

      --layout-relative: {
        position: relative;
      };

      --layout-fit: {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
      };

      --layout-scroll: {
        -webkit-overflow-scrolling: touch;
        overflow: auto;
      };

      --layout-fullbleed: {
        margin: 0;
        height: 100vh;
      };

      /* fixed position */

      --layout-fixed-top: {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
      };

      --layout-fixed-right: {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
      };

      --layout-fixed-bottom: {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
      };

      --layout-fixed-left: {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
      };

    }
  </style>
</custom-style>`;yo.setAttribute("style","display: none;"),document.head.appendChild(yo.content);var vo=document.createElement("style");vo.textContent="[hidden] { display: none !important; }",document.head.appendChild(vo);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
class bo{constructor(t){bo[" "](t),this.type=t&&t.type||"default",this.key=t&&t.key,t&&"value"in t&&(this.value=t.value)}get value(){var t=this.type,e=this.key;if(t&&e)return bo.types[t]&&bo.types[t][e]}set value(t){var e=this.type,n=this.key;e&&n&&(e=bo.types[e]=bo.types[e]||{},null==t?delete e[n]:e[n]=t)}get list(){if(this.type){var t=bo.types[this.type];return t?Object.keys(t).map((function(t){return xo[this.type][t]}),this):[]}}byKey(t){return this.key=t,this.value}}bo[" "]=function(){},bo.types={};var xo=bo.types;Ir({is:"iron-meta",properties:{type:{type:String,value:"default"},key:{type:String},value:{type:String,notify:!0},self:{type:Boolean,observer:"_selfChanged"},__meta:{type:Boolean,computed:"__computeMeta(type, key, value)"}},hostAttributes:{hidden:!0},__computeMeta:function(t,e,n){var i=new bo({type:t,key:e});return void 0!==n&&n!==i.value?i.value=n:this.value!==i.value&&(this.value=i.value),i},get list(){return this.__meta&&this.__meta.list},_selfChanged:function(t){t&&(this.value=this)},byKey:function(t){return new bo({type:this.type,key:t}).value}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        @apply --layout-inline;
        @apply --layout-center-center;
        position: relative;

        vertical-align: middle;

        fill: var(--iron-icon-fill-color, currentcolor);
        stroke: var(--iron-icon-stroke-color, none);

        width: var(--iron-icon-width, 24px);
        height: var(--iron-icon-height, 24px);
        @apply --iron-icon;
      }

      :host([hidden]) {
        display: none;
      }
    </style>
`,is:"iron-icon",properties:{icon:{type:String},theme:{type:String},src:{type:String},_meta:{value:po.create("iron-meta",{type:"iconset"})}},observers:["_updateIcon(_meta, isAttached)","_updateIcon(theme, isAttached)","_srcChanged(src, isAttached)","_iconChanged(icon, isAttached)"],_DEFAULT_ICONSET:"icons",_iconChanged:function(t){var e=(t||"").split(":");this._iconName=e.pop(),this._iconsetName=e.pop()||this._DEFAULT_ICONSET,this._updateIcon()},_srcChanged:function(t){this._updateIcon()},_usesIconset:function(){return this.icon||!this.src},_updateIcon:function(){this._usesIconset()?(this._img&&this._img.parentNode&&qi(this.root).removeChild(this._img),""===this._iconName?this._iconset&&this._iconset.removeIcon(this):this._iconsetName&&this._meta&&(this._iconset=this._meta.byKey(this._iconsetName),this._iconset?(this._iconset.applyIcon(this,this._iconName,this.theme),this.unlisten(window,"iron-iconset-added","_updateIcon")):this.listen(window,"iron-iconset-added","_updateIcon"))):(this._iconset&&this._iconset.removeIcon(this),this._img||(this._img=document.createElement("img"),this._img.style.width="100%",this._img.style.height="100%",this._img.draggable=!1),this._img.src=this.src,qi(this.root).appendChild(this._img))}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({is:"iron-iconset-svg",properties:{name:{type:String,observer:"_nameChanged"},size:{type:Number,value:24},rtlMirroring:{type:Boolean,value:!1},useGlobalRtlAttribute:{type:Boolean,value:!1}},created:function(){this._meta=new bo({type:"iconset",key:null,value:null})},attached:function(){this.style.display="none"},getIconNames:function(){return this._icons=this._createIconMap(),Object.keys(this._icons).map((function(t){return this.name+":"+t}),this)},applyIcon:function(t,e){this.removeIcon(t);var n=this._cloneIcon(e,this.rtlMirroring&&this._targetIsRTL(t));if(n){var i=qi(t.root||t);return i.insertBefore(n,i.childNodes[0]),t._svgIcon=n}return null},removeIcon:function(t){t._svgIcon&&(qi(t.root||t).removeChild(t._svgIcon),t._svgIcon=null)},_targetIsRTL:function(t){if(null==this.__targetIsRTL)if(this.useGlobalRtlAttribute){var e=document.body&&document.body.hasAttribute("dir")?document.body:document.documentElement;this.__targetIsRTL="rtl"===e.getAttribute("dir")}else t&&t.nodeType!==Node.ELEMENT_NODE&&(t=t.host),this.__targetIsRTL=t&&"rtl"===window.getComputedStyle(t).direction;return this.__targetIsRTL},_nameChanged:function(){this._meta.value=null,this._meta.key=this.name,this._meta.value=this,this.async((function(){this.fire("iron-iconset-added",this,{node:window})}))},_createIconMap:function(){var t=Object.create(null);return qi(this).querySelectorAll("[id]").forEach((function(e){t[e.id]=e})),t},_cloneIcon:function(t,e){return this._icons=this._icons||this._createIconMap(),this._prepareSvgClone(this._icons[t],this.size,e)},_prepareSvgClone:function(t,e,n){if(t){var i=t.cloneNode(!0),r=document.createElementNS("http://www.w3.org/2000/svg","svg"),o=i.getAttribute("viewBox")||"0 0 "+e+" "+e,a="pointer-events: none; display: block; width: 100%; height: 100%;";return n&&i.hasAttribute("mirror-in-rtl")&&(a+="-webkit-transform:scale(-1,1);transform:scale(-1,1);transform-origin:center;"),r.setAttribute("viewBox",o),r.setAttribute("preserveAspectRatio","xMidYMid meet"),r.setAttribute("focusable","false"),r.style.cssText=a,r.appendChild(i).removeAttribute("id"),r}return null}});
/**
    @license
    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const wo=_e`<iron-iconset-svg name="image" size="24">
<svg><defs>
<g id="add-a-photo"><path d="M3 4V1h2v3h3v2H5v3H3V6H0V4h3zm3 6V7h3V4h7l1.83 2H21c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V10h3zm7 9c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-3.2-5c0 1.77 1.43 3.2 3.2 3.2s3.2-1.43 3.2-3.2-1.43-3.2-3.2-3.2-3.2 1.43-3.2 3.2z"></path></g>
<g id="add-to-photos"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"></path></g>
<g id="adjust"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z"></path></g>
<g id="assistant"><path d="M19 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5.12 10.88L12 17l-1.88-4.12L6 11l4.12-1.88L12 5l1.88 4.12L18 11l-4.12 1.88z"></path></g>
<g id="assistant-photo"><path d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"></path></g>
<g id="audiotrack"><path d="M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z"></path></g>
<g id="blur-circular"><path d="M10 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM7 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-3-3c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3-6c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-1.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm3 6c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-4c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm2-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-3.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"></path></g>
<g id="blur-linear"><path d="M5 17.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM3 21h18v-2H3v2zM5 9.5c.83 0 1.5-.67 1.5-1.5S5.83 6.5 5 6.5 3.5 7.17 3.5 8 4.17 9.5 5 9.5zm0 4c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 17c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8-.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM3 3v2h18V3H3zm14 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm0 4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM13 9c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z"></path></g>
<g id="blur-off"><path d="M14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-.2 4.48l.2.02c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5l.02.2c.09.67.61 1.19 1.28 1.28zM14 3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-4 0c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm11 7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8 8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 13.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM2.5 5.27l3.78 3.78L6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l2.81 2.81c-.71.11-1.25.73-1.25 1.47 0 .83.67 1.5 1.5 1.5.74 0 1.36-.54 1.47-1.25l2.81 2.81c-.09-.03-.18-.06-.28-.06-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l3.78 3.78L20 20.23 3.77 4 2.5 5.27zM10 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm11-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM3 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 11c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"></path></g>
<g id="blur-on"><path d="M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"></path></g>
<g id="brightness-1"><circle cx="12" cy="12" r="10"></circle></g>
<g id="brightness-2"><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"></path></g>
<g id="brightness-3"><path d="M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54 0 4.48-2.94 8.27-7 9.54.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2z"></path></g>
<g id="brightness-4"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"></path></g>
<g id="brightness-5"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"></path></g>
<g id="brightness-6"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"></path></g>
<g id="brightness-7"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"></path></g>
<g id="broken-image"><path d="M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2zm-3 6.42l3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4 4-3.99z"></path></g>
<g id="brush"><path d="M7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2 2.21 0 4-1.79 4-4 0-1.66-1.34-3-3-3zm13.71-9.37l-1.34-1.34c-.39-.39-1.02-.39-1.41 0L9 12.25 11.75 15l8.96-8.96c.39-.39.39-1.02 0-1.41z"></path></g>
<g id="burst-mode"><path d="M1 5h2v14H1zm4 0h2v14H5zm17 0H10c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM11 17l2.5-3.15L15.29 16l2.5-3.22L21 17H11z"></path></g>
<g id="camera"><path d="M9.4 10.5l4.77-8.26C13.47 2.09 12.75 2 12 2c-2.4 0-4.6.85-6.32 2.25l3.66 6.35.06-.1zM21.54 9c-.92-2.92-3.15-5.26-6-6.34L11.88 9h9.66zm.26 1h-7.49l.29.5 4.76 8.25C21 16.97 22 14.61 22 12c0-.69-.07-1.35-.2-2zM8.54 12l-3.9-6.75C3.01 7.03 2 9.39 2 12c0 .69.07 1.35.2 2h7.49l-1.15-2zm-6.08 3c.92 2.92 3.15 5.26 6 6.34L12.12 15H2.46zm11.27 0l-3.9 6.76c.7.15 1.42.24 2.17.24 2.4 0 4.6-.85 6.32-2.25l-3.66-6.35-.93 1.6z"></path></g>
<g id="camera-alt"><circle cx="12" cy="12" r="3.2"></circle><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"></path></g>
<g id="camera-front"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zM12 8c1.1 0 2-.9 2-2s-.9-2-2-2-1.99.9-1.99 2S10.9 8 12 8zm5-8H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 2h10v10.5c0-1.67-3.33-2.5-5-2.5s-5 .83-5 2.5V2z"></path></g>
<g id="camera-rear"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zm3-20H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-5 6c-1.11 0-2-.9-2-2s.89-2 1.99-2 2 .9 2 2C14 5.1 13.1 6 12 6z"></path></g>
<g id="camera-roll"><path d="M14 5c0-1.1-.9-2-2-2h-1V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2h8V5h-8zm-2 13h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2z"></path></g>
<g id="center-focus-strong"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-7 7H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z"></path></g>
<g id="center-focus-weak"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g>
<g id="collections"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"></path></g>
<g id="collections-bookmark"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 10l-2.5-1.5L15 12V4h5v8z"></path></g>
<g id="color-lens"><path d="M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path></g>
<g id="colorize"><path d="M20.71 5.63l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"></path></g>
<g id="compare"><path d="M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></g>
<g id="control-point"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="control-point-duplicate"><path d="M16 8h-2v3h-3v2h3v3h2v-3h3v-2h-3zM2 12c0-2.79 1.64-5.2 4.01-6.32V3.52C2.52 4.76 0 8.09 0 12s2.52 7.24 6.01 8.48v-2.16C3.64 17.2 2 14.79 2 12zm13-9c-4.96 0-9 4.04-9 9s4.04 9 9 9 9-4.04 9-9-4.04-9-9-9zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z"></path></g>
<g id="crop"><path d="M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z"></path></g>
<g id="crop-16-9"><path d="M19 6H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H5V8h14v8z"></path></g>
<g id="crop-3-2"><path d="M19 4H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12z"></path></g>
<g id="crop-5-4"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"></path></g>
<g id="crop-7-5"><path d="M19 7H5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H5V9h14v6z"></path></g>
<g id="crop-din"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"></path></g>
<g id="crop-free"><path d="M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2zm2 10H3v4c0 1.1.9 2 2 2h4v-2H5v-4zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2z"></path></g>
<g id="crop-landscape"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"></path></g>
<g id="crop-original"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-5.04-6.71l-2.75 3.54-1.96-2.36L6.5 17h11l-3.54-4.71z"></path></g>
<g id="crop-portrait"><path d="M17 3H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7V5h10v14z"></path></g>
<g id="crop-rotate"><path d="M7.47 21.49C4.2 19.93 1.86 16.76 1.5 13H0c.51 6.16 5.66 11 11.95 11 .23 0 .44-.02.66-.03L8.8 20.15l-1.33 1.34zM12.05 0c-.23 0-.44.02-.66.04l3.81 3.81 1.33-1.33C19.8 4.07 22.14 7.24 22.5 11H24c-.51-6.16-5.66-11-11.95-11zM16 14h2V8c0-1.11-.9-2-2-2h-6v2h6v6zm-8 2V4H6v2H4v2h2v8c0 1.1.89 2 2 2h8v2h2v-2h2v-2H8z"></path></g>
<g id="crop-square"><path d="M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H6V6h12v12z"></path></g>
<g id="dehaze"><path d="M2 15.5v2h20v-2H2zm0-5v2h20v-2H2zm0-5v2h20v-2H2z"></path></g>
<g id="details"><path d="M3 4l9 16 9-16H3zm3.38 2h11.25L12 16 6.38 6z"></path></g>
<g id="edit"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"></path></g>
<g id="exposure"><path d="M15 17v2h2v-2h2v-2h-2v-2h-2v2h-2v2h2zm5-15H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 5h6v2H5V5zm15 15H4L20 4v16z"></path></g>
<g id="exposure-neg-1"><path d="M4 11v2h8v-2H4zm15 7h-2V7.38L14 8.4V6.7L18.7 5h.3v13z"></path></g>
<g id="exposure-neg-2"><path d="M15.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17s.19-.79.19-1.18c0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71-.51-.16-1.08-.24-1.72-.24-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H21v-1.71h-5.95zM2 11v2h8v-2H2z"></path></g>
<g id="exposure-plus-1"><path d="M10 7H8v4H4v2h4v4h2v-4h4v-2h-4V7zm10 11h-2V7.38L15 8.4V6.7L19.7 5h.3v13z"></path></g>
<g id="exposure-plus-2"><path d="M16.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17.13-.39.19-.79.19-1.18 0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71-.51-.16-1.08-.24-1.72-.24-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H22v-1.71h-5.95zM8 7H6v4H2v2h4v4h2v-4h4v-2H8V7z"></path></g>
<g id="exposure-zero"><path d="M16.14 12.5c0 1-.1 1.85-.3 2.55-.2.7-.48 1.27-.83 1.7-.36.44-.79.75-1.3.95-.51.2-1.07.3-1.7.3-.62 0-1.18-.1-1.69-.3-.51-.2-.95-.51-1.31-.95-.36-.44-.65-1.01-.85-1.7-.2-.7-.3-1.55-.3-2.55v-2.04c0-1 .1-1.85.3-2.55.2-.7.48-1.26.84-1.69.36-.43.8-.74 1.31-.93C10.81 5.1 11.38 5 12 5c.63 0 1.19.1 1.7.29.51.19.95.5 1.31.93.36.43.64.99.84 1.69.2.7.3 1.54.3 2.55v2.04zm-2.11-2.36c0-.64-.05-1.18-.13-1.62-.09-.44-.22-.79-.4-1.06-.17-.27-.39-.46-.64-.58-.25-.13-.54-.19-.86-.19-.32 0-.61.06-.86.18s-.47.31-.64.58c-.17.27-.31.62-.4 1.06s-.13.98-.13 1.62v2.67c0 .64.05 1.18.14 1.62.09.45.23.81.4 1.09s.39.48.64.61.54.19.87.19c.33 0 .62-.06.87-.19s.46-.33.63-.61c.17-.28.3-.64.39-1.09.09-.45.13-.99.13-1.62v-2.66z"></path></g>
<g id="filter"><path d="M15.96 10.29l-2.75 3.54-1.96-2.36L8.5 15h11l-3.54-4.71zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"></path></g>
<g id="filter-1"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"></path></g>
<g id="filter-2"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"></path></g>
<g id="filter-3"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"></path></g>
<g id="filter-4"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"></path></g>
<g id="filter-5"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"></path></g>
<g id="filter-6"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2c1.1 0 2-.89 2-2v-2c0-1.11-.9-2-2-2h-2V7h4V5h-4c-1.1 0-2 .89-2 2v6c0 1.11.9 2 2 2zm0-4h2v2h-2v-2z"></path></g>
<g id="filter-7"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2l4-8V5h-6v2h4l-4 8h2z"></path></g>
<g id="filter-8"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2c1.1 0 2-.89 2-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-2c-1.1 0-2 .89-2 2v1.5c0 .83.67 1.5 1.5 1.5-.83 0-1.5.67-1.5 1.5V13c0 1.11.9 2 2 2zm0-8h2v2h-2V7zm0 4h2v2h-2v-2z"></path></g>
<g id="filter-9"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM15 5h-2c-1.1 0-2 .89-2 2v2c0 1.11.9 2 2 2h2v2h-4v2h4c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2zm0 4h-2V7h2v2z"></path></g>
<g id="filter-9-plus"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 7V8c0-1.11-.9-2-2-2h-1c-1.1 0-2 .89-2 2v1c0 1.11.9 2 2 2h1v1H9v2h3c1.1 0 2-.89 2-2zm-3-3V8h1v1h-1zm10-8H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 8h-2V7h-2v2h-2v2h2v2h2v-2h2v6H7V3h14v6z"></path></g>
<g id="filter-b-and-w"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16l-7-8v8H5l7-8V5h7v14z"></path></g>
<g id="filter-center-focus"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"></path></g>
<g id="filter-drama"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.61 5.64 5.36 8.04 2.35 8.36 0 10.9 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4h2c0-2.76-1.86-5.08-4.4-5.78C8.61 6.88 10.2 6 12 6c3.03 0 5.5 2.47 5.5 5.5v.5H19c1.65 0 3 1.35 3 3s-1.35 3-3 3z"></path></g>
<g id="filter-frames"><path d="M20 4h-4l-4-4-4 4H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H4V6h4.52l3.52-3.5L15.52 6H20v14zM18 8H6v10h12"></path></g>
<g id="filter-hdr"><path d="M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"></path></g>
<g id="filter-none"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"></path></g>
<g id="filter-tilt-shift"><path d="M11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69c1.11-.86 2.44-1.44 3.9-1.62zm7.32.19C16.84 3.05 15.01 2.25 13 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1c.86 1.11 1.44 2.44 1.62 3.9zM5.69 7.1L4.26 5.68C3.05 7.16 2.25 8.99 2.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43c-.86-1.1-1.44-2.43-1.62-3.89zM15 12c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm3.31 4.9l1.43 1.43c1.21-1.48 2.01-3.32 2.21-5.32h-2.02c-.18 1.45-.76 2.78-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zm-7.32-.19C7.16 20.95 9 21.75 11 21.95v-2.02c-1.46-.18-2.79-.76-3.9-1.62l-1.42 1.43z"></path></g>
<g id="filter-vintage"><path d="M18.7 12.4c-.28-.16-.57-.29-.86-.4.29-.11.58-.24.86-.4 1.92-1.11 2.99-3.12 3-5.19-1.79-1.03-4.07-1.11-6 0-.28.16-.54.35-.78.54.05-.31.08-.63.08-.95 0-2.22-1.21-4.15-3-5.19C10.21 1.85 9 3.78 9 6c0 .32.03.64.08.95-.24-.2-.5-.39-.78-.55-1.92-1.11-4.2-1.03-6 0 0 2.07 1.07 4.08 3 5.19.28.16.57.29.86.4-.29.11-.58.24-.86.4-1.92 1.11-2.99 3.12-3 5.19 1.79 1.03 4.07 1.11 6 0 .28-.16.54-.35.78-.54-.05.32-.08.64-.08.96 0 2.22 1.21 4.15 3 5.19 1.79-1.04 3-2.97 3-5.19 0-.32-.03-.64-.08-.95.24.2.5.38.78.54 1.92 1.11 4.2 1.03 6 0-.01-2.07-1.08-4.08-3-5.19zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"></path></g>
<g id="flare"><path d="M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z"></path></g>
<g id="flash-auto"><path d="M3 2v12h3v9l7-12H9l4-9H3zm16 0h-2l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L19 2zm-2.15 5.65L18 4l1.15 3.65h-2.3z"></path></g>
<g id="flash-off"><path d="M3.27 3L2 4.27l5 5V13h3v9l3.58-6.14L17.73 20 19 18.73 3.27 3zM17 10h-4l4-8H7v2.18l8.46 8.46L17 10z"></path></g>
<g id="flash-on"><path d="M7 2v11h3v9l7-12h-4l4-8z"></path></g>
<g id="flip"><path d="M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z"></path></g>
<g id="gradient"><path d="M11 9h2v2h-2zm-2 2h2v2H9zm4 0h2v2h-2zm2-2h2v2h-2zM7 9h2v2H7zm12-6H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 18H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm2-7h-2v2h2v2h-2v-2h-2v2h-2v-2h-2v2H9v-2H7v2H5v-2h2v-2H5V5h14v6z"></path></g>
<g id="grain"><path d="M10 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-4 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g>
<g id="grid-off"><path d="M8 4v1.45l2 2V4h4v4h-3.45l2 2H14v1.45l2 2V10h4v4h-3.45l2 2H20v1.45l2 2V4c0-1.1-.9-2-2-2H4.55l2 2H8zm8 0h4v4h-4V4zM1.27 1.27L0 2.55l2 2V20c0 1.1.9 2 2 2h15.46l2 2 1.27-1.27L1.27 1.27zM10 12.55L11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h3.45l.55.55V14zm6 6h-4v-4h3.45l.55.54V20zm2 0v-1.46L17.46 20H16z"></path></g>
<g id="grid-on"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z"></path></g>
<g id="hdr-off"><path d="M17.5 15v-2h1.1l.9 2H21l-.9-2.1c.5-.2.9-.8.9-1.4v-1c0-.8-.7-1.5-1.5-1.5H16v4.9l1.1 1.1h.4zm0-4.5h2v1h-2v-1zm-4.5 0v.4l1.5 1.5v-1.9c0-.8-.7-1.5-1.5-1.5h-1.9l1.5 1.5h.4zm-3.5-1l-7-7-1.1 1L6.9 9h-.4v2h-2V9H3v6h1.5v-2.5h2V15H8v-4.9l1.5 1.5V15h3.4l7.6 7.6 1.1-1.1-12.1-12z"></path></g>
<g id="hdr-on"><path d="M21 11.5v-1c0-.8-.7-1.5-1.5-1.5H16v6h1.5v-2h1.1l.9 2H21l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2V9H3v6h1.5v-2.5h2V15H8V9H6.5v2zM13 9H9.5v6H13c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5h-2v-3h2v3z"></path></g>
<g id="hdr-strong"><path d="M17 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zM5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g>
<g id="hdr-weak"><path d="M5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm12-2c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"></path></g>
<g id="healing"><path d="M17.73 12.02l3.98-3.98c.39-.39.39-1.02 0-1.41l-4.34-4.34c-.39-.39-1.02-.39-1.41 0l-3.98 3.98L8 2.29C7.8 2.1 7.55 2 7.29 2c-.25 0-.51.1-.7.29L2.25 6.63c-.39.39-.39 1.02 0 1.41l3.98 3.98L2.25 16c-.39.39-.39 1.02 0 1.41l4.34 4.34c.39.39 1.02.39 1.41 0l3.98-3.98 3.98 3.98c.2.2.45.29.71.29.26 0 .51-.1.71-.29l4.34-4.34c.39-.39.39-1.02 0-1.41l-3.99-3.98zM12 9c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-4.71 1.96L3.66 7.34l3.63-3.63 3.62 3.62-3.62 3.63zM10 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.66 9.34l-3.63-3.62 3.63-3.63 3.62 3.62-3.62 3.63z"></path></g>
<g id="image"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"></path></g>
<g id="image-aspect-ratio"><path d="M16 10h-2v2h2v-2zm0 4h-2v2h2v-2zm-8-4H6v2h2v-2zm4 0h-2v2h2v-2zm8-6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z"></path></g>
<g id="iso"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5.5 7.5h2v-2H9v2h2V9H9v2H7.5V9h-2V7.5zM19 19H5L19 5v14zm-2-2v-1.5h-5V17h5z"></path></g>
<g id="landscape"><path d="M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"></path></g>
<g id="leak-add"><path d="M6 3H3v3c1.66 0 3-1.34 3-3zm8 0h-2c0 4.97-4.03 9-9 9v2c6.08 0 11-4.93 11-11zm-4 0H8c0 2.76-2.24 5-5 5v2c3.87 0 7-3.13 7-7zm0 18h2c0-4.97 4.03-9 9-9v-2c-6.07 0-11 4.93-11 11zm8 0h3v-3c-1.66 0-3 1.34-3 3zm-4 0h2c0-2.76 2.24-5 5-5v-2c-3.87 0-7 3.13-7 7z"></path></g>
<g id="leak-remove"><path d="M10 3H8c0 .37-.04.72-.12 1.06l1.59 1.59C9.81 4.84 10 3.94 10 3zM3 4.27l2.84 2.84C5.03 7.67 4.06 8 3 8v2c1.61 0 3.09-.55 4.27-1.46L8.7 9.97C7.14 11.24 5.16 12 3 12v2c2.71 0 5.19-.99 7.11-2.62l2.5 2.5C10.99 15.81 10 18.29 10 21h2c0-2.16.76-4.14 2.03-5.69l1.43 1.43C14.55 17.91 14 19.39 14 21h2c0-1.06.33-2.03.89-2.84L19.73 21 21 19.73 4.27 3 3 4.27zM14 3h-2c0 1.5-.37 2.91-1.02 4.16l1.46 1.46C13.42 6.98 14 5.06 14 3zm5.94 13.12c.34-.08.69-.12 1.06-.12v-2c-.94 0-1.84.19-2.66.52l1.6 1.6zm-4.56-4.56l1.46 1.46C18.09 12.37 19.5 12 21 12v-2c-2.06 0-3.98.58-5.62 1.56z"></path></g>
<g id="lens"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"></path></g>
<g id="linked-camera"><circle cx="12" cy="14" r="3.2"></circle><path d="M16 3.33c2.58 0 4.67 2.09 4.67 4.67H22c0-3.31-2.69-6-6-6v1.33M16 6c1.11 0 2 .89 2 2h1.33c0-1.84-1.49-3.33-3.33-3.33V6"></path><path d="M17 9c0-1.11-.89-2-2-2V4H9L7.17 6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9h-5zm-5 10c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"></path></g>
<g id="looks"><path d="M12 10c-3.86 0-7 3.14-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.86-3.14-7-7-7zm0-4C5.93 6 1 10.93 1 17h2c0-4.96 4.04-9 9-9s9 4.04 9 9h2c0-6.07-4.93-11-11-11z"></path></g>
<g id="looks-3"><path d="M19.01 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 7.5c0 .83-.67 1.5-1.5 1.5.83 0 1.5.67 1.5 1.5V15c0 1.11-.9 2-2 2h-4v-2h4v-2h-2v-2h2V9h-4V7h4c1.1 0 2 .89 2 2v1.5z"></path></g>
<g id="looks-4"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 14h-2v-4H9V7h2v4h2V7h2v10z"></path></g>
<g id="looks-5"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2c1.1 0 2 .89 2 2v2c0 1.11-.9 2-2 2H9v-2h4v-2H9V7h6v2z"></path></g>
<g id="looks-6"><path d="M11 15h2v-2h-2v2zm8-12H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2c1.1 0 2 .89 2 2v2c0 1.11-.9 2-2 2h-2c-1.1 0-2-.89-2-2V9c0-1.11.9-2 2-2h4v2z"></path></g>
<g id="looks-one"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14h-2V9h-2V7h4v10z"></path></g>
<g id="looks-two"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 8c0 1.11-.9 2-2 2h-2v2h4v2H9v-4c0-1.11.9-2 2-2h2V9H9V7h4c1.1 0 2 .89 2 2v2z"></path></g>
<g id="loupe"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10h8c1.1 0 2-.9 2-2v-8c0-5.51-4.49-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="monochrome-photos"><path d="M20 5h-3.2L15 3H9L7.2 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14h-8v-1c-2.8 0-5-2.2-5-5s2.2-5 5-5V7h8v12zm-3-6c0-2.8-2.2-5-5-5v1.8c1.8 0 3.2 1.4 3.2 3.2s-1.4 3.2-3.2 3.2V18c2.8 0 5-2.2 5-5zm-8.2 0c0 1.8 1.4 3.2 3.2 3.2V9.8c-1.8 0-3.2 1.4-3.2 3.2z"></path></g>
<g id="movie-creation"><path d="M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"></path></g>
<g id="movie-filter"><path d="M18 4l2 3h-3l-2-3h-2l2 3h-3l-2-3H8l2 3H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4zm-6.75 11.25L10 18l-1.25-2.75L6 14l2.75-1.25L10 10l1.25 2.75L14 14l-2.75 1.25zm5.69-3.31L16 14l-.94-2.06L13 11l2.06-.94L16 8l.94 2.06L19 11l-2.06.94z"></path></g>
<g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"></path></g>
<g id="nature"><path d="M13 16.12c3.47-.41 6.17-3.36 6.17-6.95 0-3.87-3.13-7-7-7s-7 3.13-7 7c0 3.47 2.52 6.34 5.83 6.89V20H5v2h14v-2h-6v-3.88z"></path></g>
<g id="nature-people"><path d="M22.17 9.17c0-3.87-3.13-7-7-7s-7 3.13-7 7c0 3.47 2.52 6.34 5.83 6.89V20H6v-3h1v-4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4h1v5h16v-2h-3v-3.88c3.47-.41 6.17-3.36 6.17-6.95zM4.5 11c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z"></path></g>
<g id="navigate-before"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></g>
<g id="navigate-next"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path></g>
<g id="palette"><path d="M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path></g>
<g id="panorama"><path d="M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z"></path></g>
<g id="panorama-fish-eye"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="panorama-horizontal"><path d="M20 6.54v10.91c-2.6-.77-5.28-1.16-8-1.16-2.72 0-5.4.39-8 1.16V6.54c2.6.77 5.28 1.16 8 1.16 2.72.01 5.4-.38 8-1.16M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7c-3.09 0-6.18-.55-9.12-1.64-.11-.04-.22-.06-.31-.06-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64 3.09 0 6.18.55 9.12 1.64.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z"></path></g>
<g id="panorama-vertical"><path d="M19.94 21.12c-1.1-2.94-1.64-6.03-1.64-9.12 0-3.09.55-6.18 1.64-9.12.04-.11.06-.22.06-.31 0-.34-.23-.57-.63-.57H4.63c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.71 8.91 5.71 12c0 3.09-.55 6.18-1.64 9.12-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57-.01-.1-.03-.2-.07-.31zM6.54 20c.77-2.6 1.16-5.28 1.16-8 0-2.72-.39-5.4-1.16-8h10.91c-.77 2.6-1.16 5.28-1.16 8 0 2.72.39 5.4 1.16 8H6.54z"></path></g>
<g id="panorama-wide-angle"><path d="M12 6c2.45 0 4.71.2 7.29.64.47 1.78.71 3.58.71 5.36 0 1.78-.24 3.58-.71 5.36-2.58.44-4.84.64-7.29.64s-4.71-.2-7.29-.64C4.24 15.58 4 13.78 4 12c0-1.78.24-3.58.71-5.36C7.29 6.2 9.55 6 12 6m0-2c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z"></path></g>
<g id="photo"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"></path></g>
<g id="photo-album"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z"></path></g>
<g id="photo-camera"><circle cx="12" cy="12" r="3.2"></circle><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"></path></g>
<g id="photo-filter"><path d="M19.02 10v9H5V5h9V3H5.02c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zM17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7l2.06.94zm-3.75.75L12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12z"></path></g>
<g id="photo-library"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"></path></g>
<g id="photo-size-select-actual"><path d="M21 3H3C2 3 1 4 1 5v14c0 1.1.9 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zM5 17l3.5-4.5 2.5 3.01L14.5 11l4.5 6H5z"></path></g>
<g id="photo-size-select-large"><path d="M21 15h2v2h-2v-2zm0-4h2v2h-2v-2zm2 8h-2v2c1 0 2-1 2-2zM13 3h2v2h-2V3zm8 4h2v2h-2V7zm0-4v2h2c0-1-1-2-2-2zM1 7h2v2H1V7zm16-4h2v2h-2V3zm0 16h2v2h-2v-2zM3 3C2 3 1 4 1 5h2V3zm6 0h2v2H9V3zM5 3h2v2H5V3zm-4 8v8c0 1.1.9 2 2 2h12V11H1zm2 8l2.5-3.21 1.79 2.15 2.5-3.22L13 19H3z"></path></g>
<g id="photo-size-select-small"><path d="M23 15h-2v2h2v-2zm0-4h-2v2h2v-2zm0 8h-2v2c1 0 2-1 2-2zM15 3h-2v2h2V3zm8 4h-2v2h2V7zm-2-4v2h2c0-1-1-2-2-2zM3 21h8v-6H1v4c0 1.1.9 2 2 2zM3 7H1v2h2V7zm12 12h-2v2h2v-2zm4-16h-2v2h2V3zm0 16h-2v2h2v-2zM3 3C2 3 1 4 1 5h2V3zm0 8H1v2h2v-2zm8-8H9v2h2V3zM7 3H5v2h2V3z"></path></g>
<g id="picture-as-pdf"><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8.5 7.5c0 .83-.67 1.5-1.5 1.5H9v2H7.5V7H10c.83 0 1.5.67 1.5 1.5v1zm5 2c0 .83-.67 1.5-1.5 1.5h-2.5V7H15c.83 0 1.5.67 1.5 1.5v3zm4-3H19v1h1.5V11H19v2h-1.5V7h3v1.5zM9 9.5h1v-1H9v1zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm10 5.5h1v-3h-1v3z"></path></g>
<g id="portrait"><path d="M12 12.25c1.24 0 2.25-1.01 2.25-2.25S13.24 7.75 12 7.75 9.75 8.76 9.75 10s1.01 2.25 2.25 2.25zm4.5 4c0-1.5-3-2.25-4.5-2.25s-4.5.75-4.5 2.25V17h9v-.75zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"></path></g>
<g id="remove-red-eye"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"></path></g>
<g id="rotate-90-degrees-ccw"><path d="M7.34 6.41L.86 12.9l6.49 6.48 6.49-6.48-6.5-6.49zM3.69 12.9l3.66-3.66L11 12.9l-3.66 3.66-3.65-3.66zm15.67-6.26C17.61 4.88 15.3 4 13 4V.76L8.76 5 13 9.24V6c1.79 0 3.58.68 4.95 2.05 2.73 2.73 2.73 7.17 0 9.9C16.58 19.32 14.79 20 13 20c-.97 0-1.94-.21-2.84-.61l-1.49 1.49C10.02 21.62 11.51 22 13 22c2.3 0 4.61-.88 6.36-2.64 3.52-3.51 3.52-9.21 0-12.72z"></path></g>
<g id="rotate-left"><path d="M7.11 8.53L5.7 7.11C4.8 8.27 4.24 9.61 4.07 11h2.02c.14-.87.49-1.72 1.02-2.47zM6.09 13H4.07c.17 1.39.72 2.73 1.62 3.89l1.41-1.42c-.52-.75-.87-1.59-1.01-2.47zm1.01 5.32c1.16.9 2.51 1.44 3.9 1.61V17.9c-.87-.15-1.71-.49-2.46-1.03L7.1 18.32zM13 4.07V1L8.45 5.55 13 10V6.09c2.84.48 5 2.94 5 5.91s-2.16 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93s-3.05-7.44-7-7.93z"></path></g>
<g id="rotate-right"><path d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"></path></g>
<g id="slideshow"><path d="M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"></path></g>
<g id="straighten"><path d="M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H3V8h2v4h2V8h2v4h2V8h2v4h2V8h2v4h2V8h2v8z"></path></g>
<g id="style"><path d="M2.53 19.65l1.34.56v-9.03l-2.43 5.86c-.41 1.02.08 2.19 1.09 2.61zm19.5-3.7L17.07 3.98c-.31-.75-1.04-1.21-1.81-1.23-.26 0-.53.04-.79.15L7.1 5.95c-.75.31-1.21 1.03-1.23 1.8-.01.27.04.54.15.8l4.96 11.97c.31.76 1.05 1.22 1.83 1.23.26 0 .52-.05.77-.15l7.36-3.05c1.02-.42 1.51-1.59 1.09-2.6zM7.88 8.75c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-2 11c0 1.1.9 2 2 2h1.45l-3.45-8.34v6.34z"></path></g>
<g id="switch-camera"><path d="M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 11.5V13H9v2.5L5.5 12 9 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"></path></g>
<g id="switch-video"><path d="M18 9.5V6c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.5l4 4v-13l-4 4zm-5 6V13H7v2.5L3.5 12 7 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"></path></g>
<g id="tag-faces"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"></path></g>
<g id="texture"><path d="M19.51 3.08L3.08 19.51c.09.34.27.65.51.9.25.24.56.42.9.51L20.93 4.49c-.19-.69-.73-1.23-1.42-1.41zM11.88 3L3 11.88v2.83L14.71 3h-2.83zM5 3c-1.1 0-2 .9-2 2v2l4-4H5zm14 18c.55 0 1.05-.22 1.41-.59.37-.36.59-.86.59-1.41v-2l-4 4h2zm-9.71 0h2.83L21 12.12V9.29L9.29 21z"></path></g>
<g id="timelapse"><path d="M16.24 7.76C15.07 6.59 13.54 6 12 6v6l-4.24 4.24c2.34 2.34 6.14 2.34 8.49 0 2.34-2.34 2.34-6.14-.01-8.48zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g>
<g id="timer"><path d="M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.03-6.61l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"></path></g>
<g id="timer-10"><path d="M0 7.72V9.4l3-1V18h2V6h-.25L0 7.72zm23.78 6.65c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38c-.35-.07-.64-.15-.87-.23-.23-.08-.41-.16-.55-.25-.14-.09-.23-.19-.28-.3-.05-.11-.08-.24-.08-.39 0-.14.03-.28.09-.41.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95c0-.39-.08-.75-.24-1.09-.16-.34-.39-.63-.69-.88-.3-.25-.66-.44-1.09-.59C21.49 9.07 21 9 20.46 9c-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.69.23.96c.15.28.36.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24-.17-.11-.3-.26-.41-.44-.11-.18-.17-.41-.18-.67h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02zm-9.96-7.32c-.34-.4-.75-.7-1.23-.88-.47-.18-1.01-.27-1.59-.27-.58 0-1.11.09-1.59.27-.48.18-.89.47-1.23.88-.34.41-.6.93-.79 1.59-.18.65-.28 1.45-.28 2.39v1.92c0 .94.09 1.74.28 2.39.19.66.45 1.19.8 1.6.34.41.75.71 1.23.89.48.18 1.01.28 1.59.28.59 0 1.12-.09 1.59-.28.48-.18.88-.48 1.22-.89.34-.41.6-.94.78-1.6.18-.65.28-1.45.28-2.39v-1.92c0-.94-.09-1.74-.28-2.39-.18-.66-.44-1.19-.78-1.59zm-.92 6.17c0 .6-.04 1.11-.12 1.53-.08.42-.2.76-.36 1.02-.16.26-.36.45-.59.57-.23.12-.51.18-.82.18-.3 0-.58-.06-.82-.18s-.44-.31-.6-.57c-.16-.26-.29-.6-.38-1.02-.09-.42-.13-.93-.13-1.53v-2.5c0-.6.04-1.11.13-1.52.09-.41.21-.74.38-1 .16-.25.36-.43.6-.55.24-.11.51-.17.81-.17.31 0 .58.06.81.17.24.11.44.29.6.55.16.25.29.58.37.99.08.41.13.92.13 1.52v2.51z"></path></g>
<g id="timer-3"><path d="M11.61 12.97c-.16-.24-.36-.46-.62-.65-.25-.19-.56-.35-.93-.48.3-.14.57-.3.8-.5.23-.2.42-.41.57-.64.15-.23.27-.46.34-.71.08-.24.11-.49.11-.73 0-.55-.09-1.04-.28-1.46-.18-.42-.44-.77-.78-1.06-.33-.28-.73-.5-1.2-.64-.45-.13-.97-.2-1.53-.2-.55 0-1.06.08-1.52.24-.47.17-.87.4-1.2.69-.33.29-.6.63-.78 1.03-.2.39-.29.83-.29 1.29h1.98c0-.26.05-.49.14-.69.09-.2.22-.38.38-.52.17-.14.36-.25.58-.33.22-.08.46-.12.73-.12.61 0 1.06.16 1.36.47.3.31.44.75.44 1.32 0 .27-.04.52-.12.74-.08.22-.21.41-.38.57-.17.16-.38.28-.63.37-.25.09-.55.13-.89.13H6.72v1.57H7.9c.34 0 .64.04.91.11.27.08.5.19.69.35.19.16.34.36.44.61.1.24.16.54.16.87 0 .62-.18 1.09-.53 1.42-.35.33-.84.49-1.45.49-.29 0-.56-.04-.8-.13-.24-.08-.44-.2-.61-.36-.17-.16-.3-.34-.39-.56-.09-.22-.14-.46-.14-.72H4.19c0 .55.11 1.03.32 1.45.21.42.5.77.86 1.05s.77.49 1.24.63.96.21 1.48.21c.57 0 1.09-.08 1.58-.23.49-.15.91-.38 1.26-.68.36-.3.64-.66.84-1.1.2-.43.3-.93.3-1.48 0-.29-.04-.58-.11-.86-.08-.25-.19-.51-.35-.76zm9.26 1.4c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38c-.35-.07-.64-.15-.87-.23-.23-.08-.41-.16-.55-.25-.14-.09-.23-.19-.28-.3-.05-.11-.08-.24-.08-.39s.03-.28.09-.41c.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95c0-.39-.08-.75-.24-1.09-.16-.34-.39-.63-.69-.88-.3-.25-.66-.44-1.09-.59-.43-.15-.92-.22-1.46-.22-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.68.23.96c.15.28.37.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24-.17-.11-.3-.26-.41-.44-.11-.18-.17-.41-.18-.67h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02z"></path></g>
<g id="timer-off"><path d="M19.04 4.55l-1.42 1.42C16.07 4.74 14.12 4 12 4c-1.83 0-3.53.55-4.95 1.48l1.46 1.46C9.53 6.35 10.73 6 12 6c3.87 0 7 3.13 7 7 0 1.27-.35 2.47-.94 3.49l1.45 1.45C20.45 16.53 21 14.83 21 13c0-2.12-.74-4.07-1.97-5.61l1.42-1.42-1.41-1.42zM15 1H9v2h6V1zm-4 8.44l2 2V8h-2v1.44zM3.02 4L1.75 5.27 4.5 8.03C3.55 9.45 3 11.16 3 13c0 4.97 4.02 9 9 9 1.84 0 3.55-.55 4.98-1.5l2.5 2.5 1.27-1.27-7.71-7.71L3.02 4zM12 20c-3.87 0-7-3.13-7-7 0-1.28.35-2.48.95-3.52l9.56 9.56c-1.03.61-2.23.96-3.51.96z"></path></g>
<g id="tonality"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93s3.05-7.44 7-7.93v15.86zm2-15.86c1.03.13 2 .45 2.87.93H13v-.93zM13 7h5.24c.25.31.48.65.68 1H13V7zm0 3h6.74c.08.33.15.66.19 1H13v-1zm0 9.93V19h2.87c-.87.48-1.84.8-2.87.93zM18.24 17H13v-1h5.92c-.2.35-.43.69-.68 1zm1.5-3H13v-1h6.93c-.04.34-.11.67-.19 1z"></path></g>
<g id="transform"><path d="M22 18v-2H8V4h2L7 1 4 4h2v2H2v2h4v8c0 1.1.9 2 2 2h8v2h-2l3 3 3-3h-2v-2h4zM10 8h6v6h2V8c0-1.1-.9-2-2-2h-6v2z"></path></g>
<g id="tune"><path d="M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z"></path></g>
<g id="view-comfy"><path d="M3 9h4V5H3v4zm0 5h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zM8 9h4V5H8v4zm5-4v4h4V5h-4zm5 9h4v-4h-4v4zM3 19h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zm5 0h4v-4h-4v4zm0-14v4h4V5h-4z"></path></g>
<g id="view-compact"><path d="M3 19h6v-7H3v7zm7 0h12v-7H10v7zM3 5v6h19V5H3z"></path></g>
<g id="vignette"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 15c-4.42 0-8-2.69-8-6s3.58-6 8-6 8 2.69 8 6-3.58 6-8 6z"></path></g>
<g id="wb-auto"><path d="M6.85 12.65h2.3L8 9l-1.15 3.65zM22 7l-1.2 6.29L19.3 7h-1.6l-1.49 6.29L15 7h-.76C12.77 5.17 10.53 4 8 4c-4.42 0-8 3.58-8 8s3.58 8 8 8c3.13 0 5.84-1.81 7.15-4.43l.1.43H17l1.5-6.1L20 16h1.75l2.05-9H22zm-11.7 9l-.7-2H6.4l-.7 2H3.8L7 7h2l3.2 9h-1.9z"></path></g>
<g id="wb-cloudy"><path d="M19.36 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.64-4.96z"></path></g>
<g id="wb-incandescent"><path d="M3.55 18.54l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8zM11 22.45h2V19.5h-2v2.95zM4 10.5H1v2h3v-2zm11-4.19V1.5H9v4.81C7.21 7.35 6 9.28 6 11.5c0 3.31 2.69 6 6 6s6-2.69 6-6c0-2.22-1.21-4.15-3-5.19zm5 4.19v2h3v-2h-3zm-2.76 7.66l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4z"></path></g>
<g id="wb-iridescent"><path d="M5 14.5h14v-6H5v6zM11 .55V3.5h2V.55h-2zm8.04 2.5l-1.79 1.79 1.41 1.41 1.8-1.79-1.42-1.41zM13 22.45V19.5h-2v2.95h2zm7.45-3.91l-1.8-1.79-1.41 1.41 1.79 1.8 1.42-1.42zM3.55 4.46l1.79 1.79 1.41-1.41-1.79-1.79-1.41 1.41zm1.41 15.49l1.79-1.8-1.41-1.41-1.79 1.79 1.41 1.42z"></path></g>
<g id="wb-sunny"><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"></path></g>
</defs></svg>
</iron-iconset-svg>`;document.head.appendChild(wo.content);
/**
    @license
    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const So=_e`<iron-iconset-svg name="icons" size="24">
<svg><defs>
<g id="3d-rotation"><path d="M7.52 21.48C4.25 19.94 1.91 16.76 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32zm.89-6.52c-.19 0-.37-.03-.52-.08-.16-.06-.29-.13-.4-.24-.11-.1-.2-.22-.26-.37-.06-.14-.09-.3-.09-.47h-1.3c0 .36.07.68.21.95.14.27.33.5.56.69.24.18.51.32.82.41.3.1.62.15.96.15.37 0 .72-.05 1.03-.15.32-.1.6-.25.83-.44s.42-.43.55-.72c.13-.29.2-.61.2-.97 0-.19-.02-.38-.07-.56-.05-.18-.12-.35-.23-.51-.1-.16-.24-.3-.4-.43-.17-.13-.37-.23-.61-.31.2-.09.37-.2.52-.33.15-.13.27-.27.37-.42.1-.15.17-.3.22-.46.05-.16.07-.32.07-.48 0-.36-.06-.68-.18-.96-.12-.28-.29-.51-.51-.69-.2-.19-.47-.33-.77-.43C9.1 8.05 8.76 8 8.39 8c-.36 0-.69.05-1 .16-.3.11-.57.26-.79.45-.21.19-.38.41-.51.67-.12.26-.18.54-.18.85h1.3c0-.17.03-.32.09-.45s.14-.25.25-.34c.11-.09.23-.17.38-.22.15-.05.3-.08.48-.08.4 0 .7.1.89.31.19.2.29.49.29.86 0 .18-.03.34-.08.49-.05.15-.14.27-.25.37-.11.1-.25.18-.41.24-.16.06-.36.09-.58.09H7.5v1.03h.77c.22 0 .42.02.6.07s.33.13.45.23c.12.11.22.24.29.4.07.16.1.35.1.57 0 .41-.12.72-.35.93-.23.23-.55.33-.95.33zm8.55-5.92c-.32-.33-.7-.59-1.14-.77-.43-.18-.92-.27-1.46-.27H12v8h2.3c.55 0 1.06-.09 1.51-.27.45-.18.84-.43 1.16-.76.32-.33.57-.73.74-1.19.17-.47.26-.99.26-1.57v-.4c0-.58-.09-1.1-.26-1.57-.18-.47-.43-.87-.75-1.2zm-.39 3.16c0 .42-.05.79-.14 1.13-.1.33-.24.62-.43.85-.19.23-.43.41-.71.53-.29.12-.62.18-.99.18h-.91V9.12h.97c.72 0 1.27.23 1.64.69.38.46.57 1.12.57 1.99v.4zM12 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72 5.96 8.48h1.5C23.44 4.84 18.29 0 12 0z"></path></g>
<g id="accessibility"><path d="M12 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7h-6v13h-2v-6h-2v6H9V9H3V7h18v2z"></path></g>
<g id="accessible"><circle cx="12" cy="4" r="2"></circle><path d="M19 13v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.17-.19-.38-.34-.61-.45-.01 0-.01-.01-.02-.01H13c-.35-.2-.75-.3-1.19-.26C10.76 7.11 10 8.04 10 9.09V15c0 1.1.9 2 2 2h5v5h2v-5.5c0-1.1-.9-2-2-2h-3v-3.45c1.29 1.07 3.25 1.94 5 1.95zm-6.17 5c-.41 1.16-1.52 2-2.83 2-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1c-2.28.46-4 2.48-4 4.9 0 2.76 2.24 5 5 5 2.42 0 4.44-1.72 4.9-4h-2.07z"></path></g>
<g id="account-balance"><path d="M4 10v7h3v-7H4zm6 0v7h3v-7h-3zM2 22h19v-3H2v3zm14-12v7h3v-7h-3zm-4.5-9L2 6v2h19V6l-9.5-5z"></path></g>
<g id="account-balance-wallet"><path d="M21 18v1c0 1.1-.9 2-2 2H5c-1.11 0-2-.9-2-2V5c0-1.1.89-2 2-2h14c1.1 0 2 .9 2 2v1h-9c-1.11 0-2 .9-2 2v8c0 1.1.89 2 2 2h9zm-9-2h10V8H12v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path></g>
<g id="account-box"><path d="M3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.11 0-2 .9-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z"></path></g>
<g id="account-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"></path></g>
<g id="add"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path></g>
<g id="add-alert"><path d="M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-1.99h-3.98zm8.87-4.19V11c0-3.25-2.25-5.97-5.29-6.69v-.72C13.59 2.71 12.88 2 12 2s-1.59.71-1.59 1.59v.72C7.37 5.03 5.12 7.75 5.12 11v5.82L3 18.94V20h18v-1.06l-2.12-2.12zM16 13.01h-3v3h-2v-3H8V11h3V8h2v3h3v2.01z"></path></g>
<g id="add-box"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"></path></g>
<g id="add-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"></path></g>
<g id="add-circle-outline"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="add-shopping-cart"><path d="M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.11-.25-.25z"></path></g>
<g id="alarm"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"></path></g>
<g id="alarm-add"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"></path></g>
<g id="alarm-off"><path d="M12 6c3.87 0 7 3.13 7 7 0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92 0-4.97-4.03-9-9-9-1.41 0-2.73.33-3.92.91L9.6 6.43C10.35 6.16 11.16 6 12 6zm10-.28l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM2.92 2.29L1.65 3.57 2.98 4.9l-1.11.93 1.42 1.42 1.11-.94.8.8C3.83 8.69 3 10.75 3 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.89-2.2l2.2 2.2 1.27-1.27L3.89 3.27l-.97-.98zm13.55 16.1C15.26 19.39 13.7 20 12 20c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zM8.02 3.28L6.6 1.86l-.86.71 1.42 1.42.86-.71z"></path></g>
<g id="alarm-on"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6-6-1.06-1.06-4.93 4.95z"></path></g>
<g id="all-out"><path d="M16.21 4.16l4 4v-4zm4 12l-4 4h4zm-12 4l-4-4v4zm-4-12l4-4h-4zm12.95-.95c-2.73-2.73-7.17-2.73-9.9 0s-2.73 7.17 0 9.9 7.17 2.73 9.9 0 2.73-7.16 0-9.9zm-1.1 8.8c-2.13 2.13-5.57 2.13-7.7 0s-2.13-5.57 0-7.7 5.57-2.13 7.7 0 2.13 5.57 0 7.7z"></path></g>
<g id="android"><path d="M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10zM3.5 8C2.67 8 2 8.67 2 9.5v7c0 .83.67 1.5 1.5 1.5S5 17.33 5 16.5v-7C5 8.67 4.33 8 3.5 8zm17 0c-.83 0-1.5.67-1.5 1.5v7c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-7c0-.83-.67-1.5-1.5-1.5zm-4.97-5.84l1.3-1.3c.2-.2.2-.51 0-.71-.2-.2-.51-.2-.71 0l-1.48 1.48C13.85 1.23 12.95 1 12 1c-.96 0-1.86.23-2.66.63L7.85.15c-.2-.2-.51-.2-.71 0-.2.2-.2.51 0 .71l1.31 1.31C6.97 3.26 6 5.01 6 7h12c0-1.99-.97-3.75-2.47-4.84zM10 5H9V4h1v1zm5 0h-1V4h1v1z"></path></g>
<g id="announcement"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z"></path></g>
<g id="apps"><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z"></path></g>
<g id="archive"><path d="M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"></path></g>
<g id="arrow-back"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"></path></g>
<g id="arrow-downward"><path d="M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"></path></g>
<g id="arrow-drop-down"><path d="M7 10l5 5 5-5z"></path></g>
<g id="arrow-drop-down-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 12l-4-4h8l-4 4z"></path></g>
<g id="arrow-drop-up"><path d="M7 14l5-5 5 5z"></path></g>
<g id="arrow-forward"><path d="M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"></path></g>
<g id="arrow-upward"><path d="M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"></path></g>
<g id="aspect-ratio"><path d="M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"></path></g>
<g id="assessment"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"></path></g>
<g id="assignment"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"></path></g>
<g id="assignment-ind"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 4c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1V19z"></path></g>
<g id="assignment-late"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6 15h-2v-2h2v2zm0-4h-2V8h2v6zm-1-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"></path></g>
<g id="assignment-return"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm4 12h-4v3l-5-5 5-5v3h4v4z"></path></g>
<g id="assignment-returned"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 15l-5-5h3V9h4v4h3l-5 5z"></path></g>
<g id="assignment-turned-in"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-2 14l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path></g>
<g id="attachment"><path d="M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z"></path></g>
<g id="autorenew"><path d="M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"></path></g>
<g id="backspace"><path d="M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z"></path></g>
<g id="backup"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path></g>
<g id="block"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z"></path></g>
<g id="book"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"></path></g>
<g id="bookmark"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"></path></g>
<g id="bookmark-border"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"></path></g>
<g id="bug-report"><path d="M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"></path></g>
<g id="build"><path d="M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"></path></g>
<g id="cached"><path d="M19 8l-4 4h3c0 3.31-2.69 6-6 6-1.01 0-1.97-.25-2.8-.7l-1.46 1.46C8.97 19.54 10.43 20 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46C15.03 4.46 13.57 4 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"></path></g>
<g id="camera-enhance"><path d="M9 3L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2h-3.17L15 3H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-1l1.25-2.75L16 13l-2.75-1.25L12 9l-1.25 2.75L8 13l2.75 1.25z"></path></g>
<g id="cancel"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"></path></g>
<g id="card-giftcard"><path d="M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"></path></g>
<g id="card-membership"><path d="M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z"></path></g>
<g id="card-travel"><path d="M20 6h-3V4c0-1.11-.89-2-2-2H9c-1.11 0-2 .89-2 2v2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM9 4h6v2H9V4zm11 15H4v-2h16v2zm0-5H4V8h3v2h2V8h6v2h2V8h3v6z"></path></g>
<g id="change-history"><path d="M12 7.77L18.39 18H5.61L12 7.77M12 4L2 20h20L12 4z"></path></g>
<g id="check"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path></g>
<g id="check-box"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path></g>
<g id="check-box-outline-blank"><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></g>
<g id="check-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path></g>
<g id="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></g>
<g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path></g>
<g id="chrome-reader-mode"><path d="M13 12h7v1.5h-7zm0-2.5h7V11h-7zm0 5h7V16h-7zM21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 15h-9V6h9v13z"></path></g>
<g id="class"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"></path></g>
<g id="clear"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g>
<g id="close"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g>
<g id="cloud"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"></path></g>
<g id="cloud-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.5 14H8c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01C8.58 8.28 10.13 7 12 7c2.21 0 4 1.79 4 4h.5c1.38 0 2.5 1.12 2.5 2.5S17.88 16 16.5 16z"></path></g>
<g id="cloud-done"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM10 17l-3.5-3.5 1.41-1.41L10 14.17 15.18 9l1.41 1.41L10 17z"></path></g>
<g id="cloud-download"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"></path></g>
<g id="cloud-off"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96zM3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4 3 5.27zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h1.73z"></path></g>
<g id="cloud-queue"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3z"></path></g>
<g id="cloud-upload"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path></g>
<g id="code"><path d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"></path></g>
<g id="compare-arrows"><path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"></path></g>
<g id="content-copy"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"></path></g>
<g id="content-cut"><path d="M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3z"></path></g>
<g id="content-paste"><path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"></path></g>
<g id="copyright"><path d="M10.08 10.86c.05-.33.16-.62.3-.87s.34-.46.59-.62c.24-.15.54-.22.91-.23.23.01.44.05.63.13.2.09.38.21.52.36s.25.33.34.53.13.42.14.64h1.79c-.02-.47-.11-.9-.28-1.29s-.4-.73-.7-1.01-.66-.5-1.08-.66-.88-.23-1.39-.23c-.65 0-1.22.11-1.7.34s-.88.53-1.2.92-.56.84-.71 1.36S8 11.29 8 11.87v.27c0 .58.08 1.12.23 1.64s.39.97.71 1.35.72.69 1.2.91 1.05.34 1.7.34c.47 0 .91-.08 1.32-.23s.77-.36 1.08-.63.56-.58.74-.94.29-.74.3-1.15h-1.79c-.01.21-.06.4-.15.58s-.21.33-.36.46-.32.23-.52.3c-.19.07-.39.09-.6.1-.36-.01-.66-.08-.89-.23-.25-.16-.45-.37-.59-.62s-.25-.55-.3-.88-.08-.67-.08-1v-.27c0-.35.03-.68.08-1.01zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="create"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"></path></g>
<g id="create-new-folder"><path d="M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"></path></g>
<g id="credit-card"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"></path></g>
<g id="dashboard"><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"></path></g>
<g id="date-range"><path d="M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"></path></g>
<g id="delete"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"></path></g>
<g id="delete-forever"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"></path></g>
<g id="delete-sweep"><path d="M15 16h4v2h-4zm0-8h7v2h-7zm0 4h6v2h-6zM3 18c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V8H3v10zM14 5h-3l-1-1H6L5 5H2v2h12z"></path></g>
<g id="description"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"></path></g>
<g id="dns"><path d="M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g>
<g id="done"><path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"></path></g>
<g id="done-all"><path d="M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"></path></g>
<g id="donut-large"><path d="M11 5.08V2c-5 .5-9 4.81-9 10s4 9.5 9 10v-3.08c-3-.48-6-3.4-6-6.92s3-6.44 6-6.92zM18.97 11H22c-.47-5-4-8.53-9-9v3.08C16 5.51 18.54 8 18.97 11zM13 18.92V22c5-.47 8.53-4 9-9h-3.03c-.43 3-2.97 5.49-5.97 5.92z"></path></g>
<g id="donut-small"><path d="M11 9.16V2c-5 .5-9 4.79-9 10s4 9.5 9 10v-7.16c-1-.41-2-1.52-2-2.84s1-2.43 2-2.84zM14.86 11H22c-.48-4.75-4-8.53-9-9v7.16c1 .3 1.52.98 1.86 1.84zM13 14.84V22c5-.47 8.52-4.25 9-9h-7.14c-.34.86-.86 1.54-1.86 1.84z"></path></g>
<g id="drafts"><path d="M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zM12 13L3.74 7.84 12 3l8.26 4.84L12 13z"></path></g>
<g id="eject"><path d="M5 17h14v2H5zm7-12L5.33 15h13.34z"></path></g>
<g id="error"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"></path></g>
<g id="error-outline"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g>
<g id="euro-symbol"><path d="M15 18.5c-2.51 0-4.68-1.42-5.76-3.5H15v-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15V9H9.24C10.32 6.92 12.5 5.5 15 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3C19.41 3.87 17.3 3 15 3c-3.92 0-7.24 2.51-8.48 6H3v2h3.06c-.04.33-.06.66-.06 1 0 .34.02.67.06 1H3v2h3.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z"></path></g>
<g id="event"><path d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"></path></g>
<g id="event-seat"><path d="M4 18v3h3v-3h10v3h3v-6H4zm15-8h3v3h-3zM2 10h3v3H2zm15 3H7V5c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v8z"></path></g>
<g id="exit-to-app"><path d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></g>
<g id="expand-less"><path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"></path></g>
<g id="expand-more"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path></g>
<g id="explore"><path d="M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1c.61 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm2.19 12.19L6 18l3.81-8.19L18 6l-3.81 8.19z"></path></g>
<g id="extension"><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"></path></g>
<g id="face"><path d="M9 11.75c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zm6 0c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c.78 0 1.53-.09 2.25-.26.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z"></path></g>
<g id="favorite"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"></path></g>
<g id="favorite-border"><path d="M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"></path></g>
<g id="feedback"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z"></path></g>
<g id="file-download"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"></path></g>
<g id="file-upload"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"></path></g>
<g id="filter-list"><path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"></path></g>
<g id="find-in-page"><path d="M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"></path></g>
<g id="find-replace"><path d="M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z"></path></g>
<g id="fingerprint"><path d="M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.68-.2-.13-.24-.04-.55.2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67-.09.18-.26.28-.44.28zM3.5 9.72c-.1 0-.2-.03-.29-.09-.23-.16-.28-.47-.12-.7.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25.16.22.11.54-.12.7-.23.16-.54.11-.7-.12-.9-1.26-2.04-2.25-3.39-2.94-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07c-.13 0-.26-.05-.35-.15-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1-1.4-1.39-2.17-3.24-2.17-5.22 0-1.62 1.38-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29-.49-1.31-.73-2.61-.73-3.96 0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z"></path></g>
<g id="first-page"><path d="M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"></path></g>
<g id="flag"><path d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"></path></g>
<g id="flight-land"><path d="M2.5 19h19v2h-19zm7.18-5.73l4.35 1.16 5.31 1.42c.8.21 1.62-.26 1.84-1.06.21-.8-.26-1.62-1.06-1.84l-5.31-1.42-2.76-9.02L10.12 2v8.28L5.15 8.95l-.93-2.32-1.45-.39v5.17l1.6.43 5.31 1.43z"></path></g>
<g id="flight-takeoff"><path d="M2.5 19h19v2h-19zm19.57-9.36c-.21-.8-1.04-1.28-1.84-1.06L14.92 10l-6.9-6.43-1.93.51 4.14 7.17-4.97 1.33-1.97-1.54-1.45.39 1.82 3.16.77 1.33 1.6-.43 5.31-1.42 4.35-1.16L21 11.49c.81-.23 1.28-1.05 1.07-1.85z"></path></g>
<g id="flip-to-back"><path d="M9 7H7v2h2V7zm0 4H7v2h2v-2zm0-8c-1.11 0-2 .9-2 2h2V3zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2zm-6 0h-2v2h2V3zM9 17v-2H7c0 1.1.89 2 2 2zm10-4h2v-2h-2v2zm0-4h2V7h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zM5 7H3v12c0 1.1.89 2 2 2h12v-2H5V7zm10-2h2V3h-2v2zm0 12h2v-2h-2v2z"></path></g>
<g id="flip-to-front"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2 4v-2H3c0 1.1.89 2 2 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9c-1.11 0-2 .9-2 2v10c0 1.1.89 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v2zm-4 0h2v-2H7v2z"></path></g>
<g id="folder"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"></path></g>
<g id="folder-open"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"></path></g>
<g id="folder-shared"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z"></path></g>
<g id="font-download"><path d="M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z"></path></g>
<g id="forward"><path d="M12 8V4l8 8-8 8v-4H4V8z"></path></g>
<g id="fullscreen"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"></path></g>
<g id="fullscreen-exit"><path d="M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"></path></g>
<g id="g-translate"><path d="M20 5h-9.12L10 2H4c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h7l1 3h8c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zM7.17 14.59c-2.25 0-4.09-1.83-4.09-4.09s1.83-4.09 4.09-4.09c1.04 0 1.99.37 2.74 1.07l.07.06-1.23 1.18-.06-.05c-.29-.27-.78-.59-1.52-.59-1.31 0-2.38 1.09-2.38 2.42s1.07 2.42 2.38 2.42c1.37 0 1.96-.87 2.12-1.46H7.08V9.91h3.95l.01.07c.04.21.05.4.05.61 0 2.35-1.61 4-3.92 4zm6.03-1.71c.33.6.74 1.18 1.19 1.7l-.54.53-.65-2.23zm.77-.76h-.99l-.31-1.04h3.99s-.34 1.31-1.56 2.74c-.52-.62-.89-1.23-1.13-1.7zM21 20c0 .55-.45 1-1 1h-7l2-2-.81-2.77.92-.92L17.79 18l.73-.73-2.71-2.68c.9-1.03 1.6-2.25 1.92-3.51H19v-1.04h-3.64V9h-1.04v1.04h-1.96L11.18 6H20c.55 0 1 .45 1 1v13z"></path></g>
<g id="gavel"><path d="M1 21h12v2H1zM5.245 8.07l2.83-2.827 14.14 14.142-2.828 2.828zM12.317 1l5.657 5.656-2.83 2.83-5.654-5.66zM3.825 9.485l5.657 5.657-2.828 2.828-5.657-5.657z"></path></g>
<g id="gesture"><path d="M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z"></path></g>
<g id="get-app"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"></path></g>
<g id="gif"><path d="M11.5 9H13v6h-1.5zM9 9H6c-.6 0-1 .5-1 1v4c0 .5.4 1 1 1h3c.6 0 1-.5 1-1v-2H8.5v1.5h-2v-3H10V10c0-.5-.4-1-1-1zm10 1.5V9h-4.5v6H16v-2h2v-1.5h-2v-1z"></path></g>
<g id="grade"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"></path></g>
<g id="group-work"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM8 17.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zM9.5 8c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5S9.5 9.38 9.5 8zm6.5 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></g>
<g id="help"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"></path></g>
<g id="help-outline"><path d="M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"></path></g>
<g id="highlight-off"><path d="M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="history"><path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"></path></g>
<g id="home"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"></path></g>
<g id="hourglass-empty"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5l-4-4V4h8v3.5l-4 4z"></path></g>
<g id="hourglass-full"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6z"></path></g>
<g id="http"><path d="M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5v2zm2.5-.5h1.5V15H10v-4.5h1.5V9H7v1.5zm5.5 0H14V15h1.5v-4.5H17V9h-4.5v1.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1z"></path></g>
<g id="https"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"></path></g>
<g id="important-devices"><path d="M23 11.01L18 11c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-9c0-.55-.45-.99-1-.99zM23 20h-5v-7h5v7zM20 2H2C.89 2 0 2.89 0 4v12c0 1.1.89 2 2 2h7v2H7v2h8v-2h-2v-2h2v-2H2V4h18v5h2V4c0-1.11-.9-2-2-2zm-8.03 7L11 6l-.97 3H7l2.47 1.76-.94 2.91 2.47-1.8 2.47 1.8-.94-2.91L15 9h-3.03z"></path></g>
<g id="inbox"><path d="M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10z"></path></g>
<g id="indeterminate-check-box"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"></path></g>
<g id="info"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"></path></g>
<g id="info-outline"><path d="M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"></path></g>
<g id="input"><path d="M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14c0-1.11-.9-2-2-2zM11 16l4-4-4-4v3H1v2h10v3z"></path></g>
<g id="invert-colors"><path d="M17.66 7.93L12 2.27 6.34 7.93c-3.12 3.12-3.12 8.19 0 11.31C7.9 20.8 9.95 21.58 12 21.58c2.05 0 4.1-.78 5.66-2.34 3.12-3.12 3.12-8.19 0-11.31zM12 19.59c-1.6 0-3.11-.62-4.24-1.76C6.62 16.69 6 15.19 6 13.59s.62-3.11 1.76-4.24L12 5.1v14.49z"></path></g>
<g id="label"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"></path></g>
<g id="label-outline"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"></path></g>
<g id="language"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"></path></g>
<g id="last-page"><path d="M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"></path></g>
<g id="launch"><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path></g>
<g id="lightbulb-outline"><path d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z"></path></g>
<g id="line-style"><path d="M3 16h5v-2H3v2zm6.5 0h5v-2h-5v2zm6.5 0h5v-2h-5v2zM3 20h2v-2H3v2zm4 0h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM3 12h8v-2H3v2zm10 0h8v-2h-8v2zM3 4v4h18V4H3z"></path></g>
<g id="line-weight"><path d="M3 17h18v-2H3v2zm0 3h18v-1H3v1zm0-7h18v-3H3v3zm0-9v4h18V4H3z"></path></g>
<g id="link"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></g>
<g id="list"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"></path></g>
<g id="lock"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"></path></g>
<g id="lock-open"><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"></path></g>
<g id="lock-outline"><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z"></path></g>
<g id="low-priority"><path d="M14 5h8v2h-8zm0 5.5h8v2h-8zm0 5.5h8v2h-8zM2 11.5C2 15.08 4.92 18 8.5 18H9v2l3-3-3-3v2h-.5C6.02 16 4 13.98 4 11.5S6.02 7 8.5 7H12V5H8.5C4.92 5 2 7.92 2 11.5z"></path></g>
<g id="loyalty"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7zm11.77 8.27L13 19.54l-4.27-4.27C8.28 14.81 8 14.19 8 13.5c0-1.38 1.12-2.5 2.5-2.5.69 0 1.32.28 1.77.74l.73.72.73-.73c.45-.45 1.08-.73 1.77-.73 1.38 0 2.5 1.12 2.5 2.5 0 .69-.28 1.32-.73 1.77z"></path></g>
<g id="mail"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path></g>
<g id="markunread"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path></g>
<g id="markunread-mailbox"><path d="M20 6H10v6H8V4h6V0H6v6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z"></path></g>
<g id="menu"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path></g>
<g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g>
<g id="more-vert"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g>
<g id="motorcycle"><path d="M19.44 9.03L15.41 5H11v2h3.59l2 2H5c-2.8 0-5 2.2-5 5s2.2 5 5 5c2.46 0 4.45-1.69 4.9-4h1.65l2.77-2.77c-.21.54-.32 1.14-.32 1.77 0 2.8 2.2 5 5 5s5-2.2 5-5c0-2.65-1.97-4.77-4.56-4.97zM7.82 15C7.4 16.15 6.28 17 5 17c-1.63 0-3-1.37-3-3s1.37-3 3-3c1.28 0 2.4.85 2.82 2H5v2h2.82zM19 17c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"></path></g>
<g id="move-to-inbox"><path d="M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10zm-3-5h-2V7h-4v3H8l4 4 4-4z"></path></g>
<g id="next-week"><path d="M20 7h-4V5c0-.55-.22-1.05-.59-1.41C15.05 3.22 14.55 3 14 3h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM10 5h4v2h-4V5zm1 13.5l-1-1 3-3-3-3 1-1 4 4-4 4z"></path></g>
<g id="note-add"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z"></path></g>
<g id="offline-pin"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm5 16H7v-2h10v2zm-6.7-4L7 10.7l1.4-1.4 1.9 1.9 5.3-5.3L17 7.3 10.3 14z"></path></g>
<g id="opacity"><path d="M17.66 8L12 2.35 6.34 8C4.78 9.56 4 11.64 4 13.64s.78 4.11 2.34 5.67 3.61 2.35 5.66 2.35 4.1-.79 5.66-2.35S20 15.64 20 13.64 19.22 9.56 17.66 8zM6 14c.01-2 .62-3.27 1.76-4.4L12 5.27l4.24 4.38C17.38 10.77 17.99 12 18 14H6z"></path></g>
<g id="open-in-browser"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2zm-7 6l-4 4h3v6h2v-6h3l-4-4z"></path></g>
<g id="open-in-new"><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path></g>
<g id="open-with"><path d="M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z"></path></g>
<g id="pageview"><path d="M11.5 9C10.12 9 9 10.12 9 11.5s1.12 2.5 2.5 2.5 2.5-1.12 2.5-2.5S12.88 9 11.5 9zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-3.21 14.21l-2.91-2.91c-.69.44-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1.69-.7 2.39l2.91 2.9-1.42 1.42z"></path></g>
<g id="pan-tool"><path d="M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z"></path></g>
<g id="payment"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"></path></g>
<g id="perm-camera-mic"><path d="M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v-2.09c-2.83-.48-5-2.94-5-5.91h2c0 2.21 1.79 4 4 4s4-1.79 4-4h2c0 2.97-2.17 5.43-5 5.91V21h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-6 8c0 1.1-.9 2-2 2s-2-.9-2-2V9c0-1.1.9-2 2-2s2 .9 2 2v4z"></path></g>
<g id="perm-contact-calendar"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1z"></path></g>
<g id="perm-data-setting"><path d="M18.99 11.5c.34 0 .67.03 1 .07L20 0 0 20h11.56c-.04-.33-.07-.66-.07-1 0-4.14 3.36-7.5 7.5-7.5zm3.71 7.99c.02-.16.04-.32.04-.49 0-.17-.01-.33-.04-.49l1.06-.83c.09-.08.12-.21.06-.32l-1-1.73c-.06-.11-.19-.15-.31-.11l-1.24.5c-.26-.2-.54-.37-.85-.49l-.19-1.32c-.01-.12-.12-.21-.24-.21h-2c-.12 0-.23.09-.25.21l-.19 1.32c-.3.13-.59.29-.85.49l-1.24-.5c-.11-.04-.24 0-.31.11l-1 1.73c-.06.11-.04.24.06.32l1.06.83c-.02.16-.03.32-.03.49 0 .17.01.33.03.49l-1.06.83c-.09.08-.12.21-.06.32l1 1.73c.06.11.19.15.31.11l1.24-.5c.26.2.54.37.85.49l.19 1.32c.02.12.12.21.25.21h2c.12 0 .23-.09.25-.21l.19-1.32c.3-.13.59-.29.84-.49l1.25.5c.11.04.24 0 .31-.11l1-1.73c.06-.11.03-.24-.06-.32l-1.07-.83zm-3.71 1.01c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path></g>
<g id="perm-device-information"><path d="M13 7h-2v2h2V7zm0 4h-2v6h2v-6zm4-9.99L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"></path></g>
<g id="perm-identity"><path d="M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"></path></g>
<g id="perm-media"><path d="M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2V6zm20-2h-8l-2-2H6c-1.1 0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 15l4.5-6 3.5 4.51 2.5-3.01L21 15H7z"></path></g>
<g id="perm-phone-msg"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM12 3v10l3-3h6V3h-9z"></path></g>
<g id="perm-scan-wifi"><path d="M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z"></path></g>
<g id="pets"><circle cx="4.5" cy="9.5" r="2.5"></circle><circle cx="9" cy="5.5" r="2.5"></circle><circle cx="15" cy="5.5" r="2.5"></circle><circle cx="19.5" cy="9.5" r="2.5"></circle><path d="M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z"></path></g>
<g id="picture-in-picture"><path d="M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"></path></g>
<g id="picture-in-picture-alt"><path d="M19 11h-8v6h8v-6zm4 8V4.98C23 3.88 22.1 3 21 3H3c-1.1 0-2 .88-2 1.98V19c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zm-2 .02H3V4.97h18v14.05z"></path></g>
<g id="play-for-work"><path d="M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5h-2zm-5 9c0 3.31 2.69 6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6z"></path></g>
<g id="polymer"><path d="M19 4h-4L7.11 16.63 4.5 12 9 4H5L.5 12 5 20h4l7.89-12.63L19.5 12 15 20h4l4.5-8z"></path></g>
<g id="power-settings-new"><path d="M13 3h-2v10h2V3zm4.83 2.17l-1.42 1.42C17.99 7.86 19 9.81 19 12c0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.19 1.01-4.14 2.58-5.42L6.17 5.17C4.23 6.82 3 9.26 3 12c0 4.97 4.03 9 9 9s9-4.03 9-9c0-2.74-1.23-5.18-3.17-6.83z"></path></g>
<g id="pregnant-woman"><path d="M9 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm7 9c-.01-1.34-.83-2.51-2-3 0-1.66-1.34-3-3-3s-3 1.34-3 3v7h2v5h3v-5h3v-4z"></path></g>
<g id="print"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"></path></g>
<g id="query-builder"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"></path></g>
<g id="question-answer"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"></path></g>
<g id="radio-button-checked"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g>
<g id="radio-button-unchecked"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g>
<g id="receipt"><path d="M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 22l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20z"></path></g>
<g id="record-voice-over"><circle cx="9" cy="9" r="4"></circle><path d="M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64l-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z"></path></g>
<g id="redeem"><path d="M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"></path></g>
<g id="redo"><path d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"></path></g>
<g id="refresh"><path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"></path></g>
<g id="remove"><path d="M19 13H5v-2h14v2z"></path></g>
<g id="remove-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z"></path></g>
<g id="remove-circle-outline"><path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="remove-shopping-cart"><path d="M22.73 22.73L2.77 2.77 2 2l-.73-.73L0 2.54l4.39 4.39 2.21 4.66-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h7.46l1.38 1.38c-.5.36-.83.95-.83 1.62 0 1.1.89 2 1.99 2 .67 0 1.26-.33 1.62-.84L21.46 24l1.27-1.27zM7.42 15c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h2.36l2 2H7.42zm8.13-2c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H6.54l9.01 9zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2z"></path></g>
<g id="reorder"><path d="M3 15h18v-2H3v2zm0 4h18v-2H3v2zm0-8h18V9H3v2zm0-6v2h18V5H3z"></path></g>
<g id="reply"><path d="M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"></path></g>
<g id="reply-all"><path d="M7 8V5l-7 7 7 7v-3l-4-4 4-4zm6 1V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"></path></g>
<g id="report"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z"></path></g>
<g id="report-problem"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"></path></g>
<g id="restore"><path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"></path></g>
<g id="restore-page"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm-2 16c-2.05 0-3.81-1.24-4.58-3h1.71c.63.9 1.68 1.5 2.87 1.5 1.93 0 3.5-1.57 3.5-3.5S13.93 9.5 12 9.5c-1.35 0-2.52.78-3.1 1.9l1.6 1.6h-4V9l1.3 1.3C8.69 8.92 10.23 8 12 8c2.76 0 5 2.24 5 5s-2.24 5-5 5z"></path></g>
<g id="room"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></g>
<g id="rounded-corner"><path d="M19 19h2v2h-2v-2zm0-2h2v-2h-2v2zM3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm0-4h2V3H3v2zm4 0h2V3H7v2zm8 16h2v-2h-2v2zm-4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm-8 0h2v-2H7v2zm-4 0h2v-2H3v2zM21 8c0-2.76-2.24-5-5-5h-5v2h5c1.65 0 3 1.35 3 3v5h2V8z"></path></g>
<g id="rowing"><path d="M8.5 14.5L4 19l1.5 1.5L9 17h2l-2.5-2.5zM15 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 20.01L18 24l-2.99-3.01V19.5l-7.1-7.09c-.31.05-.61.07-.91.07v-2.16c1.66.03 3.61-.87 4.67-2.04l1.4-1.55c.19-.21.43-.38.69-.5.29-.14.62-.23.96-.23h.03C15.99 6.01 17 7.02 17 8.26v5.75c0 .84-.35 1.61-.92 2.16l-3.58-3.58v-2.27c-.63.52-1.43 1.02-2.29 1.39L16.5 18H18l3 3.01z"></path></g>
<g id="save"><path d="M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"></path></g>
<g id="schedule"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"></path></g>
<g id="search"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path></g>
<g id="select-all"><path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z"></path></g>
<g id="send"><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"></path></g>
<g id="settings"><path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"></path></g>
<g id="settings-applications"><path d="M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z"></path></g>
<g id="settings-backup-restore"><path d="M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9c-4.97 0-9 4.03-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.51 0-2.91-.49-4.06-1.3l-1.42 1.44C8.04 20.3 9.94 21 12 21c4.97 0 9-4.03 9-9s-4.03-9-9-9z"></path></g>
<g id="settings-bluetooth"><path d="M11 24h2v-2h-2v2zm-4 0h2v-2H7v2zm8 0h2v-2h-2v2zm2.71-18.29L12 0h-1v7.59L6.41 3 5 4.41 10.59 10 5 15.59 6.41 17 11 12.41V20h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 3.83l1.88 1.88L13 7.59V3.83zm1.88 10.46L13 16.17v-3.76l1.88 1.88z"></path></g>
<g id="settings-brightness"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02zM8 16h2.5l1.5 1.5 1.5-1.5H16v-2.5l1.5-1.5-1.5-1.5V8h-2.5L12 6.5 10.5 8H8v2.5L6.5 12 8 13.5V16zm4-7c1.66 0 3 1.34 3 3s-1.34 3-3 3V9z"></path></g>
<g id="settings-cell"><path d="M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM16 .01L8 0C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V2c0-1.1-.9-1.99-2-1.99zM16 16H8V4h8v12z"></path></g>
<g id="settings-ethernet"><path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z"></path></g>
<g id="settings-input-antenna"><path d="M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29 0-1.38-1.12-2.5-2.5-2.5S9.5 10.62 9.5 12c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3zM12 1C5.93 1 1 5.93 1 12h2c0-4.97 4.03-9 9-9s9 4.03 9 9h2c0-6.07-4.93-11-11-11z"></path></g>
<g id="settings-input-component"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"></path></g>
<g id="settings-input-composite"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"></path></g>
<g id="settings-input-hdmi"><path d="M18 7V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3H5v6l3 6v3h8v-3l3-6V7h-1zM8 4h8v3h-2V5h-1v2h-2V5h-1v2H8V4z"></path></g>
<g id="settings-input-svideo"><path d="M8 11.5c0-.83-.67-1.5-1.5-1.5S5 10.67 5 11.5 5.67 13 6.5 13 8 12.33 8 11.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3C9.67 5 9 5.67 9 6.5S9.67 8 10.5 8h3c.83 0 1.5-.67 1.5-1.5zM8.5 15c-.83 0-1.5.67-1.5 1.5S7.67 18 8.5 18s1.5-.67 1.5-1.5S9.33 15 8.5 15zM12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9zm5.5-11c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-2 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"></path></g>
<g id="settings-overscan"><path d="M12.01 5.5L10 8h4l-1.99-2.5zM18 10v4l2.5-1.99L18 10zM6 10l-2.5 2.01L6 14v-4zm8 6h-4l2.01 2.5L14 16zm7-13H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"></path></g>
<g id="settings-phone"><path d="M13 9h-2v2h2V9zm4 0h-2v2h2V9zm3 6.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 9v2h2V9h-2z"></path></g>
<g id="settings-power"><path d="M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm2-22h-2v10h2V2zm3.56 2.44l-1.45 1.45C16.84 6.94 18 8.83 18 11c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 4.44C5.36 5.88 4 8.28 4 11c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.72-1.36-5.12-3.44-6.56zM15 24h2v-2h-2v2z"></path></g>
<g id="settings-remote"><path d="M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1zm-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM7.05 6.05l1.41 1.41C9.37 6.56 10.62 6 12 6s2.63.56 3.54 1.46l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05zM12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0z"></path></g>
<g id="settings-voice"><path d="M7 24h2v-2H7v2zm5-11c1.66 0 2.99-1.34 2.99-3L15 4c0-1.66-1.34-3-3-3S9 2.34 9 4v6c0 1.66 1.34 3 3 3zm-1 11h2v-2h-2v2zm4 0h2v-2h-2v2zm4-14h-1.7c0 3-2.54 5.1-5.3 5.1S6.7 13 6.7 10H5c0 3.41 2.72 6.23 6 6.72V20h2v-3.28c3.28-.49 6-3.31 6-6.72z"></path></g>
<g id="shop"><path d="M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z"></path></g>
<g id="shop-two"><path d="M3 9H1v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H3V9zm15-4V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3-5.5 4z"></path></g>
<g id="shopping-basket"><path d="M17.21 9l-4.38-6.56c-.19-.28-.51-.42-.83-.42-.32 0-.64.14-.83.43L6.79 9H2c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g>
<g id="shopping-cart"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"></path></g>
<g id="sort"><path d="M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z"></path></g>
<g id="speaker-notes"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 14H6v-2h2v2zm0-3H6V9h2v2zm0-3H6V6h2v2zm7 6h-5v-2h5v2zm3-3h-8V9h8v2zm0-3h-8V6h8v2z"></path></g>
<g id="speaker-notes-off"><path d="M10.54 11l-.54-.54L7.54 8 6 6.46 2.38 2.84 1.27 1.73 0 3l2.01 2.01L2 22l4-4h9l5.73 5.73L22 22.46 17.54 18l-7-7zM8 14H6v-2h2v2zm-2-3V9l2 2H6zm14-9H4.08L10 7.92V6h8v2h-7.92l1 1H18v2h-4.92l6.99 6.99C21.14 17.95 22 17.08 22 16V4c0-1.1-.9-2-2-2z"></path></g>
<g id="spellcheck"><path d="M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5L8.5 5.48 10.57 11H6.43zm15.16.59l-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l-1.41-1.41z"></path></g>
<g id="star"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"></path></g>
<g id="star-border"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"></path></g>
<g id="star-half"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"></path></g>
<g id="stars"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23L16.23 18z"></path></g>
<g id="store"><path d="M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z"></path></g>
<g id="subdirectory-arrow-left"><path d="M11 9l1.42 1.42L8.83 14H18V4h2v12H8.83l3.59 3.58L11 21l-6-6 6-6z"></path></g>
<g id="subdirectory-arrow-right"><path d="M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z"></path></g>
<g id="subject"><path d="M14 17H4v2h10v-2zm6-8H4v2h16V9zM4 15h16v-2H4v2zM4 5v2h16V5H4z"></path></g>
<g id="supervisor-account"><path d="M16.5 12c1.38 0 2.49-1.12 2.49-2.5S17.88 7 16.5 7C15.12 7 14 8.12 14 9.5s1.12 2.5 2.5 2.5zM9 11c1.66 0 2.99-1.34 2.99-3S10.66 5 9 5C7.34 5 6 6.34 6 8s1.34 3 3 3zm7.5 3c-1.83 0-5.5.92-5.5 2.75V19h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zM9 13c-2.33 0-7 1.17-7 3.5V19h7v-2.25c0-.85.33-2.34 2.37-3.47C10.5 13.1 9.66 13 9 13z"></path></g>
<g id="swap-horiz"><path d="M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z"></path></g>
<g id="swap-vert"><path d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z"></path></g>
<g id="swap-vertical-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM6.5 9L10 5.5 13.5 9H11v4H9V9H6.5zm11 6L14 18.5 10.5 15H13v-4h2v4h2.5z"></path></g>
<g id="system-update-alt"><path d="M12 16.5l4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"></path></g>
<g id="tab"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4h8v10z"></path></g>
<g id="tab-unselected"><path d="M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"></path></g>
<g id="text-format"><path d="M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98L13.87 11h-3.74L12 5.98z"></path></g>
<g id="theaters"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"></path></g>
<g id="thumb-down"><path d="M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v1.91l.01.01L1 14c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm4 0v12h4V3h-4z"></path></g>
<g id="thumb-up"><path d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.91l-.01-.01L23 10z"></path></g>
<g id="thumbs-up-down"><path d="M12 6c0-.55-.45-1-1-1H5.82l.66-3.18.02-.23c0-.31-.13-.59-.33-.8L5.38 0 .44 4.94C.17 5.21 0 5.59 0 6v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29c.07-.17.11-.36.11-.55V6zm10.5 4h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17-.11.36-.11.55V18c0 .55.45 1 1 1h5.18l-.66 3.18-.02.24c0 .31.13.59.33.8l.79.78 4.94-4.94c.27-.27.44-.65.44-1.06v-6.5c0-.83-.67-1.5-1.5-1.5z"></path></g>
<g id="timeline"><path d="M23 8c0 1.1-.9 2-2 2-.18 0-.35-.02-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56C19.02 8.35 19 8.18 19 8c0-1.1.9-2 2-2s2 .9 2 2z"></path></g>
<g id="toc"><path d="M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6h2v-2h-2v2z"></path></g>
<g id="today"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"></path></g>
<g id="toll"><path d="M15 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zM3 12c0-2.61 1.67-4.83 4-5.65V4.26C3.55 5.15 1 8.27 1 12s2.55 6.85 6 7.74v-2.09c-2.33-.82-4-3.04-4-5.65z"></path></g>
<g id="touch-app"><path d="M9 11.24V7.5C9 6.12 10.12 5 11.5 5S14 6.12 14 7.5v3.74c1.21-.81 2-2.18 2-3.74C16 5.01 13.99 3 11.5 3S7 5.01 7 7.5c0 1.56.79 2.93 2 3.74zm9.84 4.63l-4.54-2.26c-.17-.07-.35-.11-.54-.11H13v-6c0-.83-.67-1.5-1.5-1.5S10 6.67 10 7.5v10.74l-3.43-.72c-.08-.01-.15-.03-.24-.03-.31 0-.59.13-.79.33l-.79.8 4.94 4.94c.27.27.65.44 1.06.44h6.79c.75 0 1.33-.55 1.44-1.28l.75-5.27c.01-.07.02-.14.02-.2 0-.62-.38-1.16-.91-1.38z"></path></g>
<g id="track-changes"><path d="M19.07 4.93l-1.41 1.41C19.1 7.79 20 9.79 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z"></path></g>
<g id="translate"><path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></g>
<g id="trending-down"><path d="M16 18l2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z"></path></g>
<g id="trending-flat"><path d="M22 12l-4-4v3H3v2h15v3z"></path></g>
<g id="trending-up"><path d="M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"></path></g>
<g id="turned-in"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"></path></g>
<g id="turned-in-not"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"></path></g>
<g id="unarchive"><path d="M20.55 5.22l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.15.55L3.46 5.22C3.17 5.57 3 6.01 3 6.5V19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.49-.17-.93-.45-1.28zM12 9.5l5.5 5.5H14v2h-4v-2H6.5L12 9.5zM5.12 5l.82-1h12l.93 1H5.12z"></path></g>
<g id="undo"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"></path></g>
<g id="unfold-less"><path d="M7.41 18.59L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"></path></g>
<g id="unfold-more"><path d="M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"></path></g>
<g id="update"><path d="M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79 2.73 2.71 7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58 3.51-3.47 9.14-3.47 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z"></path></g>
<g id="verified-user"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path></g>
<g id="view-agenda"><path d="M20 13H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm0-10H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"></path></g>
<g id="view-array"><path d="M4 18h3V5H4v13zM18 5v13h3V5h-3zM8 18h9V5H8v13z"></path></g>
<g id="view-carousel"><path d="M7 19h10V4H7v15zm-5-2h4V6H2v11zM18 6v11h4V6h-4z"></path></g>
<g id="view-column"><path d="M10 18h5V5h-5v13zm-6 0h5V5H4v13zM16 5v13h5V5h-5z"></path></g>
<g id="view-day"><path d="M2 21h19v-3H2v3zM20 8H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zM2 3v3h19V3H2z"></path></g>
<g id="view-headline"><path d="M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z"></path></g>
<g id="view-list"><path d="M4 14h4v-4H4v4zm0 5h4v-4H4v4zM4 9h4V5H4v4zm5 5h12v-4H9v4zm0 5h12v-4H9v4zM9 5v4h12V5H9z"></path></g>
<g id="view-module"><path d="M4 11h5V5H4v6zm0 7h5v-6H4v6zm6 0h5v-6h-5v6zm6 0h5v-6h-5v6zm-6-7h5V5h-5v6zm6-6v6h5V5h-5z"></path></g>
<g id="view-quilt"><path d="M10 18h5v-6h-5v6zm-6 0h5V5H4v13zm12 0h5v-6h-5v6zM10 5v6h11V5H10z"></path></g>
<g id="view-stream"><path d="M4 18h17v-6H4v6zM4 5v6h17V5H4z"></path></g>
<g id="view-week"><path d="M6 5H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm14 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-7 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"></path></g>
<g id="visibility"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"></path></g>
<g id="visibility-off"><path d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"></path></g>
<g id="warning"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"></path></g>
<g id="watch-later"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"></path></g>
<g id="weekend"><path d="M21 10c-1.1 0-2 .9-2 2v3H5v-3c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2zm-3-5H6c-1.1 0-2 .9-2 2v2.15c1.16.41 2 1.51 2 2.82V14h12v-2.03c0-1.3.84-2.4 2-2.82V7c0-1.1-.9-2-2-2z"></path></g>
<g id="work"><path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"></path></g>
<g id="youtube-searched-for"><path d="M17.01 14h-.8l-.27-.27c.98-1.14 1.57-2.61 1.57-4.23 0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4 4.16-4H6.51C6.51 7 8.53 5 11.01 5s4.5 2.01 4.5 4.5c0 2.48-2.02 4.5-4.5 4.5-.65 0-1.26-.14-1.82-.38L7.71 15.1c.97.57 2.09.9 3.3.9 1.61 0 3.08-.59 4.22-1.57l.27.27v.79l5.01 4.99L22 19l-4.99-5z"></path></g>
<g id="zoom-in"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm2.5-4h-2v2H9v-2H7V9h2V7h1v2h2v1z"></path></g>
<g id="zoom-out"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"></path></g>
</defs></svg>
</iron-iconset-svg>`;document.head.appendChild(So.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
var Mo={"U+0008":"backspace","U+0009":"tab","U+001B":"esc","U+0020":"space","U+007F":"del"},Eo={8:"backspace",9:"tab",13:"enter",27:"esc",33:"pageup",34:"pagedown",35:"end",36:"home",32:"space",37:"left",38:"up",39:"right",40:"down",46:"del",106:"*"},To={shift:"shiftKey",ctrl:"ctrlKey",alt:"altKey",meta:"metaKey"},Co=/[a-z0-9*]/,Ao=/U\+/,ko=/^arrow/,Lo=/^space(bar)?/,Po=/^escape$/;function No(t,e){var n="";if(t){var i=t.toLowerCase();" "===i||Lo.test(i)?n="space":Po.test(i)?n="esc":1==i.length?e&&!Co.test(i)||(n=i):n=ko.test(i)?i.replace("arrow",""):"multiply"==i?"*":i}return n}function Io(t,e){return(function n(t,e){return t.key?No(t.key,e):t.detail&&t.detail.key?No(t.detail.key,e):(function n(t){var e="";return t&&(t in Mo?e=Mo[t]:Ao.test(t)?(t=parseInt(t.replace("U+","0x"),16),e=String.fromCharCode(t).toLowerCase()):e=t.toLowerCase()),e})(t.keyIdentifier)||(function i(t){var e="";return Number(t)&&(e=t>=65&&t<=90?String.fromCharCode(32+t):t>=112&&t<=123?"f"+(t-112+1):t>=48&&t<=57?String(t-48):t>=96&&t<=105?String(t-96):Eo[t]),e})(t.keyCode)||""})(e,t.hasModifiers)===t.key&&(!t.hasModifiers||!!e.shiftKey==!!t.shiftKey&&!!e.ctrlKey==!!t.ctrlKey&&!!e.altKey==!!t.altKey&&!!e.metaKey==!!t.metaKey)}function Oo(t){return t.trim().split(" ").map((function(t){return(function e(t){return 1===t.length?{combo:t,key:t,event:"keydown"}:t.split("+").reduce((function(t,e){var n=e.split(":"),i=n[0],r=n[1];return i in To?(t[To[i]]=!0,t.hasModifiers=!0):(t.key=i,t.event=r||"keydown"),t}),{combo:t.split(":").shift()})})(t)}))}const Ro={properties:{keyEventTarget:{type:Object,value:function(){return this}},stopKeyboardEventPropagation:{type:Boolean,value:!1},_boundKeyHandlers:{type:Array,value:function(){return[]}},_imperativeKeyBindings:{type:Object,value:function(){return{}}}},observers:["_resetKeyEventListeners(keyEventTarget, _boundKeyHandlers)"],keyBindings:{},registered:function(){this._prepKeyBindings()},attached:function(){this._listenKeyEventListeners()},detached:function(){this._unlistenKeyEventListeners()},addOwnKeyBinding:function(t,e){this._imperativeKeyBindings[t]=e,this._prepKeyBindings(),this._resetKeyEventListeners()},removeOwnKeyBindings:function(){this._imperativeKeyBindings={},this._prepKeyBindings(),this._resetKeyEventListeners()},keyboardEventMatchesKeys:function(t,e){for(var n=Oo(e),i=0;i<n.length;++i)if(Io(n[i],t))return!0;return!1},_collectKeyBindings:function(){var t=this.behaviors.map((function(t){return t.keyBindings}));return-1===t.indexOf(this.keyBindings)&&t.push(this.keyBindings),t},_prepKeyBindings:function(){for(var t in this._keyBindings={},this._collectKeyBindings().forEach((function(t){for(var e in t)this._addKeyBinding(e,t[e])}),this),this._imperativeKeyBindings)this._addKeyBinding(t,this._imperativeKeyBindings[t]);for(var e in this._keyBindings)this._keyBindings[e].sort((function(t,e){var n=t[0].hasModifiers;return n===e[0].hasModifiers?0:n?-1:1}))},_addKeyBinding:function(t,e){Oo(t).forEach((function(t){this._keyBindings[t.event]=this._keyBindings[t.event]||[],this._keyBindings[t.event].push([t,e])}),this)},_resetKeyEventListeners:function(){this._unlistenKeyEventListeners(),this.isAttached&&this._listenKeyEventListeners()},_listenKeyEventListeners:function(){this.keyEventTarget&&Object.keys(this._keyBindings).forEach((function(t){var e=this._onKeyBindingEvent.bind(this,this._keyBindings[t]);this._boundKeyHandlers.push([this.keyEventTarget,t,e]),this.keyEventTarget.addEventListener(t,e)}),this)},_unlistenKeyEventListeners:function(){for(var t;this._boundKeyHandlers.length;)(t=this._boundKeyHandlers.pop())[0].removeEventListener(t[1],t[2])},_onKeyBindingEvent:function(t,e){if(this.stopKeyboardEventPropagation&&e.stopPropagation(),!e.defaultPrevented)for(var n=0;n<t.length;n++){var i=t[n][0],r=t[n][1];if(Io(i,e)&&(this._triggerKeyHandler(i,r,e),e.defaultPrevented))return}},_triggerKeyHandler:function(t,e,n){var i=Object.create(t);i.keyboardEvent=n;var r=new CustomEvent(t.event,{detail:i,cancelable:!0});this[e].call(this,r),r.defaultPrevented&&n.preventDefault()}},zo={properties:{scrollTarget:{type:HTMLElement,value:function(){return this._defaultScrollTarget}}},observers:["_scrollTargetChanged(scrollTarget, isAttached)"],_shouldHaveListener:!0,_scrollTargetChanged:function(t,e){if(this._oldScrollTarget&&(this._toggleScrollListener(!1,this._oldScrollTarget),this._oldScrollTarget=null),e)if("document"===t)this.scrollTarget=this._doc;else if("string"==typeof t){var n=this.domHost;this.scrollTarget=n&&n.$?n.$[t]:qi(this.ownerDocument).querySelector("#"+t)}else this._isValidScrollTarget()&&(this._oldScrollTarget=t,this._toggleScrollListener(this._shouldHaveListener,t))},_scrollHandler:function t(){},get _defaultScrollTarget(){return this._doc},get _doc(){return this.ownerDocument.documentElement},get _scrollTop(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageYOffset:this.scrollTarget.scrollTop:0},get _scrollLeft(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageXOffset:this.scrollTarget.scrollLeft:0},set _scrollTop(t){this.scrollTarget===this._doc?window.scrollTo(window.pageXOffset,t):this._isValidScrollTarget()&&(this.scrollTarget.scrollTop=t)},set _scrollLeft(t){this.scrollTarget===this._doc?window.scrollTo(t,window.pageYOffset):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=t)},scroll:function(t,e){var n;"object"==typeof t?(n=t.left,e=t.top):n=t,n=n||0,e=e||0,this.scrollTarget===this._doc?window.scrollTo(n,e):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=n,this.scrollTarget.scrollTop=e)},get _scrollTargetWidth(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.innerWidth:this.scrollTarget.offsetWidth:0},get _scrollTargetHeight(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.innerHeight:this.scrollTarget.offsetHeight:0},_isValidScrollTarget:function(){return this.scrollTarget instanceof HTMLElement},_toggleScrollListener:function(t,e){var n=e===this._doc?window:e;t?this._boundScrollHandler||(this._boundScrollHandler=this._scrollHandler.bind(this),n.addEventListener("scroll",this._boundScrollHandler)):this._boundScrollHandler&&(n.removeEventListener("scroll",this._boundScrollHandler),this._boundScrollHandler=null)},toggleScrollListener:function(t){this._shouldHaveListener=t,this._toggleScrollListener(t,this.scrollTarget)}};
/**
    @license
    Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
/**
    @license
    Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
var Do=navigator.userAgent.match(/iP(?:hone|ad;(?: U;)? CPU) OS (\d+)/),Bo=Do&&Do[1]>=8,Ho="-10000px",Fo=-100;Ir({_template:_e`
    <style>
      :host {
        display: block;
      }

      @media only screen and (-webkit-max-device-pixel-ratio: 1) {
        :host {
          will-change: transform;
        }
      }

      #items {
        @apply --iron-list-items-container;
        position: relative;
      }

      :host(:not([grid])) #items > ::slotted(*) {
        width: 100%;
      }

      #items > ::slotted(*) {
        box-sizing: border-box;
        margin: 0;
        position: absolute;
        top: 0;
        will-change: transform;
      }
    </style>

    <array-selector id="selector" items="{{items}}" selected="{{selectedItems}}" selected-item="{{selectedItem}}"></array-selector>

    <div id="items">
      <slot></slot>
    </div>
`,is:"iron-list",properties:{items:{type:Array},as:{type:String,value:"item"},indexAs:{type:String,value:"index"},selectedAs:{type:String,value:"selected"},grid:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"_gridChanged"},selectionEnabled:{type:Boolean,value:!1},selectedItem:{type:Object,notify:!0},selectedItems:{type:Object,notify:!0},multiSelection:{type:Boolean,value:!1},scrollOffset:{type:Number,value:0}},observers:["_itemsChanged(items.*)","_selectionEnabledChanged(selectionEnabled)","_multiSelectionChanged(multiSelection)","_setOverflow(scrollTarget, scrollOffset)"],behaviors:[Kr,mo,zo,ho],_ratio:.5,_scrollerPaddingTop:0,_scrollPosition:0,_physicalSize:0,_physicalAverage:0,_physicalAverageCount:0,_physicalTop:0,_virtualCount:0,_estScrollHeight:0,_scrollHeight:0,_viewportHeight:0,_viewportWidth:0,_physicalItems:null,_physicalSizes:null,_firstVisibleIndexVal:null,_lastVisibleIndexVal:null,_maxPages:2,_focusedItem:null,_focusedVirtualIndex:-1,_focusedPhysicalIndex:-1,_offscreenFocusedItem:null,_focusBackfillItem:null,_itemsPerRow:1,_itemWidth:0,_rowHeight:0,_templateCost:0,_parentModel:!0,get _physicalBottom(){return this._physicalTop+this._physicalSize},get _scrollBottom(){return this._scrollPosition+this._viewportHeight},get _virtualEnd(){return this._virtualStart+this._physicalCount-1},get _hiddenContentSize(){return(this.grid?this._physicalRows*this._rowHeight:this._physicalSize)-this._viewportHeight},get _itemsParent(){return qi(qi(this._userTemplate).parentNode)},get _maxScrollTop(){return this._estScrollHeight-this._viewportHeight+this._scrollOffset},get _maxVirtualStart(){var t=this._convertIndexToCompleteRow(this._virtualCount);return Math.max(0,t-this._physicalCount)},set _virtualStart(t){t=this._clamp(t,0,this._maxVirtualStart),this.grid&&(t-=t%this._itemsPerRow),this._virtualStartVal=t},get _virtualStart(){return this._virtualStartVal||0},set _physicalStart(t){(t%=this._physicalCount)<0&&(t=this._physicalCount+t),this.grid&&(t-=t%this._itemsPerRow),this._physicalStartVal=t},get _physicalStart(){return this._physicalStartVal||0},get _physicalEnd(){return(this._physicalStart+this._physicalCount-1)%this._physicalCount},set _physicalCount(t){this._physicalCountVal=t},get _physicalCount(){return this._physicalCountVal||0},get _optPhysicalSize(){return 0===this._viewportHeight?1/0:this._viewportHeight*this._maxPages},get _isVisible(){return Boolean(this.offsetWidth||this.offsetHeight)},get firstVisibleIndex(){var t=this._firstVisibleIndexVal;if(null==t){var e=this._physicalTop+this._scrollOffset;t=this._iterateItems((function(t,n){return(e+=this._getPhysicalSizeIncrement(t))>this._scrollPosition?this.grid?n-n%this._itemsPerRow:n:this.grid&&this._virtualCount-1===n?n-n%this._itemsPerRow:void 0}))||0,this._firstVisibleIndexVal=t}return t},get lastVisibleIndex(){var t=this._lastVisibleIndexVal;if(null==t){if(this.grid)t=Math.min(this._virtualCount,this.firstVisibleIndex+this._estRowsInView*this._itemsPerRow-1);else{var e=this._physicalTop+this._scrollOffset;this._iterateItems((function(n,i){e<this._scrollBottom&&(t=i),e+=this._getPhysicalSizeIncrement(n)}))}this._lastVisibleIndexVal=t}return t},get _defaultScrollTarget(){return this},get _virtualRowCount(){return Math.ceil(this._virtualCount/this._itemsPerRow)},get _estRowsInView(){return Math.ceil(this._viewportHeight/this._rowHeight)},get _physicalRows(){return Math.ceil(this._physicalCount/this._itemsPerRow)},get _scrollOffset(){return this._scrollerPaddingTop+this.scrollOffset},ready:function(){this.addEventListener("focus",this._didFocus.bind(this),!0)},attached:function(){this._debounce("_render",this._render,_t),this.listen(this,"iron-resize","_resizeHandler"),this.listen(this,"keydown","_keydownHandler")},detached:function(){this.unlisten(this,"iron-resize","_resizeHandler"),this.unlisten(this,"keydown","_keydownHandler")},_setOverflow:function(t){this.style.webkitOverflowScrolling=t===this?"touch":"",this.style.overflowY=t===this?"auto":"",this._lastVisibleIndexVal=null,this._firstVisibleIndexVal=null,this._debounce("_render",this._render,_t)},updateViewportBoundaries:function(){var t=window.getComputedStyle(this);this._scrollerPaddingTop=this.scrollTarget===this?0:parseInt(t["padding-top"],10),this._isRTL=Boolean("rtl"===t.direction),this._viewportWidth=this.$.items.offsetWidth,this._viewportHeight=this._scrollTargetHeight,this.grid&&this._updateGridMetrics()},_scrollHandler:function(){var t=Math.max(0,Math.min(this._maxScrollTop,this._scrollTop)),e=t-this._scrollPosition,n=e>=0;if(this._scrollPosition=t,this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null,Math.abs(e)>this._physicalSize&&this._physicalSize>0){e-=this._scrollOffset;var i=Math.round(e/this._physicalAverage)*this._itemsPerRow;this._virtualStart=this._virtualStart+i,this._physicalStart=this._physicalStart+i,this._physicalTop=Math.min(Math.floor(this._virtualStart/this._itemsPerRow)*this._physicalAverage,this._scrollPosition),this._update()}else if(this._physicalCount>0){var r=this._getReusables(n);n?(this._physicalTop=r.physicalTop,this._virtualStart=this._virtualStart+r.indexes.length,this._physicalStart=this._physicalStart+r.indexes.length):(this._virtualStart=this._virtualStart-r.indexes.length,this._physicalStart=this._physicalStart-r.indexes.length),this._update(r.indexes,n?null:r.indexes),this._debounce("_increasePoolIfNeeded",this._increasePoolIfNeeded.bind(this,0),vt)}},_getReusables:function(t){var e,n,i,r=[],o=this._hiddenContentSize*this._ratio,a=this._virtualStart,s=this._virtualEnd,l=this._physicalCount,c=this._physicalTop+this._scrollOffset,u=this._scrollPosition,h=this._scrollBottom;for(t?(e=this._physicalStart,n=u-c):(e=this._physicalEnd,n=this._physicalBottom+this._scrollOffset-h);n-=i=this._getPhysicalSizeIncrement(e),!(r.length>=l||n<=o);)if(t){if(s+r.length+1>=this._virtualCount)break;if(c+i>=u-this._scrollOffset)break;r.push(e),c+=i,e=(e+1)%l}else{if(a-r.length<=0)break;if(c+this._physicalSize-i<=h)break;r.push(e),c-=i,e=0===e?l-1:e-1}return{indexes:r,physicalTop:c-this._scrollOffset}},_update:function(t,e){if(!(t&&0===t.length||0===this._physicalCount)){if(this._manageFocus(),this._assignModels(t),this._updateMetrics(t),e)for(;e.length;){var n=e.pop();this._physicalTop-=this._getPhysicalSizeIncrement(n)}this._positionItems(),this._updateScrollerSize()}},_createPool:function(t){var e,n;this._ensureTemplatized();var i=new Array(t);for(e=0;e<t;e++)n=this.stamp(null),i[e]=n.root.querySelector("*"),this._itemsParent.appendChild(n.root);return i},_isClientFull:function(){return 0!=this._scrollBottom&&this._physicalBottom-1>=this._scrollBottom&&this._physicalTop<=this._scrollPosition},_increasePoolIfNeeded:function(t){var e=this._clamp(this._physicalCount+t,3,this._virtualCount-this._virtualStart);if(e=this._convertIndexToCompleteRow(e),this.grid){var n=e%this._itemsPerRow;n&&e-n<=this._physicalCount&&(e+=this._itemsPerRow),e-=n}var i=e-this._physicalCount,r=Math.round(.5*this._physicalCount);if(!(i<0)){if(i>0){var o=window.performance.now();[].push.apply(this._physicalItems,this._createPool(i));for(var a=0;a<i;a++)this._physicalSizes.push(0);this._physicalCount=this._physicalCount+i,this._physicalStart>this._physicalEnd&&this._isIndexRendered(this._focusedVirtualIndex)&&this._getPhysicalIndex(this._focusedVirtualIndex)<this._physicalEnd&&(this._physicalStart=this._physicalStart+i),this._update(),this._templateCost=(window.performance.now()-o)/i,r=Math.round(.5*this._physicalCount)}this._virtualEnd>=this._virtualCount-1||0===r||(this._isClientFull()?this._physicalSize<this._optPhysicalSize&&this._debounce("_increasePoolIfNeeded",this._increasePoolIfNeeded.bind(this,this._clamp(Math.round(50/this._templateCost),1,r)),yt):this._debounce("_increasePoolIfNeeded",this._increasePoolIfNeeded.bind(this,r),vt))}},_render:function(){if(this.isAttached&&this._isVisible)if(0!==this._physicalCount){var t=this._getReusables(!0);this._physicalTop=t.physicalTop,this._virtualStart=this._virtualStart+t.indexes.length,this._physicalStart=this._physicalStart+t.indexes.length,this._update(t.indexes),this._update(),this._increasePoolIfNeeded(0)}else this._virtualCount>0&&(this.updateViewportBoundaries(),this._increasePoolIfNeeded(3))},_ensureTemplatized:function(){if(!this.ctor){this._userTemplate=this.queryEffectiveChildren("template"),this._userTemplate||console.warn("iron-list requires a template to be provided in light-dom");var t={__key__:!0};t[this.as]=!0,t[this.indexAs]=!0,t[this.selectedAs]=!0,t.tabIndex=!0,this._instanceProps=t,this.templatize(this._userTemplate,this.mutableData)}},_gridChanged:function(t,e){void 0!==e&&(this.notifyResize(),zi(),t&&this._updateGridMetrics())},_itemsChanged:function(t){if("items"===t.path)this._virtualStart=0,this._physicalTop=0,this._virtualCount=this.items?this.items.length:0,this._physicalIndexForKey={},this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null,this._physicalCount=this._physicalCount||0,this._physicalItems=this._physicalItems||[],this._physicalSizes=this._physicalSizes||[],this._physicalStart=0,this._scrollTop>this._scrollOffset&&this._resetScrollPosition(0),this._removeFocusedItem(),this._debounce("_render",this._render,_t);else if("items.splices"===t.path){if(this._adjustVirtualIndex(t.value.indexSplices),this._virtualCount=this.items?this.items.length:0,t.value.indexSplices.some((function(t){return t.addedCount>0||t.removed.length>0}))){var e=this._getActiveElement();this.contains(e)&&e.blur()}var n=t.value.indexSplices.some((function(t){return t.index+t.addedCount>=this._virtualStart&&t.index<=this._virtualEnd}),this);this._isClientFull()&&!n||this._debounce("_render",this._render,_t)}else"items.length"!==t.path&&this._forwardItemPath(t.path,t.value)},_forwardItemPath:function(t,e){var n,i,r,o=(t=t.slice(6)).indexOf(".");-1===o&&(o=t.length);var a=this.modelForElement(this._offscreenFocusedItem),s=parseInt(t.substring(0,o),10);(n=this._isIndexRendered(s))?(i=this._getPhysicalIndex(s),r=this.modelForElement(this._physicalItems[i])):a&&(r=a),r&&r[this.indexAs]===s&&(t=t.substring(o+1),r._setPendingPropertyOrPath(t=this.as+(t?"."+t:""),e,!1,!0),r._flushProperties&&r._flushProperties(),n&&(this._updateMetrics([i]),this._positionItems(),this._updateScrollerSize()))},_adjustVirtualIndex:function(t){t.forEach((function(t){if(t.removed.forEach(this._removeItem,this),t.index<this._virtualStart){var e=Math.max(t.addedCount-t.removed.length,t.index-this._virtualStart);this._virtualStart=this._virtualStart+e,this._focusedVirtualIndex>=0&&(this._focusedVirtualIndex=this._focusedVirtualIndex+e)}}),this)},_removeItem:function(t){this.$.selector.deselect(t),this._focusedItem&&this.modelForElement(this._focusedItem)[this.as]===t&&this._removeFocusedItem()},_iterateItems:function(t,e){var n,i,r,o;if(2===arguments.length&&e){for(o=0;o<e.length;o++)if(i=this._computeVidx(n=e[o]),null!=(r=t.call(this,n,i)))return r}else{for(n=this._physicalStart,i=this._virtualStart;n<this._physicalCount;n++,i++)if(null!=(r=t.call(this,n,i)))return r;for(n=0;n<this._physicalStart;n++,i++)if(null!=(r=t.call(this,n,i)))return r}},_computeVidx:function(t){return t>=this._physicalStart?this._virtualStart+(t-this._physicalStart):this._virtualStart+(this._physicalCount-this._physicalStart)+t},_assignModels:function(t){this._iterateItems((function(t,e){var n=this._physicalItems[t],i=this.items&&this.items[e];if(null!=i){var r=this.modelForElement(n);r.__key__=null,this._forwardProperty(r,this.as,i),this._forwardProperty(r,this.selectedAs,this.$.selector.isSelected(i)),this._forwardProperty(r,this.indexAs,e),this._forwardProperty(r,"tabIndex",this._focusedVirtualIndex===e?0:-1),this._physicalIndexForKey[r.__key__]=t,r._flushProperties&&r._flushProperties(!0),n.removeAttribute("hidden")}else n.setAttribute("hidden","")}),t)},_updateMetrics:function(t){zi();var e=0,n=0,i=this._physicalAverageCount,r=this._physicalAverage;this._iterateItems((function(t,i){n+=this._physicalSizes[t],this._physicalSizes[t]=this._physicalItems[t].offsetHeight,e+=this._physicalSizes[t],this._physicalAverageCount+=this._physicalSizes[t]?1:0}),t),this.grid?(this._updateGridMetrics(),this._physicalSize=Math.ceil(this._physicalCount/this._itemsPerRow)*this._rowHeight):(n=1===this._itemsPerRow?n:Math.ceil(this._physicalCount/this._itemsPerRow)*this._rowHeight,this._physicalSize=this._physicalSize+e-n,this._itemsPerRow=1),this._physicalAverageCount!==i&&(this._physicalAverage=Math.round((r*i+e)/this._physicalAverageCount))},_updateGridMetrics:function(){this._itemWidth=this._physicalCount>0?this._physicalItems[0].getBoundingClientRect().width:200,this._rowHeight=this._physicalCount>0?this._physicalItems[0].offsetHeight:200,this._itemsPerRow=this._itemWidth?Math.floor(this._viewportWidth/this._itemWidth):this._itemsPerRow},_positionItems:function(){this._adjustScrollPosition();var t=this._physicalTop;if(this.grid){var e=(this._viewportWidth-this._itemsPerRow*this._itemWidth)/2;this._iterateItems((function(n,i){var r=Math.floor(i%this._itemsPerRow*this._itemWidth+e);this._isRTL&&(r*=-1),this.translate3d(r+"px",t+"px",0,this._physicalItems[n]),this._shouldRenderNextRow(i)&&(t+=this._rowHeight)}))}else{const e=[];this._iterateItems((function(n,i){const r=this._physicalItems[n];this.translate3d(0,t+"px",0,r),t+=this._physicalSizes[n];const o=r.id;o&&e.push(o)})),e.length&&this.setAttribute("aria-owns",e.join(" "))}},_getPhysicalSizeIncrement:function(t){return this.grid?this._computeVidx(t)%this._itemsPerRow!=this._itemsPerRow-1?0:this._rowHeight:this._physicalSizes[t]},_shouldRenderNextRow:function(t){return t%this._itemsPerRow==this._itemsPerRow-1},_adjustScrollPosition:function(){var t=0===this._virtualStart?this._physicalTop:Math.min(this._scrollPosition+this._physicalTop,0);if(0!==t){this._physicalTop=this._physicalTop-t;var e=this._scrollPosition;!Bo&&e>0&&this._resetScrollPosition(e-t)}},_resetScrollPosition:function(t){this.scrollTarget&&t>=0&&(this._scrollTop=t,this._scrollPosition=this._scrollTop)},_updateScrollerSize:function(t){this._estScrollHeight=this.grid?this._virtualRowCount*this._rowHeight:this._physicalBottom+Math.max(this._virtualCount-this._physicalCount-this._virtualStart,0)*this._physicalAverage,((t=(t=(t=t||0===this._scrollHeight)||this._scrollPosition>=this._estScrollHeight-this._physicalSize)||this.grid&&this.$.items.style.height<this._estScrollHeight)||Math.abs(this._estScrollHeight-this._scrollHeight)>=this._viewportHeight)&&(this.$.items.style.height=this._estScrollHeight+"px",this._scrollHeight=this._estScrollHeight)},scrollToItem:function(t){return this.scrollToIndex(this.items.indexOf(t))},scrollToIndex:function(t){if(!("number"!=typeof t||t<0||t>this.items.length-1)&&(zi(),0!==this._physicalCount)){t=this._clamp(t,0,this._virtualCount-1),(!this._isIndexRendered(t)||t>=this._maxVirtualStart)&&(this._virtualStart=this.grid?t-2*this._itemsPerRow:t-1),this._manageFocus(),this._assignModels(),this._updateMetrics(),this._physicalTop=Math.floor(this._virtualStart/this._itemsPerRow)*this._physicalAverage;for(var e=this._physicalStart,n=this._virtualStart,i=0,r=this._hiddenContentSize;n<t&&i<=r;)i+=this._getPhysicalSizeIncrement(e),e=(e+1)%this._physicalCount,n++;this._updateScrollerSize(!0),this._positionItems(),this._resetScrollPosition(this._physicalTop+this._scrollOffset+i),this._increasePoolIfNeeded(0),this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null}},_resetAverage:function(){this._physicalAverage=0,this._physicalAverageCount=0},_resizeHandler:function(){this._debounce("_render",(function(){this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null,this._isVisible?(this.updateViewportBoundaries(),this.toggleScrollListener(!0),this._resetAverage(),this._render()):this.toggleScrollListener(!1)}),_t)},selectItem:function(t){return this.selectIndex(this.items.indexOf(t))},selectIndex:function(t){if(!(t<0||t>=this._virtualCount)){if(!this.multiSelection&&this.selectedItem&&this.clearSelection(),this._isIndexRendered(t)){var e=this.modelForElement(this._physicalItems[this._getPhysicalIndex(t)]);e&&(e[this.selectedAs]=!0),this.updateSizeForIndex(t)}this.$.selector.selectIndex(t)}},deselectItem:function(t){return this.deselectIndex(this.items.indexOf(t))},deselectIndex:function(t){t<0||t>=this._virtualCount||(this._isIndexRendered(t)&&(this.modelForElement(this._physicalItems[this._getPhysicalIndex(t)])[this.selectedAs]=!1,this.updateSizeForIndex(t)),this.$.selector.deselectIndex(t))},toggleSelectionForItem:function(t){return this.toggleSelectionForIndex(this.items.indexOf(t))},toggleSelectionForIndex:function(t){(this.$.selector.isIndexSelected?this.$.selector.isIndexSelected(t):this.$.selector.isSelected(this.items[t]))?this.deselectIndex(t):this.selectIndex(t)},clearSelection:function(){this._iterateItems((function(t,e){this.modelForElement(this._physicalItems[t])[this.selectedAs]=!1})),this.$.selector.clearSelection()},_selectionEnabledChanged:function(t){(t?this.listen:this.unlisten).call(this,this,"tap","_selectionHandler")},_selectionHandler:function(t){var e=this.modelForElement(t.target);if(e){var n,i,r=qi(t).path[0],o=this._getActiveElement(),a=this._physicalItems[this._getPhysicalIndex(e[this.indexAs])];"input"!==r.localName&&"button"!==r.localName&&"select"!==r.localName&&(n=e.tabIndex,e.tabIndex=Fo,i=o?o.tabIndex:-1,e.tabIndex=n,o&&a!==o&&a.contains(o)&&i!==Fo||this.toggleSelectionForItem(e[this.as]))}},_multiSelectionChanged:function(t){this.clearSelection(),this.$.selector.multi=t},updateSizeForItem:function(t){return this.updateSizeForIndex(this.items.indexOf(t))},updateSizeForIndex:function(t){return this._isIndexRendered(t)?(this._updateMetrics([this._getPhysicalIndex(t)]),this._positionItems(),null):null},_manageFocus:function(){var t=this._focusedVirtualIndex;t>=0&&t<this._virtualCount?this._isIndexRendered(t)?this._restoreFocusedItem():this._createFocusBackfillItem():this._virtualCount>0&&this._physicalCount>0&&(this._focusedPhysicalIndex=this._physicalStart,this._focusedVirtualIndex=this._virtualStart,this._focusedItem=this._physicalItems[this._physicalStart])},_convertIndexToCompleteRow:function(t){return this._itemsPerRow=this._itemsPerRow||1,this.grid?Math.ceil(t/this._itemsPerRow)*this._itemsPerRow:t},_isIndexRendered:function(t){return t>=this._virtualStart&&t<=this._virtualEnd},_isIndexVisible:function(t){return t>=this.firstVisibleIndex&&t<=this.lastVisibleIndex},_getPhysicalIndex:function(t){return(this._physicalStart+(t-this._virtualStart))%this._physicalCount},focusItem:function(t){this._focusPhysicalItem(t)},_focusPhysicalItem:function(t){if(!(t<0||t>=this._virtualCount)){this._restoreFocusedItem(),this._isIndexRendered(t)||this.scrollToIndex(t);var e,n=this._physicalItems[this._getPhysicalIndex(t)],i=this.modelForElement(n);i.tabIndex=Fo,n.tabIndex===Fo&&(e=n),e||(e=qi(n).querySelector('[tabindex="-100"]')),i.tabIndex=0,this._focusedVirtualIndex=t,e&&e.focus()}},_removeFocusedItem:function(){this._offscreenFocusedItem&&this._itemsParent.removeChild(this._offscreenFocusedItem),this._offscreenFocusedItem=null,this._focusBackfillItem=null,this._focusedItem=null,this._focusedVirtualIndex=-1,this._focusedPhysicalIndex=-1},_createFocusBackfillItem:function(){var t=this._focusedPhysicalIndex;if(!(this._offscreenFocusedItem||this._focusedVirtualIndex<0)){if(!this._focusBackfillItem){var e=this.stamp(null);this._focusBackfillItem=e.root.querySelector("*"),this._itemsParent.appendChild(e.root)}this._offscreenFocusedItem=this._physicalItems[t],this.modelForElement(this._offscreenFocusedItem).tabIndex=0,this._physicalItems[t]=this._focusBackfillItem,this._focusedPhysicalIndex=t,this.translate3d(0,Ho,0,this._offscreenFocusedItem)}},_restoreFocusedItem:function(){if(this._offscreenFocusedItem&&!(this._focusedVirtualIndex<0)){this._assignModels();var t=this._focusedPhysicalIndex=this._getPhysicalIndex(this._focusedVirtualIndex),e=this._physicalItems[t];if(e){var n=this.modelForElement(e),i=this.modelForElement(this._offscreenFocusedItem);n[this.as]===i[this.as]?(this._focusBackfillItem=e,n.tabIndex=-1,this._physicalItems[t]=this._offscreenFocusedItem,this.translate3d(0,Ho,0,this._focusBackfillItem)):(this._removeFocusedItem(),this._focusBackfillItem=null),this._offscreenFocusedItem=null}}},_didFocus:function(t){var e=this.modelForElement(t.target),n=this.modelForElement(this._focusedItem),i=null!==this._offscreenFocusedItem,r=this._focusedVirtualIndex;e&&(n===e?this._isIndexVisible(r)||this.scrollToIndex(r):(this._restoreFocusedItem(),n&&(n.tabIndex=-1),e.tabIndex=0,this._focusedVirtualIndex=r=e[this.indexAs],this._focusedPhysicalIndex=this._getPhysicalIndex(r),this._focusedItem=this._physicalItems[this._focusedPhysicalIndex],i&&!this._offscreenFocusedItem&&this._update()))},_keydownHandler:function(t){switch(t.keyCode){case 40:this._focusedVirtualIndex<this._virtualCount-1&&t.preventDefault(),this._focusPhysicalItem(this._focusedVirtualIndex+(this.grid?this._itemsPerRow:1));break;case 39:this.grid&&this._focusPhysicalItem(this._focusedVirtualIndex+(this._isRTL?-1:1));break;case 38:this._focusedVirtualIndex>0&&t.preventDefault(),this._focusPhysicalItem(this._focusedVirtualIndex-(this.grid?this._itemsPerRow:1));break;case 37:this.grid&&this._focusPhysicalItem(this._focusedVirtualIndex+(this._isRTL?1:-1));break;case 13:this._focusPhysicalItem(this._focusedVirtualIndex),this.selectionEnabled&&this._selectionHandler(t)}},_clamp:function(t,e,n){return Math.min(n,Math.max(e,t))},_debounce:function(t,e,n){this._debouncers=this._debouncers||{},this._debouncers[t]=En.debounce(this._debouncers[t],n,e.bind(this)),Cn(this._debouncers[t])},_forwardProperty:function(t,e,n){t._setPendingProperty(e,n)},_forwardHostPropV2:function(t,e){(this._physicalItems||[]).concat([this._offscreenFocusedItem,this._focusBackfillItem]).forEach((function(n){n&&this.modelForElement(n).forwardHostProp(t,e)}),this)},_notifyInstancePropV2:function(t,e,n){if(Q(this.as,e)){var i=t[this.indexAs];e==this.as&&(this.items[i]=n),this.notifyPath(J(this.as,"items."+i,e),n)}},_getStampedChildren:function(){return this._physicalItems},_forwardInstancePath:function(t,e,n){0===e.indexOf(this.as+".")&&this.notifyPath("items."+t.__key__+"."+e.slice(this.as.length+1),n)},_forwardParentPath:function(t,e){(this._physicalItems||[]).concat([this._offscreenFocusedItem,this._focusBackfillItem]).forEach((function(n){n&&this.modelForElement(n).notifyPath(t,e)}),this)},_forwardParentProp:function(t,e){(this._physicalItems||[]).concat([this._offscreenFocusedItem,this._focusBackfillItem]).forEach((function(n){n&&(this.modelForElement(n)[t]=e)}),this)},_getActiveElement:function(){var t=this._itemsParent.node.domHost;return qi(t?t.root:document).activeElement}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
class Vo{constructor(t){this.selection=[],this.selectCallback=t}get(){return this.multi?this.selection.slice():this.selection[0]}clear(t){this.selection.slice().forEach((function(e){(!t||t.indexOf(e)<0)&&this.setItemSelected(e,!1)}),this)}isSelected(t){return this.selection.indexOf(t)>=0}setItemSelected(t,e){if(null!=t&&e!==this.isSelected(t)){if(e)this.selection.push(t);else{var n=this.selection.indexOf(t);n>=0&&this.selection.splice(n,1)}this.selectCallback&&this.selectCallback(t,e)}}select(t){this.multi?this.toggle(t):this.get()!==t&&(this.setItemSelected(this.get(),!1),this.setItemSelected(t,!0))}toggle(t){this.setItemSelected(t,!this.isSelected(t))}}
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */const Uo={properties:{attrForSelected:{type:String,value:null},selected:{type:String,notify:!0},selectedItem:{type:Object,readOnly:!0,notify:!0},activateEvent:{type:String,value:"tap",observer:"_activateEventChanged"},selectable:String,selectedClass:{type:String,value:"iron-selected"},selectedAttribute:{type:String,value:null},fallbackSelection:{type:String,value:null},items:{type:Array,readOnly:!0,notify:!0,value:function(){return[]}},_excludedLocalNames:{type:Object,value:function(){return{template:1,"dom-bind":1,"dom-if":1,"dom-repeat":1}}}},observers:["_updateAttrForSelected(attrForSelected)","_updateSelected(selected)","_checkFallback(fallbackSelection)"],created:function(){this._bindFilterItem=this._filterItem.bind(this),this._selection=new Vo(this._applySelection.bind(this))},attached:function(){this._observer=this._observeItems(this),this._addListener(this.activateEvent)},detached:function(){this._observer&&qi(this).unobserveNodes(this._observer),this._removeListener(this.activateEvent)},indexOf:function(t){return this.items?this.items.indexOf(t):-1},select:function(t){this.selected=t},selectPrevious:function(){var t=this.items.length,e=t-1;void 0!==this.selected&&(e=(Number(this._valueToIndex(this.selected))-1+t)%t),this.selected=this._indexToValue(e)},selectNext:function(){var t=0;void 0!==this.selected&&(t=(Number(this._valueToIndex(this.selected))+1)%this.items.length),this.selected=this._indexToValue(t)},selectIndex:function(t){this.select(this._indexToValue(t))},forceSynchronousItemUpdate:function(){this._observer&&"function"==typeof this._observer.flush?this._observer.flush():this._updateItems()},get _shouldUpdateSelection(){return null!=this.selected},_checkFallback:function(){this._updateSelected()},_addListener:function(t){this.listen(this,t,"_activateHandler")},_removeListener:function(t){this.unlisten(this,t,"_activateHandler")},_activateEventChanged:function(t,e){this._removeListener(e),this._addListener(t)},_updateItems:function(){var t=qi(this).queryDistributedElements(this.selectable||"*");t=Array.prototype.filter.call(t,this._bindFilterItem),this._setItems(t)},_updateAttrForSelected:function(){this.selectedItem&&(this.selected=this._valueForItem(this.selectedItem))},_updateSelected:function(){this._selectSelected(this.selected)},_selectSelected:function(t){if(this.items){var e=this._valueToItem(this.selected);e?this._selection.select(e):this._selection.clear(),this.fallbackSelection&&this.items.length&&void 0===this._selection.get()&&(this.selected=this.fallbackSelection)}},_filterItem:function(t){return!this._excludedLocalNames[t.localName]},_valueToItem:function(t){return null==t?null:this.items[this._valueToIndex(t)]},_valueToIndex:function(t){if(!this.attrForSelected)return Number(t);for(var e,n=0;e=this.items[n];n++)if(this._valueForItem(e)==t)return n},_indexToValue:function(t){if(!this.attrForSelected)return t;var e=this.items[t];return e?this._valueForItem(e):void 0},_valueForItem:function(t){if(!t)return null;if(!this.attrForSelected){var e=this.indexOf(t);return-1===e?null:e}var n=t[st(this.attrForSelected)];return null!=n?n:t.getAttribute(this.attrForSelected)},_applySelection:function(t,e){this.selectedClass&&this.toggleClass(this.selectedClass,e,t),this.selectedAttribute&&this.toggleAttribute(this.selectedAttribute,e,t),this._selectionChange(),this.fire("iron-"+(e?"select":"deselect"),{item:t})},_selectionChange:function(){this._setSelectedItem(this._selection.get())},_observeItems:function(t){return qi(t).observeNodes((function(t){this._updateItems(),this._updateSelected(),this.fire("iron-items-changed",t,{bubbles:!1,cancelable:!1})}))},_activateHandler:function(t){for(var e=t.target,n=this.items;e&&e!=this;){var i=n.indexOf(e);if(i>=0){var r=this._indexToValue(i);return void this._itemActivate(r,e)}e=e.parentNode}},_itemActivate:function(t,e){this.fire("iron-activate",{selected:t,item:e},{cancelable:!0}).defaultPrevented||this.select(t)}};
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */Ir({_template:_e`
    <style>
      :host {
        display: block;
      }

      :host > ::slotted(:not(slot):not(.iron-selected)) {
        display: none !important;
      }
    </style>

    <slot></slot>
`,is:"iron-pages",behaviors:[mo,Uo],properties:{activateEvent:{type:String,value:null}},observers:["_selectedPageChanged(selected)"],_selectedPageChanged:function(t,e){this.async(this.notifyResize)}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const jo=_e`
<custom-style>
  <style is="custom-style">
    html {

      --shadow-transition: {
        transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
      };

      --shadow-none: {
        box-shadow: none;
      };

      /* from http://codepen.io/shyndman/pen/c5394ddf2e8b2a5c9185904b57421cdb */

      --shadow-elevation-2dp: {
        box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),
                    0 1px 5px 0 rgba(0, 0, 0, 0.12),
                    0 3px 1px -2px rgba(0, 0, 0, 0.2);
      };

      --shadow-elevation-3dp: {
        box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14),
                    0 1px 8px 0 rgba(0, 0, 0, 0.12),
                    0 3px 3px -2px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-4dp: {
        box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14),
                    0 1px 10px 0 rgba(0, 0, 0, 0.12),
                    0 2px 4px -1px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-6dp: {
        box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14),
                    0 1px 18px 0 rgba(0, 0, 0, 0.12),
                    0 3px 5px -1px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-8dp: {
        box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14),
                    0 3px 14px 2px rgba(0, 0, 0, 0.12),
                    0 5px 5px -3px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-12dp: {
        box-shadow: 0 12px 16px 1px rgba(0, 0, 0, 0.14),
                    0 4px 22px 3px rgba(0, 0, 0, 0.12),
                    0 6px 7px -4px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-16dp: {
        box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14),
                    0  6px 30px 5px rgba(0, 0, 0, 0.12),
                    0  8px 10px -5px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-24dp: {
        box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14),
                    0 9px 46px 8px rgba(0, 0, 0, 0.12),
                    0 11px 15px -7px rgba(0, 0, 0, 0.4);
      };
    }
  </style>
</custom-style>`;jo.setAttribute("style","display: none;"),document.head.appendChild(jo.content);
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Go=_e`
<dom-module id="paper-material-styles">
  <template>
    <style>
      html {
        --paper-material: {
          display: block;
          position: relative;
        };
        --paper-material-elevation-1: {
          @apply --shadow-elevation-2dp;
        };
        --paper-material-elevation-2: {
          @apply --shadow-elevation-4dp;
        };
        --paper-material-elevation-3: {
          @apply --shadow-elevation-6dp;
        };
        --paper-material-elevation-4: {
          @apply --shadow-elevation-8dp;
        };
        --paper-material-elevation-5: {
          @apply --shadow-elevation-16dp;
        };
      }
      .paper-material {
        @apply --paper-material;
      }
      .paper-material[elevation="1"] {
        @apply --paper-material-elevation-1;
      }
      .paper-material[elevation="2"] {
        @apply --paper-material-elevation-2;
      }
      .paper-material[elevation="3"] {
        @apply --paper-material-elevation-3;
      }
      .paper-material[elevation="4"] {
        @apply --paper-material-elevation-4;
      }
      .paper-material[elevation="5"] {
        @apply --paper-material-elevation-5;
      }

      /* Duplicate the styles because of https://github.com/webcomponents/shadycss/issues/193 */
      :host {
        --paper-material: {
          display: block;
          position: relative;
        };
        --paper-material-elevation-1: {
          @apply --shadow-elevation-2dp;
        };
        --paper-material-elevation-2: {
          @apply --shadow-elevation-4dp;
        };
        --paper-material-elevation-3: {
          @apply --shadow-elevation-6dp;
        };
        --paper-material-elevation-4: {
          @apply --shadow-elevation-8dp;
        };
        --paper-material-elevation-5: {
          @apply --shadow-elevation-16dp;
        };
      }
      :host(.paper-material) {
        @apply --paper-material;
      }
      :host(.paper-material[elevation="1"]) {
        @apply --paper-material-elevation-1;
      }
      :host(.paper-material[elevation="2"]) {
        @apply --paper-material-elevation-2;
      }
      :host(.paper-material[elevation="3"]) {
        @apply --paper-material-elevation-3;
      }
      :host(.paper-material[elevation="4"]) {
        @apply --paper-material-elevation-4;
      }
      :host(.paper-material[elevation="5"]) {
        @apply --paper-material-elevation-5;
      }
    </style>
  </template>
</dom-module>`;Go.setAttribute("style","display: none;"),document.head.appendChild(Go.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Wo={properties:{focused:{type:Boolean,value:!1,notify:!0,readOnly:!0,reflectToAttribute:!0},disabled:{type:Boolean,value:!1,notify:!0,observer:"_disabledChanged",reflectToAttribute:!0},_oldTabIndex:{type:String},_boundFocusBlurHandler:{type:Function,value:function(){return this._focusBlurHandler.bind(this)}}},observers:["_changedControlState(focused, disabled)"],ready:function(){this.addEventListener("focus",this._boundFocusBlurHandler,!0),this.addEventListener("blur",this._boundFocusBlurHandler,!0)},_focusBlurHandler:function(t){this._setFocused("focus"===t.type)},_disabledChanged:function(t,e){this.setAttribute("aria-disabled",t?"true":"false"),this.style.pointerEvents=t?"none":"",t?(this._oldTabIndex=this.getAttribute("tabindex"),this._setFocused(!1),this.tabIndex=-1,this.blur()):void 0!==this._oldTabIndex&&(null===this._oldTabIndex?this.removeAttribute("tabindex"):this.setAttribute("tabindex",this._oldTabIndex))},_changedControlState:function(){this._controlStateChanged&&this._controlStateChanged()}},qo={properties:{pressed:{type:Boolean,readOnly:!0,value:!1,reflectToAttribute:!0,observer:"_pressedChanged"},toggles:{type:Boolean,value:!1,reflectToAttribute:!0},active:{type:Boolean,value:!1,notify:!0,reflectToAttribute:!0},pointerDown:{type:Boolean,readOnly:!0,value:!1},receivedFocusFromKeyboard:{type:Boolean,readOnly:!0},ariaActiveAttribute:{type:String,value:"aria-pressed",observer:"_ariaActiveAttributeChanged"}},listeners:{down:"_downHandler",up:"_upHandler",tap:"_tapHandler"},observers:["_focusChanged(focused)","_activeChanged(active, ariaActiveAttribute)"],keyBindings:{"enter:keydown":"_asyncClick","space:keydown":"_spaceKeyDownHandler","space:keyup":"_spaceKeyUpHandler"},_mouseEventRe:/^mouse/,_tapHandler:function(){this.toggles?this._userActivate(!this.active):this.active=!1},_focusChanged:function(t){this._detectKeyboardFocus(t),t||this._setPressed(!1)},_detectKeyboardFocus:function(t){this._setReceivedFocusFromKeyboard(!this.pointerDown&&t)},_userActivate:function(t){this.active!==t&&(this.active=t,this.fire("change"))},_downHandler:function(t){this._setPointerDown(!0),this._setPressed(!0),this._setReceivedFocusFromKeyboard(!1)},_upHandler:function(){this._setPointerDown(!1),this._setPressed(!1)},_spaceKeyDownHandler:function(t){var e=t.detail.keyboardEvent,n=qi(e).localTarget;this.isLightDescendant(n)||(e.preventDefault(),e.stopImmediatePropagation(),this._setPressed(!0))},_spaceKeyUpHandler:function(t){var e=qi(t.detail.keyboardEvent).localTarget;this.isLightDescendant(e)||(this.pressed&&this._asyncClick(),this._setPressed(!1))},_asyncClick:function(){this.async((function(){this.click()}),1)},_pressedChanged:function(t){this._changedButtonState()},_ariaActiveAttributeChanged:function(t,e){e&&e!=t&&this.hasAttribute(e)&&this.removeAttribute(e)},_activeChanged:function(t,e){this.toggles?this.setAttribute(this.ariaActiveAttribute,t?"true":"false"):this.removeAttribute(this.ariaActiveAttribute),this._changedButtonState()},_controlStateChanged:function(){this.disabled?this._setPressed(!1):this._changedButtonState()},_changedButtonState:function(){this._buttonStateChanged&&this._buttonStateChanged()}},Yo=[Ro,qo];
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
/**
    @license
    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
var Xo={distance:function(t,e,n,i){var r=t-n,o=e-i;return Math.sqrt(r*r+o*o)},now:window.performance&&window.performance.now?window.performance.now.bind(window.performance):Date.now};function $o(t){this.element=t,this.width=this.boundingRect.width,this.height=this.boundingRect.height,this.size=Math.max(this.width,this.height)}function Ko(t){this.element=t,this.color=window.getComputedStyle(t).color,this.wave=document.createElement("div"),this.waveContainer=document.createElement("div"),this.wave.style.backgroundColor=this.color,this.wave.classList.add("wave"),this.waveContainer.classList.add("wave-container"),qi(this.waveContainer).appendChild(this.wave),this.resetInteractionState()}$o.prototype={get boundingRect(){return this.element.getBoundingClientRect()},furthestCornerDistanceFrom:function(t,e){var n=Xo.distance(t,e,0,0),i=Xo.distance(t,e,this.width,0),r=Xo.distance(t,e,0,this.height),o=Xo.distance(t,e,this.width,this.height);return Math.max(n,i,r,o)}},Ko.MAX_RADIUS=300,Ko.prototype={get recenters(){return this.element.recenters},get center(){return this.element.center},get mouseDownElapsed(){var t;return this.mouseDownStart?(t=Xo.now()-this.mouseDownStart,this.mouseUpStart&&(t-=this.mouseUpElapsed),t):0},get mouseUpElapsed(){return this.mouseUpStart?Xo.now()-this.mouseUpStart:0},get mouseDownElapsedSeconds(){return this.mouseDownElapsed/1e3},get mouseUpElapsedSeconds(){return this.mouseUpElapsed/1e3},get mouseInteractionSeconds(){return this.mouseDownElapsedSeconds+this.mouseUpElapsedSeconds},get initialOpacity(){return this.element.initialOpacity},get opacityDecayVelocity(){return this.element.opacityDecayVelocity},get radius(){var t=1.1*Math.min(Math.sqrt(this.containerMetrics.width*this.containerMetrics.width+this.containerMetrics.height*this.containerMetrics.height),Ko.MAX_RADIUS)+5,e=t*(1-Math.pow(80,-this.mouseInteractionSeconds/(1.1-t/Ko.MAX_RADIUS*.2)));return Math.abs(e)},get opacity(){return this.mouseUpStart?Math.max(0,this.initialOpacity-this.mouseUpElapsedSeconds*this.opacityDecayVelocity):this.initialOpacity},get outerOpacity(){return Math.max(0,Math.min(.3*this.mouseUpElapsedSeconds,this.opacity))},get isOpacityFullyDecayed(){return this.opacity<.01&&this.radius>=Math.min(this.maxRadius,Ko.MAX_RADIUS)},get isRestingAtMaxRadius(){return this.opacity>=this.initialOpacity&&this.radius>=Math.min(this.maxRadius,Ko.MAX_RADIUS)},get isAnimationComplete(){return this.mouseUpStart?this.isOpacityFullyDecayed:this.isRestingAtMaxRadius},get translationFraction(){return Math.min(1,this.radius/this.containerMetrics.size*2/Math.sqrt(2))},get xNow(){return this.xEnd?this.xStart+this.translationFraction*(this.xEnd-this.xStart):this.xStart},get yNow(){return this.yEnd?this.yStart+this.translationFraction*(this.yEnd-this.yStart):this.yStart},get isMouseDown(){return this.mouseDownStart&&!this.mouseUpStart},resetInteractionState:function(){this.maxRadius=0,this.mouseDownStart=0,this.mouseUpStart=0,this.xStart=0,this.yStart=0,this.xEnd=0,this.yEnd=0,this.slideDistance=0,this.containerMetrics=new $o(this.element)},draw:function(){var t,e,n;this.wave.style.opacity=this.opacity,t=this.radius/(this.containerMetrics.size/2),this.waveContainer.style.webkitTransform="translate("+(e=this.xNow-this.containerMetrics.width/2)+"px, "+(n=this.yNow-this.containerMetrics.height/2)+"px)",this.waveContainer.style.transform="translate3d("+e+"px, "+n+"px, 0)",this.wave.style.webkitTransform="scale("+t+","+t+")",this.wave.style.transform="scale3d("+t+","+t+",1)"},downAction:function(t){var e=this.containerMetrics.width/2,n=this.containerMetrics.height/2;this.resetInteractionState(),this.mouseDownStart=Xo.now(),this.center?(this.xStart=e,this.yStart=n,this.slideDistance=Xo.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)):(this.xStart=t?t.detail.x-this.containerMetrics.boundingRect.left:this.containerMetrics.width/2,this.yStart=t?t.detail.y-this.containerMetrics.boundingRect.top:this.containerMetrics.height/2),this.recenters&&(this.xEnd=e,this.yEnd=n,this.slideDistance=Xo.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)),this.maxRadius=this.containerMetrics.furthestCornerDistanceFrom(this.xStart,this.yStart),this.waveContainer.style.top=(this.containerMetrics.height-this.containerMetrics.size)/2+"px",this.waveContainer.style.left=(this.containerMetrics.width-this.containerMetrics.size)/2+"px",this.waveContainer.style.width=this.containerMetrics.size+"px",this.waveContainer.style.height=this.containerMetrics.size+"px"},upAction:function(t){this.isMouseDown&&(this.mouseUpStart=Xo.now())},remove:function(){qi(qi(this.waveContainer).parentNode).removeChild(this.waveContainer)}},Ir({_template:_e`
    <style>
      :host {
        display: block;
        position: absolute;
        border-radius: inherit;
        overflow: hidden;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;

        /* See PolymerElements/paper-behaviors/issues/34. On non-Chrome browsers,
         * creating a node (with a position:absolute) in the middle of an event
         * handler "interrupts" that event handler (which happens when the
         * ripple is created on demand) */
        pointer-events: none;
      }

      :host([animating]) {
        /* This resolves a rendering issue in Chrome (as of 40) where the
           ripple is not properly clipped by its parent (which may have
           rounded corners). See: http://jsbin.com/temexa/4

           Note: We only apply this style conditionally. Otherwise, the browser
           will create a new compositing layer for every ripple element on the
           page, and that would be bad. */
        -webkit-transform: translate(0, 0);
        transform: translate3d(0, 0, 0);
      }

      #background,
      #waves,
      .wave-container,
      .wave {
        pointer-events: none;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      }

      #background,
      .wave {
        opacity: 0;
      }

      #waves,
      .wave {
        overflow: hidden;
      }

      .wave-container,
      .wave {
        border-radius: 50%;
      }

      :host(.circle) #background,
      :host(.circle) #waves {
        border-radius: 50%;
      }

      :host(.circle) .wave-container {
        overflow: hidden;
      }
    </style>

    <div id="background"></div>
    <div id="waves"></div>
`,is:"paper-ripple",behaviors:[Ro],properties:{initialOpacity:{type:Number,value:.25},opacityDecayVelocity:{type:Number,value:.8},recenters:{type:Boolean,value:!1},center:{type:Boolean,value:!1},ripples:{type:Array,value:function(){return[]}},animating:{type:Boolean,readOnly:!0,reflectToAttribute:!0,value:!1},holdDown:{type:Boolean,value:!1,observer:"_holdDownChanged"},noink:{type:Boolean,value:!1},_animating:{type:Boolean},_boundAnimate:{type:Function,value:function(){return this.animate.bind(this)}}},get target(){return this.keyEventTarget},keyBindings:{"enter:keydown":"_onEnterKeydown","space:keydown":"_onSpaceKeydown","space:keyup":"_onSpaceKeyup"},attached:function(){this.keyEventTarget=11==qi(this).parentNode.nodeType?qi(this).getOwnerRoot().host:qi(this).parentNode;var t=this.keyEventTarget;this.listen(t,"up","uiUpAction"),this.listen(t,"down","uiDownAction")},detached:function(){this.unlisten(this.keyEventTarget,"up","uiUpAction"),this.unlisten(this.keyEventTarget,"down","uiDownAction"),this.keyEventTarget=null},get shouldKeepAnimating(){for(var t=0;t<this.ripples.length;++t)if(!this.ripples[t].isAnimationComplete)return!0;return!1},simulatedRipple:function(){this.downAction(null),this.async((function(){this.upAction()}),1)},uiDownAction:function(t){this.noink||this.downAction(t)},downAction:function(t){this.holdDown&&this.ripples.length>0||(this.addRipple().downAction(t),this._animating||(this._animating=!0,this.animate()))},uiUpAction:function(t){this.noink||this.upAction(t)},upAction:function(t){this.holdDown||(this.ripples.forEach((function(e){e.upAction(t)})),this._animating=!0,this.animate())},onAnimationComplete:function(){this._animating=!1,this.$.background.style.backgroundColor="",this.fire("transitionend")},addRipple:function(){var t=new Ko(this);return qi(this.$.waves).appendChild(t.waveContainer),this.$.background.style.backgroundColor=t.color,this.ripples.push(t),this._setAnimating(!0),t},removeRipple:function(t){var e=this.ripples.indexOf(t);e<0||(this.ripples.splice(e,1),t.remove(),this.ripples.length||this._setAnimating(!1))},animate:function(){if(this._animating){var t,e;for(t=0;t<this.ripples.length;++t)(e=this.ripples[t]).draw(),this.$.background.style.opacity=e.outerOpacity,e.isOpacityFullyDecayed&&!e.isRestingAtMaxRadius&&this.removeRipple(e);this.shouldKeepAnimating||0!==this.ripples.length?window.requestAnimationFrame(this._boundAnimate):this.onAnimationComplete()}},animateRipple:function(){return this.animate()},_onEnterKeydown:function(){this.uiDownAction(),this.async(this.uiUpAction,1)},_onSpaceKeydown:function(){this.uiDownAction()},_onSpaceKeyup:function(){this.uiUpAction()},_holdDownChanged:function(t,e){void 0!==e&&(t?this.downAction():this.upAction())}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Zo={properties:{noink:{type:Boolean,observer:"_noinkChanged"},_rippleContainer:{type:Object}},_buttonStateChanged:function(){this.focused&&this.ensureRipple()},_downHandler:function(t){qo._downHandler.call(this,t),this.pressed&&this.ensureRipple(t)},ensureRipple:function(t){if(!this.hasRipple()){this._ripple=this._createRipple(),this._ripple.noink=this.noink;var e=this._rippleContainer||this.root;if(e&&qi(e).appendChild(this._ripple),t){var n=qi(this._rippleContainer||this),i=qi(t).rootTarget;n.deepContains(i)&&this._ripple.uiDownAction(t)}}},getRipple:function(){return this.ensureRipple(),this._ripple},hasRipple:function(){return Boolean(this._ripple)},_createRipple:function(){return document.createElement("paper-ripple")},_noinkChanged:function(t){this.hasRipple()&&(this._ripple.noink=t)}},Jo={properties:{elevation:{type:Number,reflectToAttribute:!0,readOnly:!0}},observers:["_calculateElevation(focused, disabled, active, pressed, receivedFocusFromKeyboard)","_computeKeyboardClass(receivedFocusFromKeyboard)"],hostAttributes:{role:"button",tabindex:"0",animated:!0},_calculateElevation:function(){var t=1;this.disabled?t=0:this.active||this.pressed?t=4:this.receivedFocusFromKeyboard&&(t=3),this._setElevation(t)},_computeKeyboardClass:function(t){this.toggleClass("keyboard-focus",t)},_spaceKeyDownHandler:function(t){qo._spaceKeyDownHandler.call(this,t),this.hasRipple()&&this.getRipple().ripples.length<1&&this._ripple.uiDownAction()},_spaceKeyUpHandler:function(t){qo._spaceKeyUpHandler.call(this,t),this.hasRipple()&&this._ripple.uiUpAction()}},Qo=[Yo,Wo,Zo,Jo],ta=_e`
  <style include="paper-material-styles">
    /* Need to specify the same specificity as the styles imported from paper-material. */
    :host {
      @apply --layout-inline;
      @apply --layout-center-center;
      position: relative;
      box-sizing: border-box;
      min-width: 5.14em;
      margin: 0 0.29em;
      background: transparent;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
      -webkit-tap-highlight-color: transparent;
      font: inherit;
      text-transform: uppercase;
      outline-width: 0;
      border-radius: 3px;
      -moz-user-select: none;
      -ms-user-select: none;
      -webkit-user-select: none;
      user-select: none;
      cursor: pointer;
      z-index: 0;
      padding: 0.7em 0.57em;

      @apply --paper-font-common-base;
      @apply --paper-button;
    }

    :host([elevation="1"]) {
      @apply --paper-material-elevation-1;
    }

    :host([elevation="2"]) {
      @apply --paper-material-elevation-2;
    }

    :host([elevation="3"]) {
      @apply --paper-material-elevation-3;
    }

    :host([elevation="4"]) {
      @apply --paper-material-elevation-4;
    }

    :host([elevation="5"]) {
      @apply --paper-material-elevation-5;
    }

    :host([hidden]) {
      display: none !important;
    }

    :host([raised].keyboard-focus) {
      font-weight: bold;
      @apply --paper-button-raised-keyboard-focus;
    }

    :host(:not([raised]).keyboard-focus) {
      font-weight: bold;
      @apply --paper-button-flat-keyboard-focus;
    }

    :host([disabled]) {
      background: none;
      color: #a8a8a8;
      cursor: auto;
      pointer-events: none;

      @apply --paper-button-disabled;
    }

    :host([disabled][raised]) {
      background: #eaeaea;
    }


    :host([animated]) {
      @apply --shadow-transition;
    }

    paper-ripple {
      color: var(--paper-button-ink-color);
    }
  </style>

  <slot></slot>`;
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */ta.setAttribute("strip-whitespace",""),Ir({_template:ta,is:"paper-button",behaviors:[Qo],properties:{raised:{type:Boolean,reflectToAttribute:!0,value:!1,observer:"_calculateElevation"}},_calculateElevation:function(){this.raised?Jo._calculateElevation.apply(this):this._setElevation(0)}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const ea=_e`
<custom-style>
  <style is="custom-style">
    html {

      /* Material Design color palette for Google products */

      --google-red-100: #f4c7c3;
      --google-red-300: #e67c73;
      --google-red-500: #db4437;
      --google-red-700: #c53929;

      --google-blue-100: #c6dafc;
      --google-blue-300: #7baaf7;
      --google-blue-500: #4285f4;
      --google-blue-700: #3367d6;

      --google-green-100: #b7e1cd;
      --google-green-300: #57bb8a;
      --google-green-500: #0f9d58;
      --google-green-700: #0b8043;

      --google-yellow-100: #fce8b2;
      --google-yellow-300: #f7cb4d;
      --google-yellow-500: #f4b400;
      --google-yellow-700: #f09300;

      --google-grey-100: #f5f5f5;
      --google-grey-300: #e0e0e0;
      --google-grey-500: #9e9e9e;
      --google-grey-700: #616161;

      /* Material Design color palette from online spec document */

      --paper-red-50: #ffebee;
      --paper-red-100: #ffcdd2;
      --paper-red-200: #ef9a9a;
      --paper-red-300: #e57373;
      --paper-red-400: #ef5350;
      --paper-red-500: #f44336;
      --paper-red-600: #e53935;
      --paper-red-700: #d32f2f;
      --paper-red-800: #c62828;
      --paper-red-900: #b71c1c;
      --paper-red-a100: #ff8a80;
      --paper-red-a200: #ff5252;
      --paper-red-a400: #ff1744;
      --paper-red-a700: #d50000;

      --paper-pink-50: #fce4ec;
      --paper-pink-100: #f8bbd0;
      --paper-pink-200: #f48fb1;
      --paper-pink-300: #f06292;
      --paper-pink-400: #ec407a;
      --paper-pink-500: #e91e63;
      --paper-pink-600: #d81b60;
      --paper-pink-700: #c2185b;
      --paper-pink-800: #ad1457;
      --paper-pink-900: #880e4f;
      --paper-pink-a100: #ff80ab;
      --paper-pink-a200: #ff4081;
      --paper-pink-a400: #f50057;
      --paper-pink-a700: #c51162;

      --paper-purple-50: #f3e5f5;
      --paper-purple-100: #e1bee7;
      --paper-purple-200: #ce93d8;
      --paper-purple-300: #ba68c8;
      --paper-purple-400: #ab47bc;
      --paper-purple-500: #9c27b0;
      --paper-purple-600: #8e24aa;
      --paper-purple-700: #7b1fa2;
      --paper-purple-800: #6a1b9a;
      --paper-purple-900: #4a148c;
      --paper-purple-a100: #ea80fc;
      --paper-purple-a200: #e040fb;
      --paper-purple-a400: #d500f9;
      --paper-purple-a700: #aa00ff;

      --paper-deep-purple-50: #ede7f6;
      --paper-deep-purple-100: #d1c4e9;
      --paper-deep-purple-200: #b39ddb;
      --paper-deep-purple-300: #9575cd;
      --paper-deep-purple-400: #7e57c2;
      --paper-deep-purple-500: #673ab7;
      --paper-deep-purple-600: #5e35b1;
      --paper-deep-purple-700: #512da8;
      --paper-deep-purple-800: #4527a0;
      --paper-deep-purple-900: #311b92;
      --paper-deep-purple-a100: #b388ff;
      --paper-deep-purple-a200: #7c4dff;
      --paper-deep-purple-a400: #651fff;
      --paper-deep-purple-a700: #6200ea;

      --paper-indigo-50: #e8eaf6;
      --paper-indigo-100: #c5cae9;
      --paper-indigo-200: #9fa8da;
      --paper-indigo-300: #7986cb;
      --paper-indigo-400: #5c6bc0;
      --paper-indigo-500: #3f51b5;
      --paper-indigo-600: #3949ab;
      --paper-indigo-700: #303f9f;
      --paper-indigo-800: #283593;
      --paper-indigo-900: #1a237e;
      --paper-indigo-a100: #8c9eff;
      --paper-indigo-a200: #536dfe;
      --paper-indigo-a400: #3d5afe;
      --paper-indigo-a700: #304ffe;

      --paper-blue-50: #e3f2fd;
      --paper-blue-100: #bbdefb;
      --paper-blue-200: #90caf9;
      --paper-blue-300: #64b5f6;
      --paper-blue-400: #42a5f5;
      --paper-blue-500: #2196f3;
      --paper-blue-600: #1e88e5;
      --paper-blue-700: #1976d2;
      --paper-blue-800: #1565c0;
      --paper-blue-900: #0d47a1;
      --paper-blue-a100: #82b1ff;
      --paper-blue-a200: #448aff;
      --paper-blue-a400: #2979ff;
      --paper-blue-a700: #2962ff;

      --paper-light-blue-50: #e1f5fe;
      --paper-light-blue-100: #b3e5fc;
      --paper-light-blue-200: #81d4fa;
      --paper-light-blue-300: #4fc3f7;
      --paper-light-blue-400: #29b6f6;
      --paper-light-blue-500: #03a9f4;
      --paper-light-blue-600: #039be5;
      --paper-light-blue-700: #0288d1;
      --paper-light-blue-800: #0277bd;
      --paper-light-blue-900: #01579b;
      --paper-light-blue-a100: #80d8ff;
      --paper-light-blue-a200: #40c4ff;
      --paper-light-blue-a400: #00b0ff;
      --paper-light-blue-a700: #0091ea;

      --paper-cyan-50: #e0f7fa;
      --paper-cyan-100: #b2ebf2;
      --paper-cyan-200: #80deea;
      --paper-cyan-300: #4dd0e1;
      --paper-cyan-400: #26c6da;
      --paper-cyan-500: #00bcd4;
      --paper-cyan-600: #00acc1;
      --paper-cyan-700: #0097a7;
      --paper-cyan-800: #00838f;
      --paper-cyan-900: #006064;
      --paper-cyan-a100: #84ffff;
      --paper-cyan-a200: #18ffff;
      --paper-cyan-a400: #00e5ff;
      --paper-cyan-a700: #00b8d4;

      --paper-teal-50: #e0f2f1;
      --paper-teal-100: #b2dfdb;
      --paper-teal-200: #80cbc4;
      --paper-teal-300: #4db6ac;
      --paper-teal-400: #26a69a;
      --paper-teal-500: #009688;
      --paper-teal-600: #00897b;
      --paper-teal-700: #00796b;
      --paper-teal-800: #00695c;
      --paper-teal-900: #004d40;
      --paper-teal-a100: #a7ffeb;
      --paper-teal-a200: #64ffda;
      --paper-teal-a400: #1de9b6;
      --paper-teal-a700: #00bfa5;

      --paper-green-50: #e8f5e9;
      --paper-green-100: #c8e6c9;
      --paper-green-200: #a5d6a7;
      --paper-green-300: #81c784;
      --paper-green-400: #66bb6a;
      --paper-green-500: #4caf50;
      --paper-green-600: #43a047;
      --paper-green-700: #388e3c;
      --paper-green-800: #2e7d32;
      --paper-green-900: #1b5e20;
      --paper-green-a100: #b9f6ca;
      --paper-green-a200: #69f0ae;
      --paper-green-a400: #00e676;
      --paper-green-a700: #00c853;

      --paper-light-green-50: #f1f8e9;
      --paper-light-green-100: #dcedc8;
      --paper-light-green-200: #c5e1a5;
      --paper-light-green-300: #aed581;
      --paper-light-green-400: #9ccc65;
      --paper-light-green-500: #8bc34a;
      --paper-light-green-600: #7cb342;
      --paper-light-green-700: #689f38;
      --paper-light-green-800: #558b2f;
      --paper-light-green-900: #33691e;
      --paper-light-green-a100: #ccff90;
      --paper-light-green-a200: #b2ff59;
      --paper-light-green-a400: #76ff03;
      --paper-light-green-a700: #64dd17;

      --paper-lime-50: #f9fbe7;
      --paper-lime-100: #f0f4c3;
      --paper-lime-200: #e6ee9c;
      --paper-lime-300: #dce775;
      --paper-lime-400: #d4e157;
      --paper-lime-500: #cddc39;
      --paper-lime-600: #c0ca33;
      --paper-lime-700: #afb42b;
      --paper-lime-800: #9e9d24;
      --paper-lime-900: #827717;
      --paper-lime-a100: #f4ff81;
      --paper-lime-a200: #eeff41;
      --paper-lime-a400: #c6ff00;
      --paper-lime-a700: #aeea00;

      --paper-yellow-50: #fffde7;
      --paper-yellow-100: #fff9c4;
      --paper-yellow-200: #fff59d;
      --paper-yellow-300: #fff176;
      --paper-yellow-400: #ffee58;
      --paper-yellow-500: #ffeb3b;
      --paper-yellow-600: #fdd835;
      --paper-yellow-700: #fbc02d;
      --paper-yellow-800: #f9a825;
      --paper-yellow-900: #f57f17;
      --paper-yellow-a100: #ffff8d;
      --paper-yellow-a200: #ffff00;
      --paper-yellow-a400: #ffea00;
      --paper-yellow-a700: #ffd600;

      --paper-amber-50: #fff8e1;
      --paper-amber-100: #ffecb3;
      --paper-amber-200: #ffe082;
      --paper-amber-300: #ffd54f;
      --paper-amber-400: #ffca28;
      --paper-amber-500: #ffc107;
      --paper-amber-600: #ffb300;
      --paper-amber-700: #ffa000;
      --paper-amber-800: #ff8f00;
      --paper-amber-900: #ff6f00;
      --paper-amber-a100: #ffe57f;
      --paper-amber-a200: #ffd740;
      --paper-amber-a400: #ffc400;
      --paper-amber-a700: #ffab00;

      --paper-orange-50: #fff3e0;
      --paper-orange-100: #ffe0b2;
      --paper-orange-200: #ffcc80;
      --paper-orange-300: #ffb74d;
      --paper-orange-400: #ffa726;
      --paper-orange-500: #ff9800;
      --paper-orange-600: #fb8c00;
      --paper-orange-700: #f57c00;
      --paper-orange-800: #ef6c00;
      --paper-orange-900: #e65100;
      --paper-orange-a100: #ffd180;
      --paper-orange-a200: #ffab40;
      --paper-orange-a400: #ff9100;
      --paper-orange-a700: #ff6500;

      --paper-deep-orange-50: #fbe9e7;
      --paper-deep-orange-100: #ffccbc;
      --paper-deep-orange-200: #ffab91;
      --paper-deep-orange-300: #ff8a65;
      --paper-deep-orange-400: #ff7043;
      --paper-deep-orange-500: #ff5722;
      --paper-deep-orange-600: #f4511e;
      --paper-deep-orange-700: #e64a19;
      --paper-deep-orange-800: #d84315;
      --paper-deep-orange-900: #bf360c;
      --paper-deep-orange-a100: #ff9e80;
      --paper-deep-orange-a200: #ff6e40;
      --paper-deep-orange-a400: #ff3d00;
      --paper-deep-orange-a700: #dd2c00;

      --paper-brown-50: #efebe9;
      --paper-brown-100: #d7ccc8;
      --paper-brown-200: #bcaaa4;
      --paper-brown-300: #a1887f;
      --paper-brown-400: #8d6e63;
      --paper-brown-500: #795548;
      --paper-brown-600: #6d4c41;
      --paper-brown-700: #5d4037;
      --paper-brown-800: #4e342e;
      --paper-brown-900: #3e2723;

      --paper-grey-50: #fafafa;
      --paper-grey-100: #f5f5f5;
      --paper-grey-200: #eeeeee;
      --paper-grey-300: #e0e0e0;
      --paper-grey-400: #bdbdbd;
      --paper-grey-500: #9e9e9e;
      --paper-grey-600: #757575;
      --paper-grey-700: #616161;
      --paper-grey-800: #424242;
      --paper-grey-900: #212121;

      --paper-blue-grey-50: #eceff1;
      --paper-blue-grey-100: #cfd8dc;
      --paper-blue-grey-200: #b0bec5;
      --paper-blue-grey-300: #90a4ae;
      --paper-blue-grey-400: #78909c;
      --paper-blue-grey-500: #607d8b;
      --paper-blue-grey-600: #546e7a;
      --paper-blue-grey-700: #455a64;
      --paper-blue-grey-800: #37474f;
      --paper-blue-grey-900: #263238;

      /* opacity for dark text on a light background */
      --dark-divider-opacity: 0.12;
      --dark-disabled-opacity: 0.38; /* or hint text or icon */
      --dark-secondary-opacity: 0.54;
      --dark-primary-opacity: 0.87;

      /* opacity for light text on a dark background */
      --light-divider-opacity: 0.12;
      --light-disabled-opacity: 0.3; /* or hint text or icon */
      --light-secondary-opacity: 0.7;
      --light-primary-opacity: 1.0;

    }

  </style>
</custom-style>
`;ea.setAttribute("style","display: none;"),document.head.appendChild(ea.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const na=_e`
<custom-style>
  <style is="custom-style">
    html {
      /*
       * You can use these generic variables in your elements for easy theming.
       * For example, if all your elements use \`--primary-text-color\` as its main
       * color, then switching from a light to a dark theme is just a matter of
       * changing the value of \`--primary-text-color\` in your application.
       */
      --primary-text-color: var(--light-theme-text-color);
      --primary-background-color: var(--light-theme-background-color);
      --secondary-text-color: var(--light-theme-secondary-color);
      --disabled-text-color: var(--light-theme-disabled-color);
      --divider-color: var(--light-theme-divider-color);
      --error-color: var(--paper-deep-orange-a700);

      /*
       * Primary and accent colors. Also see color.js for more colors.
       */
      --primary-color: var(--paper-indigo-500);
      --light-primary-color: var(--paper-indigo-100);
      --dark-primary-color: var(--paper-indigo-700);

      --accent-color: var(--paper-pink-a200);
      --light-accent-color: var(--paper-pink-a100);
      --dark-accent-color: var(--paper-pink-a400);


      /*
       * Material Design Light background theme
       */
      --light-theme-background-color: #ffffff;
      --light-theme-base-color: #000000;
      --light-theme-text-color: var(--paper-grey-900);
      --light-theme-secondary-color: #737373;  /* for secondary text and icons */
      --light-theme-disabled-color: #9b9b9b;  /* disabled/hint text */
      --light-theme-divider-color: #dbdbdb;

      /*
       * Material Design Dark background theme
       */
      --dark-theme-background-color: var(--paper-grey-900);
      --dark-theme-base-color: #ffffff;
      --dark-theme-text-color: #ffffff;
      --dark-theme-secondary-color: #bcbcbc;  /* for secondary text and icons */
      --dark-theme-disabled-color: #646464;  /* disabled/hint text */
      --dark-theme-divider-color: #3c3c3c;

      /*
       * Deprecated values because of their confusing names.
       */
      --text-primary-color: var(--dark-theme-text-color);
      --default-primary-color: var(--primary-color);
    }
  </style>
</custom-style>`;na.setAttribute("style","display: none;"),document.head.appendChild(na.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const ia={properties:{name:{type:String},value:{notify:!0,type:String},required:{type:Boolean,value:!1}},attached:function(){},detached:function(){}};
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */let ra=null;const oa={properties:{validator:{type:String},invalid:{notify:!0,reflectToAttribute:!0,type:Boolean,value:!1,observer:"_invalidChanged"}},registered:function(){ra=new bo({type:"validator"})},_invalidChanged:function(){this.invalid?this.setAttribute("aria-invalid","true"):this.removeAttribute("aria-invalid")},get _validator(){return ra&&ra.byKey(this.validator)},hasValidator:function(){return null!=this._validator},validate:function(t){return this.invalid=void 0===t&&void 0!==this.value?!this._getValidity(this.value):!this._getValidity(t),!this.invalid},_getValidity:function(t){return!this.hasValidator()||this._validator.validate(t)}},aa={properties:{checked:{type:Boolean,value:!1,reflectToAttribute:!0,notify:!0,observer:"_checkedChanged"},toggles:{type:Boolean,value:!0,reflectToAttribute:!0},value:{type:String,value:"on",observer:"_valueChanged"}},observers:["_requiredChanged(required)"],created:function(){this._hasIronCheckedElementBehavior=!0},_getValidity:function(t){return this.disabled||!this.required||this.checked},_requiredChanged:function(){this.required?this.setAttribute("aria-required","true"):this.removeAttribute("aria-required")},_checkedChanged:function(){this.active=this.checked,this.fire("iron-change")},_valueChanged:function(){null==this.value&&(this.value="on")}},sa={observers:["_focusedChanged(receivedFocusFromKeyboard)"],_focusedChanged:function(t){t&&this.ensureRipple(),this.hasRipple()&&(this._ripple.holdDown=t)},_createRipple:function(){var t=Zo._createRipple();return t.id="ink",t.setAttribute("center",""),t.classList.add("circle"),t}},la=[Yo,Wo,Zo,sa],ca=[la,[ia,oa,aa],{_checkedChanged:function(){aa._checkedChanged.call(this),this.hasRipple()&&(this.checked?this._ripple.setAttribute("checked",""):this._ripple.removeAttribute("checked"))},_buttonStateChanged:function(){Zo._buttonStateChanged.call(this),this.disabled||this.isAttached&&(this.checked=this.active)}}],ua=_e`<style>
  :host {
    display: inline-block;
    white-space: nowrap;
    cursor: pointer;
    --calculated-paper-checkbox-size: var(--paper-checkbox-size, 18px);
    /* -1px is a sentinel for the default and is replaced in \`attached\`. */
    --calculated-paper-checkbox-ink-size: var(--paper-checkbox-ink-size, -1px);
    @apply --paper-font-common-base;
    line-height: 0;
    -webkit-tap-highlight-color: transparent;
  }

  :host([hidden]) {
    display: none !important;
  }

  :host(:focus) {
    outline: none;
  }

  .hidden {
    display: none;
  }

  #checkboxContainer {
    display: inline-block;
    position: relative;
    width: var(--calculated-paper-checkbox-size);
    height: var(--calculated-paper-checkbox-size);
    min-width: var(--calculated-paper-checkbox-size);
    margin: var(--paper-checkbox-margin, initial);
    vertical-align: var(--paper-checkbox-vertical-align, middle);
    background-color: var(--paper-checkbox-unchecked-background-color, transparent);
  }

  #ink {
    position: absolute;

    /* Center the ripple in the checkbox by negative offsetting it by
     * (inkWidth - rippleWidth) / 2 */
    top: calc(0px - (var(--calculated-paper-checkbox-ink-size) - var(--calculated-paper-checkbox-size)) / 2);
    left: calc(0px - (var(--calculated-paper-checkbox-ink-size) - var(--calculated-paper-checkbox-size)) / 2);
    width: var(--calculated-paper-checkbox-ink-size);
    height: var(--calculated-paper-checkbox-ink-size);
    color: var(--paper-checkbox-unchecked-ink-color, var(--primary-text-color));
    opacity: 0.6;
    pointer-events: none;
  }

  #ink:dir(rtl) {
    right: calc(0px - (var(--calculated-paper-checkbox-ink-size) - var(--calculated-paper-checkbox-size)) / 2);
    left: auto;
  }

  #ink[checked] {
    color: var(--paper-checkbox-checked-ink-color, var(--primary-color));
  }

  #checkbox {
    position: relative;
    box-sizing: border-box;
    height: 100%;
    border: solid 2px;
    border-color: var(--paper-checkbox-unchecked-color, var(--primary-text-color));
    border-radius: 2px;
    pointer-events: none;
    -webkit-transition: background-color 140ms, border-color 140ms;
    transition: background-color 140ms, border-color 140ms;

    -webkit-transition-duration: var(--paper-checkbox-animation-duration, 140ms);
    transition-duration: var(--paper-checkbox-animation-duration, 140ms);
  }

  /* checkbox checked animations */
  #checkbox.checked #checkmark {
    -webkit-animation: checkmark-expand 140ms ease-out forwards;
    animation: checkmark-expand 140ms ease-out forwards;

    -webkit-animation-duration: var(--paper-checkbox-animation-duration, 140ms);
    animation-duration: var(--paper-checkbox-animation-duration, 140ms);
  }

  @-webkit-keyframes checkmark-expand {
    0% {
      -webkit-transform: scale(0, 0) rotate(45deg);
    }
    100% {
      -webkit-transform: scale(1, 1) rotate(45deg);
    }
  }

  @keyframes checkmark-expand {
    0% {
      transform: scale(0, 0) rotate(45deg);
    }
    100% {
      transform: scale(1, 1) rotate(45deg);
    }
  }

  #checkbox.checked {
    background-color: var(--paper-checkbox-checked-color, var(--primary-color));
    border-color: var(--paper-checkbox-checked-color, var(--primary-color));
  }

  #checkmark {
    position: absolute;
    width: 36%;
    height: 70%;
    border-style: solid;
    border-top: none;
    border-left: none;
    border-right-width: calc(2/15 * var(--calculated-paper-checkbox-size));
    border-bottom-width: calc(2/15 * var(--calculated-paper-checkbox-size));
    border-color: var(--paper-checkbox-checkmark-color, white);
    -webkit-transform-origin: 97% 86%;
    transform-origin: 97% 86%;
    box-sizing: content-box; /* protect against page-level box-sizing */
  }

  #checkmark:dir(rtl) {
    -webkit-transform-origin: 50% 14%;
    transform-origin: 50% 14%;
  }

  /* label */
  #checkboxLabel {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    padding-left: var(--paper-checkbox-label-spacing, 8px);
    white-space: normal;
    line-height: normal;
    color: var(--paper-checkbox-label-color, var(--primary-text-color));
    @apply --paper-checkbox-label;
  }

  :host([checked]) #checkboxLabel {
    color: var(--paper-checkbox-label-checked-color, var(--paper-checkbox-label-color, var(--primary-text-color)));
    @apply --paper-checkbox-label-checked;
  }

  #checkboxLabel:dir(rtl) {
    padding-right: var(--paper-checkbox-label-spacing, 8px);
    padding-left: 0;
  }

  #checkboxLabel[hidden] {
    display: none;
  }

  /* disabled state */

  :host([disabled]) #checkbox {
    opacity: 0.5;
    border-color: var(--paper-checkbox-unchecked-color, var(--primary-text-color));
  }

  :host([disabled][checked]) #checkbox {
    background-color: var(--paper-checkbox-unchecked-color, var(--primary-text-color));
    opacity: 0.5;
  }

  :host([disabled]) #checkboxLabel  {
    opacity: 0.65;
  }

  /* invalid state */
  #checkbox.invalid:not(.checked) {
    border-color: var(--paper-checkbox-error-color, var(--error-color));
  }
</style>

<div id="checkboxContainer">
  <div id="checkbox" class$="[[_computeCheckboxClass(checked, invalid)]]">
    <div id="checkmark" class$="[[_computeCheckmarkClass(checked)]]"></div>
  </div>
</div>

<div id="checkboxLabel"><slot></slot></div>`;
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
let ha;ua.setAttribute("strip-whitespace",""),Ir({_template:ua,is:"paper-checkbox",behaviors:[ca],hostAttributes:{role:"checkbox","aria-checked":!1,tabindex:0},properties:{ariaActiveAttribute:{type:String,value:"aria-checked"}},attached:function(){ki(this,(function(){if("-1px"===this.getComputedStyleValue("--calculated-paper-checkbox-ink-size").trim()){var t=this.getComputedStyleValue("--calculated-paper-checkbox-size").trim(),e="px",n=t.match(/[A-Za-z]+$/);null!==n&&(e=n[0]);var i=parseFloat(t),r=8/3*i;"px"===e&&(r=Math.floor(r))%2!=i%2&&r++,this.updateStyles({"--paper-checkbox-ink-size":r+e})}}))},_computeCheckboxClass:function(t,e){var n="";return t&&(n+="checked "),e&&(n+="invalid"),n},_computeCheckmarkClass:function(t){return t?"":"hidden"},_createRipple:function(){return this._rippleContainer=this.$.checkboxContainer,sa._createRipple.call(this)}});const da={properties:{sizingTarget:{type:Object,value:function(){return this}},fitInto:{type:Object,value:window},noOverlap:{type:Boolean},positionTarget:{type:Element},horizontalAlign:{type:String},verticalAlign:{type:String},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},autoFitOnAttach:{type:Boolean,value:!1},expandSizingTargetForScrollbars:{type:Boolean,value:!1},_fitInfo:{type:Object}},get _fitWidth(){return this.fitInto===window?this.fitInto.innerWidth:this.fitInto.getBoundingClientRect().width},get _fitHeight(){return this.fitInto===window?this.fitInto.innerHeight:this.fitInto.getBoundingClientRect().height},get _fitLeft(){return this.fitInto===window?0:this.fitInto.getBoundingClientRect().left},get _fitTop(){return this.fitInto===window?0:this.fitInto.getBoundingClientRect().top},get _defaultPositionTarget(){var t=qi(this).parentNode;return t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&(t=t.host),t},get _localeHorizontalAlign(){if(this._isRTL){if("right"===this.horizontalAlign)return"left";if("left"===this.horizontalAlign)return"right"}return this.horizontalAlign},get __shouldPosition(){return(this.horizontalAlign||this.verticalAlign)&&this.positionTarget},get _isRTL(){return void 0===this._memoizedIsRTL&&(this._memoizedIsRTL="rtl"==window.getComputedStyle(this).direction),this._memoizedIsRTL},attached:function(){this.positionTarget=this.positionTarget||this._defaultPositionTarget,this.autoFitOnAttach&&("none"===window.getComputedStyle(this).display?setTimeout(function(){this.fit()}.bind(this)):(window.ShadyDOM&&ShadyDOM.flush(),this.fit()))},detached:function(){this.__deferredFit&&(clearTimeout(this.__deferredFit),this.__deferredFit=null)},fit:function(){this.position(),this.constrain(),this.center()},_discoverInfo:function(){if(!this._fitInfo){var t=window.getComputedStyle(this),e=window.getComputedStyle(this.sizingTarget);this._fitInfo={inlineStyle:{top:this.style.top||"",left:this.style.left||"",position:this.style.position||""},sizerInlineStyle:{maxWidth:this.sizingTarget.style.maxWidth||"",maxHeight:this.sizingTarget.style.maxHeight||"",boxSizing:this.sizingTarget.style.boxSizing||""},positionedBy:{vertically:"auto"!==t.top?"top":"auto"!==t.bottom?"bottom":null,horizontally:"auto"!==t.left?"left":"auto"!==t.right?"right":null},sizedBy:{height:"none"!==e.maxHeight,width:"none"!==e.maxWidth,minWidth:parseInt(e.minWidth,10)||0,minHeight:parseInt(e.minHeight,10)||0},margin:{top:parseInt(t.marginTop,10)||0,right:parseInt(t.marginRight,10)||0,bottom:parseInt(t.marginBottom,10)||0,left:parseInt(t.marginLeft,10)||0}}}},resetFit:function(){var t=this._fitInfo||{};for(var e in t.sizerInlineStyle)this.sizingTarget.style[e]=t.sizerInlineStyle[e];for(var e in t.inlineStyle)this.style[e]=t.inlineStyle[e];this._fitInfo=null},refit:function(){var t=this.sizingTarget.scrollLeft,e=this.sizingTarget.scrollTop;this.resetFit(),this.fit(),this.sizingTarget.scrollLeft=t,this.sizingTarget.scrollTop=e},position:function(){if(!this.__shouldPosition)return;this._discoverInfo(),window.ShadyDOM&&window.ShadyDOM.flush(),this.style.position="fixed",this.sizingTarget.style.boxSizing="border-box",this.style.left="0px",this.style.top="0px";var t=this.getBoundingClientRect(),e=this.__getNormalizedRect(this.positionTarget),n=this.__getNormalizedRect(this.fitInto);let i,r,o,a;this.expandSizingTargetForScrollbars&&(i=this.sizingTarget.offsetWidth,r=this.sizingTarget.offsetHeight,o=this.sizingTarget.clientWidth,a=this.sizingTarget.clientHeight);var s=this._fitInfo.margin,l=this.__getPosition(this._localeHorizontalAlign,this.verticalAlign,{width:t.width+s.left+s.right,height:t.height+s.top+s.bottom},t,e,n),c=l.left+s.left,u=l.top+s.top,h=Math.min(n.right-s.right,c+t.width),d=Math.min(n.bottom-s.bottom,u+t.height);c=Math.max(n.left+s.left,Math.min(c,h-this._fitInfo.sizedBy.minWidth)),u=Math.max(n.top+s.top,Math.min(u,d-this._fitInfo.sizedBy.minHeight));const p=Math.max(h-c,this._fitInfo.sizedBy.minWidth),f=Math.max(d-u,this._fitInfo.sizedBy.minHeight);this.sizingTarget.style.maxWidth=p+"px",this.sizingTarget.style.maxHeight=f+"px";const m=c-t.left,g=u-t.top;if(this.style.left=`${m}px`,this.style.top=`${g}px`,this.expandSizingTargetForScrollbars){const t=this.sizingTarget.offsetHeight,e=t-this.sizingTarget.clientHeight-(r-a);if(e>0){const i=Math.min(n.height-s.top-s.bottom,f+e);this.sizingTarget.style.maxHeight=`${i}px`;const r=this.sizingTarget.offsetHeight,o=r-t;let a;"top"===l.verticalAlign?a=g:"middle"===l.verticalAlign?a=g-o/2:"bottom"===l.verticalAlign&&(a=g-o),a=Math.max(n.top+s.top,Math.min(a,n.bottom-s.bottom-r)),this.style.top=`${a}px`}const c=this.sizingTarget.offsetWidth,u=c-this.sizingTarget.clientWidth-(i-o);if(u>0){const t=(()=>{if(void 0!==ha)return ha;const t=document.createElement("div");Object.assign(t.style,{overflow:"auto",position:"fixed",left:"0px",top:"0px",maxWidth:"100px",maxHeight:"100px"});const e=document.createElement("div");return e.style.width="200px",e.style.height="200px",t.appendChild(e),document.body.appendChild(t),ha=Math.abs(t.offsetWidth-100)>1?t.offsetWidth-t.clientWidth:0,document.body.removeChild(t),ha})(),e=Math.min(n.width-s.left-s.right,p+u-t);this.sizingTarget.style.maxWidth=`${e}px`;const i=this.sizingTarget.offsetWidth+t,r=i-c;let o;"left"===l.horizontalAlign?o=m:"center"===l.horizontalAlign?o=m-r/2:"right"===l.horizontalAlign&&(o=m-r),o=Math.max(n.left+s.left,Math.min(o,n.right-s.right-i)),this.style.left=`${o}px`}}},constrain:function(){if(!this.__shouldPosition){this._discoverInfo();var t=this._fitInfo;t.positionedBy.vertically||(this.style.position="fixed",this.style.top="0px"),t.positionedBy.horizontally||(this.style.position="fixed",this.style.left="0px"),this.sizingTarget.style.boxSizing="border-box";var e=this.getBoundingClientRect();t.sizedBy.height||this.__sizeDimension(e,t.positionedBy.vertically,"top","bottom","Height"),t.sizedBy.width||this.__sizeDimension(e,t.positionedBy.horizontally,"left","right","Width")}},_sizeDimension:function(t,e,n,i,r){this.__sizeDimension(t,e,n,i,r)},__sizeDimension:function(t,e,n,i,r){var o=this._fitInfo,a=this.__getNormalizedRect(this.fitInto),s="Width"===r?a.width:a.height,l=e===i,c="offset"+r;this.sizingTarget.style["max"+r]=s-o.margin[l?n:i]-(l?s-t[i]:t[n])-(this[c]-this.sizingTarget[c])+"px"},center:function(){if(!this.__shouldPosition){this._discoverInfo();var t=this._fitInfo.positionedBy;if(!t.vertically||!t.horizontally){this.style.position="fixed",t.vertically||(this.style.top="0px"),t.horizontally||(this.style.left="0px");var e=this.getBoundingClientRect(),n=this.__getNormalizedRect(this.fitInto);t.vertically||(this.style.top=n.top-e.top+(n.height-e.height)/2+"px"),t.horizontally||(this.style.left=n.left-e.left+(n.width-e.width)/2+"px")}}},__getNormalizedRect:function(t){return t===document.documentElement||t===window?{top:0,left:0,width:window.innerWidth,height:window.innerHeight,right:window.innerWidth,bottom:window.innerHeight}:t.getBoundingClientRect()},__getOffscreenArea:function(t,e,n){var i=Math.min(0,t.top)+Math.min(0,n.bottom-(t.top+e.height)),r=Math.min(0,t.left)+Math.min(0,n.right-(t.left+e.width));return Math.abs(i)*e.width+Math.abs(r)*e.height},__getPosition:function(t,e,n,i,r,o){var a,s=[{verticalAlign:"top",horizontalAlign:"left",top:r.top+this.verticalOffset,left:r.left+this.horizontalOffset},{verticalAlign:"top",horizontalAlign:"right",top:r.top+this.verticalOffset,left:r.right-n.width-this.horizontalOffset},{verticalAlign:"bottom",horizontalAlign:"left",top:r.bottom-n.height-this.verticalOffset,left:r.left+this.horizontalOffset},{verticalAlign:"bottom",horizontalAlign:"right",top:r.bottom-n.height-this.verticalOffset,left:r.right-n.width-this.horizontalOffset}];if(this.noOverlap){for(var l=0,c=s.length;l<c;l++){var u={};for(var h in s[l])u[h]=s[l][h];s.push(u)}s[0].top=s[1].top+=r.height,s[2].top=s[3].top-=r.height,s[4].left=s[6].left+=r.width,s[5].left=s[7].left-=r.width}for(e="auto"===e?null:e,(t="auto"===t?null:t)&&"center"!==t||(s.push({verticalAlign:"top",horizontalAlign:"center",top:r.top+this.verticalOffset+(this.noOverlap?r.height:0),left:r.left-i.width/2+r.width/2+this.horizontalOffset}),s.push({verticalAlign:"bottom",horizontalAlign:"center",top:r.bottom-n.height-this.verticalOffset-(this.noOverlap?r.height:0),left:r.left-i.width/2+r.width/2+this.horizontalOffset})),e&&"middle"!==e||(s.push({verticalAlign:"middle",horizontalAlign:"left",top:r.top-i.height/2+r.height/2+this.verticalOffset,left:r.left+this.horizontalOffset+(this.noOverlap?r.width:0)}),s.push({verticalAlign:"middle",horizontalAlign:"right",top:r.top-i.height/2+r.height/2+this.verticalOffset,left:r.right-n.width-this.horizontalOffset-(this.noOverlap?r.width:0)})),"middle"===e&&"center"===t&&s.push({verticalAlign:"middle",horizontalAlign:"center",top:r.top-i.height/2+r.height/2+this.verticalOffset,left:r.left-i.width/2+r.width/2+this.horizontalOffset}),l=0;l<s.length;l++){var d=s[l],p=d.verticalAlign===e,f=d.horizontalAlign===t;if(!this.dynamicAlign&&!this.noOverlap&&p&&f){a=d;break}var m=(!e||p)&&(!t||f);if(this.dynamicAlign||m){if(d.offscreenArea=this.__getOffscreenArea(d,n,o),0===d.offscreenArea&&m){a=d;break}var g=d.offscreenArea-(a=a||d).offscreenArea;(g<0||0===g&&(p||f))&&(a=d)}}return a}};
/**
    @license
    Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
var pa=Element.prototype,fa=pa.matches||pa.matchesSelector||pa.mozMatchesSelector||pa.msMatchesSelector||pa.oMatchesSelector||pa.webkitMatchesSelector;const ma=new class{getTabbableNodes(t){var e=[];return this._collectTabbableNodes(t,e)?this._sortByTabIndex(e):e}isFocusable(t){return fa.call(t,"input, select, textarea, button, object")?fa.call(t,":not([disabled])"):fa.call(t,"a[href], area[href], iframe, [tabindex], [contentEditable]")}isTabbable(t){return this.isFocusable(t)&&fa.call(t,':not([tabindex="-1"])')&&this._isVisible(t)}_normalizedTabIndex(t){if(this.isFocusable(t)){var e=t.getAttribute("tabindex")||0;return Number(e)}return-1}_collectTabbableNodes(t,e){if(t.nodeType!==Node.ELEMENT_NODE)return!1;var n=t;if(!this._isVisible(n))return!1;var i,r=this._normalizedTabIndex(n),o=r>0;r>=0&&e.push(n),i="content"===n.localName||"slot"===n.localName?qi(n).getDistributedNodes():qi(n.root||n).children;for(var a=0;a<i.length;a++)o=this._collectTabbableNodes(i[a],e)||o;return o}_isVisible(t){var e=t.style;return"hidden"!==e.visibility&&"none"!==e.display&&"hidden"!==(e=window.getComputedStyle(t)).visibility&&"none"!==e.display}_sortByTabIndex(t){var e=t.length;if(e<2)return t;var n=Math.ceil(e/2),i=this._sortByTabIndex(t.slice(0,n)),r=this._sortByTabIndex(t.slice(n));return this._mergeSortByTabIndex(i,r)}_mergeSortByTabIndex(t,e){for(var n=[];t.length>0&&e.length>0;)this._hasLowerTabOrder(t[0],e[0])?n.push(e.shift()):n.push(t.shift());return n.concat(t,e)}_hasLowerTabOrder(t,e){var n=Math.max(t.tabIndex,0),i=Math.max(e.tabIndex,0);return 0===n||0===i?i>n:n>i}};
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */Ir({_template:_e`
    <style>
      :host {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: var(--iron-overlay-backdrop-background-color, #000);
        opacity: 0;
        transition: opacity 0.2s;
        pointer-events: none;
        @apply --iron-overlay-backdrop;
      }

      :host(.opened) {
        opacity: var(--iron-overlay-backdrop-opacity, 0.6);
        pointer-events: auto;
        @apply --iron-overlay-backdrop-opened;
      }
    </style>

    <slot></slot>
`,is:"iron-overlay-backdrop",properties:{opened:{reflectToAttribute:!0,type:Boolean,value:!1,observer:"_openedChanged"}},listeners:{transitionend:"_onTransitionend"},created:function(){this.__openedRaf=null},attached:function(){this.opened&&this._openedChanged(this.opened)},prepare:function(){this.opened&&!this.parentNode&&qi(document.body).appendChild(this)},open:function(){this.opened=!0},close:function(){this.opened=!1},complete:function(){this.opened||this.parentNode!==document.body||qi(this.parentNode).removeChild(this)},_onTransitionend:function(t){t&&t.target===this&&this.complete()},_openedChanged:function(t){if(t)this.prepare();else{var e=window.getComputedStyle(this);"0s"!==e.transitionDuration&&0!=e.opacity||this.complete()}this.isAttached&&(this.__openedRaf&&(window.cancelAnimationFrame(this.__openedRaf),this.__openedRaf=null),this.scrollTop=this.scrollTop,this.__openedRaf=window.requestAnimationFrame(function(){this.__openedRaf=null,this.toggleClass("opened",this.opened)}.bind(this)))}});const ga=new
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
class{constructor(){this._overlays=[],this._minimumZ=101,this._backdropElement=null,ni(document.documentElement,"tap",(function(){})),document.addEventListener("tap",this._onCaptureClick.bind(this),!0),document.addEventListener("focus",this._onCaptureFocus.bind(this),!0),document.addEventListener("keydown",this._onCaptureKeyDown.bind(this),!0)}get backdropElement(){return this._backdropElement||(this._backdropElement=document.createElement("iron-overlay-backdrop")),this._backdropElement}get deepActiveElement(){var t=document.activeElement;for(t&&t instanceof Element!=0||(t=document.body);t.root&&qi(t.root).activeElement;)t=qi(t.root).activeElement;return t}_bringOverlayAtIndexToFront(t){var e=this._overlays[t];if(e){var n=this._overlays.length-1,i=this._overlays[n];if(i&&this._shouldBeBehindOverlay(e,i)&&n--,!(t>=n)){var r=Math.max(this.currentOverlayZ(),this._minimumZ);for(this._getZ(e)<=r&&this._applyOverlayZ(e,r);t<n;)this._overlays[t]=this._overlays[t+1],t++;this._overlays[n]=e}}}addOrRemoveOverlay(t){t.opened?this.addOverlay(t):this.removeOverlay(t)}addOverlay(t){var e=this._overlays.indexOf(t);if(e>=0)return this._bringOverlayAtIndexToFront(e),void this.trackBackdrop();var n=this._overlays.length,i=this._overlays[n-1],r=Math.max(this._getZ(i),this._minimumZ),o=this._getZ(t);i&&this._shouldBeBehindOverlay(t,i)&&(this._applyOverlayZ(i,r),n--,r=Math.max(this._getZ(this._overlays[n-1]),this._minimumZ)),o<=r&&this._applyOverlayZ(t,r),this._overlays.splice(n,0,t),this.trackBackdrop()}removeOverlay(t){var e=this._overlays.indexOf(t);-1!==e&&(this._overlays.splice(e,1),this.trackBackdrop())}currentOverlay(){return this._overlays[this._overlays.length-1]}currentOverlayZ(){return this._getZ(this.currentOverlay())}ensureMinimumZ(t){this._minimumZ=Math.max(this._minimumZ,t)}focusOverlay(){var t=this.currentOverlay();t&&t._applyFocus()}trackBackdrop(){var t=this._overlayWithBackdrop();(t||this._backdropElement)&&(this.backdropElement.style.zIndex=this._getZ(t)-1,this.backdropElement.opened=!!t,this.backdropElement.prepare())}getBackdrops(){for(var t=[],e=0;e<this._overlays.length;e++)this._overlays[e].withBackdrop&&t.push(this._overlays[e]);return t}backdropZ(){return this._getZ(this._overlayWithBackdrop())-1}_overlayWithBackdrop(){for(var t=this._overlays.length-1;t>=0;t--)if(this._overlays[t].withBackdrop)return this._overlays[t]}_getZ(t){var e=this._minimumZ;if(t){var n=Number(t.style.zIndex||window.getComputedStyle(t).zIndex);n==n&&(e=n)}return e}_setZ(t,e){t.style.zIndex=e}_applyOverlayZ(t,e){this._setZ(t,e+2)}_overlayInPath(t){t=t||[];for(var e=0;e<t.length;e++)if(t[e]._manager===this)return t[e]}_onCaptureClick(t){var e=this._overlays.length-1;if(-1!==e)for(var n,i=qi(t).path;(n=this._overlays[e])&&this._overlayInPath(i)!==n&&(n._onCaptureClick(t),n.allowClickThrough);)e--}_onCaptureFocus(t){var e=this.currentOverlay();e&&e._onCaptureFocus(t)}_onCaptureKeyDown(t){var e=this.currentOverlay();e&&(Ro.keyboardEventMatchesKeys(t,"esc")?e._onCaptureEsc(t):Ro.keyboardEventMatchesKeys(t,"tab")&&e._onCaptureTab(t))}_shouldBeBehindOverlay(t,e){return!t.alwaysOnTop&&e.alwaysOnTop}};
/**
    @license
    Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */var _a,ya,va={pageX:0,pageY:0},ba=null,xa=[],wa=["wheel","mousewheel","DOMMouseScroll","touchstart","touchmove"];function Sa(t){Ma.indexOf(t)>=0||(0===Ma.length&&(function e(){_a=_a||Ea.bind(void 0);for(var t=0,e=wa.length;t<e;t++)document.addEventListener(wa[t],_a,{capture:!0,passive:!1})})(),Ma.push(t),ya=Ma[Ma.length-1])}const Ma=[];function Ea(t){if(t.cancelable&&(function e(t){var e=qi(t).rootTarget;if("touchmove"!==t.type&&ba!==e&&(ba=e,xa=(function n(t){for(var e=[],n=t.indexOf(ya),i=0;i<=n;i++)if(t[i].nodeType===Node.ELEMENT_NODE){var r=t[i],o=r.style;"scroll"!==o.overflow&&"auto"!==o.overflow&&(o=window.getComputedStyle(r)),"scroll"!==o.overflow&&"auto"!==o.overflow||e.push(r)}return e})(qi(t).path)),!xa.length)return!0;if("touchstart"===t.type)return!1;var i=(function r(t){var e={deltaX:t.deltaX,deltaY:t.deltaY};if("deltaX"in t);else if("wheelDeltaX"in t&&"wheelDeltaY"in t)e.deltaX=-t.wheelDeltaX,e.deltaY=-t.wheelDeltaY;else if("wheelDelta"in t)e.deltaX=0,e.deltaY=-t.wheelDelta;else if("axis"in t)e.deltaX=1===t.axis?t.detail:0,e.deltaY=2===t.axis?t.detail:0;else if(t.targetTouches){var n=t.targetTouches[0];e.deltaX=va.pageX-n.pageX,e.deltaY=va.pageY-n.pageY}return e}
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */)(t);return!(function o(t,e,n){if(e||n)for(var i=Math.abs(n)>=Math.abs(e),r=0;r<t.length;r++){var o=t[r];if(i?n<0?o.scrollTop>0:o.scrollTop<o.scrollHeight-o.clientHeight:e<0?o.scrollLeft>0:o.scrollLeft<o.scrollWidth-o.clientWidth)return o}})(xa,i.deltaX,i.deltaY)})(t)&&t.preventDefault(),t.targetTouches){var n=t.targetTouches[0];va.pageX=n.pageX,va.pageY=n.pageY}}const Ta={properties:{opened:{observer:"_openedChanged",type:Boolean,value:!1,notify:!0},canceled:{observer:"_canceledChanged",readOnly:!0,type:Boolean,value:!1},withBackdrop:{observer:"_withBackdropChanged",type:Boolean},noAutoFocus:{type:Boolean,value:!1},noCancelOnEscKey:{type:Boolean,value:!1},noCancelOnOutsideClick:{type:Boolean,value:!1},closingReason:{type:Object},restoreFocusOnClose:{type:Boolean,value:!1},allowClickThrough:{type:Boolean},alwaysOnTop:{type:Boolean},scrollAction:{type:String},_manager:{type:Object,value:ga},_focusedChild:{type:Object}},listeners:{"iron-resize":"_onIronResize"},observers:["__updateScrollObservers(isAttached, opened, scrollAction)"],get backdropElement(){return this._manager.backdropElement},get _focusNode(){return this._focusedChild||qi(this).querySelector("[autofocus]")||this},get _focusableNodes(){return ma.getTabbableNodes(this)},ready:function(){this.__isAnimating=!1,this.__shouldRemoveTabIndex=!1,this.__firstFocusableNode=this.__lastFocusableNode=null,this.__rafs={},this.__restoreFocusNode=null,this.__scrollTop=this.__scrollLeft=null,this.__onCaptureScroll=this.__onCaptureScroll.bind(this),this.__rootNodes=null,this._ensureSetup()},attached:function(){this.opened&&this._openedChanged(this.opened),this._observer=qi(this).observeNodes(this._onNodesChange)},detached:function(){for(var t in this._observer&&qi(this).unobserveNodes(this._observer),this._observer=null,this.__rafs)null!==this.__rafs[t]&&cancelAnimationFrame(this.__rafs[t]);this.__rafs={},this._manager.removeOverlay(this),this.__isAnimating&&(this.opened?this._finishRenderOpened():(this._applyFocus(),this._finishRenderClosed()))},toggle:function(){this._setCanceled(!1),this.opened=!this.opened},open:function(){this._setCanceled(!1),this.opened=!0},close:function(){this._setCanceled(!1),this.opened=!1},cancel:function(t){this.fire("iron-overlay-canceled",t,{cancelable:!0}).defaultPrevented||(this._setCanceled(!0),this.opened=!1)},invalidateTabbables:function(){this.__firstFocusableNode=this.__lastFocusableNode=null},_ensureSetup:function(){this._overlaySetup||(this._overlaySetup=!0,this.style.outline="none",this.style.display="none")},_openedChanged:function(t){t?this.removeAttribute("aria-hidden"):this.setAttribute("aria-hidden","true"),this.isAttached&&(this.__isAnimating=!0,this.__deraf("__openedChanged",this.__openedChanged))},_canceledChanged:function(){this.closingReason=this.closingReason||{},this.closingReason.canceled=this.canceled},_withBackdropChanged:function(){this.withBackdrop&&!this.hasAttribute("tabindex")?(this.setAttribute("tabindex","-1"),this.__shouldRemoveTabIndex=!0):this.__shouldRemoveTabIndex&&(this.removeAttribute("tabindex"),this.__shouldRemoveTabIndex=!1),this.opened&&this.isAttached&&this._manager.trackBackdrop()},_prepareRenderOpened:function(){this.__restoreFocusNode=this._manager.deepActiveElement,this._preparePositioning(),this.refit(),this._finishPositioning(),this.noAutoFocus&&document.activeElement===this._focusNode&&(this._focusNode.blur(),this.__restoreFocusNode.focus())},_renderOpened:function(){this._finishRenderOpened()},_renderClosed:function(){this._finishRenderClosed()},_finishRenderOpened:function(){this.notifyResize(),this.__isAnimating=!1,this.fire("iron-overlay-opened")},_finishRenderClosed:function(){this.style.display="none",this.style.zIndex="",this.notifyResize(),this.__isAnimating=!1,this.fire("iron-overlay-closed",this.closingReason)},_preparePositioning:function(){this.style.transition=this.style.webkitTransition="none",this.style.transform=this.style.webkitTransform="none",this.style.display=""},_finishPositioning:function(){this.style.display="none",this.scrollTop=this.scrollTop,this.style.transition=this.style.webkitTransition="",this.style.transform=this.style.webkitTransform="",this.style.display="",this.scrollTop=this.scrollTop},_applyFocus:function(){if(this.opened)this.noAutoFocus||this._focusNode.focus();else{if(this.restoreFocusOnClose&&this.__restoreFocusNode){var t=this._manager.deepActiveElement;(t===document.body||Ca(this,t))&&this.__restoreFocusNode.focus()}this.__restoreFocusNode=null,this._focusNode.blur(),this._focusedChild=null}},_onCaptureClick:function(t){this.noCancelOnOutsideClick||this.cancel(t)},_onCaptureFocus:function(t){if(this.withBackdrop){var e=qi(t).path;-1===e.indexOf(this)?(t.stopPropagation(),this._applyFocus()):this._focusedChild=e[0]}},_onCaptureEsc:function(t){this.noCancelOnEscKey||this.cancel(t)},_onCaptureTab:function(t){if(this.withBackdrop){this.__ensureFirstLastFocusables();var e=t.shiftKey,n=e?this.__firstFocusableNode:this.__lastFocusableNode,i=e?this.__lastFocusableNode:this.__firstFocusableNode,r=!1;if(n===i)r=!0;else{var o=this._manager.deepActiveElement;r=o===n||o===this}r&&(t.preventDefault(),this._focusedChild=i,this._applyFocus())}},_onIronResize:function(){this.opened&&!this.__isAnimating&&this.__deraf("refit",this.refit)},_onNodesChange:function(){this.opened&&!this.__isAnimating&&(this.invalidateTabbables(),this.notifyResize())},__ensureFirstLastFocusables:function(){var t=this._focusableNodes;this.__firstFocusableNode=t[0],this.__lastFocusableNode=t[t.length-1]},__openedChanged:function(){this.opened?(this._prepareRenderOpened(),this._manager.addOverlay(this),this._applyFocus(),this._renderOpened()):(this._manager.removeOverlay(this),this._applyFocus(),this._renderClosed())},__deraf:function(t,e){var n=this.__rafs;null!==n[t]&&cancelAnimationFrame(n[t]),n[t]=requestAnimationFrame(function i(){n[t]=null,e.call(this)}.bind(this))},__updateScrollObservers:function(t,e,n){t&&e&&this.__isValidScrollAction(n)?("lock"===n&&(this.__saveScrollPosition(),Sa(this)),this.__addScrollListeners()):((function i(t){var e=Ma.indexOf(t);-1!==e&&(Ma.splice(e,1),ya=Ma[Ma.length-1],0===Ma.length&&(function n(){for(var t=0,e=wa.length;t<e;t++)document.removeEventListener(wa[t],_a,{capture:!0,passive:!1})})())})(this),this.__removeScrollListeners())},__addScrollListeners:function(){if(!this.__rootNodes){if(this.__rootNodes=[],m)for(var t=this;t;)t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&t.host&&this.__rootNodes.push(t),t=t.host||t.assignedSlot||t.parentNode;this.__rootNodes.push(document)}this.__rootNodes.forEach((function(t){t.addEventListener("scroll",this.__onCaptureScroll,{capture:!0,passive:!0})}),this)},__removeScrollListeners:function(){this.__rootNodes&&this.__rootNodes.forEach((function(t){t.removeEventListener("scroll",this.__onCaptureScroll,{capture:!0,passive:!0})}),this),this.isAttached||(this.__rootNodes=null)},__isValidScrollAction:function(t){return"lock"===t||"refit"===t||"cancel"===t},__onCaptureScroll:function(t){if(!(this.__isAnimating||qi(t).path.indexOf(this)>=0))switch(this.scrollAction){case"lock":this.__restoreScrollPosition();break;case"refit":this.__deraf("refit",this.refit);break;case"cancel":this.cancel(t)}},__saveScrollPosition:function(){document.scrollingElement?(this.__scrollTop=document.scrollingElement.scrollTop,this.__scrollLeft=document.scrollingElement.scrollLeft):(this.__scrollTop=Math.max(document.documentElement.scrollTop,document.body.scrollTop),this.__scrollLeft=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft))},__restoreScrollPosition:function(){document.scrollingElement?(document.scrollingElement.scrollTop=this.__scrollTop,document.scrollingElement.scrollLeft=this.__scrollLeft):(document.documentElement.scrollTop=document.body.scrollTop=this.__scrollTop,document.documentElement.scrollLeft=document.body.scrollLeft=this.__scrollLeft)}},Ca=(t,e)=>{for(let i=e;i;i=(n=i).assignedSlot||n.parentNode||n.host)if(i===t)return!0;var n;return!1},Aa=[da,mo,Ta],ka={hostAttributes:{role:"dialog",tabindex:"-1"},properties:{modal:{type:Boolean,value:!1},__readied:{type:Boolean,value:!1}},observers:["_modalChanged(modal, __readied)"],listeners:{tap:"_onDialogClick"},ready:function(){this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop,this.__readied=!0},_modalChanged:function(t,e){e&&(t?(this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop,this.noCancelOnOutsideClick=!0,this.noCancelOnEscKey=!0,this.withBackdrop=!0):(this.noCancelOnOutsideClick=this.noCancelOnOutsideClick&&this.__prevNoCancelOnOutsideClick,this.noCancelOnEscKey=this.noCancelOnEscKey&&this.__prevNoCancelOnEscKey,this.withBackdrop=this.withBackdrop&&this.__prevWithBackdrop))},_updateClosingReasonConfirmed:function(t){this.closingReason=this.closingReason||{},this.closingReason.confirmed=t},_onDialogClick:function(t){for(var e=qi(t).path,n=0,i=e.indexOf(this);n<i;n++){var r=e[n];if(r.hasAttribute&&(r.hasAttribute("dialog-dismiss")||r.hasAttribute("dialog-confirm"))){this._updateClosingReasonConfirmed(r.hasAttribute("dialog-confirm")),this.close(),t.stopPropagation();break}}}},La=[Aa,ka];
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
if(
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>

      :host {
        display: block;
        @apply --layout-relative;
      }

      :host(.is-scrolled:not(:first-child))::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 1px;
        background: var(--divider-color);
      }

      :host(.can-scroll:not(.scrolled-to-bottom):not(:last-child))::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 1px;
        background: var(--divider-color);
      }

      .scrollable {
        padding: 0 24px;

        @apply --layout-scroll;
        @apply --paper-dialog-scrollable;
      }

      .fit {
        @apply --layout-fit;
      }
    </style>

    <div id="scrollable" class="scrollable" on-scroll="updateScrollState">
      <slot></slot>
    </div>
`,is:"paper-dialog-scrollable",properties:{dialogElement:{type:Object}},get scrollTarget(){return this.$.scrollable},ready:function(){this._ensureTarget(),this.classList.add("no-padding")},attached:function(){this._ensureTarget(),requestAnimationFrame(this.updateScrollState.bind(this))},updateScrollState:function(){this.toggleClass("is-scrolled",this.scrollTarget.scrollTop>0),this.toggleClass("can-scroll",this.scrollTarget.offsetHeight<this.scrollTarget.scrollHeight),this.toggleClass("scrolled-to-bottom",this.scrollTarget.scrollTop+this.scrollTarget.offsetHeight>=this.scrollTarget.scrollHeight)},_ensureTarget:function(){this.dialogElement=this.dialogElement||this.parentElement,this.dialogElement&&this.dialogElement.behaviors&&this.dialogElement.behaviors.indexOf(ka)>=0?(this.dialogElement.sizingTarget=this.scrollTarget,this.scrollTarget.classList.remove("fit")):this.dialogElement&&this.scrollTarget.classList.add("fit")}}),!window.polymerSkipLoadingFontRoboto){const t=document.createElement("link");t.rel="stylesheet",t.type="text/css",t.crossOrigin="anonymous",t.href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700|Roboto:400,300,300italic,400italic,500,500italic,700,700italic",document.head.appendChild(t)}
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */const Pa=_e`<custom-style>
  <style is="custom-style">
    html {

      /* Shared Styles */
      --paper-font-common-base: {
        font-family: 'Roboto', 'Noto', sans-serif;
        -webkit-font-smoothing: antialiased;
      };

      --paper-font-common-code: {
        font-family: 'Roboto Mono', 'Consolas', 'Menlo', monospace;
        -webkit-font-smoothing: antialiased;
      };

      --paper-font-common-expensive-kerning: {
        text-rendering: optimizeLegibility;
      };

      --paper-font-common-nowrap: {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      };

      /* Material Font Styles */

      --paper-font-display4: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 112px;
        font-weight: 300;
        letter-spacing: -.044em;
        line-height: 120px;
      };

      --paper-font-display3: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 56px;
        font-weight: 400;
        letter-spacing: -.026em;
        line-height: 60px;
      };

      --paper-font-display2: {
        @apply --paper-font-common-base;

        font-size: 45px;
        font-weight: 400;
        letter-spacing: -.018em;
        line-height: 48px;
      };

      --paper-font-display1: {
        @apply --paper-font-common-base;

        font-size: 34px;
        font-weight: 400;
        letter-spacing: -.01em;
        line-height: 40px;
      };

      --paper-font-headline: {
        @apply --paper-font-common-base;

        font-size: 24px;
        font-weight: 400;
        letter-spacing: -.012em;
        line-height: 32px;
      };

      --paper-font-title: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 20px;
        font-weight: 500;
        line-height: 28px;
      };

      --paper-font-subhead: {
        @apply --paper-font-common-base;

        font-size: 16px;
        font-weight: 400;
        line-height: 24px;
      };

      --paper-font-body2: {
        @apply --paper-font-common-base;

        font-size: 14px;
        font-weight: 500;
        line-height: 24px;
      };

      --paper-font-body1: {
        @apply --paper-font-common-base;

        font-size: 14px;
        font-weight: 400;
        line-height: 20px;
      };

      --paper-font-caption: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 12px;
        font-weight: 400;
        letter-spacing: 0.011em;
        line-height: 20px;
      };

      --paper-font-menu: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 13px;
        font-weight: 500;
        line-height: 24px;
      };

      --paper-font-button: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 14px;
        font-weight: 500;
        letter-spacing: 0.018em;
        line-height: 24px;
        text-transform: uppercase;
      };

      --paper-font-code2: {
        @apply --paper-font-common-code;

        font-size: 14px;
        font-weight: 700;
        line-height: 20px;
      };

      --paper-font-code1: {
        @apply --paper-font-common-code;

        font-size: 14px;
        font-weight: 500;
        line-height: 20px;
      };

    }

  </style>
</custom-style>`;Pa.setAttribute("style","display: none;"),document.head.appendChild(Pa.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Na=document.createElement("template");Na.setAttribute("style","display: none;"),Na.innerHTML='<dom-module id="paper-dialog-shared-styles">\n  <template>\n    <style>\n      :host {\n        display: block;\n        margin: 24px 40px;\n\n        background: var(--paper-dialog-background-color, var(--primary-background-color));\n        color: var(--paper-dialog-color, var(--primary-text-color));\n\n        @apply --paper-font-body1;\n        @apply --shadow-elevation-16dp;\n        @apply --paper-dialog;\n      }\n\n      :host > ::slotted(*) {\n        margin-top: 20px;\n        padding: 0 24px;\n      }\n\n      :host > ::slotted(.no-padding) {\n        padding: 0;\n      }\n\n      \n      :host > ::slotted(*:first-child) {\n        margin-top: 24px;\n      }\n\n      :host > ::slotted(*:last-child) {\n        margin-bottom: 24px;\n      }\n\n      /* In 1.x, this selector was `:host > ::content h2`. In 2.x <slot> allows\n      to select direct children only, which increases the weight of this\n      selector, so we have to re-define first-child/last-child margins below. */\n      :host > ::slotted(h2) {\n        position: relative;\n        margin: 0;\n\n        @apply --paper-font-title;\n        @apply --paper-dialog-title;\n      }\n\n      /* Apply mixin again, in case it sets margin-top. */\n      :host > ::slotted(h2:first-child) {\n        margin-top: 24px;\n        @apply --paper-dialog-title;\n      }\n\n      /* Apply mixin again, in case it sets margin-bottom. */\n      :host > ::slotted(h2:last-child) {\n        margin-bottom: 24px;\n        @apply --paper-dialog-title;\n      }\n\n      :host > ::slotted(.paper-dialog-buttons),\n      :host > ::slotted(.buttons) {\n        position: relative;\n        padding: 8px 8px 8px 24px;\n        margin: 0;\n\n        color: var(--paper-dialog-button-color, var(--primary-color));\n\n        @apply --layout-horizontal;\n        @apply --layout-end-justified;\n      }\n    </style>\n  </template>\n</dom-module>',document.head.appendChild(Na.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Ia=[{properties:{animationConfig:{type:Object},entryAnimation:{observer:"_entryAnimationChanged",type:String},exitAnimation:{observer:"_exitAnimationChanged",type:String}},_entryAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.animationConfig.entry=[{name:this.entryAnimation,node:this}]},_exitAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.animationConfig.exit=[{name:this.exitAnimation,node:this}]},_copyProperties:function(t,e){for(var n in e)t[n]=e[n]},_cloneConfig:function(t){var e={isClone:!0};return this._copyProperties(e,t),e},_getAnimationConfigRecursive:function(t,e,n){var i;if(this.animationConfig)if(this.animationConfig.value&&"function"==typeof this.animationConfig.value)this._warn(this._logf("playAnimation","Please put 'animationConfig' inside of your components 'properties' object instead of outside of it."));else if(i=t?this.animationConfig[t]:this.animationConfig,Array.isArray(i)||(i=[i]),i)for(var r,o=0;r=i[o];o++)if(r.animatable)r.animatable._getAnimationConfigRecursive(r.type||t,e,n);else if(r.id){var a=e[r.id];a?(a.isClone||(e[r.id]=this._cloneConfig(a),a=e[r.id]),this._copyProperties(a,r)):e[r.id]=r}else n.push(r)},getAnimationConfig:function(t){var e={},n=[];for(var i in this._getAnimationConfigRecursive(t,e,n),e)n.push(e[i]);return n}},{_configureAnimations:function(t){var e=[],n=[];if(t.length>0)for(let e,i=0;e=t[i];i++){let t=document.createElement(e.name);if(t.isNeonAnimation){let i=null;t.configure||(t.configure=function(t){return null}),i=t.configure(e),n.push({result:i,config:e,neonAnimation:t})}else console.warn(this.is+":",e.name,"not found!")}for(var i=0;i<n.length;i++){let t=n[i].result,r=n[i].config,o=n[i].neonAnimation;try{"function"!=typeof t.cancel&&(t=document.timeline.play(t))}catch(e){t=null,console.warn("Couldnt play","(",r.name,").",e)}t&&e.push({neonAnimation:o,config:r,animation:t})}return e},_shouldComplete:function(t){for(var e=!0,n=0;n<t.length;n++)if("finished"!=t[n].animation.playState){e=!1;break}return e},_complete:function(t){for(var e=0;e<t.length;e++)t[e].neonAnimation.complete(t[e].config);for(e=0;e<t.length;e++)t[e].animation.cancel()},playAnimation:function(t,e){var n=this.getAnimationConfig(t);if(n){this._active=this._active||{},this._active[t]&&(this._complete(this._active[t]),delete this._active[t]);var i=this._configureAnimations(n);if(0!=i.length){this._active[t]=i;for(var r=0;r<i.length;r++)i[r].animation.onfinish=function(){this._shouldComplete(i)&&(this._complete(i),delete this._active[t],this.fire("neon-animation-finish",e,{bubbles:!1}))}.bind(this)}else this.fire("neon-animation-finish",e,{bubbles:!1})}},cancelAnimation:function(){for(var t in this._active){var e=this._active[t];for(var n in e)e[n].animation.cancel()}this._active={}}}];
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style include="paper-dialog-shared-styles"></style>
    <slot></slot>
`,is:"paper-dialog",behaviors:[La,Ia],listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},_renderOpened:function(){this.cancelAnimation(),this.playAnimation("entry")},_renderClosed:function(){this.cancelAnimation(),this.playAnimation("exit")},_onNeonAnimationFinish:function(){this.opened?this._finishRenderOpened():this._finishRenderClosed()}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Oa=Ir({_template:_e`
    <style>
      :host {
        display: inline-block;
        position: fixed;
        clip: rect(0px,0px,0px,0px);
      }
    </style>
    <div aria-live$="[[mode]]">[[_text]]</div>
`,is:"iron-a11y-announcer",properties:{mode:{type:String,value:"polite"},timeout:{type:Number,value:150},_text:{type:String,value:""}},created:function(){Oa.instance||(Oa.instance=this),document.addEventListener("iron-announce",this._onIronAnnounce.bind(this))},announce:function(t){this._text="",this.async((function(){this._text=t}),this.timeout)},_onIronAnnounce:function(t){t.detail&&t.detail.text&&this.announce(t.detail.text)}});Oa.instance=null,Oa.requestAvailability=function(){Oa.instance||(Oa.instance=document.createElement("iron-a11y-announcer")),document.body?document.body.appendChild(Oa.instance):document.addEventListener("load",(function(){document.body.appendChild(Oa.instance)}))},
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        display: inline-block;
      }
    </style>
    <slot id="content"></slot>
`,is:"iron-input",behaviors:[oa],properties:{bindValue:{type:String,value:""},value:{type:String,computed:"_computeValue(bindValue)"},allowedPattern:{type:String},autoValidate:{type:Boolean,value:!1},_inputElement:Object},observers:["_bindValueChanged(bindValue, _inputElement)"],listeners:{input:"_onInput",keypress:"_onKeypress"},created:function(){Oa.requestAvailability(),this._previousValidInput="",this._patternAlreadyChecked=!1},attached:function(){this._observer=qi(this).observeNodes(function(t){this._initSlottedInput()}.bind(this))},detached:function(){this._observer&&(qi(this).unobserveNodes(this._observer),this._observer=null)},get inputElement(){return this._inputElement},_initSlottedInput:function(){this._inputElement=this.getEffectiveChildren()[0],this.inputElement&&this.inputElement.value&&(this.bindValue=this.inputElement.value),this.fire("iron-input-ready")},get _patternRegExp(){var t;if(this.allowedPattern)t=new RegExp(this.allowedPattern);else switch(this.inputElement.type){case"number":t=/[0-9.,e-]/}return t},_bindValueChanged:function(t,e){e&&(void 0===t?e.value=null:t!==e.value&&(this.inputElement.value=t),this.autoValidate&&this.validate(),this.fire("bind-value-changed",{value:t}))},_onInput:function(){this.allowedPattern&&!this._patternAlreadyChecked&&(this._checkPatternValidity()||(this._announceInvalidCharacter("Invalid string of characters not entered."),this.inputElement.value=this._previousValidInput)),this.bindValue=this._previousValidInput=this.inputElement.value,this._patternAlreadyChecked=!1},_isPrintable:function(t){return!(8==t.keyCode||9==t.keyCode||13==t.keyCode||27==t.keyCode||0==t.charCode&&(19==t.keyCode||20==t.keyCode||45==t.keyCode||46==t.keyCode||144==t.keyCode||145==t.keyCode||t.keyCode>32&&t.keyCode<41||t.keyCode>111&&t.keyCode<124))},_onKeypress:function(t){if(this.allowedPattern||"number"===this.inputElement.type){var e=this._patternRegExp;if(e&&!(t.metaKey||t.ctrlKey||t.altKey)){this._patternAlreadyChecked=!0;var n=String.fromCharCode(t.charCode);this._isPrintable(t)&&!e.test(n)&&(t.preventDefault(),this._announceInvalidCharacter("Invalid character "+n+" not entered."))}}},_checkPatternValidity:function(){var t=this._patternRegExp;if(!t)return!0;for(var e=0;e<this.inputElement.value.length;e++)if(!t.test(this.inputElement.value[e]))return!1;return!0},validate:function(){if(!this.inputElement)return this.invalid=!1,!0;var t=this.inputElement.checkValidity();return t&&(this.required&&""===this.bindValue?t=!1:this.hasValidator()&&(t=oa.validate.call(this,this.bindValue))),this.invalid=!t,this.fire("iron-input-validate"),t},_announceInvalidCharacter:function(t){this.fire("iron-announce",{text:t})},_computeValue:function(t){return t}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Ra={attached:function(){this.fire("addon-attached")},update:function(t){}};
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */Ir({_template:_e`
    <style>
      :host {
        display: inline-block;
        float: right;

        @apply --paper-font-caption;
        @apply --paper-input-char-counter;
      }

      :host([hidden]) {
        display: none !important;
      }

      :host(:dir(rtl)) {
        float: left;
      }
    </style>

    <span>[[_charCounterStr]]</span>
`,is:"paper-input-char-counter",behaviors:[Ra],properties:{_charCounterStr:{type:String,value:"0"}},update:function(t){if(t.inputElement){t.value=t.value||"";var e=t.value.toString().length.toString();t.inputElement.hasAttribute("maxlength")&&(e+="/"+t.inputElement.getAttribute("maxlength")),this._charCounterStr=e}}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const za=_e`
<custom-style>
  <style is="custom-style">
    html {
      --paper-input-container-shared-input-style: {
        position: relative; /* to make a stacking context */
        outline: none;
        box-shadow: none;
        padding: 0;
        margin: 0;
        width: 100%;
        max-width: 100%;
        background: transparent;
        border: none;
        color: var(--paper-input-container-input-color, var(--primary-text-color));
        -webkit-appearance: none;
        text-align: inherit;
        vertical-align: var(--paper-input-container-input-align, bottom);

        @apply --paper-font-subhead;
      };
    }
  </style>
</custom-style>
`;za.setAttribute("style","display: none;"),document.head.appendChild(za.content),Ir({_template:_e`
    <style>
      :host {
        display: block;
        padding: 8px 0;
        @apply --paper-input-container;
      }

      :host([inline]) {
        display: inline-block;
      }

      :host([disabled]) {
        pointer-events: none;
        opacity: 0.33;

        @apply --paper-input-container-disabled;
      }

      :host([hidden]) {
        display: none !important;
      }

      [hidden] {
        display: none !important;
      }

      .floated-label-placeholder {
        @apply --paper-font-caption;
      }

      .underline {
        height: 2px;
        position: relative;
      }

      .focused-line {
        @apply --layout-fit;
        border-bottom: 2px solid var(--paper-input-container-focus-color, var(--primary-color));

        -webkit-transform-origin: center center;
        transform-origin: center center;
        -webkit-transform: scale3d(0,1,1);
        transform: scale3d(0,1,1);

        @apply --paper-input-container-underline-focus;
      }

      .underline.is-highlighted .focused-line {
        -webkit-transform: none;
        transform: none;
        -webkit-transition: -webkit-transform 0.25s;
        transition: transform 0.25s;

        @apply --paper-transition-easing;
      }

      .underline.is-invalid .focused-line {
        border-color: var(--paper-input-container-invalid-color, var(--error-color));
        -webkit-transform: none;
        transform: none;
        -webkit-transition: -webkit-transform 0.25s;
        transition: transform 0.25s;

        @apply --paper-transition-easing;
      }

      .unfocused-line {
        @apply --layout-fit;
        border-bottom: 1px solid var(--paper-input-container-color, var(--secondary-text-color));
        @apply --paper-input-container-underline;
      }

      :host([disabled]) .unfocused-line {
        border-bottom: 1px dashed;
        border-color: var(--paper-input-container-color, var(--secondary-text-color));
        @apply --paper-input-container-underline-disabled;
      }

      .input-wrapper {
        @apply --layout-horizontal;
        @apply --layout-center;
        position: relative;
      }

      .input-content {
        @apply --layout-flex-auto;
        @apply --layout-relative;
        max-width: 100%;
      }

      .input-content ::slotted(label),
      .input-content ::slotted(.paper-input-label) {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        font: inherit;
        color: var(--paper-input-container-color, var(--secondary-text-color));
        -webkit-transition: -webkit-transform 0.25s, width 0.25s;
        transition: transform 0.25s, width 0.25s;
        -webkit-transform-origin: left top;
        transform-origin: left top;
        /* Fix for safari not focusing 0-height date/time inputs with -webkit-apperance: none; */
        min-height: 1px;

        @apply --paper-font-common-nowrap;
        @apply --paper-font-subhead;
        @apply --paper-input-container-label;
        @apply --paper-transition-easing;
      }


      .input-content ::slotted(label):before,
      .input-content ::slotted(.paper-input-label):before {
        @apply --paper-input-container-label-before;
      }

      .input-content ::slotted(label):after,
      .input-content ::slotted(.paper-input-label):after {
        @apply --paper-input-container-label-after;
      }

      .input-content.label-is-floating ::slotted(label),
      .input-content.label-is-floating ::slotted(.paper-input-label) {
        -webkit-transform: translateY(-75%) scale(0.75);
        transform: translateY(-75%) scale(0.75);

        /* Since we scale to 75/100 of the size, we actually have 100/75 of the
        original space now available */
        width: 133%;

        @apply --paper-input-container-label-floating;
      }

      :host(:dir(rtl)) .input-content.label-is-floating ::slotted(label),
      :host(:dir(rtl)) .input-content.label-is-floating ::slotted(.paper-input-label) {
        right: 0;
        left: auto;
        -webkit-transform-origin: right top;
        transform-origin: right top;
      }

      .input-content.label-is-highlighted ::slotted(label),
      .input-content.label-is-highlighted ::slotted(.paper-input-label) {
        color: var(--paper-input-container-focus-color, var(--primary-color));

        @apply --paper-input-container-label-focus;
      }

      .input-content.is-invalid ::slotted(label),
      .input-content.is-invalid ::slotted(.paper-input-label) {
        color: var(--paper-input-container-invalid-color, var(--error-color));
      }

      .input-content.label-is-hidden ::slotted(label),
      .input-content.label-is-hidden ::slotted(.paper-input-label) {
        visibility: hidden;
      }

      .input-content ::slotted(input),
      .input-content ::slotted(iron-input),
      .input-content ::slotted(textarea),
      .input-content ::slotted(iron-autogrow-textarea),
      .input-content ::slotted(.paper-input-input) {
        @apply --paper-input-container-shared-input-style;
        /* The apply shim doesn't apply the nested color custom property,
          so we have to re-apply it here. */
        color: var(--paper-input-container-input-color, var(--primary-text-color));
        @apply --paper-input-container-input;
      }

      .input-content ::slotted(input)::-webkit-outer-spin-button,
      .input-content ::slotted(input)::-webkit-inner-spin-button {
        @apply --paper-input-container-input-webkit-spinner;
      }

      .input-content.focused ::slotted(input),
      .input-content.focused ::slotted(iron-input),
      .input-content.focused ::slotted(textarea),
      .input-content.focused ::slotted(iron-autogrow-textarea),
      .input-content.focused ::slotted(.paper-input-input) {
        @apply --paper-input-container-input-focus;
      }

      .input-content.is-invalid ::slotted(input),
      .input-content.is-invalid ::slotted(iron-input),
      .input-content.is-invalid ::slotted(textarea),
      .input-content.is-invalid ::slotted(iron-autogrow-textarea),
      .input-content.is-invalid ::slotted(.paper-input-input) {
        @apply --paper-input-container-input-invalid;
      }

      .prefix ::slotted(*) {
        display: inline-block;
        @apply --paper-font-subhead;
        @apply --layout-flex-none;
        @apply --paper-input-prefix;
      }

      .suffix ::slotted(*) {
        display: inline-block;
        @apply --paper-font-subhead;
        @apply --layout-flex-none;

        @apply --paper-input-suffix;
      }

      /* Firefox sets a min-width on the input, which can cause layout issues */
      .input-content ::slotted(input) {
        min-width: 0;
      }

      .input-content ::slotted(textarea) {
        resize: none;
      }

      .add-on-content {
        position: relative;
      }

      .add-on-content.is-invalid ::slotted(*) {
        color: var(--paper-input-container-invalid-color, var(--error-color));
      }

      .add-on-content.is-highlighted ::slotted(*) {
        color: var(--paper-input-container-focus-color, var(--primary-color));
      }
    </style>

    <div class="floated-label-placeholder" aria-hidden="true" hidden="[[noLabelFloat]]">&nbsp;</div>

    <div class="input-wrapper">
      <span class="prefix"><slot name="prefix"></slot></span>

      <div class$="[[_computeInputContentClass(noLabelFloat,alwaysFloatLabel,focused,invalid,_inputHasContent)]]" id="labelAndInputContainer">
        <slot name="label"></slot>
        <slot name="input"></slot>
      </div>

      <span class="suffix"><slot name="suffix"></slot></span>
    </div>

    <div class$="[[_computeUnderlineClass(focused,invalid)]]">
      <div class="unfocused-line"></div>
      <div class="focused-line"></div>
    </div>

    <div class$="[[_computeAddOnContentClass(focused,invalid)]]">
      <slot name="add-on"></slot>
    </div>
`,is:"paper-input-container",properties:{noLabelFloat:{type:Boolean,value:!1},alwaysFloatLabel:{type:Boolean,value:!1},attrForValue:{type:String,value:"bind-value"},autoValidate:{type:Boolean,value:!1},invalid:{observer:"_invalidChanged",type:Boolean,value:!1},focused:{readOnly:!0,type:Boolean,value:!1,notify:!0},_addons:{type:Array},_inputHasContent:{type:Boolean,value:!1},_inputSelector:{type:String,value:"input,iron-input,textarea,.paper-input-input"},_boundOnFocus:{type:Function,value:function(){return this._onFocus.bind(this)}},_boundOnBlur:{type:Function,value:function(){return this._onBlur.bind(this)}},_boundOnInput:{type:Function,value:function(){return this._onInput.bind(this)}},_boundValueChanged:{type:Function,value:function(){return this._onValueChanged.bind(this)}}},listeners:{"addon-attached":"_onAddonAttached","iron-input-validate":"_onIronInputValidate"},get _valueChangedEvent(){return this.attrForValue+"-changed"},get _propertyForValue(){return st(this.attrForValue)},get _inputElement(){return qi(this).querySelector(this._inputSelector)},get _inputElementValue(){return this._inputElement[this._propertyForValue]||this._inputElement.value},ready:function(){this.__isFirstValueUpdate=!0,this._addons||(this._addons=[]),this.addEventListener("focus",this._boundOnFocus,!0),this.addEventListener("blur",this._boundOnBlur,!0)},attached:function(){this.attrForValue?this._inputElement.addEventListener(this._valueChangedEvent,this._boundValueChanged):this.addEventListener("input",this._onInput),this._inputElementValue&&""!=this._inputElementValue?this._handleValueAndAutoValidate(this._inputElement):this._handleValue(this._inputElement)},_onAddonAttached:function(t){this._addons||(this._addons=[]);var e=t.target;-1===this._addons.indexOf(e)&&(this._addons.push(e),this.isAttached&&this._handleValue(this._inputElement))},_onFocus:function(){this._setFocused(!0)},_onBlur:function(){this._setFocused(!1),this._handleValueAndAutoValidate(this._inputElement)},_onInput:function(t){this._handleValueAndAutoValidate(t.target)},_onValueChanged:function(t){var e=t.target;this.__isFirstValueUpdate&&(this.__isFirstValueUpdate=!1,void 0===e.value||""===e.value)||this._handleValueAndAutoValidate(t.target)},_handleValue:function(t){var e=this._inputElementValue;this._inputHasContent=!(!e&&0!==e&&("number"!==t.type||t.checkValidity())),this.updateAddons({inputElement:t,value:e,invalid:this.invalid})},_handleValueAndAutoValidate:function(t){var e;this.autoValidate&&t&&(e=t.validate?t.validate(this._inputElementValue):t.checkValidity(),this.invalid=!e),this._handleValue(t)},_onIronInputValidate:function(t){this.invalid=this._inputElement.invalid},_invalidChanged:function(){this._addons&&this.updateAddons({invalid:this.invalid})},updateAddons:function(t){for(var e,n=0;e=this._addons[n];n++)e.update(t)},_computeInputContentClass:function(t,e,n,i,r){var o="input-content";if(t)r&&(o+=" label-is-hidden"),i&&(o+=" is-invalid");else{var a=this.querySelector("label");e||r?(o+=" label-is-floating",this.$.labelAndInputContainer.style.position="static",i?o+=" is-invalid":n&&(o+=" label-is-highlighted")):(a&&(this.$.labelAndInputContainer.style.position="relative"),i&&(o+=" is-invalid"))}return n&&(o+=" focused"),o},_computeUnderlineClass:function(t,e){var n="underline";return e?n+=" is-invalid":t&&(n+=" is-highlighted"),n},_computeAddOnContentClass:function(t,e){var n="add-on-content";return e?n+=" is-invalid":t&&(n+=" is-highlighted"),n}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        display: inline-block;
        visibility: hidden;

        color: var(--paper-input-container-invalid-color, var(--error-color));

        @apply --paper-font-caption;
        @apply --paper-input-error;
        position: absolute;
        left:0;
        right:0;
      }

      :host([invalid]) {
        visibility: visible;
      }

      #a11yWrapper {
        visibility: hidden;
      }

      :host([invalid]) #a11yWrapper {
        visibility: visible;
      }
    </style>

    <!--
    If the paper-input-error element is directly referenced by an
    \`aria-describedby\` attribute, such as when used as a paper-input add-on,
    then applying \`visibility: hidden;\` to the paper-input-error element itself
    does not hide the error.

    For more information, see:
    https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description
    -->
    <div id="a11yWrapper">
      <slot></slot>
    </div>
`,is:"paper-input-error",behaviors:[Ra],properties:{invalid:{readOnly:!0,reflectToAttribute:!0,type:Boolean}},update:function(t){this._setInvalid(t.invalid)}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Da={NextLabelID:1,NextAddonID:1,NextInputID:1},Ba={properties:{label:{type:String},value:{notify:!0,type:String},disabled:{type:Boolean,value:!1},invalid:{type:Boolean,value:!1,notify:!0},allowedPattern:{type:String},type:{type:String},list:{type:String},pattern:{type:String},required:{type:Boolean,value:!1},errorMessage:{type:String},charCounter:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1},alwaysFloatLabel:{type:Boolean,value:!1},autoValidate:{type:Boolean,value:!1},validator:{type:String},autocomplete:{type:String,value:"off"},autofocus:{type:Boolean,observer:"_autofocusChanged"},inputmode:{type:String},minlength:{type:Number},maxlength:{type:Number},min:{type:String},max:{type:String},step:{type:String},name:{type:String},placeholder:{type:String,value:""},readonly:{type:Boolean,value:!1},size:{type:Number},autocapitalize:{type:String,value:"none"},autocorrect:{type:String,value:"off"},autosave:{type:String},results:{type:Number},accept:{type:String},multiple:{type:Boolean},_ariaDescribedBy:{type:String,value:""},_ariaLabelledBy:{type:String,value:""},_inputId:{type:String,value:""}},listeners:{"addon-attached":"_onAddonAttached"},keyBindings:{"shift+tab:keydown":"_onShiftTabDown"},hostAttributes:{tabindex:0},get inputElement(){return this.$||(this.$={}),this.$.input||(this._generateInputId(),this.$.input=this.$$("#"+this._inputId)),this.$.input},get _focusableElement(){return this.inputElement},created:function(){this._typesThatHaveText=["date","datetime","datetime-local","month","time","week","file"]},attached:function(){this._updateAriaLabelledBy(),!ye&&this.inputElement&&-1!==this._typesThatHaveText.indexOf(this.inputElement.type)&&(this.alwaysFloatLabel=!0)},_appendStringWithSpace:function(t,e){return t?t+" "+e:e},_onAddonAttached:function(t){var e=qi(t).rootTarget;if(e.id)this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy,e.id);else{var n="paper-input-add-on-"+Da.NextAddonID++;e.id=n,this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy,n)}},validate:function(){return this.inputElement.validate()},_focusBlurHandler:function(t){Wo._focusBlurHandler.call(this,t),this.focused&&!this._shiftTabPressed&&this._focusableElement&&this._focusableElement.focus()},_onShiftTabDown:function(t){var e=this.getAttribute("tabindex");this._shiftTabPressed=!0,this.setAttribute("tabindex","-1"),this.async((function(){this.setAttribute("tabindex",e),this._shiftTabPressed=!1}),1)},_handleAutoValidate:function(){this.autoValidate&&this.validate()},updateValueAndPreserveCaret:function(t){try{var e=this.inputElement.selectionStart;this.value=t,this.inputElement.selectionStart=e,this.inputElement.selectionEnd=e}catch(e){this.value=t}},_computeAlwaysFloatLabel:function(t,e){return e||t},_updateAriaLabelledBy:function(){var t,e=qi(this.root).querySelector("label");e?(e.id?t=e.id:(t="paper-input-label-"+Da.NextLabelID++,e.id=t),this._ariaLabelledBy=t):this._ariaLabelledBy=""},_generateInputId:function(){this._inputId&&""!==this._inputId||(this._inputId="input-"+Da.NextInputID++)},_onChange:function(t){this.shadowRoot&&this.fire(t.type,{sourceEvent:t},{node:this,bubbles:t.bubbles,cancelable:t.cancelable})},_autofocusChanged:function(){if(this.autofocus&&this._focusableElement){var t=document.activeElement;t instanceof HTMLElement&&t!==document.body&&t!==document.documentElement||this._focusableElement.focus()}}},Ha=[Wo,Ro,Ba];
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({is:"paper-input",_template:_e`
    <style>
      :host {
        display: block;
      }

      :host([focused]) {
        outline: none;
      }

      :host([hidden]) {
        display: none !important;
      }

      input {
        /* Firefox sets a min-width on the input, which can cause layout issues */
        min-width: 0;
      }

      /* In 1.x, the <input> is distributed to paper-input-container, which styles it.
      In 2.x the <iron-input> is distributed to paper-input-container, which styles
      it, but in order for this to work correctly, we need to reset some
      of the native input's properties to inherit (from the iron-input) */
      iron-input > input {
        @apply --paper-input-container-shared-input-style;
        font-family: inherit;
        font-weight: inherit;
        font-size: inherit;
        letter-spacing: inherit;
        word-spacing: inherit;
        line-height: inherit;
        text-shadow: inherit;
        color: inherit;
        cursor: inherit;
      }

      input:disabled {
        @apply --paper-input-container-input-disabled;
      }

      input::-webkit-outer-spin-button,
      input::-webkit-inner-spin-button {
        @apply --paper-input-container-input-webkit-spinner;
      }

      input::-webkit-clear-button {
        @apply --paper-input-container-input-webkit-clear;
      }

      input::-webkit-calendar-picker-indicator {
        @apply --paper-input-container-input-webkit-calendar-picker-indicator;
      }

      input::-webkit-input-placeholder {
        color: var(--paper-input-container-color, var(--secondary-text-color));
      }

      input:-moz-placeholder {
        color: var(--paper-input-container-color, var(--secondary-text-color));
      }

      input::-moz-placeholder {
        color: var(--paper-input-container-color, var(--secondary-text-color));
      }

      input::-ms-clear {
        @apply --paper-input-container-ms-clear;
      }

      input::-ms-reveal {
        @apply --paper-input-container-ms-reveal;
      }

      input:-ms-input-placeholder {
        color: var(--paper-input-container-color, var(--secondary-text-color));
      }

      label {
        pointer-events: none;
      }
    </style>

    <paper-input-container id="container" no-label-float="[[noLabelFloat]]" always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholder)]]" auto-validate$="[[autoValidate]]" disabled$="[[disabled]]" invalid="[[invalid]]">

      <slot name="prefix" slot="prefix"></slot>

      <label hidden$="[[!label]]" aria-hidden="true" for$="[[_inputId]]" slot="label">[[label]]</label>

      <!-- Need to bind maxlength so that the paper-input-char-counter works correctly -->
      <iron-input bind-value="{{value}}" slot="input" class="input-element" id$="[[_inputId]]" maxlength$="[[maxlength]]" allowed-pattern="[[allowedPattern]]" invalid="{{invalid}}" validator="[[validator]]">
        <input aria-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" disabled$="[[disabled]]" title$="[[title]]" type$="[[type]]" pattern$="[[pattern]]" required$="[[required]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" inputmode$="[[inputmode]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]" min$="[[min]]" max$="[[max]]" step$="[[step]]" name$="[[name]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" list$="[[list]]" size$="[[size]]" autocapitalize$="[[autocapitalize]]" autocorrect$="[[autocorrect]]" on-change="_onChange" tabindex$="[[tabIndex]]" autosave$="[[autosave]]" results$="[[results]]" accept$="[[accept]]" multiple$="[[multiple]]" role$="[[inputRole]]" aria-haspopup$="[[inputAriaHaspopup]]">
      </iron-input>

      <slot name="suffix" slot="suffix"></slot>

      <template is="dom-if" if="[[errorMessage]]">
        <paper-input-error aria-live="assertive" slot="add-on">[[errorMessage]]</paper-input-error>
      </template>

      <template is="dom-if" if="[[charCounter]]">
        <paper-input-char-counter slot="add-on"></paper-input-char-counter>
      </template>

    </paper-input-container>
  `,behaviors:[Ha,ia],properties:{value:{type:String},inputRole:{type:String,value:void 0},inputAriaHaspopup:{type:String,value:void 0}},get _focusableElement(){return this.inputElement._inputElement},listeners:{"iron-input-ready":"_onIronInputReady"},_onIronInputReady:function(){this.$.nativeInput||(this.$.nativeInput=this.$$("input")),this.inputElement&&-1!==this._typesThatHaveText.indexOf(this.$.nativeInput.type)&&(this.alwaysFloatLabel=!0),this.inputElement.bindValue&&this.$.container._handleValueAndAutoValidate(this.inputElement)}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        position: fixed;
      }

      #contentWrapper ::slotted(*) {
        overflow: auto;
      }

      #contentWrapper.animating ::slotted(*) {
        overflow: hidden;
        pointer-events: none;
      }
    </style>

    <div id="contentWrapper">
      <slot id="content" name="dropdown-content"></slot>
    </div>
`,is:"iron-dropdown",behaviors:[Wo,Ro,Aa,Ia],properties:{horizontalAlign:{type:String,value:"left",reflectToAttribute:!0},verticalAlign:{type:String,value:"top",reflectToAttribute:!0},openAnimationConfig:{type:Object},closeAnimationConfig:{type:Object},focusTarget:{type:Object},noAnimations:{type:Boolean,value:!1},allowOutsideScroll:{type:Boolean,value:!1,observer:"_allowOutsideScrollChanged"}},listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},observers:["_updateOverlayPosition(positionTarget, verticalAlign, horizontalAlign, verticalOffset, horizontalOffset)"],get containedElement(){for(var t=qi(this.$.content).getDistributedNodes(),e=0,n=t.length;e<n;e++)if(t[e].nodeType===Node.ELEMENT_NODE)return t[e]},ready:function(){this.scrollAction||(this.scrollAction=this.allowOutsideScroll?"refit":"lock"),this._readied=!0},attached:function(){this.sizingTarget&&this.sizingTarget!==this||(this.sizingTarget=this.containedElement||this)},detached:function(){this.cancelAnimation()},_openedChanged:function(){this.opened&&this.disabled?this.cancel():(this.cancelAnimation(),this._updateAnimationConfig(),Ta._openedChanged.apply(this,arguments))},_renderOpened:function(){!this.noAnimations&&this.animationConfig.open?(this.$.contentWrapper.classList.add("animating"),this.playAnimation("open")):Ta._renderOpened.apply(this,arguments)},_renderClosed:function(){!this.noAnimations&&this.animationConfig.close?(this.$.contentWrapper.classList.add("animating"),this.playAnimation("close")):Ta._renderClosed.apply(this,arguments)},_onNeonAnimationFinish:function(){this.$.contentWrapper.classList.remove("animating"),this.opened?this._finishRenderOpened():this._finishRenderClosed()},_updateAnimationConfig:function(){for(var t=this.containedElement,e=[].concat(this.openAnimationConfig||[]).concat(this.closeAnimationConfig||[]),n=0;n<e.length;n++)e[n].node=t;this.animationConfig={open:this.openAnimationConfig,close:this.closeAnimationConfig}},_updateOverlayPosition:function(){this.isAttached&&this.notifyResize()},_allowOutsideScrollChanged:function(t){this._readied&&(t?this.scrollAction&&"lock"!==this.scrollAction||(this.scrollAction="refit"):this.scrollAction="lock")},_applyFocus:function(){var t=this.focusTarget||this.containedElement;t&&this.opened&&!this.noAutoFocus?t.focus():Ta._applyFocus.apply(this,arguments)}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Fa={properties:{animationTiming:{type:Object,value:function(){return{duration:500,easing:"cubic-bezier(0.4, 0, 0.2, 1)",fill:"both"}}}},isNeonAnimation:!0,created:function(){document.body.animate||console.warn("No web animations detected. This element will not function without a web animations polyfill.")},timingFromConfig:function(t){if(t.timing)for(var e in t.timing)this.animationTiming[e]=t.timing[e];return this.animationTiming},setPrefixedProperty:function(t,e,n){for(var i,r={transform:["webkitTransform"],transformOrigin:["mozTransformOrigin","webkitTransformOrigin"]}[e],o=0;i=r[o];o++)t.style[i]=n;t.style[e]=n},complete:function(t){}};
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */Ir({is:"fade-in-animation",behaviors:[Fa],configure:function(t){return this._effect=new KeyframeEffect(t.node,[{opacity:"0"},{opacity:"1"}],this.timingFromConfig(t)),this._effect}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({is:"fade-out-animation",behaviors:[Fa],configure:function(t){return this._effect=new KeyframeEffect(t.node,[{opacity:"1"},{opacity:"0"}],this.timingFromConfig(t)),this._effect}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({is:"paper-menu-grow-height-animation",_template:null,behaviors:[Fa],configure:function(t){var e=t.node,n=e.getBoundingClientRect().height;return this._effect=new KeyframeEffect(e,[{height:n/2+"px"},{height:n+"px"}],this.timingFromConfig(t)),this._effect}}),Ir({is:"paper-menu-grow-width-animation",_template:null,behaviors:[Fa],configure:function(t){var e=t.node,n=e.getBoundingClientRect().width;return this._effect=new KeyframeEffect(e,[{width:n/2+"px"},{width:n+"px"}],this.timingFromConfig(t)),this._effect}}),Ir({is:"paper-menu-shrink-width-animation",_template:null,behaviors:[Fa],configure:function(t){var e=t.node,n=e.getBoundingClientRect().width;return this._effect=new KeyframeEffect(e,[{width:n+"px"},{width:n-n/20+"px"}],this.timingFromConfig(t)),this._effect}}),Ir({is:"paper-menu-shrink-height-animation",_template:null,behaviors:[Fa],configure:function(t){var e=t.node,n=e.getBoundingClientRect().height;return this.setPrefixedProperty(e,"transformOrigin","0 0"),this._effect=new KeyframeEffect(e,[{height:n+"px",transform:"translateY(0)"},{height:n/2+"px",transform:"translateY(-20px)"}],this.timingFromConfig(t)),this._effect}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
var Va={ANIMATION_CUBIC_BEZIER:"cubic-bezier(.3,.95,.5,1)",MAX_ANIMATION_TIME_MS:400};const Ua=Ir({_template:_e`
    <style>
      :host {
        display: inline-block;
        position: relative;
        padding: 8px;
        outline: none;

        @apply --paper-menu-button;
      }

      :host([disabled]) {
        cursor: auto;
        color: var(--disabled-text-color);

        @apply --paper-menu-button-disabled;
      }

      iron-dropdown {
        @apply --paper-menu-button-dropdown;
      }

      .dropdown-content {
        @apply --shadow-elevation-2dp;

        position: relative;
        border-radius: 2px;
        background-color: var(--paper-menu-button-dropdown-background, var(--primary-background-color));

        @apply --paper-menu-button-content;
      }

      :host([vertical-align="top"]) .dropdown-content {
        margin-bottom: 20px;
        margin-top: -10px;
        top: 10px;
      }

      :host([vertical-align="bottom"]) .dropdown-content {
        bottom: 10px;
        margin-bottom: -10px;
        margin-top: 20px;
      }

      #trigger {
        cursor: pointer;
      }
    </style>

    <div id="trigger" on-tap="toggle">
      <slot name="dropdown-trigger"></slot>
    </div>

    <iron-dropdown id="dropdown" opened="{{opened}}" horizontal-align="[[horizontalAlign]]" vertical-align="[[verticalAlign]]" dynamic-align="[[dynamicAlign]]" horizontal-offset="[[horizontalOffset]]" vertical-offset="[[verticalOffset]]" no-overlap="[[noOverlap]]" open-animation-config="[[openAnimationConfig]]" close-animation-config="[[closeAnimationConfig]]" no-animations="[[noAnimations]]" focus-target="[[_dropdownContent]]" allow-outside-scroll="[[allowOutsideScroll]]" restore-focus-on-close="[[restoreFocusOnClose]]" on-iron-overlay-canceled="__onIronOverlayCanceled" expand-sizing-target-for-scrollbars="[[expandSizingTargetForScrollbars]]">
      <div slot="dropdown-content" class="dropdown-content">
        <slot id="content" name="dropdown-content"></slot>
      </div>
    </iron-dropdown>
`,is:"paper-menu-button",behaviors:[Ro,Wo],properties:{opened:{type:Boolean,value:!1,notify:!0,observer:"_openedChanged"},horizontalAlign:{type:String,value:"left",reflectToAttribute:!0},verticalAlign:{type:String,value:"top",reflectToAttribute:!0},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},noOverlap:{type:Boolean},noAnimations:{type:Boolean,value:!1},ignoreSelect:{type:Boolean,value:!1},closeOnActivate:{type:Boolean,value:!1},openAnimationConfig:{type:Object,value:function(){return[{name:"fade-in-animation",timing:{delay:100,duration:200}},{name:"paper-menu-grow-width-animation",timing:{delay:100,duration:150,easing:Va.ANIMATION_CUBIC_BEZIER}},{name:"paper-menu-grow-height-animation",timing:{delay:100,duration:275,easing:Va.ANIMATION_CUBIC_BEZIER}}]}},closeAnimationConfig:{type:Object,value:function(){return[{name:"fade-out-animation",timing:{duration:150}},{name:"paper-menu-shrink-width-animation",timing:{delay:100,duration:50,easing:Va.ANIMATION_CUBIC_BEZIER}},{name:"paper-menu-shrink-height-animation",timing:{duration:200,easing:"ease-in"}}]}},allowOutsideScroll:{type:Boolean,value:!1},restoreFocusOnClose:{type:Boolean,value:!0},expandSizingTargetForScrollbars:{type:Boolean,value:!1},_dropdownContent:{type:Object}},hostAttributes:{role:"group","aria-haspopup":"true"},listeners:{"iron-activate":"_onIronActivate","iron-select":"_onIronSelect"},get contentElement(){for(var t=qi(this.$.content).getDistributedNodes(),e=0,n=t.length;e<n;e++)if(t[e].nodeType===Node.ELEMENT_NODE)return t[e]},toggle:function(){this.opened?this.close():this.open()},open:function(){this.disabled||this.$.dropdown.open()},close:function(){this.$.dropdown.close()},_onIronSelect:function(t){this.ignoreSelect||this.close()},_onIronActivate:function(t){this.closeOnActivate&&this.close()},_openedChanged:function(t,e){t?(this._dropdownContent=this.contentElement,this.fire("paper-dropdown-open")):null!=e&&this.fire("paper-dropdown-close")},_disabledChanged:function(t){Wo._disabledChanged.apply(this,arguments),t&&this.opened&&this.close()},__onIronOverlayCanceled:function(t){var e=this.$.trigger;qi(t.detail).path.indexOf(e)>-1&&t.preventDefault()}});Object.keys(Va).forEach((function(t){Ua[t]=Va[t]}));
/**
    @license
    Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const ja=document.createElement("template");ja.setAttribute("style","display: none;"),ja.innerHTML='<iron-iconset-svg name="paper-dropdown-menu" size="24">\n<svg><defs>\n<g id="arrow-drop-down"><path d="M7 10l5 5 5-5z"></path></g>\n</defs></svg>\n</iron-iconset-svg>',document.head.appendChild(ja.content);
/**
    @license
    Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Ga=document.createElement("template");Ga.setAttribute("style","display: none;"),Ga.innerHTML='<dom-module id="paper-dropdown-menu-shared-styles">\n  <template>\n    <style>\n      :host {\n        display: inline-block;\n        position: relative;\n        text-align: left;\n\n        /* NOTE(cdata): Both values are needed, since some phones require the\n         * value to be `transparent`.\n         */\n        -webkit-tap-highlight-color: rgba(0,0,0,0);\n        -webkit-tap-highlight-color: transparent;\n\n        --paper-input-container-input: {\n          overflow: hidden;\n          white-space: nowrap;\n          text-overflow: ellipsis;\n          max-width: 100%;\n          box-sizing: border-box;\n          cursor: pointer;\n        };\n\n        @apply --paper-dropdown-menu;\n      }\n\n      /* paper-dropdown-menu and paper-dropdown-menu-light both delegate focus\n       * to other internal elements which manage focus styling. */\n      :host(:focus) {\n        outline: none;\n      }\n\n      :host(:dir(rtl)) {\n        text-align: right;\n\n        @apply(--paper-dropdown-menu);\n      }\n\n      :host([disabled]) {\n        @apply --paper-dropdown-menu-disabled;\n      }\n\n      :host([noink]) paper-ripple {\n        display: none;\n      }\n\n      :host([no-label-float]) paper-ripple {\n        top: 8px;\n      }\n\n      paper-ripple {\n        top: 12px;\n        left: 0px;\n        bottom: 8px;\n        right: 0px;\n\n        @apply --paper-dropdown-menu-ripple;\n      }\n\n      paper-menu-button {\n        display: block;\n        padding: 0;\n\n        @apply --paper-dropdown-menu-button;\n      }\n\n      paper-input {\n        @apply --paper-dropdown-menu-input;\n      }\n\n      iron-icon {\n        color: var(--disabled-text-color);\n\n        @apply --paper-dropdown-menu-icon;\n      }\n    </style>\n  </template>\n</dom-module>',document.head.appendChild(Ga.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Wa=tr(HTMLElement);Ir({_template:_e`
    <style include="paper-dropdown-menu-shared-styles"></style>

    <paper-menu-button id="menuButton" vertical-align="[[verticalAlign]]" horizontal-align="[[horizontalAlign]]" dynamic-align="[[dynamicAlign]]" vertical-offset="[[_computeMenuVerticalOffset(noLabelFloat, verticalOffset)]]" disabled="[[disabled]]" no-animations="[[noAnimations]]" on-iron-select="_onIronSelect" on-iron-deselect="_onIronDeselect" opened="{{opened}}" close-on-activate allow-outside-scroll="[[allowOutsideScroll]]" restore-focus-on-close="[[restoreFocusOnClose]]" expand-sizing-target-for-scrollbars="[[expandSizingTargetForScrollbars]]">
      <!-- support hybrid mode: user might be using paper-menu-button 1.x which distributes via <content> -->
      <div class="dropdown-trigger" slot="dropdown-trigger">
        <paper-ripple></paper-ripple>
        <!-- paper-input has type="text" for a11y, do not remove -->
        <paper-input id="input" type="text" invalid="[[invalid]]" readonly disabled="[[disabled]]" value="[[value]]" placeholder="[[placeholder]]" error-message="[[errorMessage]]" always-float-label="[[alwaysFloatLabel]]" no-label-float="[[noLabelFloat]]" label="[[label]]" input-role="button" input-aria-haspopup="listbox" autocomplete="off">
          <!-- support hybrid mode: user might be using paper-input 1.x which distributes via <content> -->
          <iron-icon icon="paper-dropdown-menu:arrow-drop-down" suffix slot="suffix"></iron-icon>
        </paper-input>
      </div>
      <slot id="content" name="dropdown-content" slot="dropdown-content"></slot>
    </paper-menu-button>
`,is:"paper-dropdown-menu",behaviors:[Yo,Wo,ia,oa],properties:{selectedItemLabel:{type:String,notify:!0,readOnly:!0},selectedItem:{type:Object,notify:!0,readOnly:!0},value:{type:String,notify:!0},label:{type:String},placeholder:{type:String},errorMessage:{type:String},opened:{type:Boolean,notify:!0,value:!1,observer:"_openedChanged"},allowOutsideScroll:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1,reflectToAttribute:!0},alwaysFloatLabel:{type:Boolean,value:!1},noAnimations:{type:Boolean,value:!1},horizontalAlign:{type:String,value:"right"},verticalAlign:{type:String,value:"top"},verticalOffset:Number,dynamicAlign:{type:Boolean},restoreFocusOnClose:{type:Boolean,value:!0},expandSizingTargetForScrollbars:{type:Boolean,value:!1}},listeners:{tap:"_onTap"},keyBindings:{"up down":"open",esc:"close"},observers:["_selectedItemChanged(selectedItem)"],_attachDom(t){const e=Y(this);return e.attachShadow({mode:"open",delegatesFocus:!0,shadyUpgradeFragment:t}),e.shadowRoot.appendChild(t),Wa.prototype._attachDom.call(this,t)},focus(){this.$.input._focusableElement.focus()},attached:function(){var t=this.contentElement;t&&t.selectedItem&&this._setSelectedItem(t.selectedItem)},get contentElement(){for(var t=qi(this.$.content).getDistributedNodes(),e=0,n=t.length;e<n;e++)if(t[e].nodeType===Node.ELEMENT_NODE)return t[e]},open:function(){this.$.menuButton.open()},close:function(){this.$.menuButton.close()},_onIronSelect:function(t){this._setSelectedItem(t.detail.item)},_onIronDeselect:function(t){this._setSelectedItem(null)},_onTap:function(t){hi(t)===this&&this.open()},_selectedItemChanged:function(t){var e;e=t?t.label||t.getAttribute("label")||t.textContent.trim():"",this.value=e,this._setSelectedItemLabel(e)},_computeMenuVerticalOffset:function(t,e){return e||(t?-4:8)},_getValidity:function(t){return this.disabled||!this.required||this.required&&!!this.value},_openedChanged:function(){var t=this.contentElement;t&&t.setAttribute("aria-expanded",this.opened?"true":"false")}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
var qa={outerScroll:{scroll:!0},shadowMode:{standard:2,waterfall:1,"waterfall-tall":1},tallMode:{"waterfall-tall":!0}};Ir({_template:_e`
    <style>
      :host {
        @apply --layout-vertical;
        position: relative;
        height: 100%;
        @apply --paper-header-panel;
      }

      #mainContainer {
        @apply --layout-flex;
        position: relative;
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
      }

      #mainPanel {
        @apply --layout-vertical;
        @apply --layout-flex;
        position: relative;
        min-height: 0;
        @apply --paper-header-panel-body;
      }

      #mainContainer {
        @apply --paper-header-panel-container;
      }

      /*
       * mode: scroll
       */
      :host([mode=scroll]) #mainContainer {
        @apply --paper-header-panel-scroll-container;
        overflow: visible;
      }

      :host([mode=scroll]) {
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
      }

      /*
       * mode: cover
       */
      :host([mode=cover]) #mainContainer {
        @apply --paper-header-panel-cover-container;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
      }

      :host([mode=cover]) #mainPanel {
        position: static;
      }

      /*
       * mode: standard
       */
      :host([mode=standard]) #mainContainer {
        @apply --paper-header-panel-standard-container;
      }

      /*
       * mode: seamed
       */
      :host([mode=seamed]) #mainContainer {
        @apply --paper-header-panel-seamed-container;
      }


      /*
       * mode: waterfall
       */
      :host([mode=waterfall]) #mainContainer {
        @apply --paper-header-panel-waterfall-container;
      }

      /*
       * mode: waterfall-tall
       */
      :host([mode=waterfall-tall]) #mainContainer {
        @apply --paper-header-panel-waterfall-tall-container;
      }

      #dropShadow {
        transition: opacity 0.5s;
        height: 6px;
        box-shadow: inset 0px 5px 6px -3px rgba(0, 0, 0, 0.4);
        @apply --paper-header-panel-shadow;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        opacity: 0;
        pointer-events: none;
      }

      #dropShadow.has-shadow {
        opacity: 1;
      }

      #mainContainer > ::slotted(.fit) {
        @apply --layout-fit;
      }

    </style>

    <slot id="headerSlot" name="header"></slot>

    <div id="mainPanel">
      <div id="mainContainer" class\$="[[_computeMainContainerClass(mode)]]">
        <slot></slot>
      </div>
      <div id="dropShadow"></div>
    </div>
`,is:"paper-header-panel",properties:{mode:{type:String,value:"standard",observer:"_modeChanged",reflectToAttribute:!0},shadow:{type:Boolean,value:!1},tallClass:{type:String,value:"tall"},atTop:{type:Boolean,value:!0,notify:!0,readOnly:!0,reflectToAttribute:!0}},observers:["_computeDropShadowHidden(atTop, mode, shadow)"],attached:function(){this._addListener(),this._keepScrollingState()},detached:function(){this._removeListener()},ready:function(){this.scrollHandler=this._scroll.bind(this),console.warn(this.is,"is deprecated. Please use app-layout instead!")},get header(){return qi(this.$.headerSlot).getDistributedNodes()[0]},get scroller(){return this._getScrollerForMode(this.mode)},get visibleShadow(){return this.$.dropShadow.classList.contains("has-shadow")},_computeDropShadowHidden:function(t,e,n){var i=qa.shadowMode[e];this.toggleClass("has-shadow",!!this.shadow||2===i||1===i&&!t,this.$.dropShadow)},_computeMainContainerClass:function(t){var e={};return e.flex="cover"!==t,Object.keys(e).filter((function(t){return e[t]})).join(" ")},_addListener:function(){this.scroller.addEventListener("scroll",this.scrollHandler)},_removeListener:function(){this.scroller.removeEventListener("scroll",this.scrollHandler)},_modeChanged:function(t,e){var n=qa,i=this.header;i&&(n.tallMode[e]&&!n.tallMode[t]?(i.classList.remove(this.tallClass),this.async((function(){i.classList.remove("animate")}),200)):this.toggleClass("animate",n.tallMode[t],i)),this._keepScrollingState()},_keepScrollingState:function(){var t=this.scroller,e=this.header;this._setAtTop(0===t.scrollTop),e&&this.tallClass&&qa.tallMode[this.mode]&&this.toggleClass(this.tallClass,this.atTop||e.classList.contains(this.tallClass)&&t.scrollHeight<this.offsetHeight,e)},_scroll:function(){this._keepScrollingState(),this.fire("content-scroll",{target:this.scroller},{bubbles:!1})},_getScrollerForMode:function(t){return qa.outerScroll[t]?this:this.$.mainContainer}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({is:"paper-icon-button",_template:_e`
    <style>
      :host {
        display: inline-block;
        position: relative;
        padding: 8px;
        outline: none;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        cursor: pointer;
        z-index: 0;
        line-height: 1;

        width: 40px;
        height: 40px;

        /*
          NOTE: Both values are needed, since some phones require the value to
          be \`transparent\`.
        */
        -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
        -webkit-tap-highlight-color: transparent;

        /* Because of polymer/2558, this style has lower specificity than * */
        box-sizing: border-box !important;

        @apply --paper-icon-button;
      }

      :host #ink {
        color: var(--paper-icon-button-ink-color, var(--primary-text-color));
        opacity: 0.6;
      }

      :host([disabled]) {
        color: var(--paper-icon-button-disabled-text, var(--disabled-text-color));
        pointer-events: none;
        cursor: auto;

        @apply --paper-icon-button-disabled;
      }

      :host([hidden]) {
        display: none !important;
      }

      :host(:hover) {
        @apply --paper-icon-button-hover;
      }

      iron-icon {
        --iron-icon-width: 100%;
        --iron-icon-height: 100%;
      }
    </style>

    <iron-icon id="icon" src="[[src]]" icon="[[icon]]"
               alt$="[[alt]]"></iron-icon>
  `,hostAttributes:{role:"button",tabindex:"0"},behaviors:[la],registered:function(){this._template.setAttribute("strip-whitespace","")},properties:{src:{type:String},icon:{type:String},alt:{type:String,observer:"_altChanged"}},_altChanged:function(t,e){var n=this.getAttribute("aria-label");n&&e!=n||this.setAttribute("aria-label",t)}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        display: inline-block;
        position: relative;
        width: 400px;
        border: 1px solid;
        padding: 2px;
        -moz-appearance: textarea;
        -webkit-appearance: textarea;
        overflow: hidden;
      }

      .mirror-text {
        visibility: hidden;
        word-wrap: break-word;
        @apply --iron-autogrow-textarea;
      }

      .fit {
        @apply --layout-fit;
      }

      textarea {
        position: relative;
        outline: none;
        border: none;
        resize: none;
        background: inherit;
        color: inherit;
        /* see comments in template */
        width: 100%;
        height: 100%;
        font-size: inherit;
        font-family: inherit;
        line-height: inherit;
        text-align: inherit;
        @apply --iron-autogrow-textarea;
      }

      textarea::-webkit-input-placeholder {
        @apply --iron-autogrow-textarea-placeholder;
      }

      textarea:-moz-placeholder {
        @apply --iron-autogrow-textarea-placeholder;
      }

      textarea::-moz-placeholder {
        @apply --iron-autogrow-textarea-placeholder;
      }

      textarea:-ms-input-placeholder {
        @apply --iron-autogrow-textarea-placeholder;
      }
    </style>

    <!-- the mirror sizes the input/textarea so it grows with typing -->
    <!-- use &#160; instead &nbsp; of to allow this element to be used in XHTML -->
    <div id="mirror" class="mirror-text" aria-hidden="true">&nbsp;</div>

    <!-- size the input/textarea with a div, because the textarea has intrinsic size in ff -->
    <div class="textarea-container fit">
      <textarea id="textarea" name$="[[name]]" aria-label$="[[label]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" autocapitalize$="[[autocapitalize]]" inputmode$="[[inputmode]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" required$="[[required]]" disabled$="[[disabled]]" rows$="[[rows]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]"></textarea>
    </div>
`,is:"iron-autogrow-textarea",behaviors:[oa,Wo],properties:{value:{observer:"_valueChanged",type:String,notify:!0},bindValue:{observer:"_bindValueChanged",type:String,notify:!0},rows:{type:Number,value:1,observer:"_updateCached"},maxRows:{type:Number,value:0,observer:"_updateCached"},autocomplete:{type:String,value:"off"},autofocus:{type:Boolean,value:!1},autocapitalize:{type:String,value:"none"},inputmode:{type:String},placeholder:{type:String},readonly:{type:String},required:{type:Boolean},minlength:{type:Number},maxlength:{type:Number},label:{type:String}},listeners:{input:"_onInput"},get textarea(){return this.$.textarea},get selectionStart(){return this.$.textarea.selectionStart},get selectionEnd(){return this.$.textarea.selectionEnd},set selectionStart(t){this.$.textarea.selectionStart=t},set selectionEnd(t){this.$.textarea.selectionEnd=t},attached:function(){navigator.userAgent.match(/iP(?:[oa]d|hone)/)&&!navigator.userAgent.match(/OS 1[3456789]/)&&(this.$.textarea.style.marginLeft="-3px")},validate:function(){var t=this.$.textarea.validity.valid;return t&&(this.required&&""===this.value?t=!1:this.hasValidator()&&(t=oa.validate.call(this,this.value))),this.invalid=!t,this.fire("iron-input-validate"),t},_bindValueChanged:function(t){this.value=t},_valueChanged:function(t){var e=this.textarea;e&&(e.value!==t&&(e.value=t||0===t?t:""),this.bindValue=t,this.$.mirror.innerHTML=this._valueForMirror(),this.fire("bind-value-changed",{value:this.bindValue}))},_onInput:function(t){var e=qi(t).path;this.value=e?e[0].value:t.target.value},_constrain:function(t){var e;for(t=t||[""],e=this.maxRows>0&&t.length>this.maxRows?t.slice(0,this.maxRows):t.slice(0);this.rows>0&&e.length<this.rows;)e.push("");return e.join("<br/>")+"&#160;"},_valueForMirror:function(){var t=this.textarea;if(t)return this.tokens=t&&t.value?t.value.replace(/&/gm,"&amp;").replace(/"/gm,"&quot;").replace(/'/gm,"&#39;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").split("\n"):[""],this._constrain(this.tokens)},_updateCached:function(){this.$.mirror.innerHTML=this._constrain(this.tokens)}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        display: block;
      }

      :host([hidden]) {
        display: none !important;
      }

      label {
        pointer-events: none;
      }
    </style>

    <paper-input-container no-label-float$="[[noLabelFloat]]" always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholder)]]" auto-validate$="[[autoValidate]]" disabled$="[[disabled]]" invalid="[[invalid]]">

      <label hidden$="[[!label]]" aria-hidden="true" for$="[[_inputId]]" slot="label">[[label]]</label>

      <iron-autogrow-textarea class="paper-input-input" slot="input" id$="[[_inputId]]" aria-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" bind-value="{{value}}" invalid="{{invalid}}" validator$="[[validator]]" disabled$="[[disabled]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" inputmode$="[[inputmode]]" name$="[[name]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" required$="[[required]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]" autocapitalize$="[[autocapitalize]]" rows$="[[rows]]" max-rows$="[[maxRows]]" on-change="_onChange"></iron-autogrow-textarea>

      <template is="dom-if" if="[[errorMessage]]">
        <paper-input-error aria-live="assertive" slot="add-on">[[errorMessage]]</paper-input-error>
      </template>

      <template is="dom-if" if="[[charCounter]]">
        <paper-input-char-counter slot="add-on"></paper-input-char-counter>
      </template>

    </paper-input-container>
`,is:"paper-textarea",behaviors:[Ha,ia],properties:{_ariaLabelledBy:{observer:"_ariaLabelledByChanged",type:String},_ariaDescribedBy:{observer:"_ariaDescribedByChanged",type:String},value:{type:String},rows:{type:Number,value:1},maxRows:{type:Number,value:0}},get selectionStart(){return this.$.input.textarea.selectionStart},set selectionStart(t){this.$.input.textarea.selectionStart=t},get selectionEnd(){return this.$.input.textarea.selectionEnd},set selectionEnd(t){this.$.input.textarea.selectionEnd=t},_ariaLabelledByChanged:function(t){this._focusableElement.setAttribute("aria-labelledby",t)},_ariaDescribedByChanged:function(t){this._focusableElement.setAttribute("aria-describedby",t)},get _focusableElement(){return this.inputElement.textarea}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Ya=document.createElement("template");Ya.setAttribute("style","display: none;"),Ya.innerHTML="<dom-module id=\"paper-item-shared-styles\">\n  <template>\n    <style>\n      :host, .paper-item {\n        display: block;\n        position: relative;\n        min-height: var(--paper-item-min-height, 48px);\n        padding: 0px 16px;\n      }\n\n      .paper-item {\n        @apply --paper-font-subhead;\n        border:none;\n        outline: none;\n        background: white;\n        width: 100%;\n        text-align: left;\n      }\n\n      :host([hidden]), .paper-item[hidden] {\n        display: none !important;\n      }\n\n      :host(.iron-selected), .paper-item.iron-selected {\n        font-weight: var(--paper-item-selected-weight, bold);\n\n        @apply --paper-item-selected;\n      }\n\n      :host([disabled]), .paper-item[disabled] {\n        color: var(--paper-item-disabled-color, var(--disabled-text-color));\n\n        @apply --paper-item-disabled;\n      }\n\n      :host(:focus), .paper-item:focus {\n        position: relative;\n        outline: 0;\n\n        @apply --paper-item-focused;\n      }\n\n      :host(:focus):before, .paper-item:focus:before {\n        @apply --layout-fit;\n\n        background: currentColor;\n        content: '';\n        opacity: var(--dark-divider-opacity);\n        pointer-events: none;\n\n        @apply --paper-item-focused-before;\n      }\n    </style>\n  </template>\n</dom-module>",document.head.appendChild(Ya.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Xa=[Yo,Wo,{hostAttributes:{role:"option",tabindex:"0"}}];
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style include="paper-item-shared-styles">
      :host {
        @apply --layout-horizontal;
        @apply --layout-center;
        @apply --paper-font-subhead;

        @apply --paper-item;
      }
    </style>
    <slot></slot>
`,is:"paper-item",behaviors:[Xa]}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        overflow: hidden; /* needed for text-overflow: ellipsis to work on ff */
        @apply --layout-vertical;
        @apply --layout-center-justified;
        @apply --layout-flex;
      }

      :host([two-line]) {
        min-height: var(--paper-item-body-two-line-min-height, 72px);
      }

      :host([three-line]) {
        min-height: var(--paper-item-body-three-line-min-height, 88px);
      }

      :host > ::slotted(*) {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      :host > ::slotted([secondary]) {
        @apply --paper-font-body1;

        color: var(--paper-item-body-secondary-color, var(--secondary-text-color));

        @apply --paper-item-body-secondary;
      }
    </style>

    <slot></slot>
`,is:"paper-item-body"}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style include="paper-item-shared-styles"></style>
    <style>
      :host {
        @apply --layout-horizontal;
        @apply --layout-center;
        @apply --paper-font-subhead;

        @apply --paper-item;
        @apply --paper-icon-item;
      }

      .content-icon {
        @apply --layout-horizontal;
        @apply --layout-center;

        width: var(--paper-item-icon-width, 56px);
        @apply --paper-item-icon;
      }
    </style>

    <div id="contentIcon" class="content-icon">
      <slot name="item-icon"></slot>
    </div>
    <slot></slot>
`,is:"paper-icon-item",behaviors:[Xa]});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const $a={properties:{multi:{type:Boolean,value:!1,observer:"multiChanged"},selectedValues:{type:Array,notify:!0,value:function(){return[]}},selectedItems:{type:Array,readOnly:!0,notify:!0,value:function(){return[]}}},observers:["_updateSelected(selectedValues.splices)"],select:function(t){this.multi?this._toggleSelected(t):this.selected=t},multiChanged:function(t){this._selection.multi=t,this._updateSelected()},get _shouldUpdateSelection(){return null!=this.selected||null!=this.selectedValues&&this.selectedValues.length},_updateAttrForSelected:function(){this.multi?this.selectedItems&&this.selectedItems.length>0&&(this.selectedValues=this.selectedItems.map((function(t){return this._indexToValue(this.indexOf(t))}),this).filter((function(t){return null!=t}),this)):Uo._updateAttrForSelected.apply(this)},_updateSelected:function(){this.multi?this._selectMulti(this.selectedValues):this._selectSelected(this.selected)},_selectMulti:function(t){var e=(this._valuesToItems(t=t||[])||[]).filter((function(t){return null!=t}));this._selection.clear(e);for(var n=0;n<e.length;n++)this._selection.setItemSelected(e[n],!0);this.fallbackSelection&&!this._selection.get().length&&this._valueToItem(this.fallbackSelection)&&this.select(this.fallbackSelection)},_selectionChange:function(){var t=this._selection.get();this.multi?(this._setSelectedItems(t),this._setSelectedItem(t.length?t[0]:null)):null!=t?(this._setSelectedItems([t]),this._setSelectedItem(t)):(this._setSelectedItems([]),this._setSelectedItem(null))},_toggleSelected:function(t){var e=this.selectedValues.indexOf(t);e<0?this.push("selectedValues",t):this.splice("selectedValues",e,1)},_valuesToItems:function(t){return null==t?null:t.map((function(t){return this._valueToItem(t)}),this)}},Ka={properties:{focusedItem:{observer:"_focusedItemChanged",readOnly:!0,type:Object},attrForItemTitle:{type:String},disabled:{type:Boolean,value:!1,observer:"_disabledChanged"}},_MODIFIER_KEYS:["Alt","AltGraph","CapsLock","Control","Fn","FnLock","Hyper","Meta","NumLock","OS","ScrollLock","Shift","Super","Symbol","SymbolLock"],_SEARCH_RESET_TIMEOUT_MS:1e3,_previousTabIndex:0,hostAttributes:{role:"menu"},observers:["_updateMultiselectable(multi)"],listeners:{focus:"_onFocus",keydown:"_onKeydown","iron-items-changed":"_onIronItemsChanged"},keyBindings:{up:"_onUpKey",down:"_onDownKey",esc:"_onEscKey","shift+tab:keydown":"_onShiftTabDown"},attached:function(){this._resetTabindices()},select:function(t){this._defaultFocusAsync&&(this.cancelAsync(this._defaultFocusAsync),this._defaultFocusAsync=null);var e=this._valueToItem(t);e&&e.hasAttribute("disabled")||(this._setFocusedItem(e),$a.select.apply(this,arguments))},_resetTabindices:function(){var t=this.multi?this.selectedItems&&this.selectedItems[0]:this.selectedItem;this.items.forEach((function(e){e.setAttribute("tabindex",e===t?"0":"-1"),e.setAttribute("aria-selected",this._selection.isSelected(e))}),this)},_updateMultiselectable:function(t){t?this.setAttribute("aria-multiselectable","true"):this.removeAttribute("aria-multiselectable")},_focusWithKeyboardEvent:function(t){if(-1===this._MODIFIER_KEYS.indexOf(t.key)){this.cancelDebouncer("_clearSearchText");for(var e,n=this._searchText||"",i=(n+=(t.key&&1==t.key.length?t.key:String.fromCharCode(t.keyCode)).toLocaleLowerCase()).length,r=0;e=this.items[r];r++)if(!e.hasAttribute("disabled")){var o=this.attrForItemTitle||"textContent",a=(e[o]||e.getAttribute(o)||"").trim();if(!(a.length<i)&&a.slice(0,i).toLocaleLowerCase()==n){this._setFocusedItem(e);break}}this._searchText=n,this.debounce("_clearSearchText",this._clearSearchText,this._SEARCH_RESET_TIMEOUT_MS)}},_clearSearchText:function(){this._searchText=""},_focusPrevious:function(){for(var t=this.items.length,e=Number(this.indexOf(this.focusedItem)),n=1;n<t+1;n++){var i=this.items[(e-n+t)%t];if(!i.hasAttribute("disabled")){var r=qi(i).getOwnerRoot()||document;if(this._setFocusedItem(i),qi(r).activeElement==i)return}}},_focusNext:function(){for(var t=this.items.length,e=Number(this.indexOf(this.focusedItem)),n=1;n<t+1;n++){var i=this.items[(e+n)%t];if(!i.hasAttribute("disabled")){var r=qi(i).getOwnerRoot()||document;if(this._setFocusedItem(i),qi(r).activeElement==i)return}}},_applySelection:function(t,e){t.setAttribute("aria-selected",e?"true":"false"),Uo._applySelection.apply(this,arguments)},_focusedItemChanged:function(t,e){e&&e.setAttribute("tabindex","-1"),!t||t.hasAttribute("disabled")||this.disabled||(t.setAttribute("tabindex","0"),t.focus())},_onIronItemsChanged:function(t){t.detail.addedNodes.length&&this._resetTabindices()},_onShiftTabDown:function(t){var e=this.getAttribute("tabindex");Ka._shiftTabPressed=!0,this._setFocusedItem(null),this.setAttribute("tabindex","-1"),this.async((function(){this.setAttribute("tabindex",e),Ka._shiftTabPressed=!1}),1)},_onFocus:function(t){if(!Ka._shiftTabPressed){var e=qi(t).rootTarget;(e===this||void 0===e.tabIndex||this.isLightDescendant(e))&&(this._defaultFocusAsync=this.async((function(){var t=this.multi?this.selectedItems&&this.selectedItems[0]:this.selectedItem;this._setFocusedItem(null),t?this._setFocusedItem(t):this.items[0]&&this._focusNext()})))}},_onUpKey:function(t){this._focusPrevious(),t.detail.keyboardEvent.preventDefault()},_onDownKey:function(t){this._focusNext(),t.detail.keyboardEvent.preventDefault()},_onEscKey:function(t){var e=this.focusedItem;e&&e.blur()},_onKeydown:function(t){this.keyboardEventMatchesKeys(t,"up down esc")||this._focusWithKeyboardEvent(t),t.stopPropagation()},_activateHandler:function(t){Uo._activateHandler.call(this,t),t.stopPropagation()},_disabledChanged:function(t){t?(this._previousTabIndex=this.hasAttribute("tabindex")?this.tabIndex:0,this.removeAttribute("tabindex")):this.hasAttribute("tabindex")||this.setAttribute("tabindex",this._previousTabIndex)},_shiftTabPressed:!1},Za=[[Uo,$a],Ro,Ka];
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        display: block;
        padding: 8px 0;

        background: var(--paper-listbox-background-color, var(--primary-background-color));
        color: var(--paper-listbox-color, var(--primary-text-color));

        @apply --paper-listbox;
      }
    </style>

    <slot></slot>
`,is:"paper-listbox",behaviors:[Za],hostAttributes:{role:"listbox"}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Ja=_e`
<dom-module id="paper-material-shared-styles">
  <template>
    <style>
      :host {
        display: block;
        position: relative;
      }

      :host([elevation="1"]) {
        @apply --shadow-elevation-2dp;
      }

      :host([elevation="2"]) {
        @apply --shadow-elevation-4dp;
      }

      :host([elevation="3"]) {
        @apply --shadow-elevation-6dp;
      }

      :host([elevation="4"]) {
        @apply --shadow-elevation-8dp;
      }

      :host([elevation="5"]) {
        @apply --shadow-elevation-16dp;
      }
    </style>
  </template>
</dom-module>
`;Ja.setAttribute("style","display: none;"),document.body.appendChild(Ja.content),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style include="paper-material-shared-styles"></style>
    <style>
      :host([animated]) {
        @apply --shadow-transition;
      }
      :host {
        @apply --paper-material;
      }
    </style>

    <slot></slot>
`,is:"paper-material",properties:{elevation:{type:Number,reflectToAttribute:!0,value:1},animated:{type:Boolean,reflectToAttribute:!0,value:!1}}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const Qa={properties:{value:{type:Number,value:0,notify:!0,reflectToAttribute:!0},min:{type:Number,value:0,notify:!0},max:{type:Number,value:100,notify:!0},step:{type:Number,value:1,notify:!0},ratio:{type:Number,value:0,readOnly:!0,notify:!0}},observers:["_update(value, min, max, step)"],_calcRatio:function(t){return(this._clampValue(t)-this.min)/(this.max-this.min)},_clampValue:function(t){return Math.min(this.max,Math.max(this.min,this._calcStep(t)))},_calcStep:function(t){if(t=parseFloat(t),!this.step)return t;var e=Math.round((t-this.min)/this.step);return this.step<1?e/(1/this.step)+this.min:e*this.step+this.min},_validateValue:function(){var t=this._clampValue(this.value);return this.value=this.oldValue=isNaN(t)?this.oldValue:t,this.value!==t},_update:function(){this._validateValue(),this._setRatio(100*this._calcRatio(this.value))}};
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */Ir({_template:_e`
    <style>
      :host {
        display: block;
        width: 200px;
        position: relative;
        overflow: hidden;
      }

      :host([hidden]), [hidden] {
        display: none !important;
      }

      #progressContainer {
        @apply --paper-progress-container;
        position: relative;
      }

      #progressContainer,
      /* the stripe for the indeterminate animation*/
      .indeterminate::after {
        height: var(--paper-progress-height, 4px);
      }

      #primaryProgress,
      #secondaryProgress,
      .indeterminate::after {
        @apply --layout-fit;
      }

      #progressContainer,
      .indeterminate::after {
        background: var(--paper-progress-container-color, var(--google-grey-300));
      }

      :host(.transiting) #primaryProgress,
      :host(.transiting) #secondaryProgress {
        -webkit-transition-property: -webkit-transform;
        transition-property: transform;

        /* Duration */
        -webkit-transition-duration: var(--paper-progress-transition-duration, 0.08s);
        transition-duration: var(--paper-progress-transition-duration, 0.08s);

        /* Timing function */
        -webkit-transition-timing-function: var(--paper-progress-transition-timing-function, ease);
        transition-timing-function: var(--paper-progress-transition-timing-function, ease);

        /* Delay */
        -webkit-transition-delay: var(--paper-progress-transition-delay, 0s);
        transition-delay: var(--paper-progress-transition-delay, 0s);
      }

      #primaryProgress,
      #secondaryProgress {
        @apply --layout-fit;
        -webkit-transform-origin: left center;
        transform-origin: left center;
        -webkit-transform: scaleX(0);
        transform: scaleX(0);
        will-change: transform;
      }

      #primaryProgress {
        background: var(--paper-progress-active-color, var(--google-green-500));
      }

      #secondaryProgress {
        background: var(--paper-progress-secondary-color, var(--google-green-100));
      }

      :host([disabled]) #primaryProgress {
        background: var(--paper-progress-disabled-active-color, var(--google-grey-500));
      }

      :host([disabled]) #secondaryProgress {
        background: var(--paper-progress-disabled-secondary-color, var(--google-grey-300));
      }

      :host(:not([disabled])) #primaryProgress.indeterminate {
        -webkit-transform-origin: right center;
        transform-origin: right center;
        -webkit-animation: indeterminate-bar var(--paper-progress-indeterminate-cycle-duration, 2s) linear infinite;
        animation: indeterminate-bar var(--paper-progress-indeterminate-cycle-duration, 2s) linear infinite;
      }

      :host(:not([disabled])) #primaryProgress.indeterminate::after {
        content: "";
        -webkit-transform-origin: center center;
        transform-origin: center center;

        -webkit-animation: indeterminate-splitter var(--paper-progress-indeterminate-cycle-duration, 2s) linear infinite;
        animation: indeterminate-splitter var(--paper-progress-indeterminate-cycle-duration, 2s) linear infinite;
      }

      @-webkit-keyframes indeterminate-bar {
        0% {
          -webkit-transform: scaleX(1) translateX(-100%);
        }
        50% {
          -webkit-transform: scaleX(1) translateX(0%);
        }
        75% {
          -webkit-transform: scaleX(1) translateX(0%);
          -webkit-animation-timing-function: cubic-bezier(.28,.62,.37,.91);
        }
        100% {
          -webkit-transform: scaleX(0) translateX(0%);
        }
      }

      @-webkit-keyframes indeterminate-splitter {
        0% {
          -webkit-transform: scaleX(.75) translateX(-125%);
        }
        30% {
          -webkit-transform: scaleX(.75) translateX(-125%);
          -webkit-animation-timing-function: cubic-bezier(.42,0,.6,.8);
        }
        90% {
          -webkit-transform: scaleX(.75) translateX(125%);
        }
        100% {
          -webkit-transform: scaleX(.75) translateX(125%);
        }
      }

      @keyframes indeterminate-bar {
        0% {
          transform: scaleX(1) translateX(-100%);
        }
        50% {
          transform: scaleX(1) translateX(0%);
        }
        75% {
          transform: scaleX(1) translateX(0%);
          animation-timing-function: cubic-bezier(.28,.62,.37,.91);
        }
        100% {
          transform: scaleX(0) translateX(0%);
        }
      }

      @keyframes indeterminate-splitter {
        0% {
          transform: scaleX(.75) translateX(-125%);
        }
        30% {
          transform: scaleX(.75) translateX(-125%);
          animation-timing-function: cubic-bezier(.42,0,.6,.8);
        }
        90% {
          transform: scaleX(.75) translateX(125%);
        }
        100% {
          transform: scaleX(.75) translateX(125%);
        }
      }
    </style>

    <div id="progressContainer">
      <div id="secondaryProgress" hidden\$="[[_hideSecondaryProgress(secondaryRatio)]]"></div>
      <div id="primaryProgress"></div>
    </div>
`,is:"paper-progress",behaviors:[Qa],properties:{secondaryProgress:{type:Number,value:0},secondaryRatio:{type:Number,value:0,readOnly:!0},indeterminate:{type:Boolean,value:!1,observer:"_toggleIndeterminate"},disabled:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"_disabledChanged"}},observers:["_progressChanged(secondaryProgress, value, min, max, indeterminate)"],hostAttributes:{role:"progressbar"},_toggleIndeterminate:function(t){this.toggleClass("indeterminate",t,this.$.primaryProgress)},_transformProgress:function(t,e){t.style.transform=t.style.webkitTransform="scaleX("+e/100+")"},_mainRatioChanged:function(t){this._transformProgress(this.$.primaryProgress,t)},_progressChanged:function(t,e,n,i,r){t=this._clampValue(t),e=this._clampValue(e);var o=100*this._calcRatio(t),a=100*this._calcRatio(e);this._setSecondaryRatio(o),this._transformProgress(this.$.secondaryProgress,o),this._transformProgress(this.$.primaryProgress,a),this.secondaryProgress=t,r?this.removeAttribute("aria-valuenow"):this.setAttribute("aria-valuenow",e),this.setAttribute("aria-valuemin",n),this.setAttribute("aria-valuemax",i)},_disabledChanged:function(t){this.setAttribute("aria-disabled",t?"true":"false")},_hideSecondaryProgress:function(t){return 0===t}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const ts=_e`
<style>
  :host {
    display: inline-block;
    line-height: 0;
    white-space: nowrap;
    cursor: pointer;
    @apply --paper-font-common-base;
    --calculated-paper-radio-button-size: var(--paper-radio-button-size, 16px);
    /* -1px is a sentinel for the default and is replace in \`attached\`. */
    --calculated-paper-radio-button-ink-size: var(--paper-radio-button-ink-size, -1px);
  }

  :host(:focus) {
    outline: none;
  }

  #radioContainer {
    @apply --layout-inline;
    @apply --layout-center-center;
    position: relative;
    width: var(--calculated-paper-radio-button-size);
    height: var(--calculated-paper-radio-button-size);
    vertical-align: middle;

    @apply --paper-radio-button-radio-container;
  }

  #ink {
    position: absolute;
    top: 50%;
    left: 50%;
    right: auto;
    width: var(--calculated-paper-radio-button-ink-size);
    height: var(--calculated-paper-radio-button-ink-size);
    color: var(--paper-radio-button-unchecked-ink-color, var(--primary-text-color));
    opacity: 0.6;
    pointer-events: none;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
  }

  #ink[checked] {
    color: var(--paper-radio-button-checked-ink-color, var(--primary-color));
  }

  #offRadio, #onRadio {
    position: absolute;
    box-sizing: border-box;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
  }

  #offRadio {
    border: 2px solid var(--paper-radio-button-unchecked-color, var(--primary-text-color));
    background-color: var(--paper-radio-button-unchecked-background-color, transparent);
    transition: border-color 0.28s;
  }

  #onRadio {
    background-color: var(--paper-radio-button-checked-color, var(--primary-color));
    -webkit-transform: scale(0);
    transform: scale(0);
    transition: -webkit-transform ease 0.28s;
    transition: transform ease 0.28s;
    will-change: transform;
  }

  :host([checked]) #offRadio {
    border-color: var(--paper-radio-button-checked-color, var(--primary-color));
  }

  :host([checked]) #onRadio {
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
  }

  #radioLabel {
    line-height: normal;
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin-left: var(--paper-radio-button-label-spacing, 10px);
    white-space: normal;
    color: var(--paper-radio-button-label-color, var(--primary-text-color));

    @apply --paper-radio-button-label;
  }

  :host([checked]) #radioLabel {
    @apply --paper-radio-button-label-checked;
  }

  #radioLabel:dir(rtl) {
    margin-left: 0;
    margin-right: var(--paper-radio-button-label-spacing, 10px);
  }

  #radioLabel[hidden] {
    display: none;
  }

  /* disabled state */

  :host([disabled]) #offRadio {
    border-color: var(--paper-radio-button-unchecked-color, var(--primary-text-color));
    opacity: 0.5;
  }

  :host([disabled][checked]) #onRadio {
    background-color: var(--paper-radio-button-unchecked-color, var(--primary-text-color));
    opacity: 0.5;
  }

  :host([disabled]) #radioLabel {
    /* slightly darker than the button, so that it's readable */
    opacity: 0.65;
  }
</style>

<div id="radioContainer">
  <div id="offRadio"></div>
  <div id="onRadio"></div>
</div>

<div id="radioLabel"><slot></slot></div>`;ts.setAttribute("strip-whitespace",""),Ir({_template:ts,is:"paper-radio-button",behaviors:[ca],hostAttributes:{role:"radio","aria-checked":!1,tabindex:0},properties:{ariaActiveAttribute:{type:String,value:"aria-checked"}},ready:function(){this._rippleContainer=this.$.radioContainer},attached:function(){ki(this,(function(){if("-1px"===this.getComputedStyleValue("--calculated-paper-radio-button-ink-size").trim()){var t=parseFloat(this.getComputedStyleValue("--calculated-paper-radio-button-size").trim()),e=Math.floor(3*t);e%2!=t%2&&e++,this.updateStyles({"--paper-radio-button-ink-size":e+"px"})}}))}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const es={hostAttributes:{role:"menubar"},keyBindings:{left:"_onLeftKey",right:"_onRightKey"},_onUpKey:function(t){this.focusedItem.click(),t.detail.keyboardEvent.preventDefault()},_onDownKey:function(t){this.focusedItem.click(),t.detail.keyboardEvent.preventDefault()},get _isRTL(){return"rtl"===window.getComputedStyle(this).direction},_onLeftKey:function(t){this._isRTL?this._focusNext():this._focusPrevious(),t.detail.keyboardEvent.preventDefault()},_onRightKey:function(t){this._isRTL?this._focusPrevious():this._focusNext(),t.detail.keyboardEvent.preventDefault()},_onKeydown:function(t){this.keyboardEventMatchesKeys(t,"up down left right esc")||this._focusWithKeyboardEvent(t)}},ns=[Za,es];
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        display: inline-block;
      }

      :host ::slotted(*) {
        padding: var(--paper-radio-group-item-padding, 12px);
      }
    </style>

    <slot></slot>
`,is:"paper-radio-group",behaviors:[ns],hostAttributes:{role:"radiogroup"},properties:{attrForSelected:{type:String,value:"name"},selectedAttribute:{type:String,value:"checked"},selectable:{type:String,value:"paper-radio-button"},allowEmptySelection:{type:Boolean,value:!1}},select:function(t){var e=this._valueToItem(t);if(!e||!e.hasAttribute("disabled")){if(this.selected){var n=this._valueToItem(this.selected);if(this.selected==t){if(!this.allowEmptySelection)return void(n&&(n.checked=!0));t=""}n&&(n.checked=!1)}Uo.select.apply(this,[t]),this.fire("paper-radio-group-changed")}},_activateFocusedItem:function(){this._itemActivate(this._valueForItem(this.focusedItem),this.focusedItem)},_onUpKey:function(t){this._focusPrevious(),t.preventDefault(),this._activateFocusedItem()},_onDownKey:function(t){this._focusNext(),t.preventDefault(),this._activateFocusedItem()},_onLeftKey:function(t){es._onLeftKey.apply(this,arguments),this._activateFocusedItem()},_onRightKey:function(t){es._onRightKey.apply(this,arguments),this._activateFocusedItem()}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const is=_e`
  <style>
    :host {
      @apply --layout;
      @apply --layout-justified;
      @apply --layout-center;
      width: 200px;
      cursor: default;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
      --paper-progress-active-color: var(--paper-slider-active-color, var(--google-blue-700));
      --paper-progress-secondary-color: var(--paper-slider-secondary-color, var(--google-blue-300));
      --paper-progress-disabled-active-color: var(--paper-slider-disabled-active-color, var(--paper-grey-400));
      --paper-progress-disabled-secondary-color: var(--paper-slider-disabled-secondary-color, var(--paper-grey-400));
      --calculated-paper-slider-height: var(--paper-slider-height, 2px);
    }

    /* focus shows the ripple */
    :host(:focus) {
      outline: none;
    }

    /**
      * NOTE(keanulee): Though :host-context is not universally supported, some pages
      * still rely on paper-slider being flipped when dir="rtl" is set on body. For full
      * compatibility, dir="rtl" must be explicitly set on paper-slider.
      */
    :dir(rtl) #sliderContainer {
      -webkit-transform: scaleX(-1);
      transform: scaleX(-1);
    }

    /**
      * NOTE(keanulee): This is separate from the rule above because :host-context may
      * not be recognized.
      */
    :host([dir="rtl"]) #sliderContainer {
      -webkit-transform: scaleX(-1);
      transform: scaleX(-1);
    }

    /**
      * NOTE(keanulee): Needed to override the :host-context rule (where supported)
      * to support LTR sliders in RTL pages.
      */
    :host([dir="ltr"]) #sliderContainer {
      -webkit-transform: scaleX(1);
      transform: scaleX(1);
    }

    #sliderContainer {
      position: relative;
      width: 100%;
      height: calc(30px + var(--calculated-paper-slider-height));
      margin-left: calc(15px + var(--calculated-paper-slider-height)/2);
      margin-right: calc(15px + var(--calculated-paper-slider-height)/2);
    }

    #sliderContainer:focus {
      outline: 0;
    }

    #sliderContainer.editable {
      margin-top: 12px;
      margin-bottom: 12px;
    }

    .bar-container {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      overflow: hidden;
    }

    .ring > .bar-container {
      left: calc(5px + var(--calculated-paper-slider-height)/2);
      transition: left 0.18s ease;
    }

    .ring.expand.dragging > .bar-container {
      transition: none;
    }

    .ring.expand:not(.pin) > .bar-container {
      left: calc(8px + var(--calculated-paper-slider-height)/2);
    }

    #sliderBar {
      padding: 15px 0;
      width: 100%;
      background-color: var(--paper-slider-bar-color, transparent);
      --paper-progress-container-color: var(--paper-slider-container-color, var(--paper-grey-400));
      --paper-progress-height: var(--calculated-paper-slider-height);
    }

    .slider-markers {
      position: absolute;
      /* slider-knob is 30px + the slider-height so that the markers should start at a offset of 15px*/
      top: 15px;
      height: var(--calculated-paper-slider-height);
      left: 0;
      right: -1px;
      box-sizing: border-box;
      pointer-events: none;
      @apply --layout-horizontal;
    }

    .slider-marker {
      @apply --layout-flex;
    }
    .slider-markers::after,
    .slider-marker::after {
      content: "";
      display: block;
      margin-left: -1px;
      width: 2px;
      height: var(--calculated-paper-slider-height);
      border-radius: 50%;
      background-color: var(--paper-slider-markers-color, #000);
    }

    .slider-knob {
      position: absolute;
      left: 0;
      top: 0;
      margin-left: calc(-15px - var(--calculated-paper-slider-height)/2);
      width: calc(30px + var(--calculated-paper-slider-height));
      height: calc(30px + var(--calculated-paper-slider-height));
    }

    .transiting > .slider-knob {
      transition: left 0.08s ease;
    }

    .slider-knob:focus {
      outline: none;
    }

    .slider-knob.dragging {
      transition: none;
    }

    .snaps > .slider-knob.dragging {
      transition: -webkit-transform 0.08s ease;
      transition: transform 0.08s ease;
    }

    .slider-knob-inner {
      margin: 10px;
      width: calc(100% - 20px);
      height: calc(100% - 20px);
      background-color: var(--paper-slider-knob-color, var(--google-blue-700));
      border: 2px solid var(--paper-slider-knob-color, var(--google-blue-700));
      border-radius: 50%;

      -moz-box-sizing: border-box;
      box-sizing: border-box;

      transition-property: -webkit-transform, background-color, border;
      transition-property: transform, background-color, border;
      transition-duration: 0.18s;
      transition-timing-function: ease;
    }

    .expand:not(.pin) > .slider-knob > .slider-knob-inner {
      -webkit-transform: scale(1.5);
      transform: scale(1.5);
    }

    .ring > .slider-knob > .slider-knob-inner {
      background-color: var(--paper-slider-knob-start-color, transparent);
      border: 2px solid var(--paper-slider-knob-start-border-color, var(--paper-grey-400));
    }

    .slider-knob-inner::before {
      background-color: var(--paper-slider-pin-color, var(--google-blue-700));
    }

    .pin > .slider-knob > .slider-knob-inner::before {
      content: "";
      position: absolute;
      top: 0;
      left: 50%;
      margin-left: -13px;
      width: 26px;
      height: 26px;
      border-radius: 50% 50% 50% 0;

      -webkit-transform: rotate(-45deg) scale(0) translate(0);
      transform: rotate(-45deg) scale(0) translate(0);
    }

    .slider-knob-inner::before,
    .slider-knob-inner::after {
      transition: -webkit-transform .18s ease, background-color .18s ease;
      transition: transform .18s ease, background-color .18s ease;
    }

    .pin.ring > .slider-knob > .slider-knob-inner::before {
      background-color: var(--paper-slider-pin-start-color, var(--paper-grey-400));
    }

    .pin.expand > .slider-knob > .slider-knob-inner::before {
      -webkit-transform: rotate(-45deg) scale(1) translate(17px, -17px);
      transform: rotate(-45deg) scale(1) translate(17px, -17px);
    }

    .pin > .slider-knob > .slider-knob-inner::after {
      content: attr(value);
      position: absolute;
      top: 0;
      left: 50%;
      margin-left: -16px;
      width: 32px;
      height: 26px;
      text-align: center;
      color: var(--paper-slider-font-color, #fff);
      font-size: 10px;

      -webkit-transform: scale(0) translate(0);
      transform: scale(0) translate(0);
    }

    .pin.expand > .slider-knob > .slider-knob-inner::after {
      -webkit-transform: scale(1) translate(0, -17px);
      transform: scale(1) translate(0, -17px);
    }

    /* paper-input */
    .slider-input {
      width: 50px;
      overflow: hidden;
      --paper-input-container-input: {
        text-align: center;
        @apply --paper-slider-input-container-input;
      };
      @apply --paper-slider-input;
    }

    /* disabled state */
    #sliderContainer.disabled {
      pointer-events: none;
    }

    .disabled > .slider-knob > .slider-knob-inner {
      background-color: var(--paper-slider-disabled-knob-color, var(--paper-grey-400));
      border: 2px solid var(--paper-slider-disabled-knob-color, var(--paper-grey-400));
      -webkit-transform: scale3d(0.75, 0.75, 1);
      transform: scale3d(0.75, 0.75, 1);
    }

    .disabled.ring > .slider-knob > .slider-knob-inner {
      background-color: var(--paper-slider-knob-start-color, transparent);
      border: 2px solid var(--paper-slider-knob-start-border-color, var(--paper-grey-400));
    }

    paper-ripple {
      color: var(--paper-slider-knob-color, var(--google-blue-700));
    }
  </style>

  <div id="sliderContainer" class\$="[[_getClassNames(disabled, pin, snaps, immediateValue, min, expand, dragging, transiting, editable)]]">
    <div class="bar-container">
      <paper-progress disabled\$="[[disabled]]" id="sliderBar" aria-hidden="true" min="[[min]]" max="[[max]]" step="[[step]]" value="[[immediateValue]]" secondary-progress="[[secondaryProgress]]" on-down="_bardown" on-up="_resetKnob" on-track="_bartrack" on-tap="_barclick">
      </paper-progress>
    </div>

    <template is="dom-if" if="[[snaps]]">
      <div class="slider-markers">
        <template is="dom-repeat" items="[[markers]]">
          <div class="slider-marker"></div>
        </template>
      </div>
    </template>

    <div id="sliderKnob" class="slider-knob" on-down="_knobdown" on-up="_resetKnob" on-track="_onTrack" on-transitionend="_knobTransitionEnd">
        <div class="slider-knob-inner" value\$="[[immediateValue]]"></div>
    </div>
  </div>

  <template is="dom-if" if="[[editable]]">
    <paper-input id="input" type="number" step="[[step]]" min="[[min]]" max="[[max]]" class="slider-input" disabled\$="[[disabled]]" value="[[immediateValue]]" on-change="_changeValue" on-keydown="_inputKeyDown" no-label-float>
    </paper-input>
  </template>
`;is.setAttribute("strip-whitespace",""),Ir({_template:is,is:"paper-slider",behaviors:[Ro,ia,la,Qa],properties:{value:{type:Number,value:0},snaps:{type:Boolean,value:!1,notify:!0},pin:{type:Boolean,value:!1,notify:!0},secondaryProgress:{type:Number,value:0,notify:!0,observer:"_secondaryProgressChanged"},editable:{type:Boolean,value:!1},immediateValue:{type:Number,value:0,readOnly:!0,notify:!0},maxMarkers:{type:Number,value:0,notify:!0},expand:{type:Boolean,value:!1,readOnly:!0},ignoreBarTouch:{type:Boolean,value:!1},dragging:{type:Boolean,value:!1,readOnly:!0,notify:!0},transiting:{type:Boolean,value:!1,readOnly:!0},markers:{type:Array,readOnly:!0,value:function(){return[]}}},observers:["_updateKnob(value, min, max, snaps, step)","_valueChanged(value)","_immediateValueChanged(immediateValue)","_updateMarkers(maxMarkers, min, max, snaps)"],hostAttributes:{role:"slider",tabindex:0},keyBindings:{left:"_leftKey",right:"_rightKey","down pagedown home":"_decrementKey","up pageup end":"_incrementKey"},ready:function(){this.ignoreBarTouch&&ri(this.$.sliderBar,"auto")},increment:function(){this.value=this._clampValue(this.value+this.step)},decrement:function(){this.value=this._clampValue(this.value-this.step)},_updateKnob:function(t,e,n,i,r){this.setAttribute("aria-valuemin",e),this.setAttribute("aria-valuemax",n),this.setAttribute("aria-valuenow",t),this._positionKnob(100*this._calcRatio(t))},_valueChanged:function(){this.fire("value-change",{composed:!0})},_immediateValueChanged:function(){this.dragging?this.fire("immediate-value-change",{composed:!0}):this.value=this.immediateValue},_secondaryProgressChanged:function(){this.secondaryProgress=this._clampValue(this.secondaryProgress)},_expandKnob:function(){this._setExpand(!0)},_resetKnob:function(){this.cancelDebouncer("expandKnob"),this._setExpand(!1)},_positionKnob:function(t){this._setImmediateValue(this._calcStep(this._calcKnobPosition(t))),this._setRatio(100*this._calcRatio(this.immediateValue)),this.$.sliderKnob.style.left=this.ratio+"%",this.dragging&&(this._knobstartx=this.ratio*this._w/100,this.translate3d(0,0,0,this.$.sliderKnob))},_calcKnobPosition:function(t){return(this.max-this.min)*t/100+this.min},_onTrack:function(t){switch(t.stopPropagation(),t.detail.state){case"start":this._trackStart(t);break;case"track":this._trackX(t);break;case"end":this._trackEnd()}},_trackStart:function(t){this._setTransiting(!1),this._w=this.$.sliderBar.offsetWidth,this._x=this.ratio*this._w/100,this._startx=this._x,this._knobstartx=this._startx,this._minx=-this._startx,this._maxx=this._w-this._startx,this.$.sliderKnob.classList.add("dragging"),this._setDragging(!0)},_trackX:function(t){this.dragging||this._trackStart(t);var e=Math.min(this._maxx,Math.max(this._minx,t.detail.dx*(this._isRTL?-1:1)));this._x=this._startx+e;var n=this._calcStep(this._calcKnobPosition(this._x/this._w*100));this._setImmediateValue(n);var i=this._calcRatio(this.immediateValue)*this._w-this._knobstartx;this.translate3d(i+"px",0,0,this.$.sliderKnob)},_trackEnd:function(){var t=this.$.sliderKnob.style;this.$.sliderKnob.classList.remove("dragging"),this._setDragging(!1),this._resetKnob(),this.value=this.immediateValue,t.transform=t.webkitTransform="",this.fire("change",{composed:!0})},_knobdown:function(t){this._expandKnob(),t.preventDefault(),this.focus()},_bartrack:function(t){this._allowBarEvent(t)&&this._onTrack(t)},_barclick:function(t){this._w=this.$.sliderBar.offsetWidth;var e=this.$.sliderBar.getBoundingClientRect(),n=(t.detail.x-e.left)/this._w*100;this._isRTL&&(n=100-n);var i=this.ratio;this._setTransiting(!0),this._positionKnob(n),i===this.ratio&&this._setTransiting(!1),this.async((function(){this.fire("change",{composed:!0})})),t.preventDefault(),this.focus()},_bardown:function(t){this._allowBarEvent(t)&&(this.debounce("expandKnob",this._expandKnob,60),this._barclick(t))},_knobTransitionEnd:function(t){t.target===this.$.sliderKnob&&this._setTransiting(!1)},_updateMarkers:function(t,e,n,i){i||this._setMarkers([]);var r=Math.round((n-e)/this.step);r>t&&(r=t),(r<0||!isFinite(r))&&(r=0),this._setMarkers(new Array(r))},_mergeClasses:function(t){return Object.keys(t).filter((function(e){return t[e]})).join(" ")},_getClassNames:function(){return this._mergeClasses({disabled:this.disabled,pin:this.pin,snaps:this.snaps,ring:this.immediateValue<=this.min,expand:this.expand,dragging:this.dragging,transiting:this.transiting,editable:this.editable})},_allowBarEvent:function(t){return!this.ignoreBarTouch||t.detail.sourceEvent instanceof MouseEvent},get _isRTL(){return void 0===this.__isRTL&&(this.__isRTL="rtl"===window.getComputedStyle(this).direction),this.__isRTL},_leftKey:function(t){this._isRTL?this._incrementKey(t):this._decrementKey(t)},_rightKey:function(t){this._isRTL?this._decrementKey(t):this._incrementKey(t)},_incrementKey:function(t){this.disabled||("end"===t.detail.key?this.value=this.max:this.increment(),this.fire("change"),t.preventDefault())},_decrementKey:function(t){this.disabled||("home"===t.detail.key?this.value=this.min:this.decrement(),this.fire("change"),t.preventDefault())},_changeValue:function(t){this.value=t.target.value,this.fire("change",{composed:!0})},_inputKeyDown:function(t){t.stopPropagation()},_createRipple:function(){return this._rippleContainer=this.$.sliderKnob,sa._createRipple.call(this)},_focusedChanged:function(t){t&&this.ensureRipple(),this.hasRipple()&&(this._ripple.style.display=t?"":"none",this._ripple.holdDown=t)}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const rs=document.createElement("template");rs.setAttribute("style","display: none;"),rs.innerHTML="<dom-module id=\"paper-spinner-styles\">\n  <template>\n    <style>\n      /*\n      /**************************/\n      /* STYLES FOR THE SPINNER */\n      /**************************/\n\n      /*\n       * Constants:\n       *      ARCSIZE     = 270 degrees (amount of circle the arc takes up)\n       *      ARCTIME     = 1333ms (time it takes to expand and contract arc)\n       *      ARCSTARTROT = 216 degrees (how much the start location of the arc\n       *                                should rotate each time, 216 gives us a\n       *                                5 pointed star shape (it's 360/5 * 3).\n       *                                For a 7 pointed star, we might do\n       *                                360/7 * 3 = 154.286)\n       *      SHRINK_TIME = 400ms\n       */\n\n      :host {\n        display: inline-block;\n        position: relative;\n        width: 28px;\n        height: 28px;\n\n        /* 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\n        --paper-spinner-container-rotation-duration: 1568ms;\n\n        /* ARCTIME */\n        --paper-spinner-expand-contract-duration: 1333ms;\n\n        /* 4 * ARCTIME */\n        --paper-spinner-full-cycle-duration: 5332ms;\n\n        /* SHRINK_TIME */\n        --paper-spinner-cooldown-duration: 400ms;\n      }\n\n      #spinnerContainer {\n        width: 100%;\n        height: 100%;\n\n        /* The spinner does not have any contents that would have to be\n         * flipped if the direction changes. Always use ltr so that the\n         * style works out correctly in both cases. */\n        direction: ltr;\n      }\n\n      #spinnerContainer.active {\n        -webkit-animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite;\n        animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite;\n      }\n\n      @-webkit-keyframes container-rotate {\n        to { -webkit-transform: rotate(360deg) }\n      }\n\n      @keyframes container-rotate {\n        to { transform: rotate(360deg) }\n      }\n\n      .spinner-layer {\n        position: absolute;\n        width: 100%;\n        height: 100%;\n        opacity: 0;\n        white-space: nowrap;\n        color: var(--paper-spinner-color, var(--google-blue-500));\n      }\n\n      .layer-1 {\n        color: var(--paper-spinner-layer-1-color, var(--google-blue-500));\n      }\n\n      .layer-2 {\n        color: var(--paper-spinner-layer-2-color, var(--google-red-500));\n      }\n\n      .layer-3 {\n        color: var(--paper-spinner-layer-3-color, var(--google-yellow-500));\n      }\n\n      .layer-4 {\n        color: var(--paper-spinner-layer-4-color, var(--google-green-500));\n      }\n\n      /**\n       * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\n       *\n       * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\n       * guarantee that the animation will start _exactly_ after that value. So we avoid using\n       * animation-delay and instead set custom keyframes for each color (as layer-2undant as it\n       * seems).\n       */\n      .active .spinner-layer {\n        -webkit-animation-name: fill-unfill-rotate;\n        -webkit-animation-duration: var(--paper-spinner-full-cycle-duration);\n        -webkit-animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);\n        -webkit-animation-iteration-count: infinite;\n        animation-name: fill-unfill-rotate;\n        animation-duration: var(--paper-spinner-full-cycle-duration);\n        animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);\n        animation-iteration-count: infinite;\n        opacity: 1;\n      }\n\n      .active .spinner-layer.layer-1 {\n        -webkit-animation-name: fill-unfill-rotate, layer-1-fade-in-out;\n        animation-name: fill-unfill-rotate, layer-1-fade-in-out;\n      }\n\n      .active .spinner-layer.layer-2 {\n        -webkit-animation-name: fill-unfill-rotate, layer-2-fade-in-out;\n        animation-name: fill-unfill-rotate, layer-2-fade-in-out;\n      }\n\n      .active .spinner-layer.layer-3 {\n        -webkit-animation-name: fill-unfill-rotate, layer-3-fade-in-out;\n        animation-name: fill-unfill-rotate, layer-3-fade-in-out;\n      }\n\n      .active .spinner-layer.layer-4 {\n        -webkit-animation-name: fill-unfill-rotate, layer-4-fade-in-out;\n        animation-name: fill-unfill-rotate, layer-4-fade-in-out;\n      }\n\n      @-webkit-keyframes fill-unfill-rotate {\n        12.5% { -webkit-transform: rotate(135deg) } /* 0.5 * ARCSIZE */\n        25%   { -webkit-transform: rotate(270deg) } /* 1   * ARCSIZE */\n        37.5% { -webkit-transform: rotate(405deg) } /* 1.5 * ARCSIZE */\n        50%   { -webkit-transform: rotate(540deg) } /* 2   * ARCSIZE */\n        62.5% { -webkit-transform: rotate(675deg) } /* 2.5 * ARCSIZE */\n        75%   { -webkit-transform: rotate(810deg) } /* 3   * ARCSIZE */\n        87.5% { -webkit-transform: rotate(945deg) } /* 3.5 * ARCSIZE */\n        to    { -webkit-transform: rotate(1080deg) } /* 4   * ARCSIZE */\n      }\n\n      @keyframes fill-unfill-rotate {\n        12.5% { transform: rotate(135deg) } /* 0.5 * ARCSIZE */\n        25%   { transform: rotate(270deg) } /* 1   * ARCSIZE */\n        37.5% { transform: rotate(405deg) } /* 1.5 * ARCSIZE */\n        50%   { transform: rotate(540deg) } /* 2   * ARCSIZE */\n        62.5% { transform: rotate(675deg) } /* 2.5 * ARCSIZE */\n        75%   { transform: rotate(810deg) } /* 3   * ARCSIZE */\n        87.5% { transform: rotate(945deg) } /* 3.5 * ARCSIZE */\n        to    { transform: rotate(1080deg) } /* 4   * ARCSIZE */\n      }\n\n      @-webkit-keyframes layer-1-fade-in-out {\n        0% { opacity: 1 }\n        25% { opacity: 1 }\n        26% { opacity: 0 }\n        89% { opacity: 0 }\n        90% { opacity: 1 }\n        to { opacity: 1 }\n      }\n\n      @keyframes layer-1-fade-in-out {\n        0% { opacity: 1 }\n        25% { opacity: 1 }\n        26% { opacity: 0 }\n        89% { opacity: 0 }\n        90% { opacity: 1 }\n        to { opacity: 1 }\n      }\n\n      @-webkit-keyframes layer-2-fade-in-out {\n        0% { opacity: 0 }\n        15% { opacity: 0 }\n        25% { opacity: 1 }\n        50% { opacity: 1 }\n        51% { opacity: 0 }\n        to { opacity: 0 }\n      }\n\n      @keyframes layer-2-fade-in-out {\n        0% { opacity: 0 }\n        15% { opacity: 0 }\n        25% { opacity: 1 }\n        50% { opacity: 1 }\n        51% { opacity: 0 }\n        to { opacity: 0 }\n      }\n\n      @-webkit-keyframes layer-3-fade-in-out {\n        0% { opacity: 0 }\n        40% { opacity: 0 }\n        50% { opacity: 1 }\n        75% { opacity: 1 }\n        76% { opacity: 0 }\n        to { opacity: 0 }\n      }\n\n      @keyframes layer-3-fade-in-out {\n        0% { opacity: 0 }\n        40% { opacity: 0 }\n        50% { opacity: 1 }\n        75% { opacity: 1 }\n        76% { opacity: 0 }\n        to { opacity: 0 }\n      }\n\n      @-webkit-keyframes layer-4-fade-in-out {\n        0% { opacity: 0 }\n        65% { opacity: 0 }\n        75% { opacity: 1 }\n        90% { opacity: 1 }\n        to { opacity: 0 }\n      }\n\n      @keyframes layer-4-fade-in-out {\n        0% { opacity: 0 }\n        65% { opacity: 0 }\n        75% { opacity: 1 }\n        90% { opacity: 1 }\n        to { opacity: 0 }\n      }\n\n      .circle-clipper {\n        display: inline-block;\n        position: relative;\n        width: 50%;\n        height: 100%;\n        overflow: hidden;\n      }\n\n      /**\n       * Patch the gap that appear between the two adjacent div.circle-clipper while the\n       * spinner is rotating (appears on Chrome 50, Safari 9.1.1, and Edge).\n       */\n      .spinner-layer::after {\n        content: '';\n        left: 45%;\n        width: 10%;\n        border-top-style: solid;\n      }\n\n      .spinner-layer::after,\n      .circle-clipper .circle {\n        box-sizing: border-box;\n        position: absolute;\n        top: 0;\n        border-width: var(--paper-spinner-stroke-width, 3px);\n        border-radius: 50%;\n      }\n\n      .circle-clipper .circle {\n        bottom: 0;\n        width: 200%;\n        border-style: solid;\n        border-bottom-color: transparent !important;\n      }\n\n      .circle-clipper.left .circle {\n        left: 0;\n        border-right-color: transparent !important;\n        -webkit-transform: rotate(129deg);\n        transform: rotate(129deg);\n      }\n\n      .circle-clipper.right .circle {\n        left: -100%;\n        border-left-color: transparent !important;\n        -webkit-transform: rotate(-129deg);\n        transform: rotate(-129deg);\n      }\n\n      .active .gap-patch::after,\n      .active .circle-clipper .circle {\n        -webkit-animation-duration: var(--paper-spinner-expand-contract-duration);\n        -webkit-animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);\n        -webkit-animation-iteration-count: infinite;\n        animation-duration: var(--paper-spinner-expand-contract-duration);\n        animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);\n        animation-iteration-count: infinite;\n      }\n\n      .active .circle-clipper.left .circle {\n        -webkit-animation-name: left-spin;\n        animation-name: left-spin;\n      }\n\n      .active .circle-clipper.right .circle {\n        -webkit-animation-name: right-spin;\n        animation-name: right-spin;\n      }\n\n      @-webkit-keyframes left-spin {\n        0% { -webkit-transform: rotate(130deg) }\n        50% { -webkit-transform: rotate(-5deg) }\n        to { -webkit-transform: rotate(130deg) }\n      }\n\n      @keyframes left-spin {\n        0% { transform: rotate(130deg) }\n        50% { transform: rotate(-5deg) }\n        to { transform: rotate(130deg) }\n      }\n\n      @-webkit-keyframes right-spin {\n        0% { -webkit-transform: rotate(-130deg) }\n        50% { -webkit-transform: rotate(5deg) }\n        to { -webkit-transform: rotate(-130deg) }\n      }\n\n      @keyframes right-spin {\n        0% { transform: rotate(-130deg) }\n        50% { transform: rotate(5deg) }\n        to { transform: rotate(-130deg) }\n      }\n\n      #spinnerContainer.cooldown {\n        -webkit-animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite, fade-out var(--paper-spinner-cooldown-duration) cubic-bezier(0.4, 0.0, 0.2, 1);\n        animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite, fade-out var(--paper-spinner-cooldown-duration) cubic-bezier(0.4, 0.0, 0.2, 1);\n      }\n\n      @-webkit-keyframes fade-out {\n        0% { opacity: 1 }\n        to { opacity: 0 }\n      }\n\n      @keyframes fade-out {\n        0% { opacity: 1 }\n        to { opacity: 0 }\n      }\n    </style>\n  </template>\n</dom-module>",document.head.appendChild(rs.content);
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const os={properties:{active:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"__activeChanged"},alt:{type:String,value:"loading",observer:"__altChanged"},__coolingDown:{type:Boolean,value:!1}},__computeContainerClasses:function(t,e){return[t||e?"active":"",e?"cooldown":""].join(" ")},__activeChanged:function(t,e){this.__setAriaHidden(!t),this.__coolingDown=!t&&e},__altChanged:function(t){"loading"===t?this.alt=this.getAttribute("aria-label")||t:(this.__setAriaHidden(""===t),this.setAttribute("aria-label",t))},__setAriaHidden:function(t){var e="aria-hidden";t?this.setAttribute(e,"true"):this.removeAttribute(e)},__reset:function(){this.active=!1,this.__coolingDown=!1}},as=_e`
  <style include="paper-spinner-styles"></style>

  <div id="spinnerContainer" class-name="[[__computeContainerClasses(active, __coolingDown)]]" on-animationend="__reset" on-webkit-animation-end="__reset">
    <div class="spinner-layer">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>
  </div>
`;
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */as.setAttribute("strip-whitespace",""),Ir({_template:as,is:"paper-spinner-lite",behaviors:[os]});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
const ss=_e`
  <style include="paper-spinner-styles"></style>

  <div id="spinnerContainer" class-name="[[__computeContainerClasses(active, __coolingDown)]]" on-animationend="__reset" on-webkit-animation-end="__reset">
    <div class="spinner-layer layer-1">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>

    <div class="spinner-layer layer-2">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>

    <div class="spinner-layer layer-3">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>

    <div class="spinner-layer layer-4">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>
  </div>
`;ss.setAttribute("strip-whitespace",""),Ir({_template:ss,is:"paper-spinner",behaviors:[os]});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const ls=_e`<iron-iconset-svg name="paper-tabs" size="24">
<svg><defs>
<g id="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></g>
<g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path></g>
</defs></svg>
</iron-iconset-svg>`;document.head.appendChild(ls.content),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        @apply --layout-inline;
        @apply --layout-center;
        @apply --layout-center-justified;
        @apply --layout-flex-auto;

        position: relative;
        padding: 0 12px;
        overflow: hidden;
        cursor: pointer;
        vertical-align: middle;

        @apply --paper-font-common-base;
        @apply --paper-tab;
      }

      :host(:focus) {
        outline: none;
      }

      :host([link]) {
        padding: 0;
      }

      .tab-content {
        height: 100%;
        transform: translateZ(0);
          -webkit-transform: translateZ(0);
        transition: opacity 0.1s cubic-bezier(0.4, 0.0, 1, 1);
        @apply --layout-horizontal;
        @apply --layout-center-center;
        @apply --layout-flex-auto;
        @apply --paper-tab-content;
      }

      :host(:not(.iron-selected)) > .tab-content {
        opacity: 0.8;

        @apply --paper-tab-content-unselected;
      }

      :host(:focus) .tab-content {
        opacity: 1;
        font-weight: 700;

        @apply --paper-tab-content-focused;
      }

      paper-ripple {
        color: var(--paper-tab-ink, var(--paper-yellow-a100));
      }

      .tab-content > ::slotted(a) {
        @apply --layout-flex-auto;

        height: 100%;
      }
    </style>

    <div class="tab-content">
      <slot></slot>
    </div>
`,is:"paper-tab",behaviors:[Wo,Yo,Zo],properties:{link:{type:Boolean,value:!1,reflectToAttribute:!0}},hostAttributes:{role:"tab"},listeners:{down:"_updateNoink",tap:"_onTap"},attached:function(){this._updateNoink()},get _parentNoink(){var t=qi(this).parentNode;return!!t&&!!t.noink},_updateNoink:function(){this.noink=!!this.noink||!!this._parentNoink},_onTap:function(t){if(this.link){var e=this.queryEffectiveChildren("a");if(!e)return;if(t.target===e)return;e.click()}}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        @apply --layout;
        @apply --layout-center;

        height: 48px;
        font-size: 14px;
        font-weight: 500;
        overflow: hidden;
        -moz-user-select: none;
        -ms-user-select: none;
        -webkit-user-select: none;
        user-select: none;

        /* NOTE: Both values are needed, since some phones require the value to be \`transparent\`. */
        -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
        -webkit-tap-highlight-color: transparent;

        @apply --paper-tabs;
      }

      :host(:dir(rtl)) {
        @apply --layout-horizontal-reverse;
      }

      #tabsContainer {
        position: relative;
        height: 100%;
        white-space: nowrap;
        overflow: hidden;
        @apply --layout-flex-auto;
        @apply --paper-tabs-container;
      }

      #tabsContent {
        height: 100%;
        -moz-flex-basis: auto;
        -ms-flex-basis: auto;
        flex-basis: auto;
        @apply --paper-tabs-content;
      }

      #tabsContent.scrollable {
        position: absolute;
        white-space: nowrap;
      }

      #tabsContent:not(.scrollable),
      #tabsContent.scrollable.fit-container {
        @apply --layout-horizontal;
      }

      #tabsContent.scrollable.fit-container {
        min-width: 100%;
      }

      #tabsContent.scrollable.fit-container > ::slotted(*) {
        /* IE - prevent tabs from compressing when they should scroll. */
        -ms-flex: 1 0 auto;
        -webkit-flex: 1 0 auto;
        flex: 1 0 auto;
      }

      .hidden {
        display: none;
      }

      .not-visible {
        opacity: 0;
        cursor: default;
      }

      paper-icon-button {
        width: 48px;
        height: 48px;
        padding: 12px;
        margin: 0 4px;
      }

      #selectionBar {
        position: absolute;
        height: 0;
        bottom: 0;
        left: 0;
        right: 0;
        border-bottom: 2px solid var(--paper-tabs-selection-bar-color, var(--paper-yellow-a100));
          -webkit-transform: scale(0);
        transform: scale(0);
          -webkit-transform-origin: left center;
        transform-origin: left center;
          transition: -webkit-transform;
        transition: transform;

        @apply --paper-tabs-selection-bar;
      }

      #selectionBar.align-bottom {
        top: 0;
        bottom: auto;
      }

      #selectionBar.expand {
        transition-duration: 0.15s;
        transition-timing-function: cubic-bezier(0.4, 0.0, 1, 1);
      }

      #selectionBar.contract {
        transition-duration: 0.18s;
        transition-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
      }

      #tabsContent > ::slotted(:not(#selectionBar)) {
        height: 100%;
      }
    </style>

    <paper-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonClass(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onLeftScrollButtonDown" tabindex="-1"></paper-icon-button>

    <div id="tabsContainer" on-track="_scroll" on-down="_down">
      <div id="tabsContent" class$="[[_computeTabsContentClass(scrollable, fitContainer)]]">
        <div id="selectionBar" class$="[[_computeSelectionBarClass(noBar, alignBottom)]]" on-transitionend="_onBarTransitionEnd"></div>
        <slot></slot>
      </div>
    </div>

    <paper-icon-button icon="paper-tabs:chevron-right" class$="[[_computeScrollButtonClass(_rightHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onRightScrollButtonDown" tabindex="-1"></paper-icon-button>
`,is:"paper-tabs",behaviors:[mo,ns],properties:{noink:{type:Boolean,value:!1,observer:"_noinkChanged"},noBar:{type:Boolean,value:!1},noSlide:{type:Boolean,value:!1},scrollable:{type:Boolean,value:!1},fitContainer:{type:Boolean,value:!1},disableDrag:{type:Boolean,value:!1},hideScrollButtons:{type:Boolean,value:!1},alignBottom:{type:Boolean,value:!1},selectable:{type:String,value:"paper-tab"},autoselect:{type:Boolean,value:!1},autoselectDelay:{type:Number,value:0},_step:{type:Number,value:10},_holdDelay:{type:Number,value:1},_leftHidden:{type:Boolean,value:!1},_rightHidden:{type:Boolean,value:!1},_previousTab:{type:Object}},hostAttributes:{role:"tablist"},listeners:{"iron-resize":"_onTabSizingChanged","iron-items-changed":"_onTabSizingChanged","iron-select":"_onIronSelect","iron-deselect":"_onIronDeselect"},keyBindings:{"left:keyup right:keyup":"_onArrowKeyup"},created:function(){this._holdJob=null,this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,this._bindDelayedActivationHandler=this._delayedActivationHandler.bind(this),this.addEventListener("blur",this._onBlurCapture.bind(this),!0)},ready:function(){this.setScrollDirection("y",this.$.tabsContainer)},detached:function(){this._cancelPendingActivation()},_noinkChanged:function(t){qi(this).querySelectorAll("paper-tab").forEach(t?this._setNoinkAttribute:this._removeNoinkAttribute)},_setNoinkAttribute:function(t){t.setAttribute("noink","")},_removeNoinkAttribute:function(t){t.removeAttribute("noink")},_computeScrollButtonClass:function(t,e,n){return!e||n?"hidden":t?"not-visible":""},_computeTabsContentClass:function(t,e){return t?"scrollable"+(e?" fit-container":""):" fit-container"},_computeSelectionBarClass:function(t,e){return t?"hidden":e?"align-bottom":""},_onTabSizingChanged:function(){this.debounce("_onTabSizingChanged",(function(){this._scroll(),this._tabChanged(this.selectedItem)}),10)},_onIronSelect:function(t){this._tabChanged(t.detail.item,this._previousTab),this._previousTab=t.detail.item,this.cancelDebouncer("tab-changed")},_onIronDeselect:function(t){this.debounce("tab-changed",(function(){this._tabChanged(null,this._previousTab),this._previousTab=null}),1)},_activateHandler:function(){this._cancelPendingActivation(),Ka._activateHandler.apply(this,arguments)},_scheduleActivation:function(t,e){this._pendingActivationItem=t,this._pendingActivationTimeout=this.async(this._bindDelayedActivationHandler,e)},_delayedActivationHandler:function(){var t=this._pendingActivationItem;this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,t.fire(this.activateEvent,null,{bubbles:!0,cancelable:!0})},_cancelPendingActivation:function(){void 0!==this._pendingActivationTimeout&&(this.cancelAsync(this._pendingActivationTimeout),this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0)},_onArrowKeyup:function(t){this.autoselect&&this._scheduleActivation(this.focusedItem,this.autoselectDelay)},_onBlurCapture:function(t){t.target===this._pendingActivationItem&&this._cancelPendingActivation()},get _tabContainerScrollSize(){return Math.max(0,this.$.tabsContainer.scrollWidth-this.$.tabsContainer.offsetWidth)},_scroll:function(t,e){this.scrollable&&this._affectScroll(e&&-e.ddx||0)},_down:function(t){this.async((function(){this._defaultFocusAsync&&(this.cancelAsync(this._defaultFocusAsync),this._defaultFocusAsync=null)}),1)},_affectScroll:function(t){this.$.tabsContainer.scrollLeft+=t;var e=this.$.tabsContainer.scrollLeft;this._leftHidden=0===e,this._rightHidden=e===this._tabContainerScrollSize},_onLeftScrollButtonDown:function(){this._scrollToLeft(),this._holdJob=setInterval(this._scrollToLeft.bind(this),this._holdDelay)},_onRightScrollButtonDown:function(){this._scrollToRight(),this._holdJob=setInterval(this._scrollToRight.bind(this),this._holdDelay)},_onScrollButtonUp:function(){clearInterval(this._holdJob),this._holdJob=null},_scrollToLeft:function(){this._affectScroll(-this._step)},_scrollToRight:function(){this._affectScroll(this._step)},_tabChanged:function(t,e){if(!t)return this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contract"),void this._positionBar(0,0);var n=this.$.tabsContent.getBoundingClientRect(),i=n.width,r=t.getBoundingClientRect(),o=r.left-n.left;if(this._pos={width:this._calcPercent(r.width,i),left:this._calcPercent(o,i)},this.noSlide||null==e)return this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contract"),void this._positionBar(this._pos.width,this._pos.left);var a=e.getBoundingClientRect(),s=this.items.indexOf(e),l=this.items.indexOf(t);this.$.selectionBar.classList.add("expand");var c=s<l;this._isRTL&&(c=!c),c?this._positionBar(this._calcPercent(r.left+r.width-a.left,i)-5,this._left):this._positionBar(this._calcPercent(a.left+a.width-r.left,i)-5,this._calcPercent(o,i)+5),this.scrollable&&this._scrollToSelectedIfNeeded(r.width,o)},_scrollToSelectedIfNeeded:function(t,e){var n=e-this.$.tabsContainer.scrollLeft;(n<0||(n+=t-this.$.tabsContainer.offsetWidth)>0)&&(this.$.tabsContainer.scrollLeft+=n)},_calcPercent:function(t,e){return 100*t/e},_positionBar:function(t,e){e=e||0,this._width=t=t||0,this._left=e,this.transform("translateX("+e+"%) scaleX("+t/100+")",this.$.selectionBar)},_onBarTransitionEnd:function(t){var e=this.$.selectionBar.classList;e.contains("expand")?(e.remove("expand"),e.add("contract"),this._positionBar(this._pos.width,this._pos.left)):e.contains("contract")&&e.remove("contract")}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
var cs=null;Ir({_template:_e`
    <style>
      :host {
        display: block;
        position: fixed;
        background-color: var(--paper-toast-background-color, #323232);
        color: var(--paper-toast-color, #f1f1f1);
        min-height: 48px;
        min-width: 288px;
        padding: 16px 24px;
        box-sizing: border-box;
        box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
        border-radius: 2px;
        margin: 12px;
        font-size: 14px;
        cursor: default;
        -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
        transition: transform 0.3s, opacity 0.3s;
        opacity: 0;
        -webkit-transform: translateY(100px);
        transform: translateY(100px);
        @apply --paper-font-common-base;
      }

      :host(.capsule) {
        border-radius: 24px;
      }

      :host(.fit-bottom) {
        width: 100%;
        min-width: 0;
        border-radius: 0;
        margin: 0;
      }

      :host(.paper-toast-open) {
        opacity: 1;
        -webkit-transform: translateY(0px);
        transform: translateY(0px);
      }
    </style>

    <span id="label">{{text}}</span>
    <slot></slot>
`,is:"paper-toast",behaviors:[Aa],properties:{fitInto:{type:Object,value:window,observer:"_onFitIntoChanged"},horizontalAlign:{type:String,value:"left"},verticalAlign:{type:String,value:"bottom"},duration:{type:Number,value:3e3},text:{type:String,value:""},noCancelOnOutsideClick:{type:Boolean,value:!0},noAutoFocus:{type:Boolean,value:!0}},listeners:{transitionend:"__onTransitionEnd"},get visible(){return po._warn("`visible` is deprecated, use `opened` instead"),this.opened},get _canAutoClose(){return this.duration>0&&this.duration!==1/0},created:function(){this._autoClose=null,Oa.requestAvailability()},show:function(t){for(var e in"string"==typeof t&&(t={text:t}),t)0===e.indexOf("_")?po._warn('The property "'+e+'" is private and was not set.'):e in this?this[e]=t[e]:po._warn('The property "'+e+'" is not valid.');this.open()},hide:function(){this.close()},__onTransitionEnd:function(t){t&&t.target===this&&"opacity"===t.propertyName&&(this.opened?this._finishRenderOpened():this._finishRenderClosed())},_openedChanged:function(){null!==this._autoClose&&(this.cancelAsync(this._autoClose),this._autoClose=null),this.opened?(cs&&cs!==this&&cs.close(),cs=this,this.fire("iron-announce",{text:this.text}),this._canAutoClose&&(this._autoClose=this.async(this.close,this.duration))):cs===this&&(cs=null),Ta._openedChanged.apply(this,arguments)},_renderOpened:function(){this.classList.add("paper-toast-open")},_renderClosed:function(){this.classList.remove("paper-toast-open")},_onFitIntoChanged:function(t){this.positionTarget=t}});
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
const us=_e`

    <style>
      :host {
        display: inline-block;
        @apply --layout-horizontal;
        @apply --layout-center;
        @apply --paper-font-common-base;
      }

      :host([disabled]) {
        pointer-events: none;
      }

      :host(:focus) {
        outline:none;
      }

      .toggle-bar {
        position: absolute;
        height: 100%;
        width: 100%;
        border-radius: 8px;
        pointer-events: none;
        opacity: 0.4;
        transition: background-color linear .08s;
        background-color: var(--paper-toggle-button-unchecked-bar-color, #000000);

        @apply --paper-toggle-button-unchecked-bar;
      }

      .toggle-button {
        position: absolute;
        top: -3px;
        left: 0;
        height: 20px;
        width: 20px;
        border-radius: 50%;
        box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.6);
        transition: -webkit-transform linear .08s, background-color linear .08s;
        transition: transform linear .08s, background-color linear .08s;
        will-change: transform;
        background-color: var(--paper-toggle-button-unchecked-button-color, var(--paper-grey-50));

        @apply --paper-toggle-button-unchecked-button;
      }

      .toggle-button.dragging {
        -webkit-transition: none;
        transition: none;
      }

      :host([checked]:not([disabled])) .toggle-bar {
        opacity: 0.5;
        background-color: var(--paper-toggle-button-checked-bar-color, var(--primary-color));

        @apply --paper-toggle-button-checked-bar;
      }

      :host([disabled]) .toggle-bar {
        background-color: #000;
        opacity: 0.12;
      }

      :host([checked]) .toggle-button {
        -webkit-transform: translate(16px, 0);
        transform: translate(16px, 0);
      }

      :host([checked]:not([disabled])) .toggle-button {
        background-color: var(--paper-toggle-button-checked-button-color, var(--primary-color));

        @apply --paper-toggle-button-checked-button;
      }

      :host([disabled]) .toggle-button {
        background-color: #bdbdbd;
        opacity: 1;
      }

      .toggle-ink {
        position: absolute;
        top: -14px;
        left: -14px;
        right: auto;
        bottom: auto;
        width: 48px;
        height: 48px;
        opacity: 0.5;
        pointer-events: none;
        color: var(--paper-toggle-button-unchecked-ink-color, var(--primary-text-color));

        @apply --paper-toggle-button-unchecked-ink;
      }

      :host([checked]) .toggle-ink {
        color: var(--paper-toggle-button-checked-ink-color, var(--primary-color));

        @apply --paper-toggle-button-checked-ink;
      }

      .toggle-container {
        display: inline-block;
        position: relative;
        width: 36px;
        height: 14px;
        /* The toggle button has an absolute position of -3px; The extra 1px
        /* accounts for the toggle button shadow box. */
        margin: 4px 1px;
      }

      .toggle-label {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        padding-left: var(--paper-toggle-button-label-spacing, 8px);
        pointer-events: none;
        color: var(--paper-toggle-button-label-color, var(--primary-text-color));
      }

      /* invalid state */
      :host([invalid]) .toggle-bar {
        background-color: var(--paper-toggle-button-invalid-bar-color, var(--error-color));
      }

      :host([invalid]) .toggle-button {
        background-color: var(--paper-toggle-button-invalid-button-color, var(--error-color));
      }

      :host([invalid]) .toggle-ink {
        color: var(--paper-toggle-button-invalid-ink-color, var(--error-color));
      }
    </style>

    <div class="toggle-container">
      <div id="toggleBar" class="toggle-bar"></div>
      <div id="toggleButton" class="toggle-button"></div>
    </div>

    <div class="toggle-label"><slot></slot></div>

  `;us.setAttribute("strip-whitespace",""),Ir({_template:us,is:"paper-toggle-button",behaviors:[ca],hostAttributes:{role:"button","aria-pressed":"false",tabindex:0},properties:{},listeners:{track:"_ontrack"},attached:function(){ki(this,(function(){ri(this,"pan-y")}))},_ontrack:function(t){var e=t.detail;"start"===e.state?this._trackStart(e):"track"===e.state?this._trackMove(e):"end"===e.state&&this._trackEnd(e)},_trackStart:function(t){this._width=this.$.toggleBar.offsetWidth/2,this._trackChecked=this.checked,this.$.toggleButton.classList.add("dragging")},_trackMove:function(t){var e=t.dx;this._x=Math.min(this._width,Math.max(0,this._trackChecked?this._width+e:e)),this.translate3d(this._x+"px",0,0,this.$.toggleButton),this._userActivate(this._x>this._width/2)},_trackEnd:function(t){this.$.toggleButton.classList.remove("dragging"),this.transform("",this.$.toggleButton)},_createRipple:function(){this._rippleContainer=this.$.toggleButton;var t=Zo._createRipple();return t.id="ink",t.setAttribute("recenters",""),t.classList.add("circle","toggle-ink"),t}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        --calculated-paper-toolbar-height: var(--paper-toolbar-height, 64px);
        --calculated-paper-toolbar-sm-height: var(--paper-toolbar-sm-height, 56px);
        display: block;
        position: relative;
        box-sizing: border-box;
        -moz-box-sizing: border-box;
        height: var(--calculated-paper-toolbar-height);
        background: var(--paper-toolbar-background, var(--primary-color));
        color: var(--paper-toolbar-color, var(--dark-theme-text-color));
        @apply --paper-toolbar;
      }

      :host(.animate) {
        transition: var(--paper-toolbar-transition, height 0.18s ease-in);
      }

      :host(.medium-tall) {
        height: calc(var(--calculated-paper-toolbar-height) * 2);
        @apply --paper-toolbar-medium;
      }

      :host(.tall) {
        height: calc(var(--calculated-paper-toolbar-height) * 3);
        @apply --paper-toolbar-tall;
      }

      .toolbar-tools {
        position: relative;
        height: var(--calculated-paper-toolbar-height);
        padding: 0 16px;
        pointer-events: none;
        @apply --layout-horizontal;
        @apply --layout-center;
        @apply --paper-toolbar-content;
      }

      /*
       * TODO: Where should media query breakpoints live so they can be shared between elements?
       */

      @media (max-width: 600px) {
        :host {
          height: var(--calculated-paper-toolbar-sm-height);
        }

        :host(.medium-tall) {
          height: calc(var(--calculated-paper-toolbar-sm-height) * 2);
        }

        :host(.tall) {
          height: calc(var(--calculated-paper-toolbar-sm-height) * 3);
        }

        .toolbar-tools {
          height: var(--calculated-paper-toolbar-sm-height);
        }
      }

      #topBar {
        position: relative;
      }

      /* middle bar */
      #middleBar {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
      }

      :host(.tall) #middleBar,
      :host(.medium-tall) #middleBar {
        -webkit-transform: translateY(100%);
        transform: translateY(100%);
      }

      /* bottom bar */
      #bottomBar {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
      }

      /*
       * make elements (e.g. buttons) respond to mouse/touch events
       *
       * \`.toolbar-tools\` disables touch events so multiple toolbars can stack and not
       * absorb events. All children must have pointer events re-enabled to work as
       * expected.
       */
      .toolbar-tools > ::slotted(*:not([disabled])) {
        pointer-events: auto;
      }

      .toolbar-tools > ::slotted(.title) {
        @apply --paper-font-common-base;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: 20px;
        font-weight: 400;
        line-height: 1;
        pointer-events: none;
        @apply --layout-flex;
      }

      .toolbar-tools > ::slotted(.title) {
        margin-left: 56px;
      }

      .toolbar-tools > ::slotted(paper-icon-button + .title) {
        margin-left: 0;
      }

      /**
       * The --paper-toolbar-title mixin is applied here instead of above to
       * fix the issue with margin-left being ignored due to css ordering.
       */
      .toolbar-tools > ::slotted(.title) {
        @apply --paper-toolbar-title;
      }

      .toolbar-tools > ::slotted(paper-icon-button[icon=menu]) {
        margin-right: 24px;
      }

      .toolbar-tools > ::slotted(.fit) {
        position: absolute;
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
        margin: 0;
      }

      /* TODO(noms): Until we have a better solution for classes that don't use
       * /deep/ create our own.
       */
      .start-justified {
        @apply --layout-start-justified;
      }

      .center-justified {
        @apply --layout-center-justified;
      }

      .end-justified {
        @apply --layout-end-justified;
      }

      .around-justified {
        @apply --layout-around-justified;
      }

      .justified {
        @apply --layout-justified;
      }
    </style>

    <div id="topBar" class\$="toolbar-tools [[_computeBarExtraClasses(justify)]]">
      <slot name="top"></slot>
    </div>

    <div id="middleBar" class\$="toolbar-tools [[_computeBarExtraClasses(middleJustify)]]">
      <slot name="middle"></slot>
    </div>

    <div id="bottomBar" class\$="toolbar-tools [[_computeBarExtraClasses(bottomJustify)]]">
      <slot name="bottom"></slot>
    </div>
`,is:"paper-toolbar",hostAttributes:{role:"toolbar"},properties:{bottomJustify:{type:String,value:""},justify:{type:String,value:""},middleJustify:{type:String,value:""}},ready:function(){console.warn(this.is,"is deprecated. Please use app-layout instead!")},attached:function(){this._observer=this._observe(this),this._updateAriaLabelledBy()},detached:function(){this._observer&&this._observer.disconnect()},_observe:function(t){var e=new MutationObserver(function(){this._updateAriaLabelledBy()}.bind(this));return e.observe(t,{childList:!0,subtree:!0}),e},_updateAriaLabelledBy:function(){zi();for(var t,e=[],n=Array.prototype.slice.call(qi(this.root).querySelectorAll("slot")).concat(Array.prototype.slice.call(qi(this.root).querySelectorAll("content"))),i=0;t=n[i];i++)for(var r,o=qi(t).getDistributedNodes(),a=0;r=o[a];a++)if(r.classList&&r.classList.contains("title"))if(r.id)e.push(r.id);else{var s="paper-toolbar-label-"+Math.floor(1e4*Math.random());r.id=s,e.push(s)}e.length>0&&this.setAttribute("aria-labelledby",e.join(" "))},_computeBarExtraClasses:function(t){return t?t+("justified"===t?"":"-justified"):""}}),
/**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
Ir({_template:_e`
    <style>
      :host {
        display: block;
        position: absolute;
        outline: none;
        z-index: 1002;
        -moz-user-select: none;
        -ms-user-select: none;
        -webkit-user-select: none;
        user-select: none;
        cursor: default;
      }

      #tooltip {
        display: block;
        outline: none;
        @apply --paper-font-common-base;
        font-size: 10px;
        line-height: 1;
        background-color: var(--paper-tooltip-background, #616161);
        color: var(--paper-tooltip-text-color, white);
        padding: 8px;
        border-radius: 2px;
        @apply --paper-tooltip;
      }

      @keyframes keyFrameScaleUp {
        0% {
          transform: scale(0.0);
        }
        100% {
          transform: scale(1.0);
        }
      }

      @keyframes keyFrameScaleDown {
        0% {
          transform: scale(1.0);
        }
        100% {
          transform: scale(0.0);
        }
      }

      @keyframes keyFrameFadeInOpacity {
        0% {
          opacity: 0;
        }
        100% {
          opacity: var(--paper-tooltip-opacity, 0.9);
        }
      }

      @keyframes keyFrameFadeOutOpacity {
        0% {
          opacity: var(--paper-tooltip-opacity, 0.9);
        }
        100% {
          opacity: 0;
        }
      }

      @keyframes keyFrameSlideDownIn {
        0% {
          transform: translateY(-2000px);
          opacity: 0;
        }
        10% {
          opacity: 0.2;
        }
        100% {
          transform: translateY(0);
          opacity: var(--paper-tooltip-opacity, 0.9);
        }
      }

      @keyframes keyFrameSlideDownOut {
        0% {
          transform: translateY(0);
          opacity: var(--paper-tooltip-opacity, 0.9);
        }
        10% {
          opacity: 0.2;
        }
        100% {
          transform: translateY(-2000px);
          opacity: 0;
        }
      }

      .fade-in-animation {
        opacity: 0;
        animation-delay: var(--paper-tooltip-delay-in, 500ms);
        animation-name: keyFrameFadeInOpacity;
        animation-iteration-count: 1;
        animation-timing-function: ease-in;
        animation-duration: var(--paper-tooltip-duration-in, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .fade-out-animation {
        opacity: var(--paper-tooltip-opacity, 0.9);
        animation-delay: var(--paper-tooltip-delay-out, 0ms);
        animation-name: keyFrameFadeOutOpacity;
        animation-iteration-count: 1;
        animation-timing-function: ease-in;
        animation-duration: var(--paper-tooltip-duration-out, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .scale-up-animation {
        transform: scale(0);
        opacity: var(--paper-tooltip-opacity, 0.9);
        animation-delay: var(--paper-tooltip-delay-in, 500ms);
        animation-name: keyFrameScaleUp;
        animation-iteration-count: 1;
        animation-timing-function: ease-in;
        animation-duration: var(--paper-tooltip-duration-in, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .scale-down-animation {
        transform: scale(1);
        opacity: var(--paper-tooltip-opacity, 0.9);
        animation-delay: var(--paper-tooltip-delay-out, 500ms);
        animation-name: keyFrameScaleDown;
        animation-iteration-count: 1;
        animation-timing-function: ease-in;
        animation-duration: var(--paper-tooltip-duration-out, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .slide-down-animation {
        transform: translateY(-2000px);
        opacity: 0;
        animation-delay: var(--paper-tooltip-delay-out, 500ms);
        animation-name: keyFrameSlideDownIn;
        animation-iteration-count: 1;
        animation-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
        animation-duration: var(--paper-tooltip-duration-out, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .slide-down-animation-out {
        transform: translateY(0);
        opacity: var(--paper-tooltip-opacity, 0.9);
        animation-delay: var(--paper-tooltip-delay-out, 500ms);
        animation-name: keyFrameSlideDownOut;
        animation-iteration-count: 1;
        animation-timing-function: cubic-bezier(0.4, 0.0, 1, 1);
        animation-duration: var(--paper-tooltip-duration-out, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .cancel-animation {
        animation-delay: -30s !important;
      }

      /* Thanks IE 10. */

      .hidden {
        display: none !important;
      }
    </style>

    <div id="tooltip" class="hidden">
      <slot></slot>
    </div>
`,is:"paper-tooltip",hostAttributes:{role:"tooltip",tabindex:-1},properties:{for:{type:String,observer:"_findTarget"},manualMode:{type:Boolean,value:!1,observer:"_manualModeChanged"},position:{type:String,value:"bottom"},fitToVisibleBounds:{type:Boolean,value:!1},offset:{type:Number,value:14},marginTop:{type:Number,value:14},animationDelay:{type:Number,value:500,observer:"_delayChange"},animationEntry:{type:String,value:""},animationExit:{type:String,value:""},animationConfig:{type:Object,value:function(){return{entry:[{name:"fade-in-animation",node:this,timing:{delay:0}}],exit:[{name:"fade-out-animation",node:this}]}}},_showing:{type:Boolean,value:!1}},listeners:{webkitAnimationEnd:"_onAnimationEnd"},get target(){var t=qi(this).parentNode,e=qi(this).getOwnerRoot();return this.for?qi(e).querySelector("#"+this.for):t.nodeType==Node.DOCUMENT_FRAGMENT_NODE?e.host:t},attached:function(){this._findTarget()},detached:function(){this.manualMode||this._removeListeners()},playAnimation:function(t){"entry"===t?this.show():"exit"===t&&this.hide()},cancelAnimation:function(){this.$.tooltip.classList.add("cancel-animation")},show:function(){if(!this._showing){if(""===qi(this).textContent.trim()){for(var t=!0,e=qi(this).getEffectiveChildNodes(),n=0;n<e.length;n++)if(""!==e[n].textContent.trim()){t=!1;break}if(t)return}this._showing=!0,this.$.tooltip.classList.remove("hidden"),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.updatePosition(),this._animationPlaying=!0,this.$.tooltip.classList.add(this._getAnimationType("entry"))}},hide:function(){if(this._showing){if(this._animationPlaying)return this._showing=!1,void this._cancelAnimation();this._onAnimationFinish(),this._showing=!1,this._animationPlaying=!0}},updatePosition:function(){if(this._target&&this.offsetParent){var t=this.offset;14!=this.marginTop&&14==this.offset&&(t=this.marginTop);var e,n,i=this.offsetParent.getBoundingClientRect(),r=this._target.getBoundingClientRect(),o=this.getBoundingClientRect(),a=(r.width-o.width)/2,s=(r.height-o.height)/2,l=r.left-i.left,c=r.top-i.top;switch(this.position){case"top":e=l+a,n=c-o.height-t;break;case"bottom":e=l+a,n=c+r.height+t;break;case"left":e=l-o.width-t,n=c+s;break;case"right":e=l+r.width+t,n=c+s}this.fitToVisibleBounds?(i.left+e+o.width>window.innerWidth?(this.style.right="0px",this.style.left="auto"):(this.style.left=Math.max(0,e)+"px",this.style.right="auto"),i.top+n+o.height>window.innerHeight?(this.style.bottom=i.height-c+t+"px",this.style.top="auto"):(this.style.top=Math.max(-i.top,n)+"px",this.style.bottom="auto")):(this.style.left=e+"px",this.style.top=n+"px")}},_addListeners:function(){this._target&&(this.listen(this._target,"mouseenter","show"),this.listen(this._target,"focus","show"),this.listen(this._target,"mouseleave","hide"),this.listen(this._target,"blur","hide"),this.listen(this._target,"tap","hide")),this.listen(this.$.tooltip,"animationend","_onAnimationEnd"),this.listen(this,"mouseenter","hide")},_findTarget:function(){this.manualMode||this._removeListeners(),this._target=this.target,this.manualMode||this._addListeners()},_delayChange:function(t){500!==t&&this.updateStyles({"--paper-tooltip-delay-in":t+"ms"})},_manualModeChanged:function(){this.manualMode?this._removeListeners():this._addListeners()},_cancelAnimation:function(){this.$.tooltip.classList.remove(this._getAnimationType("entry")),this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.add("hidden")},_onAnimationFinish:function(){this._showing&&(this.$.tooltip.classList.remove(this._getAnimationType("entry")),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.add(this._getAnimationType("exit")))},_onAnimationEnd:function(){this._animationPlaying=!1,this._showing||(this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.$.tooltip.classList.add("hidden"))},_getAnimationType:function(t){if("entry"===t&&""!==this.animationEntry)return this.animationEntry;if("exit"===t&&""!==this.animationExit)return this.animationExit;if(this.animationConfig[t]&&"string"==typeof this.animationConfig[t][0].name){if(this.animationConfig[t][0].timing&&this.animationConfig[t][0].timing.delay&&0!==this.animationConfig[t][0].timing.delay){var e=this.animationConfig[t][0].timing.delay;"entry"===t?this.updateStyles({"--paper-tooltip-delay-in":e+"ms"}):"exit"===t&&this.updateStyles({"--paper-tooltip-delay-out":e+"ms"})}return this.animationConfig[t][0].name}},_removeListeners:function(){this._target&&(this.unlisten(this._target,"mouseenter","show"),this.unlisten(this._target,"focus","show"),this.unlisten(this._target,"mouseleave","hide"),this.unlisten(this._target,"blur","hide"),this.unlisten(this._target,"tap","hide")),this.unlisten(this.$.tooltip,"animationend","_onAnimationEnd"),this.unlisten(this,"mouseenter","hide")}});class hs{constructor(t){this.listener=t}}const ds=new Set,ps=new Set;function fs(t){const e=new hs(t);return ds.add(e),e}function ms(t){const e=new hs(t);return ps.add(e),e}function gs(){ps.forEach((t=>t.listener()))}function _s(t){ds.delete(t)}function ys(t){ps.delete(t)}window.addEventListener("hashchange",(()=>{ds.forEach((t=>t.listener()))})),window.addEventListener("storage",(()=>{ps.forEach((t=>t.listener()))}));let vs=!1;function bs(){return vs}let xs="";function ws(t){xs=t}function Ss(){return xs}var Ms=Object.freeze({__proto__:null,setUseHash:function Es(t){vs=t},useHash:bs,setFakeHash:ws,getFakeHash:Ss});let Ts={};function Cs(){return bs()?window.location.hash.slice(1):Ss()}function As(t){const e={};return t.split("&").forEach((t=>{const n=t.split("=");1===n.length?e.__tab__=n[0]:2===n.length&&(e[decodeURIComponent(n[0])]=decodeURIComponent(n[1]))})),e}function ks(t,e=!1){if(bs())if(e){const e=new URL(window.location.href);e.hash=t,window.history.replaceState(null,"",e.toString())}else window.location.hash=t;else ws(t)}function Ls(t){let e="";void 0!==t.__tab__&&(e+=t.__tab__);const n=Object.keys(t).map((e=>[e,t[e]])).filter((t=>"__tab__"!==t[0])).map((t=>encodeURIComponent(t[0])+"="+encodeURIComponent(t[1]))).join("&");return n.length>0?e+"&"+n:e}fs((()=>{Ts=As(Cs())}));const{get:Ps,set:Ns,getInitializer:Is,getObserver:Os,disposeBinding:Rs}=Zs((t=>t),(t=>t)),{get:zs,set:Ds,getInitializer:Bs,getObserver:Hs,disposeBinding:Fs}=Zs((t=>"true"===t||"false"!==t&&void 0),(t=>t.toString())),{get:Vs,set:Us,getInitializer:js,getObserver:Gs,disposeBinding:Ws}=Zs((t=>+t),(t=>t.toString())),{get:qs,set:Ys,getInitializer:Xs,getObserver:$s,disposeBinding:Ks}=Zs((t=>JSON.parse(atob(t))),(t=>btoa(JSON.stringify(t))));function Zs(t,e){const n=[],i=[];function r(e,n={}){const{defaultValue:i,useLocalStorage:r=!1}=n,o=r?window.localStorage.getItem(e):As(Cs())[e];return null==o?we.cloneDeep(i):t(o)}function o(t,n,i={}){const{defaultValue:o,useLocalStorage:a=!1,useLocationReplace:s=!1}=i,l=e(n);if(a)window.localStorage.setItem(t,l),gs();else if(!we.isEqual(n,r(t,{useLocalStorage:a})))if(we.isEqual(n,o))!(function c(t){const e=As(Cs());delete e[t],ks(Ls(e))})(t);else{const e=As(Cs());e[t]=l,ks(Ls(e),s)}}return{get:r,set:o,getInitializer:function a(t,e){const o=Object.assign({defaultValue:e.defaultValue,polymerProperty:t,useLocalStorage:!1},e);return function(){const e=Js(this,t),a=()=>{const t=r(e,o);we.isEqual(t,this[o.polymerProperty])||(this[o.polymerProperty]=t)},s=(o.useLocalStorage?ms:fs)((()=>a()));return o.useLocalStorage?i.push(s):n.push(s),a(),this[o.polymerProperty]}},getObserver:function s(t,e){const n=Object.assign({defaultValue:e.defaultValue,polymerProperty:t,useLocalStorage:!1},e);return function(){o(Js(this,t),this[n.polymerProperty],n)}},disposeBinding:function l(){n.forEach((t=>_s(t))),i.forEach((t=>ys(t)))}}}function Js(t,e){const n=t.disambiguator;return(null==n?[e]:[n,e]).join(".")}let Qs=class extends ye{constructor(){super(...arguments),this._tagFilter=Is("tagFilter",{defaultValue:"",useLocalStorage:!1,polymerProperty:"_tagFilter"}).call(this),this._tagFilterObserver=Os("tagFilter",{defaultValue:"",useLocalStorage:!1,polymerProperty:"_tagFilter"})}_computeTagFilter(){return this._tagFilter}};function tl(t){const{moduleName:e,styleContent:n}=t,i=document.createElement("dom-module"),r=document.createElement("template"),o=[];t.styleDependencies&&t.styleDependencies.forEach((t=>{const e=document.createElement("style");e.setAttribute("include",t),o.push(e)}));const a=document.createElement("style");Object.assign(a,{textContent:n}),o.forEach((t=>{r.content.appendChild(t)})),r.content.appendChild(a),i.appendChild(r),i.register(e)}Qs.template=_e`
    <paper-input
      no-label-float=""
      label="Filter tags (regular expressions supported)"
      value="{{_tagFilter}}"
      class="search-input"
    >
      <iron-icon prefix="" icon="search" slot="prefix"></iron-icon>
    </paper-input>
    <style>
      :host {
        display: block;
        margin: 10px 5px 10px 10px;
      }
    </style>
  `,t([o({type:String,notify:!0,computed:"_computeTagFilter(_tagFilter)"}),e("design:type",String)],Qs.prototype,"tagFilter",void 0),t([o({type:String,observer:"_tagFilterObserver"}),e("design:type",String)],Qs.prototype,"_tagFilter",void 0),Qs=t([i("tf-tag-filterer")],Qs),tl({moduleName:"dashboard-style",styleDependencies:["iron-flex"],styleContent:"\n      :host {\n        --sidebar-vertical-padding: 15px;\n        --sidebar-left-padding: 30px;\n      }\n\n      [slot='sidebar'] {\n        box-sizing: border-box;\n        display: flex;\n        flex-direction: column;\n        height: 100%;\n        margin-right: 10px;\n        overflow-x: hidden;\n        padding: 5px 0;\n        text-overflow: ellipsis;\n      }\n\n      .settings {\n        min-height: 50px;\n        overflow-x: hidden;\n        overflow-y: auto;\n        will-change: transform;\n      }\n\n      .runs-selector {\n        display: flex;\n        flex-grow: 1;\n        min-height: 200px;\n      }\n\n      tf-runs-selector {\n        flex-grow: 1;\n        flex-shrink: 1;\n        left: var(--sidebar-left-padding);\n        max-height: calc(100% - var(--sidebar-vertical-padding) * 2);\n        overflow: hidden;\n        position: absolute;\n        right: 0;\n      }\n\n      .search-input {\n        margin: 10px 5px 0 10px;\n      }\n\n      .sidebar-section {\n        border-top: solid 1px var(--tb-ui-border);\n        margin-right: 10px;\n        padding: var(--sidebar-vertical-padding) 0\n          var(--sidebar-vertical-padding) var(--sidebar-left-padding);\n        position: relative;\n        overflow: hidden;\n      }\n\n      .sidebar-section:first-of-type {\n        border: none;\n      }\n\n      .sidebar-section paper-button {\n        margin: 5px;\n      }\n\n      .sidebar-section paper-button:first-of-type {\n        margin-left: 0 !important;\n      }\n\n      .sidebar-section paper-button:last-of-type {\n        margin-right: 0 !important;\n      }\n\n      .sidebar-section > :first-child {\n        margin-top: 0;\n        padding-top: 0;\n      }\n\n      .sidebar-section > :last-child {\n        margin-bottom: 0;\n        padding-bottom: 0;\n      }\n\n      .sidebar-section h3 {\n        color: var(--tb-secondary-text-color);\n        display: block;\n        font-size: 14px;\n        font-weight: normal;\n        margin: 10px 0 5px;\n        pointer-events: none;\n      }\n\n      paper-checkbox {\n        --paper-checkbox-checked-color: var(--tb-ui-dark-accent);\n        --paper-checkbox-unchecked-color: var(--tb-ui-dark-accent);\n        font-size: 15px;\n        margin-top: 5px;\n      }\n  "});const el=document.createElement("style");function nl(t){return class extends t{connectedCallback(){super.connectedCallback(),this._maybeSetDarkMode(),this.observer=new MutationObserver((t=>{t.some((t=>"class"===t.attributeName))&&this._maybeSetDarkMode()})),this.observer.observe(document.body,{attributes:!0})}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this.observer)||void 0===t||t.disconnect()}_maybeSetDarkMode(){this.classList.toggle("dark-mode",document.body.classList.contains("dark-mode"))}}}el.setAttribute("is","custom-style"),el.textContent="\n  :root {\n    --tb-orange-weak: #ffa726;\n    --tb-orange-strong: #f57c00;\n    --tb-orange-dark: #dc7320;\n    --tb-grey-darker: #e2e2e2;\n    --tb-grey-lighter: #f3f3f3;\n    --tb-ui-dark-accent: #757575;\n    --tb-ui-light-accent: #e0e0e0;\n    --tb-ui-border: var(--paper-grey-300);\n    --tb-graph-faded: #e0d4b3;\n    --tb-secondary-text-color: var(--paper-grey-800);\n    --tb-raised-button-shadow-color: rgba(0, 0, 0, 0.2);\n    --primary-background-color: #fff;\n    --secondary-background-color: #e9e9e9;\n    --tb-layout-background-color: #f5f5f5;\n  }\n\n  :root .dark-mode {\n    --tb-ui-border: var(--paper-grey-700);\n    --tb-ui-dark-accent: var(--paper-grey-400);\n    --tb-ui-light-accent: var(--paper-grey-600);\n    --tb-secondary-text-color: var(--paper-grey-400);\n    --tb-raised-button-shadow-color: rgba(255, 255, 255, 0.5);\n    --primary-text-color: #fff;\n    --secondary-text-color: var(--paper-grey-400);\n    --primary-background-color: #303030;  /* material grey A400. */\n    --secondary-background-color: #3a3a3a;\n    --tb-layout-background-color: #3a3a3a;\n    /* Overrides paper-material */\n    --shadow-elevation-2dp_-_box-shadow: 0 2px 2px 0 rgba(255, 255, 255, 0.14),\n      0 1px 5px 0 rgba(255, 255, 255, 0.12),\n      0 3px 1px -2px rgba(255, 255, 255, 0.2);\n  }\n",document.head.appendChild(el),tl({moduleName:"scrollbar-style",styleContent:"\n    .scrollbar::-webkit-scrollbar-track {\n      visibility: hidden;\n    }\n\n    .scrollbar::-webkit-scrollbar {\n      width: 10px;\n    }\n\n    .scrollbar::-webkit-scrollbar-thumb {\n      border-radius: 10px;\n      -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);\n      background-color: var(--paper-grey-500);\n      color: var(--paper-grey-900);\n    }\n    .scrollbar {\n      box-sizing: border-box;\n    }\n  "});let il=class extends(nl(ye)){};il.template=_e`
    <div id="sidebar">
      <slot name="sidebar"></slot>
    </div>

    <div id="center">
      <slot name="center" class="scollbar"></slot>
    </div>
    <style include="scrollbar-style"></style>
    <style>
      :host {
        background-color: #f5f5f5;
        display: flex;
        flex-direction: row;
        height: 100%;
      }

      :host(.dark-mode) {
        background-color: var(--secondary-background-color);
      }

      #sidebar {
        flex: 0 0 var(--tf-dashboard-layout-sidebar-basis, 25%);
        height: 100%;
        max-width: var(--tf-dashboard-layout-sidebar-max-width, 350px);
        min-width: var(--tf-dashboard-layout-sidebar-min-width, 270px);
        overflow-y: auto;
        text-overflow: ellipsis;
      }

      #center {
        flex-grow: 1;
        flex-shrink: 1;
        height: 100%;
        overflow: hidden;
      }

      ::slotted([slot='center']) {
        contain: strict;
        height: 100%;
        overflow-x: hidden;
        overflow-y: auto;
        width: 100%;
        will-change: transform;
      }

      .tf-graph-dashboard #center {
        background: #fff;
      }
    </style>
  `,il=t([i("tf-dashboard-layout")],il);const rl="TF.TensorBoard.PaginatedView.limit";let ol=null;const al=new Set;function sl(t){al.add(t)}function ll(t){al.delete(t)}function cl(){return null==ol&&(ol=Vs(rl,{useLocalStorage:!0}),(null==ol||!isFinite(ol)||ol<=0)&&(ol=12)),ol}class ul extends ye{updateArrayProp(t,e,n){let i=this.get(t);const r=e;if(!Array.isArray(r))throw RangeError(`Expected new value to '${t}' to be an array.`);Array.isArray(i)||(i=[],this.set(t,i));const o=new Set(r.map(((t,e)=>n(t,e))));let a=0,s=0;for(;a<i.length&&s<r.length;)o.has(n(i[a],a))?(n(i[a],a)==n(r[s],s)?this.set(`${t}.${a}`,r[s]):this.splice(t,a,0,r[s]),s++,a++):this.splice(t,a,1);a<i.length&&this.splice(t,a),s<r.length&&this.push(t,...r.slice(s))}}class hl extends ul{constructor(){super(...arguments),this.as="item",this._contentActive=!0,this._domBootstrapped=!1,this._ctor=null,this._renderedItems=[],this._renderedTemplateInst=new Map,this._lruCachedItems=new Map,this._cacheSize=10,this._getItemKey=t=>JSON.stringify(t),this._isConnected=!1}connectedCallback(){super.connectedCallback(),this._isConnected=!0}setCacheSize(t){this._cacheSize=t}setGetItemKey(t){this._getItemKey=t}updateDom(t){this.updateArrayProp("_renderedItems",t,this._getItemKey)}_ensureTemplatized(){if(!this.isConnected)return!1;if(!this._ctor){const t=this.querySelector("template");this._ctor=Xr(t,this,{parentModel:!0,instanceProps:{[this.as]:!0,active:this._contentActive},forwardHostProp:function(t,e){this._renderedTemplateInst.forEach((n=>{n.forwardHostProp(t,e)}))}})}return!0}_bootstrapDom(){this._ensureTemplatized()&&!this._domBootstrapped&&(new MutationObserver((t=>{for(const e of t)if("childList"===e.type)for(const t of Array.from(e.addedNodes))t instanceof Element&&t.setAttribute("slot","items")})).observe(this,{childList:!0}),Array.from(this.children).forEach((t=>{this.removeChild(t)})),this._lruCachedItems.clear(),this._renderedItems.forEach(((t,e)=>this._insertItem(t,e))),this._domBootstrapped=!0)}_updateActive(){this._domBootstrapped&&Array.from(this._renderedTemplateInst.values()).forEach((t=>{t.notifyPath("active",this._contentActive)}))}_updateDom(t){if(this._domBootstrapped&&"_renderedItems"!=t.path&&"_renderedItems.length"!=t.path)if("_renderedItems.splices"===t.path)t.value.indexSplices.forEach((t=>{const{index:e,addedCount:n,object:i,removed:r}=t;r.forEach((t=>{this._removeItem(t,this.children[e])})),i.slice(e,e+n).forEach(((t,n)=>this._insertItem(t,e+n))),this._trimCache()}));else{const e=this._getItemKey(t.value);this._renderedTemplateInst.has(e)?this._renderedTemplateInst.get(e).notifyPath(this.as,t.value):console.warn(`Expected '${e}' to exist in the DOM but could not find one.`)}}_insertItem(t,e){if(!this._ensureTemplatized())throw new Error("Expected templatized before inserting an item");let n;const i=this._getItemKey(t);if(this._lruCachedItems.has(i))n=this._lruCachedItems.get(i),this._lruCachedItems.delete(i),this._renderedTemplateInst.get(i).notifyPath("active",this._contentActive);else{const e=new this._ctor({[this.as]:t,active:this._contentActive});n=e.root,this._renderedTemplateInst.set(i,e)}this.children[e]?this.insertBefore(n,this.children[e]):((n.nodeType==Node.DOCUMENT_FRAGMENT_NODE?Array.from(n.children):[n]).forEach((t=>t.setAttribute("slot","items"))),this.appendChild(n))}_removeItem(t,e){e.parentNode&&e.parentNode.removeChild(e);const n=this._getItemKey(t);this._lruCachedItems.set(n,e),this._renderedTemplateInst.get(n).notifyPath("active",!1)}_trimCache(){for(;this._lruCachedItems.size>this._cacheSize;){const[t]=this._lruCachedItems.keys();this._lruCachedItems.delete(t),this._renderedTemplateInst.delete(t)}}}t([o({type:String}),e("design:type",Object)],hl.prototype,"as",void 0),t([o({type:Array}),e("design:type",Array)],hl.prototype,"items",void 0),t([o({type:Boolean}),e("design:type",Boolean)],hl.prototype,"_contentActive",void 0),t([o({type:Boolean}),e("design:type",Object)],hl.prototype,"_domBootstrapped",void 0),t([o({type:Object}),e("design:type",Object)],hl.prototype,"_ctor",void 0),t([o({type:Array}),e("design:type",Array)],hl.prototype,"_renderedItems",void 0),t([o({type:Object}),e("design:type",Object)],hl.prototype,"_renderedTemplateInst",void 0),t([o({type:Object}),e("design:type",Object)],hl.prototype,"_lruCachedItems",void 0),t([o({type:Number}),e("design:type",Object)],hl.prototype,"_cacheSize",void 0),t([o({type:Object}),e("design:type",Object)],hl.prototype,"_getItemKey",void 0),t([o({type:Boolean}),e("design:type",Object)],hl.prototype,"_isConnected",void 0),t([a("_isConnected"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],hl.prototype,"_bootstrapDom",null),t([a("_contentActive"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],hl.prototype,"_updateActive",null),t([a("_renderedItems.*","_domBootstrapped"),e("design:type",Function),e("design:paramtypes",[Object]),e("design:returntype",void 0)],hl.prototype,"_updateDom",null),t([a("_cacheSize"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],hl.prototype,"_trimCache",null);let dl=class extends hl{constructor(){super(...arguments),this.disablePagination=!1,this.getCategoryItemKey=t=>JSON.stringify(t),this._limit=12,this._activeIndex=0,this._pageInputRawValue="",this._pageInputFocused=!1}_computeCount(){return this.category.items.length}get _hasMultiple(){return this._count>1}_togglePane(){this.opened=!this.opened}_changeContentActive(t){this._contentActive=t}_onPaneRenderedChanged(t,e){t&&t!==e&&this.$.ifRendered.render()}_computePaneRendered(t){return!(t.metadata.type===vr.SEARCH_RESULTS&&""===t.name)}get _itemsRendered(){return this._paneRendered&&this.opened}_computeIsSearchResults(t){return t===vr.SEARCH_RESULTS}_computeIsInvalidSearchResults(t){return t.type===vr.SEARCH_RESULTS&&!t.validRegex}_computeIsUniversalSearchQuery(t){return t.type===vr.SEARCH_RESULTS&&t.universalRegex}_isCompositeSearch(){const{type:t,compositeSearch:e}=this.category.metadata;return e&&t===vr.SEARCH_RESULTS}ready(){super.ready(),this.opened=null==this.initialOpened||this.initialOpened,this._limitListener=()=>{this.set("_limit",cl())},sl(this._limitListener),this._limitListener()}detached(){ll(this._limitListener)}_updateRenderedItems(){var t=this._limit,e=this.disablePagination;if(!this._itemsRendered)return;const n=Math.floor(this._activeIndex/t),i=this.category.items||[],r=e?i:i.slice(n*t,(n+1)*t);this.updateDom(r)}_limitChanged(t){this.setCacheSize(2*t)}_getCategoryItemKeyChanged(){this.setGetItemKey(this.getCategoryItemKey)}get _currentPage(){return Math.floor(this._activeIndex/this._limit)+1}_computePageCount(t,e){return this.category?Math.ceil(this.category.items.length/e):0}get _multiplePagesExist(){return!this.disablePagination&&this._pageCount>1}get _hasPreviousPage(){return this._currentPage>1}get _hasNextPage(){return this._currentPage<this._pageCount}_computeInputWidth(t){return`calc(${t.toString().length}em + 20px)`}_setActiveIndex(t){const e=(this.category.items||[]).length-1;t>e&&(t=e),t<0&&(t=0),this.set("_activeIndex",t)}_clampActiveIndex(){this._setActiveIndex(this._activeIndex)}_performPreviousPage(){this._setActiveIndex(this._activeIndex-this._limit)}_performNextPage(){this._setActiveIndex(this._activeIndex+this._limit)}_computePageInputValue(t,e,n){return t?e:n.toString()}_handlePageInputEvent(t){this.set("_pageInputRawValue",t.target.value);const e=Number(t.target.value||NaN);if(isNaN(e))return;const n=Math.max(1,Math.min(e,this._pageCount))-1;this._setActiveIndex(this._limit*n)}_handlePageChangeEvent(){this.set("_pageInputRawValue",this._currentPage.toString())}_handlePageFocusEvent(){this.set("_pageInputRawValue",this._pageInputValue),this.set("_pageInputFocused",!0)}_handlePageBlurEvent(){this.set("_pageInputFocused",!1)}_updatePageInputValue(t){const e=this.shadowRoot.querySelector("#page-input input");e&&(e.value=t)}_updateInputWidth(){this.updateStyles({"--tf-category-paginated-view-page-input-width":this._inputWidth})}};dl.template=_e`
    <template is="dom-if" if="[[_paneRendered]]" id="ifRendered">
      <button class="heading" on-tap="_togglePane" open-button$="[[opened]]">
        <span class="name">
          <template is="dom-if" if="[[_isSearchResults]]">
            <template is="dom-if" if="[[_isCompositeSearch(category)]]">
              <span>Tags matching multiple experiments</span>
              <template is="dom-if" if="[[_isInvalidSearchResults]]">
                <span
                  >&nbsp;<strong>(malformed regular expression)</strong></span
                >
              </template>
            </template>
            <template is="dom-if" if="[[!_isCompositeSearch(category)]]">
              <span class="light">Tags matching /</span>
              <span class="category-name" title$="[[category.name]]"
                >[[category.name]]</span
              >
              <span class="light">/</span>
              <template is="dom-if" if="[[_isUniversalSearchQuery]]">
                <span> (all tags)</span>
              </template>
              <template is="dom-if" if="[[_isInvalidSearchResults]]">
                <span> <strong>(malformed regular expression)</strong></span>
              </template>
            </template>
          </template>
          <template is="dom-if" if="[[!_isSearchResults]]">
            <span class="category-name" title$="[[category.name]]"
              >[[category.name]]</span
            >
          </template>
        </span>
        <span class="count">
          <template is="dom-if" if="[[_hasMultiple]]">
            <span>[[_count]]</span>
          </template>
          <iron-icon icon="expand-more" class="expand-arrow"></iron-icon>
        </span>
      </button>
      <!-- TODO(stephanwlee): investigate further. For some reason,
        transitionend that the iron-collapse relies on sometimes does not
        trigger when rendering a chart with a spinner. A toy example cannot
        reproduce this bug. -->
      <iron-collapse opened="[[opened]]" no-animation="">
        <div class="content">
          <span id="top-of-container"></span>
          <template is="dom-if" if="[[_multiplePagesExist]]">
            <div class="big-page-buttons" style="margin-bottom: 10px;">
              <paper-button
                on-tap="_performPreviousPage"
                disabled$="[[!_hasPreviousPage]]"
                >Previous page</paper-button
              >
              <paper-button
                on-tap="_performNextPage"
                disabled$="[[!_hasNextPage]]"
                >Next page</paper-button
              >
            </div>
          </template>

          <div id="items">
            <slot name="items"></slot>
          </div>
          <template is="dom-if" if="[[_multiplePagesExist]]">
            <div id="controls-container">
              <div style="display: inline-block; padding: 0 5px">
                Page
                <paper-input
                  id="page-input"
                  type="number"
                  no-label-float=""
                  min="1"
                  max="[[_pageCount]]"
                  value="[[_pageInputValue]]"
                  on-input="_handlePageInputEvent"
                  on-change="_handlePageChangeEvent"
                  on-focus="_handlePageFocusEvent"
                  on-blur="_handlePageBlurEvent"
                ></paper-input>
                of [[_pageCount]]
              </div>
            </div>

            <div class="big-page-buttons" style="margin-top: 10px;">
              <paper-button
                on-tap="_performPreviousPage"
                disabled$="[[!_hasPreviousPage]]"
                >Previous page</paper-button
              >
              <paper-button
                on-tap="_performNextPage"
                disabled$="[[!_hasNextPage]]"
                >Next page</paper-button
              >
            </div>
          </template>
        </div>
      </iron-collapse>
    </template>
    <style>
      :host {
        display: block;
        margin: 0 5px 1px 10px;
      }

      :host(:first-of-type) {
        margin-top: 10px;
      }

      :host(:last-of-type) {
        margin-bottom: 20px;
      }

      .heading {
        background-color: var(--primary-background-color);
        border: none;
        color: inherit;
        cursor: pointer;
        width: 100%;
        font-size: 15px;
        line-height: 1;
        box-shadow: 0 1px 5px var(--tb-raised-button-shadow-color);
        padding: 10px 15px;
        display: flex;
        align-items: center;
        justify-content: space-between;
      }

      .heading::-moz-focus-inner {
        padding: 10px 15px;
      }

      [open-button] {
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
      }

      [open-button] .expand-arrow {
        transform: rotateZ(180deg);
      }

      .name {
        display: inline-flex;
        overflow: hidden;
      }

      .light {
        color: var(--paper-grey-500);
      }

      .category-name {
        white-space: pre;
        overflow: hidden;
        text-overflow: ellipsis;
        padding: 2px 0;
      }

      .count {
        margin: 0 5px;
        font-size: 12px;
        color: var(--paper-grey-500);
        display: flex;
        align-items: center;
        flex: none;
      }

      .heading::-moz-focus-inner {
        padding: 10px 15px;
      }

      .content {
        display: flex;
        flex-direction: column;
        background-color: var(--primary-background-color);
        border-bottom-left-radius: 2px;
        border-bottom-right-radius: 2px;
        border-top: none;
        border: 1px solid #dedede;
        padding: 15px;
      }

      .light {
        color: var(--paper-grey-500);
      }

      #controls-container {
        justify-content: center;
        display: flex;
        flex-direction: row;
        flex-grow: 0;
        flex-shrink: 0;
        width: 100%;
      }

      #controls-container paper-button {
        display: inline-block;
      }

      .big-page-buttons {
        display: flex;
      }

      .big-page-buttons paper-button {
        background-color: var(--tb-ui-light-accent);
        color: var(--tb-ui-dark-accent);
        display: inline-block;
        flex-basis: 0;
        flex-grow: 1;
        flex-shrink: 1;
        font-size: 13px;
      }

      .big-page-buttons paper-button[disabled] {
        background: none;
      }

      slot {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
      }

      ::slotted([slot='items']) {
        /* Tooltip for descriptions and others break with more strict ones. */
        contain: style;
      }

      #page-input {
        display: inline-block;
        width: var(--tf-category-paginated-view-page-input-width, 100%);
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],dl.prototype,"category",void 0),t([o({type:Boolean}),e("design:type",Boolean)],dl.prototype,"initialOpened",void 0),t([o({type:Boolean,notify:!0}),e("design:type",Boolean)],dl.prototype,"opened",void 0),t([o({type:Boolean}),e("design:type",Boolean)],dl.prototype,"disablePagination",void 0),t([o({type:Number,computed:"_computeCount(category.items.*)"}),e("design:type",Number)],dl.prototype,"_count",void 0),t([o({type:Boolean,computed:"_computePaneRendered(category)",observer:"_onPaneRenderedChanged"}),e("design:type",Boolean)],dl.prototype,"_paneRendered",void 0),t([o({type:Boolean,computed:"_computeIsSearchResults(category.metadata.type)"}),e("design:type",Boolean)],dl.prototype,"_isSearchResults",void 0),t([o({type:Boolean,computed:"_computeIsInvalidSearchResults(category.metadata)"}),e("design:type",Boolean)],dl.prototype,"_isInvalidSearchResults",void 0),t([o({type:Boolean,computed:"_computeIsUniversalSearchQuery(category.metadata)"}),e("design:type",Boolean)],dl.prototype,"_isUniversalSearchQuery",void 0),t([o({type:Object,observer:"_getCategoryItemKeyChanged"}),e("design:type",Object)],dl.prototype,"getCategoryItemKey",void 0),t([o({type:Number,observer:"_limitChanged"}),e("design:type",Number)],dl.prototype,"_limit",void 0),t([o({type:Number}),e("design:type",Number)],dl.prototype,"_activeIndex",void 0),t([o({type:Number,computed:"_computePageCount(category.items.*, _limit)"}),e("design:type",Number)],dl.prototype,"_pageCount",void 0),t([o({type:String,computed:"_computeInputWidth(_pageCount)",observer:"_updateInputWidth"}),e("design:type",String)],dl.prototype,"_inputWidth",void 0),t([o({type:String,computed:"_computePageInputValue(_pageInputFocused, _pageInputRawValue, _currentPage)",observer:"_updatePageInputValue"}),e("design:type",String)],dl.prototype,"_pageInputValue",void 0),t([o({type:String}),e("design:type",String)],dl.prototype,"_pageInputRawValue",void 0),t([o({type:Boolean}),e("design:type",Boolean)],dl.prototype,"_pageInputFocused",void 0),t([s("_count"),e("design:type",Boolean),e("design:paramtypes",[])],dl.prototype,"_hasMultiple",null),t([a("opened"),e("design:type",Function),e("design:paramtypes",[Boolean]),e("design:returntype",void 0)],dl.prototype,"_changeContentActive",null),t([s("opened","_paneRendered"),e("design:type",Boolean),e("design:paramtypes",[])],dl.prototype,"_itemsRendered",null),t([a("_itemsRendered","category.items.*","_limit","_activeIndex","_pageCount","disablePagination"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],dl.prototype,"_updateRenderedItems",null),t([s("_limit","_activeIndex"),e("design:type",Number),e("design:paramtypes",[])],dl.prototype,"_currentPage",null),t([s("_pageCount","disablePagination"),e("design:type",Boolean),e("design:paramtypes",[])],dl.prototype,"_multiplePagesExist",null),t([s("_currentPage"),e("design:type",Boolean),e("design:paramtypes",[])],dl.prototype,"_hasPreviousPage",null),t([s("_currentPage","_pageCount"),e("design:type",Boolean),e("design:paramtypes",[])],dl.prototype,"_hasNextPage",null),t([a("category.items.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],dl.prototype,"_clampActiveIndex",null),dl=t([i("tf-category-paginated-view")],dl);class pl{constructor(t){this.listener=t}}class fl{constructor(){this.requestManager=new hr(1),this._listeners=new Set,this.initialized=!1}refresh(){return this.load().then((()=>{this.initialized=!0}))}addListener(t){const e=new pl(t);return this._listeners.add(e),e}removeListenerByKey(t){this._listeners.delete(t)}emitChange(){this._listeners.forEach((t=>{try{t.listener()}catch(t){}}))}}class ml extends fl{load(){const t=gr().environment();return this.requestManager.request(t).then((t=>{const e={dataLocation:t.data_location,windowTitle:t.window_title};void 0!==t.experiment_name&&(e.experimentName=t.experiment_name),void 0!==t.experiment_description&&(e.experimentDescription=t.experiment_description),void 0!==t.creation_time&&(e.creationTime=t.creation_time),we.isEqual(this.environment,e)||(this.environment=e,this.emitChange())}))}getDataLocation(){return this.environment?this.environment.dataLocation:""}getWindowTitle(){return this.environment?this.environment.windowTitle:""}getExperimentName(){return this.environment?this.environment.experimentName:""}getExperimentDescription(){return this.environment?this.environment.experimentDescription:""}getCreationTime(){return this.environment?this.environment.creationTime:null}}const gl=new ml;class _l extends fl{constructor(){super(...arguments),this._runs=[]}load(){const t=gr().runs();return this.requestManager.request(t).then((t=>{we.isEqual(this._runs,t)||(this._runs=t,this.emitChange())}))}getRuns(){return this._runs.slice()}}const yl=new _l;function vl(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function bl(t){return 1===t.length&&(t=(function e(t){return function(e,n){return vl(t(e),n)}})(t)),{left:function(e,n,i,r){for(null==i&&(i=0),null==r&&(r=e.length);i<r;){var o=i+r>>>1;t(e[o],n)<0?i=o+1:r=o}return i},right:function(e,n,i,r){for(null==i&&(i=0),null==r&&(r=e.length);i<r;){var o=i+r>>>1;t(e[o],n)>0?r=o:i=o+1}return i}}}var xl=bl(vl),wl=xl.right,Sl=xl.left;function Ml(t,e){return[t,e]}function El(t,e,n){var i,r,o,a,s=t.length,l=e.length,c=new Array(s*l);for(null==n&&(n=Ml),i=o=0;i<s;++i)for(a=t[i],r=0;r<l;++r,++o)c[o]=n(a,e[r]);return c}function Tl(t){return null===t?NaN:+t}function Cl(t,e){var n,i,r=t.length,o=0,a=-1,s=0,l=0;if(null==e)for(;++a<r;)isNaN(n=Tl(t[a]))||(l+=(i=n-s)*(n-(s+=i/++o)));else for(;++a<r;)isNaN(n=Tl(e(t[a],a,t)))||(l+=(i=n-s)*(n-(s+=i/++o)));if(o>1)return l/(o-1)}function Al(t,e){var n=Cl(t,e);return n?Math.sqrt(n):n}function kl(t,e){var n,i,r,o=t.length,a=-1;if(null==e){for(;++a<o;)if(null!=(n=t[a])&&n>=n)for(i=r=n;++a<o;)null!=(n=t[a])&&(i>n&&(i=n),r<n&&(r=n))}else for(;++a<o;)if(null!=(n=e(t[a],a,t))&&n>=n)for(i=r=n;++a<o;)null!=(n=e(t[a],a,t))&&(i>n&&(i=n),r<n&&(r=n));return[i,r]}var Ll=Array.prototype,Pl=Ll.slice,Nl=Ll.map;function Il(t){return function(){return t}}function Ol(t){return t}function Rl(t,e,n){t=+t,e=+e,n=(r=arguments.length)<2?(e=t,t=0,1):r<3?1:+n;for(var i=-1,r=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(r);++i<r;)o[i]=t+i*n;return o}var zl=Math.sqrt(50),Dl=Math.sqrt(10),Bl=Math.sqrt(2);function Hl(t,e,n){var i,r,o,a,s=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((i=e<t)&&(r=t,t=e,e=r),0===(a=Fl(t,e,n))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),e=Math.floor(e/a),o=new Array(r=Math.ceil(e-t+1));++s<r;)o[s]=(t+s)*a;else for(t=Math.floor(t*a),e=Math.ceil(e*a),o=new Array(r=Math.ceil(t-e+1));++s<r;)o[s]=(t-s)/a;return i&&o.reverse(),o}function Fl(t,e,n){var i=(e-t)/Math.max(0,n),r=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,r);return r>=0?(o>=zl?10:o>=Dl?5:o>=Bl?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=zl?10:o>=Dl?5:o>=Bl?2:1)}function Vl(t,e,n){var i=Math.abs(e-t)/Math.max(0,n),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=zl?r*=10:o>=Dl?r*=5:o>=Bl&&(r*=2),e<t?-r:r}function Ul(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function jl(t,e,n){if(null==n&&(n=Tl),i=t.length){if((e=+e)<=0||i<2)return+n(t[0],0,t);if(e>=1)return+n(t[i-1],i-1,t);var i,r=(i-1)*e,o=Math.floor(r),a=+n(t[o],o,t);return a+(+n(t[o+1],o+1,t)-a)*(r-o)}}function Gl(t,e){var n,i,r=t.length,o=-1;if(null==e){for(;++o<r;)if(null!=(n=t[o])&&n>=n)for(i=n;++o<r;)null!=(n=t[o])&&n>i&&(i=n)}else for(;++o<r;)if(null!=(n=e(t[o],o,t))&&n>=n)for(i=n;++o<r;)null!=(n=e(t[o],o,t))&&n>i&&(i=n);return i}function Wl(t){for(var e,n,i,r=t.length,o=-1,a=0;++o<r;)a+=t[o].length;for(n=new Array(a);--r>=0;)for(e=(i=t[r]).length;--e>=0;)n[--a]=i[e];return n}function ql(t,e){var n,i,r=t.length,o=-1;if(null==e){for(;++o<r;)if(null!=(n=t[o])&&n>=n)for(i=n;++o<r;)null!=(n=t[o])&&i>n&&(i=n)}else for(;++o<r;)if(null!=(n=e(t[o],o,t))&&n>=n)for(i=n;++o<r;)null!=(n=e(t[o],o,t))&&i>n&&(i=n);return i}function Yl(t){if(!(r=t.length))return[];for(var e=-1,n=ql(t,Xl),i=new Array(n);++e<n;)for(var r,o=-1,a=i[e]=new Array(r);++o<r;)a[o]=t[o][e];return i}function Xl(t){return t.length}var $l=Array.prototype.slice;function Kl(t){return t}var Zl=1e-6;function Jl(t){return"translate("+(t+.5)+",0)"}function Ql(t){return"translate(0,"+(t+.5)+")"}function tc(t){return function(e){return+t(e)}}function ec(t){var e=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function nc(){return!this.__axis}function ic(t,e){var n=[],i=null,r=null,o=6,a=6,s=3,l=1===t||4===t?-1:1,c=4===t||2===t?"x":"y",u=1===t||3===t?Jl:Ql;function h(h){var d=null==i?e.ticks?e.ticks.apply(e,n):e.domain():i,p=null==r?e.tickFormat?e.tickFormat.apply(e,n):Kl:r,f=Math.max(o,0)+s,m=e.range(),g=+m[0]+.5,_=+m[m.length-1]+.5,y=(e.bandwidth?ec:tc)(e.copy()),v=h.selection?h.selection():h,b=v.selectAll(".domain").data([null]),x=v.selectAll(".tick").data(d,e).order(),w=x.exit(),S=x.enter().append("g").attr("class","tick"),M=x.select("line"),E=x.select("text");b=b.merge(b.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),x=x.merge(S),M=M.merge(S.append("line").attr("stroke","currentColor").attr(c+"2",l*o)),E=E.merge(S.append("text").attr("fill","currentColor").attr(c,l*f).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==v&&(b=b.transition(h),x=x.transition(h),M=M.transition(h),E=E.transition(h),w=w.transition(h).attr("opacity",Zl).attr("transform",(function(t){return isFinite(t=y(t))?u(t):this.getAttribute("transform")})),S.attr("opacity",Zl).attr("transform",(function(t){var e=this.parentNode.__axis;return u(e&&isFinite(e=e(t))?e:y(t))}))),w.remove(),b.attr("d",4===t||2==t?a?"M"+l*a+","+g+"H0.5V"+_+"H"+l*a:"M0.5,"+g+"V"+_:a?"M"+g+","+l*a+"V0.5H"+_+"V"+l*a:"M"+g+",0.5H"+_),x.attr("opacity",1).attr("transform",(function(t){return u(y(t))})),M.attr(c+"2",l*o),E.attr(c,l*f).text(p),v.filter(nc).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),v.each((function(){this.__axis=y}))}return h.scale=function(t){return arguments.length?(e=t,h):e},h.ticks=function(){return n=$l.call(arguments),h},h.tickArguments=function(t){return arguments.length?(n=null==t?[]:$l.call(t),h):n.slice()},h.tickValues=function(t){return arguments.length?(i=null==t?null:$l.call(t),h):i&&i.slice()},h.tickFormat=function(t){return arguments.length?(r=t,h):r},h.tickSize=function(t){return arguments.length?(o=a=+t,h):o},h.tickSizeInner=function(t){return arguments.length?(o=+t,h):o},h.tickSizeOuter=function(t){return arguments.length?(a=+t,h):a},h.tickPadding=function(t){return arguments.length?(s=+t,h):s},h}function rc(t){return ic(3,t)}function oc(t){return ic(4,t)}var ac={value:function(){}};function sc(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new lc(i)}function lc(t){this._=t}function cc(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function uc(t,e){for(var n,i=0,r=t.length;i<r;++i)if((n=t[i]).name===e)return n.value}function hc(t,e,n){for(var i=0,r=t.length;i<r;++i)if(t[i].name===e){t[i]=ac,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}lc.prototype=sc.prototype={constructor:lc,on:function(t,e){var n,i=this._,r=cc(t+"",i),o=-1,a=r.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o<a;)if(n=(t=r[o]).type)i[n]=hc(i[n],t.name,e);else if(null==e)for(n in i)i[n]=hc(i[n],t.name,null);return this}for(;++o<a;)if((n=(t=r[o]).type)&&(n=uc(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new lc(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,r=new Array(n),o=0;o<n;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(i=this._[t]).length;o<n;++o)i[o].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)}};var dc="http://www.w3.org/1999/xhtml",pc={svg:"http://www.w3.org/2000/svg",xhtml:dc,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function fc(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),pc.hasOwnProperty(e)?{space:pc[e],local:t}:t}function mc(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===dc&&e.documentElement.namespaceURI===dc?e.createElement(t):e.createElementNS(n,t)}}function gc(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function _c(t){var e=fc(t);return(e.local?gc:mc)(e)}function yc(){}function vc(t){return null==t?yc:function(){return this.querySelector(t)}}function bc(){return[]}function xc(t){return null==t?bc:function(){return this.querySelectorAll(t)}}function wc(t){return function(){return this.matches(t)}}function Sc(t){return new Array(t.length)}function Mc(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Ec(t,e,n,i,r,o){for(var a,s=0,l=e.length,c=o.length;s<c;++s)(a=e[s])?(a.__data__=o[s],i[s]=a):n[s]=new Mc(t,o[s]);for(;s<l;++s)(a=e[s])&&(r[s]=a)}function Tc(t,e,n,i,r,o,a){var s,l,c,u={},h=e.length,d=o.length,p=new Array(h);for(s=0;s<h;++s)(l=e[s])&&(p[s]=c="$"+a.call(l,l.__data__,s,e),c in u?r[s]=l:u[c]=l);for(s=0;s<d;++s)(l=u[c="$"+a.call(t,o[s],s,o)])?(i[s]=l,l.__data__=o[s],u[c]=null):n[s]=new Mc(t,o[s]);for(s=0;s<h;++s)(l=e[s])&&u[p[s]]===l&&(r[s]=l)}function Cc(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Ac(t){return function(){this.removeAttribute(t)}}function kc(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Lc(t,e){return function(){this.setAttribute(t,e)}}function Pc(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Nc(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function Ic(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Oc(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Rc(t){return function(){this.style.removeProperty(t)}}function zc(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Dc(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function Bc(t,e){return t.style.getPropertyValue(e)||Oc(t).getComputedStyle(t,null).getPropertyValue(e)}function Hc(t){return function(){delete this[t]}}function Fc(t,e){return function(){this[t]=e}}function Vc(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function Uc(t){return t.trim().split(/^|\s+/)}function jc(t){return t.classList||new Gc(t)}function Gc(t){this._node=t,this._names=Uc(t.getAttribute("class")||"")}function Wc(t,e){for(var n=jc(t),i=-1,r=e.length;++i<r;)n.add(e[i])}function qc(t,e){for(var n=jc(t),i=-1,r=e.length;++i<r;)n.remove(e[i])}function Yc(t){return function(){Wc(this,t)}}function Xc(t){return function(){qc(this,t)}}function $c(t,e){return function(){(e.apply(this,arguments)?Wc:qc)(this,t)}}function Kc(){this.textContent=""}function Zc(t){return function(){this.textContent=t}}function Jc(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function Qc(){this.innerHTML=""}function tu(t){return function(){this.innerHTML=t}}function eu(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function nu(){this.nextSibling&&this.parentNode.appendChild(this)}function iu(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ru(){return null}function ou(){var t=this.parentNode;t&&t.removeChild(this)}function au(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function su(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}Mc.prototype={constructor:Mc,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},Gc.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var lu={},cu=null;function uu(t,e,n){return t=hu(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function hu(t,e,n){return function(i){var r=cu;cu=i;try{t.call(this,this.__data__,e,n)}finally{cu=r}}}function du(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function pu(t){return function(){var e=this.__on;if(e){for(var n,i=0,r=-1,o=e.length;i<o;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.capture);++r?e.length=r:delete this.__on}}}function fu(t,e,n){var i=lu.hasOwnProperty(t.type)?uu:hu;return function(r,o,a){var s,l=this.__on,c=i(e,o,a);if(l)for(var u=0,h=l.length;u<h;++u)if((s=l[u]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=e);this.addEventListener(t.type,c,n),s={type:t.type,name:t.name,value:e,listener:c,capture:n},l?l.push(s):this.__on=[s]}}function mu(t,e,n,i){var r=cu;t.sourceEvent=cu,cu=t;try{return e.apply(n,i)}finally{cu=r}}function gu(t,e,n){var i=Oc(t),r=i.CustomEvent;"function"==typeof r?r=new r(e,n):(r=i.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function _u(t,e){return function(){return gu(this,t,e)}}function yu(t,e){return function(){return gu(this,t,e.apply(this,arguments))}}"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(lu={mouseenter:"mouseover",mouseleave:"mouseout"}));var vu=[null];function bu(t,e){this._groups=t,this._parents=e}function xu(){return new bu([[document.documentElement]],vu)}function wu(t){return"string"==typeof t?new bu([[document.querySelector(t)]],[document.documentElement]):new bu([[t]],vu)}bu.prototype=xu.prototype={constructor:bu,select:function Su(t){"function"!=typeof t&&(t=vc(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a,s=e[r],l=s.length,c=i[r]=new Array(l),u=0;u<l;++u)(o=s[u])&&(a=t.call(o,o.__data__,u,s))&&("__data__"in o&&(a.__data__=o.__data__),c[u]=a);return new bu(i,this._parents)},selectAll:function Mu(t){"function"!=typeof t&&(t=xc(t));for(var e=this._groups,n=e.length,i=[],r=[],o=0;o<n;++o)for(var a,s=e[o],l=s.length,c=0;c<l;++c)(a=s[c])&&(i.push(t.call(a,a.__data__,c,s)),r.push(a));return new bu(i,r)},filter:function Eu(t){"function"!=typeof t&&(t=wc(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a=e[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new bu(i,this._parents)},data:function Tu(t,e){if(!t)return f=new Array(this.size()),u=-1,this.each((function(t){f[++u]=t})),f;var n=e?Tc:Ec,i=this._parents,r=this._groups;"function"!=typeof t&&(t=(function o(t){return function(){return t}})(t));for(var a=r.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var h=i[u],d=r[u],p=d.length,f=t.call(h,h&&h.__data__,u,i),m=f.length,g=l[u]=new Array(m),_=s[u]=new Array(m);n(h,d,g,_,c[u]=new Array(p),f,e);for(var y,v,b=0,x=0;b<m;++b)if(y=g[b]){for(b>=x&&(x=b+1);!(v=_[x])&&++x<m;);y._next=v||null}}return(s=new bu(s,i))._enter=l,s._exit=c,s},enter:function Cu(){return new bu(this._enter||this._groups.map(Sc),this._parents)},exit:function Au(){return new bu(this._exit||this._groups.map(Sc),this._parents)},join:function ku(t,e,n){var i=this.enter(),r=this,o=this.exit();return i="function"==typeof t?t(i):i.append(t+""),null!=e&&(r=e(r)),null==n?o.remove():n(o),i&&r?i.merge(r).order():r},merge:function Lu(t){for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new bu(o,this._parents)},order:function Pu(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,r=t[e],o=r.length-1,a=r[o];--o>=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function Nu(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=Cc);for(var n=this._groups,i=n.length,r=new Array(i),o=0;o<i;++o){for(var a,s=n[o],l=s.length,c=r[o]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(e)}return new bu(r,this._parents).order()},call:function Iu(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function Ou(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t},node:function Ru(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],r=0,o=i.length;r<o;++r){var a=i[r];if(a)return a}return null},size:function zu(){var t=0;return this.each((function(){++t})),t},empty:function Du(){return!this.node()},each:function Bu(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var r,o=e[n],a=0,s=o.length;a<s;++a)(r=o[a])&&t.call(r,r.__data__,a,o);return this},attr:function Hu(t,e){var n=fc(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?kc:Ac:"function"==typeof e?n.local?Ic:Nc:n.local?Pc:Lc)(n,e))},style:function Fu(t,e,n){return arguments.length>1?this.each((null==e?Rc:"function"==typeof e?Dc:zc)(t,e,null==n?"":n)):Bc(this.node(),t)},property:function Vu(t,e){return arguments.length>1?this.each((null==e?Hc:"function"==typeof e?Vc:Fc)(t,e)):this.node()[t]},classed:function Uu(t,e){var n=Uc(t+"");if(arguments.length<2){for(var i=jc(this.node()),r=-1,o=n.length;++r<o;)if(!i.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?$c:e?Yc:Xc)(n,e))},text:function ju(t){return arguments.length?this.each(null==t?Kc:("function"==typeof t?Jc:Zc)(t)):this.node().textContent},html:function Gu(t){return arguments.length?this.each(null==t?Qc:("function"==typeof t?eu:tu)(t)):this.node().innerHTML},raise:function Wu(){return this.each(nu)},lower:function qu(){return this.each(iu)},append:function Yu(t){var e="function"==typeof t?t:_c(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function Xu(t,e){var n="function"==typeof t?t:_c(t),i=null==e?ru:"function"==typeof e?e:vc(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function $u(){return this.each(ou)},clone:function Ku(t){return this.select(t?su:au)},datum:function Zu(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function Ju(t,e,n){var i,r,o=du(t+""),a=o.length;if(!(arguments.length<2)){for(s=e?fu:pu,null==n&&(n=!1),i=0;i<a;++i)this.each(s(o[i],e,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(i=0,l=s[c];i<a;++i)if((r=o[i]).type===l.type&&r.name===l.name)return l.value},dispatch:function Qu(t,e){return this.each(("function"==typeof e?yu:_u)(t,e))}};var th=0;function eh(){return new nh}function nh(){this._="@"+(++th).toString(36)}function ih(){for(var t,e=cu;t=e.sourceEvent;)e=t;return e}function rh(t,e){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var i=n.createSVGPoint();return i.x=e.clientX,i.y=e.clientY,[(i=i.matrixTransform(t.getScreenCTM().inverse())).x,i.y]}var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}function oh(t){var e=ih();return e.changedTouches&&(e=e.changedTouches[0]),rh(t,e)}function ah(t){return"string"==typeof t?new bu([document.querySelectorAll(t)],[document.documentElement]):new bu([null==t?[]:t],vu)}function sh(t,e,n){arguments.length<3&&(n=e,e=ih().changedTouches);for(var i,r=0,o=e?e.length:0;r<o;++r)if((i=e[r]).identifier===n)return rh(t,i);return null}function lh(){cu.stopImmediatePropagation()}function ch(){cu.preventDefault(),cu.stopImmediatePropagation()}function uh(t){var e=t.document.documentElement,n=wu(t).on("dragstart.drag",ch,!0);"onselectstart"in e?n.on("selectstart.drag",ch,!0):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function hh(t,e){var n=t.document.documentElement,i=wu(t).on("dragstart.drag",null);e&&(i.on("click.drag",ch,!0),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in n?i.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function dh(t){return function(){return t}}function ph(t,e,n,i,r,o,a,s,l,c){this.target=t,this.type=e,this.subject=n,this.identifier=i,this.active=r,this.x=o,this.y=a,this.dx=s,this.dy=l,this._=c}function fh(){return!cu.ctrlKey&&!cu.button}function mh(){return this.parentNode}function gh(t){return null==t?{x:cu.x,y:cu.y}:t}function _h(){return navigator.maxTouchPoints||"ontouchstart"in this}function yh(){var t,e,n,i,r=fh,o=mh,a=gh,s=_h,l={},c=sc("start","drag","end"),u=0,h=0;function d(t){t.on("mousedown.drag",p).filter(s).on("touchstart.drag",g).on("touchmove.drag",_).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(){if(!i&&r.apply(this,arguments)){var a=v("mouse",o.apply(this,arguments),oh,this,arguments);a&&(wu(cu.view).on("mousemove.drag",f,!0).on("mouseup.drag",m,!0),uh(cu.view),lh(),n=!1,t=cu.clientX,e=cu.clientY,a("start"))}}function f(){if(ch(),!n){var i=cu.clientX-t,r=cu.clientY-e;n=i*i+r*r>h}l.mouse("drag")}function m(){wu(cu.view).on("mousemove.drag mouseup.drag",null),hh(cu.view,n),ch(),l.mouse("end")}function g(){if(r.apply(this,arguments)){var t,e,n=cu.changedTouches,i=o.apply(this,arguments),a=n.length;for(t=0;t<a;++t)(e=v(n[t].identifier,i,sh,this,arguments))&&(lh(),e("start"))}}function _(){var t,e,n=cu.changedTouches,i=n.length;for(t=0;t<i;++t)(e=l[n[t].identifier])&&(ch(),e("drag"))}function y(){var t,e,n=cu.changedTouches,r=n.length;for(i&&clearTimeout(i),i=setTimeout((function(){i=null}),500),t=0;t<r;++t)(e=l[n[t].identifier])&&(lh(),e("end"))}function v(t,e,n,i,r){var o,s,h,p=n(e,t),f=c.copy();if(mu(new ph(d,"beforestart",o,t,u,p[0],p[1],0,0,f),(function(){return null!=(cu.subject=o=a.apply(i,r))&&(s=o.x-p[0]||0,h=o.y-p[1]||0,!0)})))return function a(c){var m,g=p;switch(c){case"start":l[t]=a,m=u++;break;case"end":delete l[t],--u;case"drag":p=n(e,t),m=u}mu(new ph(d,c,o,t,m,p[0]+s,p[1]+h,p[0]-g[0],p[1]-g[1],f),f.apply,f,[c,i,r])}}return d.filter=function(t){return arguments.length?(r="function"==typeof t?t:dh(!!t),d):r},d.container=function(t){return arguments.length?(o="function"==typeof t?t:dh(t),d):o},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:dh(t),d):a},d.touchable=function(t){return arguments.length?(s="function"==typeof t?t:dh(!!t),d):s},d.on=function(){var t=c.on.apply(c,arguments);return t===c?d:t},d.clickDistance=function(t){return arguments.length?(h=(t=+t)*t,d):Math.sqrt(h)},d}function vh(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function bh(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function xh(){}nh.prototype=eh.prototype={constructor:nh,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}},ph.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var wh=.7,Sh=1/wh,Mh="\\s*([+-]?\\d+)\\s*",Eh="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Th="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ch=/^#([0-9a-f]{3,8})$/,Ah=new RegExp("^rgb\\("+[Mh,Mh,Mh]+"\\)$"),kh=new RegExp("^rgb\\("+[Th,Th,Th]+"\\)$"),Lh=new RegExp("^rgba\\("+[Mh,Mh,Mh,Eh]+"\\)$"),Ph=new RegExp("^rgba\\("+[Th,Th,Th,Eh]+"\\)$"),Nh=new RegExp("^hsl\\("+[Eh,Th,Th]+"\\)$"),Ih=new RegExp("^hsla\\("+[Eh,Th,Th,Eh]+"\\)$"),Oh={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Rh(){return this.rgb().formatHex()}function zh(){return this.rgb().formatRgb()}function Dh(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Ch.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Bh(e):3===n?new Uh(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Hh(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Hh(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Ah.exec(t))?new Uh(e[1],e[2],e[3],1):(e=kh.exec(t))?new Uh(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Lh.exec(t))?Hh(e[1],e[2],e[3],e[4]):(e=Ph.exec(t))?Hh(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Nh.exec(t))?qh(e[1],e[2]/100,e[3]/100,1):(e=Ih.exec(t))?qh(e[1],e[2]/100,e[3]/100,e[4]):Oh.hasOwnProperty(t)?Bh(Oh[t]):"transparent"===t?new Uh(NaN,NaN,NaN,0):null}function Bh(t){return new Uh(t>>16&255,t>>8&255,255&t,1)}function Hh(t,e,n,i){return i<=0&&(t=e=n=NaN),new Uh(t,e,n,i)}function Fh(t){return t instanceof xh||(t=Dh(t)),t?new Uh((t=t.rgb()).r,t.g,t.b,t.opacity):new Uh}function Vh(t,e,n,i){return 1===arguments.length?Fh(t):new Uh(t,e,n,null==i?1:i)}function Uh(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function jh(){return"#"+Wh(this.r)+Wh(this.g)+Wh(this.b)}function Gh(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function Wh(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function qh(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new $h(t,e,n,i)}function Yh(t){if(t instanceof $h)return new $h(t.h,t.s,t.l,t.opacity);if(t instanceof xh||(t=Dh(t)),!t)return new $h;if(t instanceof $h)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),o=Math.max(e,n,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=e===o?(n-i)/s+6*(n<i):n===o?(i-e)/s+2:(e-n)/s+4,s/=l<.5?o+r:2-o-r,a*=60):s=l>0&&l<1?0:a,new $h(a,s,l,t.opacity)}function Xh(t,e,n,i){return 1===arguments.length?Yh(t):new $h(t,e,n,null==i?1:i)}function $h(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function Kh(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}vh(xh,Dh,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Rh,formatHex:Rh,formatHsl:function Zh(){return Yh(this).formatHsl()},formatRgb:zh,toString:zh}),vh(Uh,Vh,bh(xh,{brighter:function(t){return t=null==t?Sh:Math.pow(Sh,t),new Uh(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?wh:Math.pow(wh,t),new Uh(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:jh,formatHex:jh,formatRgb:Gh,toString:Gh})),vh($h,Xh,bh(xh,{brighter:function(t){return t=null==t?Sh:Math.pow(Sh,t),new $h(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?wh:Math.pow(wh,t),new $h(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new Uh(Kh(t>=240?t-240:t+120,r,i),Kh(t,r,i),Kh(t<120?t+240:t-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var Jh=Math.PI/180,Qh=180/Math.PI,td=.96422,ed=.82521,nd=4/29,id=6/29,rd=3*id*id;function od(t){if(t instanceof sd)return new sd(t.l,t.a,t.b,t.opacity);if(t instanceof fd)return md(t);t instanceof Uh||(t=Fh(t));var e,n,i=hd(t.r),r=hd(t.g),o=hd(t.b),a=ld((.2225045*i+.7168786*r+.0606169*o)/1);return i===r&&r===o?e=n=a:(e=ld((.4360747*i+.3850649*r+.1430804*o)/td),n=ld((.0139322*i+.0971045*r+.7141733*o)/ed)),new sd(116*a-16,500*(e-a),200*(a-n),t.opacity)}function ad(t,e,n,i){return 1===arguments.length?od(t):new sd(t,e,n,null==i?1:i)}function sd(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}function ld(t){return t>.008856451679035631?Math.pow(t,1/3):t/rd+nd}function cd(t){return t>id?t*t*t:rd*(t-nd)}function ud(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function hd(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function dd(t){if(t instanceof fd)return new fd(t.h,t.c,t.l,t.opacity);if(t instanceof sd||(t=od(t)),0===t.a&&0===t.b)return new fd(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Qh;return new fd(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function pd(t,e,n,i){return 1===arguments.length?dd(t):new fd(t,e,n,null==i?1:i)}function fd(t,e,n,i){this.h=+t,this.c=+e,this.l=+n,this.opacity=+i}function md(t){if(isNaN(t.h))return new sd(t.l,0,0,t.opacity);var e=t.h*Jh;return new sd(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}vh(sd,ad,bh(xh,{brighter:function(t){return new sd(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new sd(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return new Uh(ud(3.1338561*(e=td*cd(e))-1.6168667*(t=1*cd(t))-.4906146*(n=ed*cd(n))),ud(-.9787684*e+1.9161415*t+.033454*n),ud(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),vh(fd,pd,bh(xh,{brighter:function(t){return new fd(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new fd(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return md(this).rgb()}}));var gd=-.29227,_d=-.90649,yd=1.97294;function vd(t){if(t instanceof xd)return new xd(t.h,t.s,t.l,t.opacity);t instanceof Uh||(t=Fh(t));var e=t.g/255,n=t.b/255,i=(-.6557636667999999*n+t.r/255*-1.7884503806-3.5172982438*e)/-5.9615122912,r=n-i,o=(yd*(e-i)-gd*r)/_d,a=Math.sqrt(o*o+r*r)/(yd*i*(1-i)),s=a?Math.atan2(o,r)*Qh-120:NaN;return new xd(s<0?s+360:s,a,i,t.opacity)}function bd(t,e,n,i){return 1===arguments.length?vd(t):new xd(t,e,n,null==i?1:i)}function xd(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function wd(t,e,n,i,r){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*i+a*r)/6}function Sd(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),r=t[i],o=t[i+1];return wd((n-i/e)*e,i>0?t[i-1]:2*r-o,r,o,i<e-1?t[i+2]:2*o-r)}}function Md(t){var e=t.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*e);return wd((n-i/e)*e,t[(i+e-1)%e],t[i%e],t[(i+1)%e],t[(i+2)%e])}}function Ed(t){return function(){return t}}function Td(t,e){return function(n){return t+n*e}}function Cd(t,e){var n=e-t;return n?Td(t,n>180||n<-180?n-360*Math.round(n/360):n):Ed(isNaN(t)?e:t)}function Ad(t,e){var n=e-t;return n?Td(t,n):Ed(isNaN(t)?e:t)}vh(xd,bd,bh(xh,{brighter:function(t){return t=null==t?Sh:Math.pow(Sh,t),new xd(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?wh:Math.pow(wh,t),new xd(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Jh,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),i=Math.cos(t),r=Math.sin(t);return new Uh(255*(e+n*(-.14861*i+1.78277*r)),255*(e+n*(gd*i+_d*r)),255*(e+n*(yd*i)),this.opacity)}}));var kd=(function t(e){var n=(function i(t){return 1==(t=+t)?Ad:function(e,n){return n-e?(function i(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}})(e,n,t):Ed(isNaN(e)?n:e)}})(e);function r(t,e){var i=n((t=Vh(t)).r,(e=Vh(e)).r),r=n(t.g,e.g),o=n(t.b,e.b),a=Ad(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=r(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r})(1);function Ld(t){return function(e){var n,i,r=e.length,o=new Array(r),a=new Array(r),s=new Array(r);for(n=0;n<r;++n)i=Vh(e[n]),o[n]=i.r||0,a[n]=i.g||0,s[n]=i.b||0;return o=t(o),a=t(a),s=t(s),i.opacity=1,function(t){return i.r=o(t),i.g=a(t),i.b=s(t),i+""}}}var Pd=Ld(Sd),Nd=Ld(Md);function Id(t,e){e||(e=[]);var n,i=t?Math.min(e.length,t.length):0,r=e.slice();return function(o){for(n=0;n<i;++n)r[n]=t[n]*(1-o)+e[n]*o;return r}}function Od(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Rd(t,e){var n,i=e?e.length:0,r=t?Math.min(i,t.length):0,o=new Array(r),a=new Array(i);for(n=0;n<r;++n)o[n]=Ud(t[n],e[n]);for(;n<i;++n)a[n]=e[n];return function(t){for(n=0;n<r;++n)a[n]=o[n](t);return a}}function zd(t,e){var n=new Date;return t=+t,e=+e,function(i){return n.setTime(t*(1-i)+e*i),n}}function Dd(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Bd(t,e){var n,i={},r={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?i[n]=Ud(t[n],e[n]):r[n]=e[n];return function(t){for(n in i)r[n]=i[n](t);return r}}var Hd=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Fd=new RegExp(Hd.source,"g");function Vd(t,e){var n,i,r,o=Hd.lastIndex=Fd.lastIndex=0,a=-1,s=[],l=[];for(t+="",e+="";(n=Hd.exec(t))&&(i=Fd.exec(e));)(r=i.index)>o&&(r=e.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:Dd(n,i)})),o=Fd.lastIndex;return o<e.length&&(r=e.slice(o),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?(function c(t){return function(e){return t(e)+""}})(l[0].x):(function u(t){return function(){return t}})(e):(e=l.length,function(t){for(var n,i=0;i<e;++i)s[(n=l[i]).i]=n.x(t);return s.join("")})}function Ud(t,e){var n,i=typeof e;return null==e||"boolean"===i?Ed(e):("number"===i?Dd:"string"===i?(n=Dh(e))?(e=n,kd):Vd:e instanceof Dh?kd:e instanceof Date?zd:Od(e)?Id:Array.isArray(e)?Rd:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Bd:Dd)(t,e)}function jd(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var Gd,Wd,qd,Yd,Xd=180/Math.PI,$d={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Kd(t,e,n,i,r,o){var a,s,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*n+e*i)&&(n-=t*l,i-=e*l),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,l/=s),t*i<e*n&&(t=-t,e=-e,l=-l,a=-a),{translateX:r,translateY:o,rotate:Math.atan2(e,t)*Xd,skewX:Math.atan(l)*Xd,scaleX:a,scaleY:s}}function Zd(t,e,n,i){function r(t){return t.length?t.pop()+" ":""}return function(o,a){var s=[],l=[];return o=t(o),a=t(a),(function c(t,i,r,o,a,s){if(t!==r||i!==o){var l=a.push("translate(",null,e,null,n);s.push({i:l-4,x:Dd(t,r)},{i:l-2,x:Dd(i,o)})}else(r||o)&&a.push("translate("+r+e+o+n)})(o.translateX,o.translateY,a.translateX,a.translateY,s,l),(function u(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:Dd(t,e)})):e&&n.push(r(n)+"rotate("+e+i)})(o.rotate,a.rotate,s,l),(function h(t,e,n,o){t!==e?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:Dd(t,e)}):e&&n.push(r(n)+"skewX("+e+i)})(o.skewX,a.skewX,s,l),(function d(t,e,n,i,o,a){if(t!==n||e!==i){var s=o.push(r(o)+"scale(",null,",",null,")");a.push({i:s-4,x:Dd(t,n)},{i:s-2,x:Dd(e,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")})(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(t){for(var e,n=-1,i=l.length;++n<i;)s[(e=l[n]).i]=e.x(t);return s.join("")}}}var Jd=Zd((function Qd(t){return"none"===t?$d:(Gd||(Gd=document.createElement("DIV"),Wd=document.documentElement,qd=document.defaultView),Gd.style.transform=t,t=qd.getComputedStyle(Wd.appendChild(Gd),null).getPropertyValue("transform"),Wd.removeChild(Gd),Kd(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),tp=Zd((function ep(t){return null==t?$d:(Yd||(Yd=document.createElementNS("http://www.w3.org/2000/svg","g")),Yd.setAttribute("transform",t),(t=Yd.transform.baseVal.consolidate())?Kd((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):$d)}),", ",")",")"),np=Math.SQRT2;function ip(t){return((t=Math.exp(t))+1/t)/2}function rp(t,e){var n,i,r=t[0],o=t[1],a=t[2],s=e[2],l=e[0]-r,c=e[1]-o,u=l*l+c*c;if(u<1e-12)i=Math.log(s/a)/np,n=function(t){return[r+t*l,o+t*c,a*Math.exp(np*t*i)]};else{var h=Math.sqrt(u),d=(s*s-a*a+4*u)/(2*a*2*h),p=(s*s-a*a-4*u)/(2*s*2*h),f=Math.log(Math.sqrt(d*d+1)-d),m=Math.log(Math.sqrt(p*p+1)-p);i=(m-f)/np,n=function(t){var e=t*i,n=ip(f),s=a/(2*h)*(n*(function u(t){return((t=Math.exp(2*t))-1)/(t+1)})(np*e+f)-(function d(t){return((t=Math.exp(t))-1/t)/2})(f));return[r+s*l,o+s*c,a*n/ip(np*e+f)]}}return n.duration=1e3*i,n}function op(t){return function(e,n){var i=t((e=Xh(e)).h,(n=Xh(n)).h),r=Ad(e.s,n.s),o=Ad(e.l,n.l),a=Ad(e.opacity,n.opacity);return function(t){return e.h=i(t),e.s=r(t),e.l=o(t),e.opacity=a(t),e+""}}}var ap=op(Cd),sp=op(Ad);function lp(t,e){var n=Ad((t=ad(t)).l,(e=ad(e)).l),i=Ad(t.a,e.a),r=Ad(t.b,e.b),o=Ad(t.opacity,e.opacity);return function(e){return t.l=n(e),t.a=i(e),t.b=r(e),t.opacity=o(e),t+""}}function cp(t){return function(e,n){var i=t((e=pd(e)).h,(n=pd(n)).h),r=Ad(e.c,n.c),o=Ad(e.l,n.l),a=Ad(e.opacity,n.opacity);return function(t){return e.h=i(t),e.c=r(t),e.l=o(t),e.opacity=a(t),e+""}}}var up=cp(Cd),hp=cp(Ad);function dp(t){return(function e(n){function i(e,i){var r=t((e=bd(e)).h,(i=bd(i)).h),o=Ad(e.s,i.s),a=Ad(e.l,i.l),s=Ad(e.opacity,i.opacity);return function(t){return e.h=r(t),e.s=o(t),e.l=a(Math.pow(t,n)),e.opacity=s(t),e+""}}return n=+n,i.gamma=e,i})(1)}var pp,fp,mp=dp(Cd),gp=dp(Ad),_p=0,yp=0,vp=0,bp=0,xp=0,wp=0,Sp="object"==typeof performance&&performance.now?performance:Date,Mp="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Ep(){return xp||(Mp(Tp),xp=Sp.now()+wp)}function Tp(){xp=0}function Cp(){this._call=this._time=this._next=null}function Ap(t,e,n){var i=new Cp;return i.restart(t,e,n),i}function kp(){Ep(),++_p;for(var t,e=pp;e;)(t=xp-e._time)>=0&&e._call.call(null,t),e=e._next;--_p}function Lp(){xp=(bp=Sp.now())+wp,_p=yp=0;try{kp()}finally{_p=0,(function t(){for(var t,e,n=pp,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:pp=e);fp=t,Np(i)})(),xp=0}}function Pp(){var t=Sp.now(),e=t-bp;e>1e3&&(wp-=e,bp=t)}function Np(t){_p||(yp&&(yp=clearTimeout(yp)),t-xp>24?(t<1/0&&(yp=setTimeout(Lp,t-Sp.now()-wp)),vp&&(vp=clearInterval(vp))):(vp||(bp=Sp.now(),vp=setInterval(Pp,1e3)),_p=1,Mp(Lp)))}function Ip(t,e,n){var i=new Cp;return i.restart((function(n){i.stop(),t(n+e)}),e=null==e?0:+e,n),i}Cp.prototype=Ap.prototype={constructor:Cp,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?Ep():+n)+(null==e?0:+e),this._next||fp===this||(fp?fp._next=this:pp=this,fp=this),this._call=t,this._time=n,Np()},stop:function(){this._call&&(this._call=null,this._time=1/0,Np())}};var Op=sc("start","end","cancel","interrupt"),Rp=[];function zp(t,e,n,i,r,o){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!(function s(t,e,n){var i,r=t.__transition;function o(l){var c,u,h,d;if(1!==n.state)return s();for(c in r)if((d=r[c]).name===n.name){if(3===d.state)return Ip(o);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[c]):+c<e&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[c])}if(Ip((function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(l))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,i=new Array(h=n.tween.length),c=0,u=-1;c<h;++c)(d=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(i[++u]=d);i.length=u+1}}function a(e){for(var r=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(s),n.state=5,1),o=-1,a=i.length;++o<a;)i[o].call(t,r);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),s())}function s(){for(var i in n.state=6,n.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=n,n.timer=Ap((function l(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}),0,n.time)})(t,n,{name:e,index:i,group:r,on:Op,tween:Rp,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function Dp(t,e){var n=Hp(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function Bp(t,e){var n=Hp(t,e);if(n.state>3)throw new Error("too late; already running");return n}function Hp(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Fp(t,e){var n,i,r,o=t.__transition,a=!0;if(o){for(r in e=null==e?null:e+"",o)(n=o[r]).name===e?(i=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(i?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete o[r]):a=!1;a&&delete t.__transition}}function Vp(t,e){var n,i;return function(){var r=Bp(this,t),o=r.tween;if(o!==n)for(var a=0,s=(i=n=o).length;a<s;++a)if(i[a].name===e){(i=i.slice()).splice(a,1);break}r.tween=i}}function Up(t,e,n){var i,r;if("function"!=typeof n)throw new Error;return function(){var o=Bp(this,t),a=o.tween;if(a!==i){r=(i=a).slice();for(var s={name:e,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===e){r[l]=s;break}l===c&&r.push(s)}o.tween=r}}function jp(t,e,n){var i=t._id;return t.each((function(){var t=Bp(this,i);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return Hp(t,i).value[e]}}function Gp(t,e){var n;return("number"==typeof e?Dd:e instanceof Dh?kd:(n=Dh(e))?(e=n,kd):Vd)(t,e)}function Wp(t){return function(){this.removeAttribute(t)}}function qp(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Yp(t,e,n){var i,r,o=n+"";return function(){var a=this.getAttribute(t);return a===o?null:a===i?r:r=e(i=a,n)}}function Xp(t,e,n){var i,r,o=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===i?r:r=e(i=a,n)}}function $p(t,e,n){var i,r,o;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(t))===(s=l+"")?null:a===i&&s===r?o:(r=s,o=e(i=a,l));this.removeAttribute(t)}}function Kp(t,e,n){var i,r,o;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(s=l+"")?null:a===i&&s===r?o:(r=s,o=e(i=a,l));this.removeAttributeNS(t.space,t.local)}}function Zp(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function Jp(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function Qp(t,e){var n,i;function r(){var r=e.apply(this,arguments);return r!==i&&(n=(i=r)&&Jp(t,r)),n}return r._value=e,r}function tf(t,e){var n,i;function r(){var r=e.apply(this,arguments);return r!==i&&(n=(i=r)&&Zp(t,r)),n}return r._value=e,r}function ef(t,e){return function(){Dp(this,t).delay=+e.apply(this,arguments)}}function nf(t,e){return e=+e,function(){Dp(this,t).delay=e}}function rf(t,e){return function(){Bp(this,t).duration=+e.apply(this,arguments)}}function of(t,e){return e=+e,function(){Bp(this,t).duration=e}}function af(t,e){if("function"!=typeof e)throw new Error;return function(){Bp(this,t).ease=e}}function sf(t,e,n){var i,r,o=(function a(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))})(e)?Dp:Bp;return function(){var a=o(this,t),s=a.on;s!==i&&(r=(i=s).copy()).on(e,n),a.on=r}}var lf=xu.prototype.constructor;function cf(t){return function(){this.style.removeProperty(t)}}function uf(t,e,n){return function(i){this.style.setProperty(t,e.call(this,i),n)}}function hf(t,e,n){var i,r;function o(){var o=e.apply(this,arguments);return o!==r&&(i=(r=o)&&uf(t,o,n)),i}return o._value=e,o}function df(t){return function(e){this.textContent=t.call(this,e)}}function pf(t){var e,n;function i(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&df(i)),e}return i._value=t,i}var ff=0;function mf(t,e,n,i){this._groups=t,this._parents=e,this._name=n,this._id=i}function gf(t){return xu().transition(t)}function _f(){return++ff}var yf=xu.prototype;function vf(t){return+t}function bf(t){return t*t}function xf(t){return t*(2-t)}function wf(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function Sf(t){return t*t*t}function Mf(t){return--t*t*t+1}function Ef(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}mf.prototype=gf.prototype={constructor:mf,select:function Tf(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=vc(t));for(var i=this._groups,r=i.length,o=new Array(r),a=0;a<r;++a)for(var s,l,c=i[a],u=c.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=c[d])&&(l=t.call(s,s.__data__,d,c))&&("__data__"in s&&(l.__data__=s.__data__),h[d]=l,zp(h[d],e,n,d,h,Hp(s,n)));return new mf(o,this._parents,e,n)},selectAll:function Cf(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=xc(t));for(var i=this._groups,r=i.length,o=[],a=[],s=0;s<r;++s)for(var l,c=i[s],u=c.length,h=0;h<u;++h)if(l=c[h]){for(var d,p=t.call(l,l.__data__,h,c),f=Hp(l,n),m=0,g=p.length;m<g;++m)(d=p[m])&&zp(d,e,n,m,p,f);o.push(p),a.push(l)}return new mf(o,a,e,n)},filter:function Af(t){"function"!=typeof t&&(t=wc(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a=e[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new mf(i,this._parents,this._name,this._id)},merge:function kf(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new mf(o,this._parents,this._name,this._id)},selection:function Lf(){return new lf(this._groups,this._parents)},transition:function Pf(){for(var t=this._name,e=this._id,n=_f(),i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)if(a=s[c]){var u=Hp(a,e);zp(a,t,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new mf(i,this._parents,t,n)},call:yf.call,nodes:yf.nodes,node:yf.node,size:yf.size,empty:yf.empty,each:yf.each,on:function Nf(t,e){var n=this._id;return arguments.length<2?Hp(this.node(),n).on.on(t):this.each(sf(n,t,e))},attr:function If(t,e){var n=fc(t),i="transform"===n?tp:Gp;return this.attrTween(t,"function"==typeof e?(n.local?Kp:$p)(n,i,jp(this,"attr."+t,e)):null==e?(n.local?qp:Wp)(n):(n.local?Xp:Yp)(n,i,e))},attrTween:function Of(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var i=fc(t);return this.tween(n,(i.local?Qp:tf)(i,e))},style:function Rf(t,e,n){var i="transform"==(t+="")?Jd:Gp;return null==e?this.styleTween(t,(function r(t,e){var n,i,r;return function(){var o=Bc(this,t),a=(this.style.removeProperty(t),Bc(this,t));return o===a?null:o===n&&a===i?r:r=e(n=o,i=a)}})(t,i)).on("end.style."+t,cf(t)):"function"==typeof e?this.styleTween(t,(function a(t,e,n){var i,r,o;return function(){var a=Bc(this,t),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(t),l=s=Bc(this,t)),a===l?null:a===i&&l===r?o:(r=l,o=e(i=a,s))}})(t,i,jp(this,"style."+t,e))).each((function o(t,e){var n,i,r,o,a="style."+e,s="end."+a;return function(){var l=Bp(this,t),c=l.on,u=null==l.value[a]?o||(o=cf(e)):void 0;c===n&&r===u||(i=(n=c).copy()).on(s,r=u),l.on=i}})(this._id,t)):this.styleTween(t,(function s(t,e,n){var i,r,o=n+"";return function(){var a=Bc(this,t);return a===o?null:a===i?r:r=e(i=a,n)}})(t,i,e),n).on("end.style."+t,null)},styleTween:function zf(t,e,n){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;return this.tween(i,hf(t,e,null==n?"":n))},text:function Df(t){return this.tween("text","function"==typeof t?(function e(t){return function(){var e=t(this);this.textContent=null==e?"":e}})(jp(this,"text",t)):(function n(t){return function(){this.textContent=t}})(null==t?"":t+""))},textTween:function Bf(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,pf(t))},remove:function Hf(){return this.on("end.remove",(function t(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}})(this._id))},tween:function Ff(t,e){var n=this._id;if(t+="",arguments.length<2){for(var i,r=Hp(this.node(),n).tween,o=0,a=r.length;o<a;++o)if((i=r[o]).name===t)return i.value;return null}return this.each((null==e?Vp:Up)(n,t,e))},delay:function Vf(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?ef:nf)(e,t)):Hp(this.node(),e).delay},duration:function Uf(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?rf:of)(e,t)):Hp(this.node(),e).duration},ease:function jf(t){var e=this._id;return arguments.length?this.each(af(e,t)):Hp(this.node(),e).ease},end:function Gf(){var t,e,n=this,i=n._id,r=n.size();return new Promise((function(o,a){var s={value:a},l={value:function(){0==--r&&o()}};n.each((function(){var n=Bp(this,i),r=n.on;r!==t&&((e=(t=r).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),n.on=e}))}))}};var Wf=(function t(e){function n(t){return Math.pow(t,e)}return e=+e,n.exponent=t,n})(3),qf=(function t(e){function n(t){return 1-Math.pow(1-t,e)}return e=+e,n.exponent=t,n})(3),Yf=(function t(e){function n(t){return((t*=2)<=1?Math.pow(t,e):2-Math.pow(2-t,e))/2}return e=+e,n.exponent=t,n})(3),Xf=Math.PI,$f=Xf/2;function Kf(t){return 1==+t?1:1-Math.cos(t*$f)}function Zf(t){return Math.sin(t*$f)}function Jf(t){return(1-Math.cos(Xf*t))/2}function Qf(t){return 1.0009775171065494*(Math.pow(2,-10*t)-.0009765625)}function tm(t){return Qf(1-+t)}function em(t){return 1-Qf(t)}function nm(t){return((t*=2)<=1?Qf(1-t):2-Qf(t-1))/2}function im(t){return 1-Math.sqrt(1-t*t)}function rm(t){return Math.sqrt(1- --t*t)}function om(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var am=7.5625;function sm(t){return 1-lm(1-t)}function lm(t){return(t=+t)<.36363636363636365?am*t*t:t<.7272727272727273?am*(t-=.5454545454545454)*t+.75:t<.9090909090909091?am*(t-=.8181818181818182)*t+.9375:am*(t-=.9545454545454546)*t+.984375}function cm(t){return((t*=2)<=1?1-lm(1-t):lm(t-1)+1)/2}var um=1.70158,hm=(function t(e){function n(t){return(t=+t)*t*(e*(t-1)+t)}return e=+e,n.overshoot=t,n})(um),dm=(function t(e){function n(t){return--t*t*((t+1)*e+t)+1}return e=+e,n.overshoot=t,n})(um),pm=(function t(e){function n(t){return((t*=2)<1?t*t*((e+1)*t-e):(t-=2)*t*((e+1)*t+e)+2)/2}return e=+e,n.overshoot=t,n})(um),fm=2*Math.PI,mm=(function t(e,n){var i=Math.asin(1/(e=Math.max(1,e)))*(n/=fm);function r(t){return e*Qf(- --t)*Math.sin((i-t)/n)}return r.amplitude=function(e){return t(e,n*fm)},r.period=function(n){return t(e,n)},r})(1,.3),gm=(function t(e,n){var i=Math.asin(1/(e=Math.max(1,e)))*(n/=fm);function r(t){return 1-e*Qf(t=+t)*Math.sin((t+i)/n)}return r.amplitude=function(e){return t(e,n*fm)},r.period=function(n){return t(e,n)},r})(1,.3),_m=(function t(e,n){var i=Math.asin(1/(e=Math.max(1,e)))*(n/=fm);function r(t){return((t=2*t-1)<0?e*Qf(-t)*Math.sin((i-t)/n):2-e*Qf(t)*Math.sin((i+t)/n))/2}return r.amplitude=function(e){return t(e,n*fm)},r.period=function(n){return t(e,n)},r})(1,.3),ym=Object.freeze({__proto__:null,easeLinear:vf,easeQuad:wf,easeQuadIn:bf,easeQuadOut:xf,easeQuadInOut:wf,easeCubic:Ef,easeCubicIn:Sf,easeCubicOut:Mf,easeCubicInOut:Ef,easePoly:Yf,easePolyIn:Wf,easePolyOut:qf,easePolyInOut:Yf,easeSin:Jf,easeSinIn:Kf,easeSinOut:Zf,easeSinInOut:Jf,easeExp:nm,easeExpIn:tm,easeExpOut:em,easeExpInOut:nm,easeCircle:om,easeCircleIn:im,easeCircleOut:rm,easeCircleInOut:om,easeBounce:lm,easeBounceIn:sm,easeBounceOut:lm,easeBounceInOut:cm,easeBack:pm,easeBackIn:hm,easeBackOut:dm,easeBackInOut:pm,easeElastic:gm,easeElasticIn:mm,easeElasticOut:gm,easeElasticInOut:_m}),vm={time:null,delay:0,duration:250,ease:Ef};function bm(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))return vm.time=Ep(),vm;return n}xu.prototype.interrupt=function xm(t){return this.each((function(){Fp(this,t)}))},xu.prototype.transition=function wm(t){var e,n;t instanceof mf?(e=t._id,t=t._name):(e=_f(),(n=vm).time=Ep(),t=null==t?null:t+"");for(var i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)(a=s[c])&&zp(a,t,e,c,s,n||bm(a,e));return new mf(i,this._parents,t,e)};var Sm=[null];function Mm(t){return function(){return t}}function Em(t,e,n){this.target=t,this.type=e,this.selection=n}function Tm(){cu.stopImmediatePropagation()}function Cm(){cu.preventDefault(),cu.stopImmediatePropagation()}var Am={name:"drag"},km={name:"space"},Lm={name:"handle"},Pm={name:"center"};function Nm(t){return[+t[0],+t[1]]}function Im(t){return[Nm(t[0]),Nm(t[1])]}function Om(t){return function(e){return sh(e,cu.touches,t)}}var Rm={name:"x",handles:["w","e"].map(jm),input:function(t,e){return null==t?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},zm={name:"y",handles:["n","s"].map(jm),input:function(t,e){return null==t?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},Dm={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(jm),input:function(t){return null==t?null:Im(t)},output:function(t){return t}},Bm={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Hm={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Fm={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Vm={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Um={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function jm(t){return{type:t}}function Gm(){return!cu.ctrlKey&&!cu.button}function Wm(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function qm(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ym(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Xm(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function $m(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function Km(){return Jm(zm)}function Zm(){return Jm(Dm)}function Jm(t){var e,n=Wm,i=Gm,r=qm,o=!0,a=sc("start","brush","end"),s=6;function l(e){var n=e.property("__brush",m).selectAll(".overlay").data([jm("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Bm.overlay).merge(n).each((function(){var t=Ym(this).extent;wu(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),e.selectAll(".selection").data([jm("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Bm.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=e.selectAll(".handle").data(t.handles,(function(t){return t.type}));i.exit().remove(),i.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return Bm[t.type]})),e.each(c).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",d).filter(r).on("touchstart.brush",d).on("touchmove.brush",p).on("touchend.brush touchcancel.brush",f).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function c(){var t=wu(this),e=Ym(this).selection;e?(t.selectAll(".selection").style("display",null).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?e[1][0]-s/2:e[0][0]-s/2})).attr("y",(function(t){return"s"===t.type[0]?e[1][1]-s/2:e[0][1]-s/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?e[1][0]-e[0][0]+s:s})).attr("height",(function(t){return"e"===t.type||"w"===t.type?e[1][1]-e[0][1]+s:s}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function u(t,e,n){var i=t.__brush.emitter;return!i||n&&i.clean?new h(t,e,n):i}function h(t,e,n){this.that=t,this.args=e,this.state=t.__brush,this.active=0,this.clean=n}function d(){if((!e||cu.touches)&&i.apply(this,arguments)){var n,r,a,s,l,h,d,p,f,m,g,_=this,y=cu.target.__data__.type,v="selection"===(o&&cu.metaKey?y="overlay":y)?Am:o&&cu.altKey?Pm:Lm,b=t===zm?null:Vm[y],x=t===Rm?null:Um[y],w=Ym(_),S=w.extent,M=w.selection,E=S[0][0],T=S[0][1],C=S[1][0],A=S[1][1],k=0,L=0,P=b&&x&&o&&cu.shiftKey,N=cu.touches?Om(cu.changedTouches[0].identifier):oh,I=N(_),O=I,R=u(_,arguments,!0).beforestart();"overlay"===y?(M&&(f=!0),w.selection=M=[[n=t===zm?E:I[0],a=t===Rm?T:I[1]],[l=t===zm?C:n,d=t===Rm?A:a]]):(n=M[0][0],a=M[0][1],l=M[1][0],d=M[1][1]),r=n,s=a,h=l,p=d;var z=wu(_).attr("pointer-events","none"),D=z.selectAll(".overlay").attr("cursor",Bm[y]);if(cu.touches)R.moved=H,R.ended=V;else{var B=wu(cu.view).on("mousemove.brush",H,!0).on("mouseup.brush",V,!0);o&&B.on("keydown.brush",U,!0).on("keyup.brush",j,!0),uh(cu.view)}Tm(),Fp(_),c.call(_),R.start()}function H(){var t=N(_);!P||m||g||(Math.abs(t[0]-O[0])>Math.abs(t[1]-O[1])?g=!0:m=!0),O=t,f=!0,Cm(),F()}function F(){var t;switch(k=O[0]-I[0],L=O[1]-I[1],v){case km:case Am:b&&(k=Math.max(E-n,Math.min(C-l,k)),r=n+k,h=l+k),x&&(L=Math.max(T-a,Math.min(A-d,L)),s=a+L,p=d+L);break;case Lm:b<0?(k=Math.max(E-n,Math.min(C-n,k)),r=n+k,h=l):b>0&&(k=Math.max(E-l,Math.min(C-l,k)),r=n,h=l+k),x<0?(L=Math.max(T-a,Math.min(A-a,L)),s=a+L,p=d):x>0&&(L=Math.max(T-d,Math.min(A-d,L)),s=a,p=d+L);break;case Pm:b&&(r=Math.max(E,Math.min(C,n-k*b)),h=Math.max(E,Math.min(C,l+k*b))),x&&(s=Math.max(T,Math.min(A,a-L*x)),p=Math.max(T,Math.min(A,d+L*x)))}h<r&&(b*=-1,t=n,n=l,l=t,t=r,r=h,h=t,y in Hm&&D.attr("cursor",Bm[y=Hm[y]])),p<s&&(x*=-1,t=a,a=d,d=t,t=s,s=p,p=t,y in Fm&&D.attr("cursor",Bm[y=Fm[y]])),w.selection&&(M=w.selection),m&&(r=M[0][0],h=M[1][0]),g&&(s=M[0][1],p=M[1][1]),M[0][0]===r&&M[0][1]===s&&M[1][0]===h&&M[1][1]===p||(w.selection=[[r,s],[h,p]],c.call(_),R.brush())}function V(){if(Tm(),cu.touches){if(cu.touches.length)return;e&&clearTimeout(e),e=setTimeout((function(){e=null}),500)}else hh(cu.view,f),B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);z.attr("pointer-events","all"),D.attr("cursor",Bm.overlay),w.selection&&(M=w.selection),Xm(M)&&(w.selection=null,c.call(_)),R.end()}function U(){switch(cu.keyCode){case 16:P=b&&x;break;case 18:v===Lm&&(b&&(l=h-k*b,n=r+k*b),x&&(d=p-L*x,a=s+L*x),v=Pm,F());break;case 32:v!==Lm&&v!==Pm||(b<0?l=h-k:b>0&&(n=r-k),x<0?d=p-L:x>0&&(a=s-L),v=km,D.attr("cursor",Bm.selection),F());break;default:return}Cm()}function j(){switch(cu.keyCode){case 16:P&&(m=g=P=!1,F());break;case 18:v===Pm&&(b<0?l=h:b>0&&(n=r),x<0?d=p:x>0&&(a=s),v=Lm,F());break;case 32:v===km&&(cu.altKey?(b&&(l=h-k*b,n=r+k*b),x&&(d=p-L*x,a=s+L*x),v=Pm):(b<0?l=h:b>0&&(n=r),x<0?d=p:x>0&&(a=s),v=Lm),D.attr("cursor",Bm[y]),F());break;default:return}Cm()}}function p(){u(this,arguments).moved()}function f(){u(this,arguments).ended()}function m(){var e=this.__brush||{selection:null};return e.extent=Im(n.apply(this,arguments)),e.dim=t,e}return l.move=function(e,n){e.selection?e.on("start.brush",(function(){u(this,arguments).beforestart().start()})).on("interrupt.brush end.brush",(function(){u(this,arguments).end()})).tween("brush",(function(){var e=this,i=e.__brush,r=u(e,arguments),o=i.selection,a=t.input("function"==typeof n?n.apply(this,arguments):n,i.extent),s=Ud(o,a);function l(t){i.selection=1===t&&null===a?null:s(t),c.call(e),r.brush()}return null!==o&&null!==a?l:l(1)})):e.each((function(){var e=this,i=arguments,r=e.__brush,o=t.input("function"==typeof n?n.apply(e,i):n,r.extent),a=u(e,i).beforestart();Fp(e),r.selection=null===o?null:o,c.call(e),a.start().brush().end()}))},l.clear=function(t){l.move(t,null)},h.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting?(this.starting=!1,this.emit("start")):this.emit("brush"),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(e){mu(new Em(l,e,t.output(this.state.selection)),a.apply,a,[e,this.that,this.args])}},l.extent=function(t){return arguments.length?(n="function"==typeof t?t:Mm(Im(t)),l):n},l.filter=function(t){return arguments.length?(i="function"==typeof t?t:Mm(!!t),l):i},l.touchable=function(t){return arguments.length?(r="function"==typeof t?t:Mm(!!t),l):r},l.handleSize=function(t){return arguments.length?(s=+t,l):s},l.keyModifiers=function(t){return arguments.length?(o=!!t,l):o},l.on=function(){var t=a.on.apply(a,arguments);return t===a?l:t},l}var Qm=Math.cos,tg=Math.sin,eg=Math.PI,ng=eg/2,ig=2*eg,rg=Math.max;function og(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}var ag=Array.prototype.slice;function sg(t){return function(){return t}}var lg=Math.PI,cg=2*lg,ug=1e-6,hg=cg-ug;function dg(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function pg(){return new dg}function fg(t){return t.source}function mg(t){return t.target}function gg(t){return t.radius}function _g(t){return t.startAngle}function yg(t){return t.endAngle}dg.prototype=pg.prototype={constructor:dg,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,r,o){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+r)+","+(this._y1=+o)},arcTo:function(t,e,n,i,r){var o=this._x1,a=this._y1,s=(n=+n)-(t=+t),l=(i=+i)-(e=+e),c=o-t,u=a-e,h=c*c+u*u;if((r=+r)<0)throw new Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(h>ug)if(Math.abs(u*s-l*c)>ug&&r){var d=n-o,p=i-a,f=s*s+l*l,m=d*d+p*p,g=Math.sqrt(f),_=Math.sqrt(h),y=r*Math.tan((lg-Math.acos((f+h-m)/(2*g*_)))/2),v=y/_,b=y/g;Math.abs(v-1)>ug&&(this._+="L"+(t+v*c)+","+(e+v*u)),this._+="A"+r+","+r+",0,0,"+ +(u*d>c*p)+","+(this._x1=t+b*s)+","+(this._y1=e+b*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,i,r,o){t=+t,e=+e,o=!!o;var a=(n=+n)*Math.cos(i),s=n*Math.sin(i),l=t+a,c=e+s,u=1^o,h=o?i-r:r-i;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>ug||Math.abs(this._y1-c)>ug)&&(this._+="L"+l+","+c),n&&(h<0&&(h=h%cg+cg),h>hg?this._+="A"+n+","+n+",0,1,"+u+","+(t-a)+","+(e-s)+"A"+n+","+n+",0,1,"+u+","+(this._x1=l)+","+(this._y1=c):h>ug&&(this._+="A"+n+","+n+",0,"+ +(h>=lg)+","+u+","+(this._x1=t+n*Math.cos(r))+","+(this._y1=e+n*Math.sin(r))))},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};var vg="$";function bg(){}function xg(t,e){var n=new bg;if(t instanceof bg)t.each((function(t,e){n.set(e,t)}));else if(Array.isArray(t)){var i,r=-1,o=t.length;if(null==e)for(;++r<o;)n.set(r,t[r]);else for(;++r<o;)n.set(e(i=t[r],r,t),i)}else if(t)for(var a in t)n.set(a,t[a]);return n}function wg(){return{}}function Sg(t,e,n){t[e]=n}function Mg(){return xg()}function Eg(t,e,n){t.set(e,n)}function Tg(){}bg.prototype=xg.prototype={constructor:bg,has:function(t){return vg+t in this},get:function(t){return this[vg+t]},set:function(t,e){return this[vg+t]=e,this},remove:function(t){var e=vg+t;return e in this&&delete this[e]},clear:function(){for(var t in this)t[0]===vg&&delete this[t]},keys:function(){var t=[];for(var e in this)e[0]===vg&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)e[0]===vg&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)e[0]===vg&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)e[0]===vg&&++t;return t},empty:function(){for(var t in this)if(t[0]===vg)return!1;return!0},each:function(t){for(var e in this)e[0]===vg&&t(this[e],e.slice(1),this)}};var Cg=xg.prototype;function Ag(t,e){var n=new Tg;if(t instanceof Tg)t.each((function(t){n.add(t)}));else if(t){var i=-1,r=t.length;if(null==e)for(;++i<r;)n.add(t[i]);else for(;++i<r;)n.add(e(t[i],i,t))}return n}function kg(t){var e=[];for(var n in t)e.push(n);return e}Tg.prototype=Ag.prototype={constructor:Tg,has:Cg.has,add:function(t){return this[vg+(t+="")]=t,this},remove:Cg.remove,clear:Cg.clear,values:Cg.keys,size:Cg.size,empty:Cg.empty,each:Cg.each};var Lg=Array.prototype.slice;function Pg(t,e){return t-e}function Ng(t){return function(){return t}}function Ig(t,e){for(var n,i=-1,r=e.length;++i<r;)if(n=Og(t,e[i]))return n;return 0}function Og(t,e){for(var n=e[0],i=e[1],r=-1,o=0,a=t.length,s=a-1;o<a;s=o++){var l=t[o],c=l[0],u=l[1],h=t[s],d=h[0],p=h[1];if(Rg(l,h,e))return 0;u>i!=p>i&&n<(d-c)*(i-u)/(p-u)+c&&(r=-r)}return r}function Rg(t,e,n){var i;return(function r(t,e,n){return(e[0]-t[0])*(n[1]-t[1])==(n[0]-t[0])*(e[1]-t[1])})(t,e,n)&&(function o(t,e,n){return t<=e&&e<=n||n<=e&&e<=t})(t[i=+(t[0]===e[0])],n[i],e[i])}function zg(){}var Dg=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function Bg(){var t=1,e=1,n=Ul,i=s;function r(t){var e=n(t);if(Array.isArray(e))e=e.slice().sort(Pg);else{var i=kl(t),r=i[0],a=i[1];e=Vl(r,a,e),e=Rl(Math.floor(r/e)*e,Math.floor(a/e)*e,e)}return e.map((function(e){return o(t,e)}))}function o(n,r){var o=[],s=[];return(function l(n,i,r){var o,s,l,c,u,h=new Array,d=new Array;for(o=s=-1,Dg[(l=n[0]>=i)<<1].forEach(p);++o<t-1;)Dg[l|(l=n[o+1]>=i)<<1].forEach(p);for(Dg[l<<0].forEach(p);++s<e-1;){for(o=-1,Dg[(l=n[s*t+t]>=i)<<1|(c=n[s*t]>=i)<<2].forEach(p);++o<t-1;)u=c,Dg[l|(l=n[s*t+t+o+1]>=i)<<1|(c=n[s*t+o+1]>=i)<<2|u<<3].forEach(p);Dg[l|c<<3].forEach(p)}for(o=-1,Dg[(c=n[s*t]>=i)<<2].forEach(p);++o<t-1;)u=c,Dg[(c=n[s*t+o+1]>=i)<<2|u<<3].forEach(p);function p(t){var e,n,i=[t[0][0]+o,t[0][1]+s],l=[t[1][0]+o,t[1][1]+s],c=a(i),u=a(l);(e=d[c])?(n=h[u])?(delete d[e.end],delete h[n.start],e===n?(e.ring.push(l),r(e.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete d[e.end],e.ring.push(l),d[e.end=u]=e):(e=h[u])?(n=d[c])?(delete h[e.start],delete d[n.end],e===n?(e.ring.push(l),r(e.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete h[e.start],e.ring.unshift(i),h[e.start=c]=e):h[c]=d[u]={start:c,end:u,ring:[i,l]}}Dg[c<<3].forEach(p)})(n,r,(function(t){i(t,n,r),(function e(t){for(var e=0,n=t.length,i=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)i+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return i})(t)>0?o.push([t]):s.push(t)})),s.forEach((function(t){for(var e,n=0,i=o.length;n<i;++n)if(-1!==Ig((e=o[n])[0],t))return void e.push(t)})),{type:"MultiPolygon",value:r,coordinates:o}}function a(e){return 2*e[0]+e[1]*(t+1)*4}function s(n,i,r){n.forEach((function(n){var o,a=n[0],s=n[1],l=0|a,c=0|s,u=i[c*t+l];a>0&&a<t&&l===a&&(n[0]=a+(r-(o=i[c*t+l-1]))/(u-o)-.5),s>0&&s<e&&c===s&&(n[1]=s+(r-(o=i[(c-1)*t+l]))/(u-o)-.5)}))}return r.contour=o,r.size=function(n){if(!arguments.length)return[t,e];var i=Math.ceil(n[0]),o=Math.ceil(n[1]);if(!(i>0&&o>0))throw new Error("invalid size");return t=i,e=o,r},r.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?Ng(Lg.call(t)):Ng(t),r):n},r.smooth=function(t){return arguments.length?(i=t?s:zg,r):i===s},r}function Hg(t,e,n){for(var i=t.width,r=t.height,o=1+(n<<1),a=0;a<r;++a)for(var s=0,l=0;s<i+n;++s)s<i&&(l+=t.data[s+a*i]),s>=n&&(s>=o&&(l-=t.data[s-o+a*i]),e.data[s-n+a*i]=l/Math.min(s+1,i-1+o-s,o))}function Fg(t,e,n){for(var i=t.width,r=t.height,o=1+(n<<1),a=0;a<i;++a)for(var s=0,l=0;s<r+n;++s)s<r&&(l+=t.data[a+s*i]),s>=n&&(s>=o&&(l-=t.data[a+(s-o)*i]),e.data[a+(s-n)*i]=l/Math.min(s+1,r-1+o-s,o))}function Vg(t){return t[0]}function Ug(t){return t[1]}function jg(){return 1}var Gg={},Wg={};function qg(t){return new Function("d","return {"+t.map((function(t,e){return JSON.stringify(t)+": d["+e+'] || ""'})).join(",")+"}")}function Yg(t){var e=Object.create(null),n=[];return t.forEach((function(t){for(var i in t)i in e||n.push(e[i]=i)})),n}function Xg(t,e){var n=t+"",i=n.length;return i<e?new Array(e-i+1).join(0)+n:n}function $g(t){var e=new RegExp('["'+t+"\n\r]"),n=t.charCodeAt(0);function i(t,e){var i,r=[],o=t.length,a=0,s=0,l=o<=0,c=!1;function u(){if(l)return Wg;if(c)return c=!1,Gg;var e,i,r=a;if(34===t.charCodeAt(r)){for(;a++<o&&34!==t.charCodeAt(a)||34===t.charCodeAt(++a););return(e=a)>=o?l=!0:10===(i=t.charCodeAt(a++))?c=!0:13===i&&(c=!0,10===t.charCodeAt(a)&&++a),t.slice(r+1,e-1).replace(/""/g,'"')}for(;a<o;){if(10===(i=t.charCodeAt(e=a++)))c=!0;else if(13===i)c=!0,10===t.charCodeAt(a)&&++a;else if(i!==n)continue;return t.slice(r,e)}return l=!0,t.slice(r,o)}for(10===t.charCodeAt(o-1)&&--o,13===t.charCodeAt(o-1)&&--o;(i=u())!==Wg;){for(var h=[];i!==Gg&&i!==Wg;)h.push(i),i=u();e&&null==(h=e(h,s++))||r.push(h)}return r}function r(e,n){return e.map((function(e){return n.map((function(t){return a(e[t])})).join(t)}))}function o(e){return e.map(a).join(t)}function a(t){return null==t?"":t instanceof Date?(function n(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),i=t.getUTCSeconds(),r=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":(function o(t){return t<0?"-"+Xg(-t,6):t>9999?"+"+Xg(t,6):Xg(t,4)})(t.getUTCFullYear())+"-"+Xg(t.getUTCMonth()+1,2)+"-"+Xg(t.getUTCDate(),2)+(r?"T"+Xg(e,2)+":"+Xg(n,2)+":"+Xg(i,2)+"."+Xg(r,3)+"Z":i?"T"+Xg(e,2)+":"+Xg(n,2)+":"+Xg(i,2)+"Z":n||e?"T"+Xg(e,2)+":"+Xg(n,2)+"Z":"")})(t):e.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function s(t,e){var n,r,o=i(t,(function(t,i){if(n)return n(t,i-1);r=t,n=e?(function o(t,e){var n=qg(t);return function(i,r){return e(n(i),r,t)}})(t,e):qg(t)}));return o.columns=r||[],o},parseRows:i,format:function l(e,n){return null==n&&(n=Yg(e)),[n.map(a).join(t)].concat(r(e,n)).join("\n")},formatBody:function c(t,e){return null==e&&(e=Yg(t)),r(t,e).join("\n")},formatRows:function u(t){return t.map(o).join("\n")},formatRow:o,formatValue:a}}var Kg=$g(","),Zg=Kg.parse,Jg=Kg.parseRows,Qg=Kg.format,t_=Kg.formatBody,e_=Kg.formatRows,n_=Kg.formatRow,i_=Kg.formatValue,r_=$g("\t"),o_=r_.parse,a_=r_.parseRows,s_=r_.format,l_=r_.formatBody,c_=r_.formatRows,u_=r_.formatRow,h_=r_.formatValue,d_=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function p_(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function f_(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function m_(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function g_(t,e){return fetch(t,e).then(m_)}function __(t){return function(e,n,i){return 2===arguments.length&&"function"==typeof n&&(i=n,n=void 0),g_(e,n).then((function(e){return t(e,i)}))}}var y_=__(Zg),v_=__(o_);function b_(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);if(204!==t.status&&205!==t.status)return t.json()}function x_(t){return function(e,n){return g_(e,n).then((function(e){return(new DOMParser).parseFromString(e,t)}))}}var w_=x_("application/xml"),S_=x_("text/html"),M_=x_("image/svg+xml");function E_(t){return function(){return t}}function T_(){return 1e-6*(Math.random()-.5)}function C_(t,e,n,i){if(isNaN(e)||isNaN(n))return t;var r,o,a,s,l,c,u,h,d,p=t._root,f={data:i},m=t._x0,g=t._y0,_=t._x1,y=t._y1;if(!p)return t._root=f,t;for(;p.length;)if((c=e>=(o=(m+_)/2))?m=o:_=o,(u=n>=(a=(g+y)/2))?g=a:y=a,r=p,!(p=p[h=u<<1|c]))return r[h]=f,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&n===l)return f.next=p,r?r[h]=f:t._root=f,t;do{r=r?r[h]=new Array(4):t._root=new Array(4),(c=e>=(o=(m+_)/2))?m=o:_=o,(u=n>=(a=(g+y)/2))?g=a:y=a}while((h=u<<1|c)==(d=(l>=a)<<1|s>=o));return r[d]=p,r[h]=f,t}function A_(t,e,n,i,r){this.node=t,this.x0=e,this.y0=n,this.x1=i,this.y1=r}function k_(t){return t[0]}function L_(t){return t[1]}function P_(t,e,n){var i=new N_(null==e?k_:e,null==n?L_:n,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function N_(t,e,n,i,r,o){this._x=t,this._y=e,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function I_(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var O_=P_.prototype=N_.prototype;function R_(t){return t.x+t.vx}function z_(t){return t.y+t.vy}function D_(t){return t.index}function B_(t,e){var n=t.get(e);if(!n)throw new Error("missing: "+e);return n}function H_(t){return t.x}function F_(t){return t.y}O_.copy=function(){var t,e,n=new N_(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root;if(!i)return n;if(!i.length)return n._root=I_(i),n;for(t=[{source:i,target:n._root=new Array(4)}];i=t.pop();)for(var r=0;r<4;++r)(e=i.source[r])&&(e.length?t.push({source:e,target:i.target[r]=new Array(4)}):i.target[r]=I_(e));return n},O_.add=function V_(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return C_(this.cover(e,n),e,n,t)},O_.addAll=function U_(t){var e,n,i,r,o=t.length,a=new Array(o),s=new Array(o),l=1/0,c=1/0,u=-1/0,h=-1/0;for(n=0;n<o;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(r=+this._y.call(null,e))||(a[n]=i,s[n]=r,i<l&&(l=i),i>u&&(u=i),r<c&&(c=r),r>h&&(h=r));if(l>u||c>h)return this;for(this.cover(l,c).cover(u,h),n=0;n<o;++n)C_(this,a[n],s[n],t[n]);return this},O_.cover=function j_(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,i=this._y0,r=this._x1,o=this._y1;if(isNaN(n))r=(n=Math.floor(t))+1,o=(i=Math.floor(e))+1;else{for(var a,s,l=r-n,c=this._root;n>t||t>=r||i>e||e>=o;)switch(s=(e<i)<<1|t<n,(a=new Array(4))[s]=c,c=a,l*=2,s){case 0:r=n+l,o=i+l;break;case 1:n=r-l,o=i+l;break;case 2:r=n+l,i=o-l;break;case 3:n=r-l,i=o-l}this._root&&this._root.length&&(this._root=c)}return this._x0=n,this._y0=i,this._x1=r,this._y1=o,this},O_.data=function G_(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},O_.extent=function W_(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},O_.find=function q_(t,e,n){var i,r,o,a,s,l,c,u=this._x0,h=this._y0,d=this._x1,p=this._y1,f=[],m=this._root;for(m&&f.push(new A_(m,u,h,d,p)),null==n?n=1/0:(u=t-n,h=e-n,d=t+n,p=e+n,n*=n);l=f.pop();)if(!(!(m=l.node)||(r=l.x0)>d||(o=l.y0)>p||(a=l.x1)<u||(s=l.y1)<h))if(m.length){var g=(r+a)/2,_=(o+s)/2;f.push(new A_(m[3],g,_,a,s),new A_(m[2],r,_,g,s),new A_(m[1],g,o,a,_),new A_(m[0],r,o,g,_)),(c=(e>=_)<<1|t>=g)&&(l=f[f.length-1],f[f.length-1]=f[f.length-1-c],f[f.length-1-c]=l)}else{var y=t-+this._x.call(null,m.data),v=e-+this._y.call(null,m.data),b=y*y+v*v;if(b<n){var x=Math.sqrt(n=b);u=t-x,h=e-x,d=t+x,p=e+x,i=m.data}}return i},O_.remove=function Y_(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var e,n,i,r,o,a,s,l,c,u,h,d,p=this._root,f=this._x0,m=this._y0,g=this._x1,_=this._y1;if(!p)return this;if(p.length)for(;;){if((c=o>=(s=(f+g)/2))?f=s:g=s,(u=a>=(l=(m+_)/2))?m=l:_=l,e=p,!(p=p[h=u<<1|c]))return this;if(!p.length)break;(e[h+1&3]||e[h+2&3]||e[h+3&3])&&(n=e,d=h)}for(;p.data!==t;)if(i=p,!(p=p.next))return this;return(r=p.next)&&delete p.next,i?(r?i.next=r:delete i.next,this):e?(r?e[h]=r:delete e[h],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(n?n[d]=p:this._root=p),this):(this._root=r,this)},O_.removeAll=function X_(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},O_.root=function $_(){return this._root},O_.size=function K_(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},O_.visit=function Z_(t){var e,n,i,r,o,a,s=[],l=this._root;for(l&&s.push(new A_(l,this._x0,this._y0,this._x1,this._y1));e=s.pop();)if(!t(l=e.node,i=e.x0,r=e.y0,o=e.x1,a=e.y1)&&l.length){var c=(i+o)/2,u=(r+a)/2;(n=l[3])&&s.push(new A_(n,c,u,o,a)),(n=l[2])&&s.push(new A_(n,i,u,c,a)),(n=l[1])&&s.push(new A_(n,c,r,o,u)),(n=l[0])&&s.push(new A_(n,i,r,c,u))}return this},O_.visitAfter=function J_(t){var e,n=[],i=[];for(this._root&&n.push(new A_(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var r=e.node;if(r.length){var o,a=e.x0,s=e.y0,l=e.x1,c=e.y1,u=(a+l)/2,h=(s+c)/2;(o=r[0])&&n.push(new A_(o,a,s,u,h)),(o=r[1])&&n.push(new A_(o,u,s,l,h)),(o=r[2])&&n.push(new A_(o,a,h,u,c)),(o=r[3])&&n.push(new A_(o,u,h,l,c))}i.push(e)}for(;e=i.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},O_.x=function Q_(t){return arguments.length?(this._x=t,this):this._x},O_.y=function ty(t){return arguments.length?(this._y=t,this):this._y};var ey=Math.PI*(3-Math.sqrt(5));function ny(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,i=t.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+t.slice(n+1)]}function iy(t){return(t=ny(Math.abs(t)))?t[1]:NaN}var ry,oy=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ay(t){if(!(e=oy.exec(t)))throw new Error("invalid format: "+t);var e;return new sy({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function sy(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function ly(t,e){var n=ny(t,e);if(!n)return t+"";var i=n[0],r=n[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}ay.prototype=sy.prototype,sy.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var cy={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function uy(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return ly(100*t,e)},r:ly,s:function hy(t,e){var n=ny(t,e);if(!n)return t+"";var i=n[0],r=n[1],o=r-(ry=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+ny(t,Math.max(0,e+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function dy(t){return t}var py,fy,my,gy=Array.prototype.map,_y=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function yy(t){var e=void 0===t.grouping||void 0===t.thousands?dy:(function n(t,e){return function(n,i){for(var r=n.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(n.substring(r-=s,r+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}})(gy.call(t.grouping,Number),t.thousands+""),i=void 0===t.currency?"":t.currency[0]+"",r=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",a=void 0===t.numerals?dy:(function s(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}})(gy.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"-":t.minus+"",u=void 0===t.nan?"NaN":t.nan+"";function h(t){var n=(t=ay(t)).fill,s=t.align,h=t.sign,d=t.symbol,p=t.zero,f=t.width,m=t.comma,g=t.precision,_=t.trim,y=t.type;"n"===y?(m=!0,y="g"):cy[y]||(void 0===g&&(g=12),_=!0,y="g"),(p||"0"===n&&"="===s)&&(p=!0,n="0",s="=");var v="$"===d?i:"#"===d&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",b="$"===d?r:/[%p]/.test(y)?l:"",x=cy[y],w=/[defgprs%]/.test(y);function S(t){var i,r,l,d=v,S=b;if("c"===y)S=x(t)+S,t="";else{var M=(t=+t)<0||1/t<0;if(t=isNaN(t)?u:x(Math.abs(t),g),_&&(t=(function E(t){t:for(var e,n=t.length,i=1,r=-1;i<n;++i)switch(t[i]){case".":r=e=i;break;case"0":0===r&&(r=i),e=i;break;default:if(!+t[i])break t;r>0&&(r=0)}return r>0?t.slice(0,r)+t.slice(e+1):t})(t)),M&&0==+t&&"+"!==h&&(M=!1),d=(M?"("===h?h:c:"-"===h||"("===h?"":h)+d,S=("s"===y?_y[8+ry/3]:"")+S+(M&&"("===h?")":""),w)for(i=-1,r=t.length;++i<r;)if(48>(l=t.charCodeAt(i))||l>57){S=(46===l?o+t.slice(i+1):t.slice(i))+S,t=t.slice(0,i);break}}m&&!p&&(t=e(t,1/0));var T=d.length+t.length+S.length,C=T<f?new Array(f-T+1).join(n):"";switch(m&&p&&(t=e(C+t,C.length?f-S.length:1/0),C=""),s){case"<":t=d+t+S+C;break;case"=":t=d+C+t+S;break;case"^":t=C.slice(0,T=C.length>>1)+d+t+S+C.slice(T);break;default:t=C+d+t+S}return a(t)}return g=void 0===g?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),S.toString=function(){return t+""},S}return{format:h,formatPrefix:function d(t,e){var n=h(((t=ay(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(iy(e)/3))),r=Math.pow(10,-i),o=_y[8+i/3];return function(t){return n(r*t)+o}}}}function vy(t){return py=yy(t),fy=py.format,my=py.formatPrefix,py}function by(t){return Math.max(0,-iy(Math.abs(t)))}function xy(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(iy(e)/3)))-iy(Math.abs(t)))}function wy(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,iy(e)-iy(t))+1}function Sy(){return new My}function My(){this.reset()}vy({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),My.prototype={constructor:My,reset:function(){this.s=this.t=0},add:function(t){Ty(Ey,t,this.t),Ty(this,Ey.s,this.s),this.s?this.t+=Ey.t:this.s=Ey.t},valueOf:function(){return this.s}};var Ey=new My;function Ty(t,e,n){var i=t.s=e+n,r=i-e;t.t=e-(i-r)+(n-r)}var Cy=1e-6,Ay=1e-12,ky=Math.PI,Ly=ky/2,Py=ky/4,Ny=2*ky,Iy=180/ky,Oy=ky/180,Ry=Math.abs,zy=Math.atan,Dy=Math.atan2,By=Math.cos,Hy=Math.ceil,Fy=Math.exp,Vy=Math.log,Uy=Math.pow,jy=Math.sin,Gy=Math.sign||function(t){return t>0?1:t<0?-1:0},Wy=Math.sqrt,qy=Math.tan;function Yy(t){return t>1?0:t<-1?ky:Math.acos(t)}function Xy(t){return t>1?Ly:t<-1?-Ly:Math.asin(t)}function $y(t){return(t=jy(t/2))*t}function Ky(){}function Zy(t,e){t&&Qy.hasOwnProperty(t.type)&&Qy[t.type](t,e)}var Jy={Feature:function(t,e){Zy(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,r=n.length;++i<r;)Zy(n[i].geometry,e)}},Qy={Sphere:function(t,e){e.sphere()},Point:function(t,e){e.point((t=t.coordinates)[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)e.point((t=n[i])[0],t[1],t[2])},LineString:function(t,e){tv(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)tv(n[i],e,0)},Polygon:function(t,e){ev(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)ev(n[i],e)},GeometryCollection:function(t,e){for(var n=t.geometries,i=-1,r=n.length;++i<r;)Zy(n[i],e)}};function tv(t,e,n){var i,r=-1,o=t.length-n;for(e.lineStart();++r<o;)e.point((i=t[r])[0],i[1],i[2]);e.lineEnd()}function ev(t,e){var n=-1,i=t.length;for(e.polygonStart();++n<i;)tv(t[n],e,1);e.polygonEnd()}function nv(t,e){t&&Jy.hasOwnProperty(t.type)?Jy[t.type](t,e):Zy(t,e)}var iv,rv,ov,av,sv,lv=Sy(),cv=Sy(),uv={point:Ky,lineStart:Ky,lineEnd:Ky,polygonStart:function(){lv.reset(),uv.lineStart=hv,uv.lineEnd=dv},polygonEnd:function(){var t=+lv;cv.add(t<0?Ny+t:t),this.lineStart=this.lineEnd=this.point=Ky},sphere:function(){cv.add(Ny)}};function hv(){uv.point=pv}function dv(){fv(iv,rv)}function pv(t,e){uv.point=fv,iv=t,rv=e,ov=t*=Oy,av=By(e=(e*=Oy)/2+Py),sv=jy(e)}function fv(t,e){var n=(t*=Oy)-ov,i=n>=0?1:-1,r=i*n,o=By(e=(e*=Oy)/2+Py),a=jy(e),s=sv*a,l=av*o+s*By(r),c=s*i*jy(r);lv.add(Dy(c,l)),ov=t,av=o,sv=a}function mv(t){return[Dy(t[1],t[0]),Xy(t[2])]}function gv(t){var e=t[0],n=t[1],i=By(n);return[i*By(e),i*jy(e),jy(n)]}function _v(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function yv(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function vv(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function bv(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function xv(t){var e=Wy(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var wv,Sv,Mv,Ev,Tv,Cv,Av,kv,Lv,Pv,Nv,Iv,Ov,Rv,zv,Dv,Bv,Hv,Fv,Vv,Uv,jv,Gv,Wv,qv,Yv,Xv=Sy(),$v={point:Kv,lineStart:Jv,lineEnd:Qv,polygonStart:function(){$v.point=tb,$v.lineStart=eb,$v.lineEnd=nb,Xv.reset(),uv.polygonStart()},polygonEnd:function(){uv.polygonEnd(),$v.point=Kv,$v.lineStart=Jv,$v.lineEnd=Qv,lv<0?(wv=-(Mv=180),Sv=-(Ev=90)):Xv>Cy?Ev=90:Xv<-1e-6&&(Sv=-90),Pv[0]=wv,Pv[1]=Mv},sphere:function(){wv=-(Mv=180),Sv=-(Ev=90)}};function Kv(t,e){Lv.push(Pv=[wv=t,Mv=t]),e<Sv&&(Sv=e),e>Ev&&(Ev=e)}function Zv(t,e){var n=gv([t*Oy,e*Oy]);if(kv){var i=yv(kv,n),r=yv([i[1],-i[0],0],i);xv(r),r=mv(r);var o,a=t-Tv,s=a>0?1:-1,l=r[0]*Iy*s,c=Ry(a)>180;c^(s*Tv<l&&l<s*t)?(o=r[1]*Iy)>Ev&&(Ev=o):c^(s*Tv<(l=(l+360)%360-180)&&l<s*t)?(o=-r[1]*Iy)<Sv&&(Sv=o):(e<Sv&&(Sv=e),e>Ev&&(Ev=e)),c?t<Tv?ib(wv,t)>ib(wv,Mv)&&(Mv=t):ib(t,Mv)>ib(wv,Mv)&&(wv=t):Mv>=wv?(t<wv&&(wv=t),t>Mv&&(Mv=t)):t>Tv?ib(wv,t)>ib(wv,Mv)&&(Mv=t):ib(t,Mv)>ib(wv,Mv)&&(wv=t)}else Lv.push(Pv=[wv=t,Mv=t]);e<Sv&&(Sv=e),e>Ev&&(Ev=e),kv=n,Tv=t}function Jv(){$v.point=Zv}function Qv(){Pv[0]=wv,Pv[1]=Mv,$v.point=Kv,kv=null}function tb(t,e){if(kv){var n=t-Tv;Xv.add(Ry(n)>180?n+(n>0?360:-360):n)}else Cv=t,Av=e;uv.point(t,e),Zv(t,e)}function eb(){uv.lineStart()}function nb(){tb(Cv,Av),uv.lineEnd(),Ry(Xv)>Cy&&(wv=-(Mv=180)),Pv[0]=wv,Pv[1]=Mv,kv=null}function ib(t,e){return(e-=t)<0?e+360:e}function rb(t,e){return t[0]-e[0]}function ob(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}var ab={sphere:Ky,point:sb,lineStart:cb,lineEnd:db,polygonStart:function(){ab.lineStart=pb,ab.lineEnd=fb},polygonEnd:function(){ab.lineStart=cb,ab.lineEnd=db}};function sb(t,e){t*=Oy;var n=By(e*=Oy);lb(n*By(t),n*jy(t),jy(e))}function lb(t,e,n){++Nv,Ov+=(t-Ov)/Nv,Rv+=(e-Rv)/Nv,zv+=(n-zv)/Nv}function cb(){ab.point=ub}function ub(t,e){t*=Oy;var n=By(e*=Oy);Wv=n*By(t),qv=n*jy(t),Yv=jy(e),ab.point=hb,lb(Wv,qv,Yv)}function hb(t,e){t*=Oy;var n=By(e*=Oy),i=n*By(t),r=n*jy(t),o=jy(e),a=Dy(Wy((a=qv*o-Yv*r)*a+(a=Yv*i-Wv*o)*a+(a=Wv*r-qv*i)*a),Wv*i+qv*r+Yv*o);Iv+=a,Dv+=a*(Wv+(Wv=i)),Bv+=a*(qv+(qv=r)),Hv+=a*(Yv+(Yv=o)),lb(Wv,qv,Yv)}function db(){ab.point=sb}function pb(){ab.point=mb}function fb(){gb(jv,Gv),ab.point=sb}function mb(t,e){jv=t,Gv=e,t*=Oy,e*=Oy,ab.point=gb;var n=By(e);Wv=n*By(t),qv=n*jy(t),Yv=jy(e),lb(Wv,qv,Yv)}function gb(t,e){t*=Oy;var n=By(e*=Oy),i=n*By(t),r=n*jy(t),o=jy(e),a=qv*o-Yv*r,s=Yv*i-Wv*o,l=Wv*r-qv*i,c=Wy(a*a+s*s+l*l),u=Xy(c),h=c&&-u/c;Fv+=h*a,Vv+=h*s,Uv+=h*l,Iv+=u,Dv+=u*(Wv+(Wv=i)),Bv+=u*(qv+(qv=r)),Hv+=u*(Yv+(Yv=o)),lb(Wv,qv,Yv)}function _b(t){return function(){return t}}function yb(t,e){function n(n,i){return n=t(n,i),e(n[0],n[1])}return t.invert&&e.invert&&(n.invert=function(n,i){return(n=e.invert(n,i))&&t.invert(n[0],n[1])}),n}function vb(t,e){return[Ry(t)>ky?t+Math.round(-t/Ny)*Ny:t,e]}function bb(t,e,n){return(t%=Ny)?e||n?yb(wb(t),Sb(e,n)):wb(t):e||n?Sb(e,n):vb}function xb(t){return function(e,n){return[(e+=t)>ky?e-Ny:e<-ky?e+Ny:e,n]}}function wb(t){var e=xb(t);return e.invert=xb(-t),e}function Sb(t,e){var n=By(t),i=jy(t),r=By(e),o=jy(e);function a(t,e){var a=By(e),s=By(t)*a,l=jy(t)*a,c=jy(e),u=c*n+s*i;return[Dy(l*r-u*o,s*n-c*i),Xy(u*r+l*o)]}return a.invert=function(t,e){var a=By(e),s=By(t)*a,l=jy(t)*a,c=jy(e),u=c*r-l*o;return[Dy(l*r+c*o,s*n+u*i),Xy(u*n-s*i)]},a}function Mb(t){function e(e){return(e=t(e[0]*Oy,e[1]*Oy))[0]*=Iy,e[1]*=Iy,e}return t=bb(t[0]*Oy,t[1]*Oy,t.length>2?t[2]*Oy:0),e.invert=function(e){return(e=t.invert(e[0]*Oy,e[1]*Oy))[0]*=Iy,e[1]*=Iy,e},e}function Eb(t,e,n,i,r,o){if(n){var a=By(e),s=jy(e),l=i*n;null==r?(r=e+i*Ny,o=e-l/2):(r=Tb(a,r),o=Tb(a,o),(i>0?r<o:r>o)&&(r+=i*Ny));for(var c,u=r;i>0?u>o:u<o;u-=l)c=mv([a,-s*By(u),-s*jy(u)]),t.point(c[0],c[1])}}function Tb(t,e){(e=gv(e))[0]-=t,xv(e);var n=Yy(-e[1]);return((-e[2]<0?-n:n)+Ny-Cy)%Ny}function Cb(){var t,e=[];return{point:function(e,n,i){t.push([e,n,i])},lineStart:function(){e.push(t=[])},lineEnd:Ky,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}}function Ab(t,e){return Ry(t[0]-e[0])<Cy&&Ry(t[1]-e[1])<Cy}function kb(t,e,n,i){this.x=t,this.z=e,this.o=n,this.e=i,this.v=!1,this.n=this.p=null}function Lb(t,e,n,i,r){var o,a,s=[],l=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,n,i=t[0],a=t[e];if(Ab(i,a)){if(!i[2]&&!a[2]){for(r.lineStart(),o=0;o<e;++o)r.point((i=t[o])[0],i[1]);return void r.lineEnd()}a[0]+=2e-6}s.push(n=new kb(i,t,null,!0)),l.push(n.o=new kb(i,null,n,!1)),s.push(n=new kb(a,t,null,!1)),l.push(n.o=new kb(a,null,n,!0))}})),s.length){for(l.sort(e),Pb(s),Pb(l),o=0,a=l.length;o<a;++o)l[o].e=n=!n;for(var c,u,h=s[0];;){for(var d=h,p=!0;d.v;)if((d=d.n)===h)return;c=d.z,r.lineStart();do{if(d.v=d.o.v=!0,d.e){if(p)for(o=0,a=c.length;o<a;++o)r.point((u=c[o])[0],u[1]);else i(d.x,d.n.x,1,r);d=d.n}else{if(p)for(o=(c=d.p.z).length-1;o>=0;--o)r.point((u=c[o])[0],u[1]);else i(d.x,d.p.x,-1,r);d=d.p}c=(d=d.o).z,p=!p}while(!d.v);r.lineEnd()}}}function Pb(t){if(e=t.length){for(var e,n,i=0,r=t[0];++i<e;)r.n=n=t[i],n.p=r,r=n;r.n=n=t[0],n.p=r}}vb.invert=vb;var Nb=Sy();function Ib(t){return Ry(t[0])<=ky?t[0]:Gy(t[0])*((Ry(t[0])+ky)%Ny-ky)}function Ob(t,e){var n=Ib(e),i=e[1],r=jy(i),o=[jy(n),-By(n),0],a=0,s=0;Nb.reset(),1===r?i=Ly+Cy:-1===r&&(i=-Ly-Cy);for(var l=0,c=t.length;l<c;++l)if(h=(u=t[l]).length)for(var u,h,d=u[h-1],p=Ib(d),f=d[1]/2+Py,m=jy(f),g=By(f),_=0;_<h;++_,p=v,m=x,g=w,d=y){var y=u[_],v=Ib(y),b=y[1]/2+Py,x=jy(b),w=By(b),S=v-p,M=S>=0?1:-1,E=M*S,T=E>ky,C=m*x;if(Nb.add(Dy(C*M*jy(E),g*w+C*By(E))),a+=T?S+M*Ny:S,T^p>=n^v>=n){var A=yv(gv(d),gv(y));xv(A);var k=yv(o,A);xv(k);var L=(T^S>=0?-1:1)*Xy(k[2]);(i>L||i===L&&(A[0]||A[1]))&&(s+=T^S>=0?1:-1)}}return(a<-1e-6||a<Cy&&Nb<-1e-6)^1&s}function Rb(t,e,n,i){return function(r){var o,a,s,l=e(r),c=Cb(),u=e(c),h=!1,d={point:p,lineStart:m,lineEnd:g,polygonStart:function(){d.point=_,d.lineStart=y,d.lineEnd=v,a=[],o=[]},polygonEnd:function(){d.point=p,d.lineStart=m,d.lineEnd=g,a=Wl(a);var t=Ob(o,i);a.length?(h||(r.polygonStart(),h=!0),Lb(a,Db,t,n,r)):t&&(h||(r.polygonStart(),h=!0),r.lineStart(),n(null,null,1,r),r.lineEnd()),h&&(r.polygonEnd(),h=!1),a=o=null},sphere:function(){r.polygonStart(),r.lineStart(),n(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function p(e,n){t(e,n)&&r.point(e,n)}function f(t,e){l.point(t,e)}function m(){d.point=f,l.lineStart()}function g(){d.point=p,l.lineEnd()}function _(t,e){s.push([t,e]),u.point(t,e)}function y(){u.lineStart(),s=[]}function v(){_(s[0][0],s[0][1]),u.lineEnd();var t,e,n,i,l=u.clean(),d=c.result(),p=d.length;if(s.pop(),o.push(s),s=null,p)if(1&l){if((e=(n=d[0]).length-1)>0){for(h||(r.polygonStart(),h=!0),r.lineStart(),t=0;t<e;++t)r.point((i=n[t])[0],i[1]);r.lineEnd()}}else p>1&&2&l&&d.push(d.pop().concat(d.shift())),a.push(d.filter(zb))}return d}}function zb(t){return t.length>1}function Db(t,e){return((t=t.x)[0]<0?t[1]-Ly-Cy:Ly-t[1])-((e=e.x)[0]<0?e[1]-Ly-Cy:Ly-e[1])}var Bb=Rb((function(){return!0}),(function Hb(t){var e,n=NaN,i=NaN,r=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(o,a){var s=o>0?ky:-ky,l=Ry(o-n);Ry(l-ky)<Cy?(t.point(n,i=(i+a)/2>0?Ly:-Ly),t.point(r,i),t.lineEnd(),t.lineStart(),t.point(s,i),t.point(o,i),e=0):r!==s&&l>=ky&&(Ry(n-r)<Cy&&(n-=r*Cy),Ry(o-s)<Cy&&(o-=s*Cy),i=(function c(t,e,n,i){var r,o,a=jy(t-n);return Ry(a)>Cy?zy((jy(e)*(o=By(i))*jy(n)-jy(i)*(r=By(e))*jy(t))/(r*o*a)):(e+i)/2})(n,i,o,a),t.point(r,i),t.lineEnd(),t.lineStart(),t.point(s,i),e=0),t.point(n=o,i=a),r=s},lineEnd:function(){t.lineEnd(),n=i=NaN},clean:function(){return 2-e}}}),(function Fb(t,e,n,i){var r;if(null==t)i.point(-ky,r=n*Ly),i.point(0,r),i.point(ky,r),i.point(ky,0),i.point(ky,-r),i.point(0,-r),i.point(-ky,-r),i.point(-ky,0),i.point(-ky,r);else if(Ry(t[0]-e[0])>Cy){var o=t[0]<e[0]?ky:-ky;i.point(-o,r=n*o/2),i.point(0,r),i.point(o,r)}else i.point(e[0],e[1])}),[-ky,-Ly]);function Vb(t){var e=By(t),n=6*Oy,i=e>0,r=Ry(e)>Cy;function o(t,n){return By(t)*By(n)>e}function a(t,n,i){var r=[1,0,0],o=yv(gv(t),gv(n)),a=_v(o,o),s=o[0],l=a-s*s;if(!l)return!i&&t;var c=e*a/l,u=-e*s/l,h=yv(r,o),d=bv(r,c);vv(d,bv(o,u));var p=h,f=_v(d,p),m=_v(p,p),g=f*f-m*(_v(d,d)-1);if(!(g<0)){var _=Wy(g),y=bv(p,(-f-_)/m);if(vv(y,d),y=mv(y),!i)return y;var v,b=t[0],x=n[0],w=t[1],S=n[1];x<b&&(v=b,b=x,x=v);var M=x-b,E=Ry(M-ky)<Cy;if(!E&&S<w&&(v=w,w=S,S=v),E||M<Cy?E?w+S>0^y[1]<(Ry(y[0]-b)<Cy?w:S):w<=y[1]&&y[1]<=S:M>ky^(b<=y[0]&&y[0]<=x)){var T=bv(p,(-f+_)/m);return vv(T,d),[y,mv(T)]}}}function s(e,n){var r=i?t:ky-t,o=0;return e<-r?o|=1:e>r&&(o|=2),n<-r?o|=4:n>r&&(o|=8),o}return Rb(o,(function l(t){var e,n,l,c,u;return{lineStart:function(){c=l=!1,u=1},point:function(h,d){var p,f=[h,d],m=o(h,d),g=i?m?0:s(h,d):m?s(h+(h<0?ky:-ky),d):0;if(!e&&(c=l=m)&&t.lineStart(),m!==l&&(!(p=a(e,f))||Ab(e,p)||Ab(f,p))&&(f[2]=1),m!==l)u=0,m?(t.lineStart(),p=a(f,e),t.point(p[0],p[1])):(p=a(e,f),t.point(p[0],p[1],2),t.lineEnd()),e=p;else if(r&&e&&i^m){var _;g&n||!(_=a(f,e,!0))||(u=0,i?(t.lineStart(),t.point(_[0][0],_[0][1]),t.point(_[1][0],_[1][1]),t.lineEnd()):(t.point(_[1][0],_[1][1]),t.lineEnd(),t.lineStart(),t.point(_[0][0],_[0][1],3)))}!m||e&&Ab(e,f)||t.point(f[0],f[1]),e=f,l=m,n=g},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return u|(c&&l)<<1}}}),(function c(e,i,r,o){Eb(o,t,n,r,e,i)}),i?[0,-t]:[-ky,t-ky])}var Ub=1e9,jb=-Ub;function Gb(t,e,n,i){function r(r,o){return t<=r&&r<=n&&e<=o&&o<=i}function o(r,o,s,c){var u=0,h=0;if(null==r||(u=a(r,s))!==(h=a(o,s))||l(r,o)<0^s>0)do{c.point(0===u||3===u?t:n,u>1?i:e)}while((u=(u+s+4)%4)!==h);else c.point(o[0],o[1])}function a(i,r){return Ry(i[0]-t)<Cy?r>0?0:3:Ry(i[0]-n)<Cy?r>0?2:1:Ry(i[1]-e)<Cy?r>0?1:0:r>0?3:2}function s(t,e){return l(t.x,e.x)}function l(t,e){var n=a(t,1),i=a(e,1);return n!==i?n-i:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(a){var l,c,u,h,d,p,f,m,g,_,y,v=a,b=Cb(),x={point:T,lineStart:function w(){x.point=C,c&&c.push(u=[]),_=!0,g=!1,f=m=NaN},lineEnd:function S(){l&&(C(h,d),p&&g&&b.rejoin(),l.push(b.result())),x.point=T,g&&v.lineEnd()},polygonStart:function M(){v=b,l=[],c=[],y=!0},polygonEnd:function E(){var e=(function n(){for(var e=0,n=0,r=c.length;n<r;++n)for(var o,a,s=c[n],l=1,u=s.length,h=s[0],d=h[0],p=h[1];l<u;++l)o=d,a=p,d=(h=s[l])[0],p=h[1],a<=i?p>i&&(d-o)*(i-a)>(p-a)*(t-o)&&++e:p<=i&&(d-o)*(i-a)<(p-a)*(t-o)&&--e;return e})(),r=y&&e,h=(l=Wl(l)).length;(r||h)&&(a.polygonStart(),r&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),h&&Lb(l,s,e,o,a),a.polygonEnd()),v=a,l=c=u=null}};function T(t,e){r(t,e)&&v.point(t,e)}function C(o,a){var s=r(o,a);if(c&&u.push([o,a]),_)h=o,d=a,p=s,_=!1,s&&(v.lineStart(),v.point(o,a));else if(s&&g)v.point(o,a);else{var l=[f=Math.max(jb,Math.min(Ub,f)),m=Math.max(jb,Math.min(Ub,m))],b=[o=Math.max(jb,Math.min(Ub,o)),a=Math.max(jb,Math.min(Ub,a))];!(function x(t,e,n,i,r,o){var a,s=t[0],l=t[1],c=0,u=1,h=e[0]-s,d=e[1]-l;if(a=n-s,h||!(a>0)){if(a/=h,h<0){if(a<c)return;a<u&&(u=a)}else if(h>0){if(a>u)return;a>c&&(c=a)}if(a=r-s,h||!(a<0)){if(a/=h,h<0){if(a>u)return;a>c&&(c=a)}else if(h>0){if(a<c)return;a<u&&(u=a)}if(a=i-l,d||!(a>0)){if(a/=d,d<0){if(a<c)return;a<u&&(u=a)}else if(d>0){if(a>u)return;a>c&&(c=a)}if(a=o-l,d||!(a<0)){if(a/=d,d<0){if(a>u)return;a>c&&(c=a)}else if(d>0){if(a<c)return;a<u&&(u=a)}return c>0&&(t[0]=s+c*h,t[1]=l+c*d),u<1&&(e[0]=s+u*h,e[1]=l+u*d),!0}}}}})(l,b,t,e,n,i)?s&&(v.lineStart(),v.point(o,a),y=!1):(g||(v.lineStart(),v.point(l[0],l[1])),v.point(b[0],b[1]),s||v.lineEnd(),y=!1)}f=o,m=a,g=s}return x}}var Wb,qb,Yb,Xb=Sy(),$b={sphere:Ky,point:Ky,lineStart:function Kb(){$b.point=Jb,$b.lineEnd=Zb},lineEnd:Ky,polygonStart:Ky,polygonEnd:Ky};function Zb(){$b.point=$b.lineEnd=Ky}function Jb(t,e){Wb=t*=Oy,qb=jy(e*=Oy),Yb=By(e),$b.point=Qb}function Qb(t,e){t*=Oy;var n=jy(e*=Oy),i=By(e),r=Ry(t-Wb),o=By(r),a=i*jy(r),s=Yb*n-qb*i*o,l=qb*n+Yb*i*o;Xb.add(Dy(Wy(a*a+s*s),l)),Wb=t,qb=n,Yb=i}function tx(t){return Xb.reset(),nv(t,$b),+Xb}var ex=[null,null],nx={type:"LineString",coordinates:ex};function ix(t,e){return ex[0]=t,ex[1]=e,tx(nx)}var rx={Feature:function(t,e){return ax(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,r=n.length;++i<r;)if(ax(n[i].geometry,e))return!0;return!1}},ox={Sphere:function(){return!0},Point:function(t,e){return sx(t.coordinates,e)},MultiPoint:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)if(sx(n[i],e))return!0;return!1},LineString:function(t,e){return lx(t.coordinates,e)},MultiLineString:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)if(lx(n[i],e))return!0;return!1},Polygon:function(t,e){return cx(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)if(cx(n[i],e))return!0;return!1},GeometryCollection:function(t,e){for(var n=t.geometries,i=-1,r=n.length;++i<r;)if(ax(n[i],e))return!0;return!1}};function ax(t,e){return!(!t||!ox.hasOwnProperty(t.type))&&ox[t.type](t,e)}function sx(t,e){return 0===ix(t,e)}function lx(t,e){for(var n,i,r,o=0,a=t.length;o<a;o++){if(0===(i=ix(t[o],e)))return!0;if(o>0&&(r=ix(t[o],t[o-1]))>0&&n<=r&&i<=r&&(n+i-r)*(1-Math.pow((n-i)/r,2))<Ay*r)return!0;n=i}return!1}function cx(t,e){return!!Ob(t.map(ux),hx(e))}function ux(t){return(t=t.map(hx)).pop(),t}function hx(t){return[t[0]*Oy,t[1]*Oy]}function dx(t,e,n){var i=Rl(t,e-Cy,n).concat(e);return function(t){return i.map((function(e){return[t,e]}))}}function px(t,e,n){var i=Rl(t,e-Cy,n).concat(e);return function(t){return i.map((function(e){return[e,t]}))}}function fx(){var t,e,n,i,r,o,a,s,l,c,u,h,d=10,p=d,f=90,m=360,g=2.5;function _(){return{type:"MultiLineString",coordinates:y()}}function y(){return Rl(Hy(i/f)*f,n,f).map(u).concat(Rl(Hy(s/m)*m,a,m).map(h)).concat(Rl(Hy(e/d)*d,t,d).filter((function(t){return Ry(t%f)>Cy})).map(l)).concat(Rl(Hy(o/p)*p,r,p).filter((function(t){return Ry(t%m)>Cy})).map(c))}return _.lines=function(){return y().map((function(t){return{type:"LineString",coordinates:t}}))},_.outline=function(){return{type:"Polygon",coordinates:[u(i).concat(h(a).slice(1),u(n).reverse().slice(1),h(s).reverse().slice(1))]}},_.extent=function(t){return arguments.length?_.extentMajor(t).extentMinor(t):_.extentMinor()},_.extentMajor=function(t){return arguments.length?(s=+t[0][1],a=+t[1][1],(i=+t[0][0])>(n=+t[1][0])&&(t=i,i=n,n=t),s>a&&(t=s,s=a,a=t),_.precision(g)):[[i,s],[n,a]]},_.extentMinor=function(n){return arguments.length?(o=+n[0][1],r=+n[1][1],(e=+n[0][0])>(t=+n[1][0])&&(n=e,e=t,t=n),o>r&&(n=o,o=r,r=n),_.precision(g)):[[e,o],[t,r]]},_.step=function(t){return arguments.length?_.stepMajor(t).stepMinor(t):_.stepMinor()},_.stepMajor=function(t){return arguments.length?(f=+t[0],m=+t[1],_):[f,m]},_.stepMinor=function(t){return arguments.length?(d=+t[0],p=+t[1],_):[d,p]},_.precision=function(d){return arguments.length?(g=+d,l=dx(o,r,90),c=px(e,t,g),u=dx(s,a,90),h=px(i,n,g),_):g},_.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}function mx(t){return t}var gx,_x,yx,vx,bx=Sy(),xx=Sy(),wx={point:Ky,lineStart:Ky,lineEnd:Ky,polygonStart:function(){wx.lineStart=Sx,wx.lineEnd=Tx},polygonEnd:function(){wx.lineStart=wx.lineEnd=wx.point=Ky,bx.add(Ry(xx)),xx.reset()},result:function(){var t=bx/2;return bx.reset(),t}};function Sx(){wx.point=Mx}function Mx(t,e){wx.point=Ex,gx=yx=t,_x=vx=e}function Ex(t,e){xx.add(vx*t-yx*e),yx=t,vx=e}function Tx(){Ex(gx,_x)}var Cx,Ax,kx,Lx,Px=1/0,Nx=Px,Ix=-Px,Ox=Ix,Rx={point:function zx(t,e){t<Px&&(Px=t),t>Ix&&(Ix=t),e<Nx&&(Nx=e),e>Ox&&(Ox=e)},lineStart:Ky,lineEnd:Ky,polygonStart:Ky,polygonEnd:Ky,result:function(){var t=[[Px,Nx],[Ix,Ox]];return Ix=Ox=-(Nx=Px=1/0),t}},Dx=0,Bx=0,Hx=0,Fx=0,Vx=0,Ux=0,jx=0,Gx=0,Wx=0,qx={point:Yx,lineStart:Xx,lineEnd:Zx,polygonStart:function(){qx.lineStart=Jx,qx.lineEnd=Qx},polygonEnd:function(){qx.point=Yx,qx.lineStart=Xx,qx.lineEnd=Zx},result:function(){var t=Wx?[jx/Wx,Gx/Wx]:Ux?[Fx/Ux,Vx/Ux]:Hx?[Dx/Hx,Bx/Hx]:[NaN,NaN];return Dx=Bx=Hx=Fx=Vx=Ux=jx=Gx=Wx=0,t}};function Yx(t,e){Dx+=t,Bx+=e,++Hx}function Xx(){qx.point=$x}function $x(t,e){qx.point=Kx,Yx(kx=t,Lx=e)}function Kx(t,e){var n=t-kx,i=e-Lx,r=Wy(n*n+i*i);Fx+=r*(kx+t)/2,Vx+=r*(Lx+e)/2,Ux+=r,Yx(kx=t,Lx=e)}function Zx(){qx.point=Yx}function Jx(){qx.point=tw}function Qx(){ew(Cx,Ax)}function tw(t,e){qx.point=ew,Yx(Cx=kx=t,Ax=Lx=e)}function ew(t,e){var n=t-kx,i=e-Lx,r=Wy(n*n+i*i);Fx+=r*(kx+t)/2,Vx+=r*(Lx+e)/2,Ux+=r,jx+=(r=Lx*t-kx*e)*(kx+t),Gx+=r*(Lx+e),Wx+=3*r,Yx(kx=t,Lx=e)}function nw(t){this._context=t}nw.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,Ny)}},result:Ky};var iw,rw,ow,aw,sw,lw=Sy(),cw={point:Ky,lineStart:function(){cw.point=uw},lineEnd:function(){iw&&hw(rw,ow),cw.point=Ky},polygonStart:function(){iw=!0},polygonEnd:function(){iw=null},result:function(){var t=+lw;return lw.reset(),t}};function uw(t,e){cw.point=hw,rw=aw=t,ow=sw=e}function hw(t,e){lw.add(Wy((aw-=t)*aw+(sw-=e)*sw)),aw=t,sw=e}function dw(){this._string=[]}function pw(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function fw(t){return function(e){var n=new mw;for(var i in t)n[i]=t[i];return n.stream=e,n}}function mw(){}function gw(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=i&&t.clipExtent(null),nv(n,t.stream(Rx)),e(Rx.result()),null!=i&&t.clipExtent(i),t}function _w(t,e,n){return gw(t,(function(n){var i=e[1][0]-e[0][0],r=e[1][1]-e[0][1],o=Math.min(i/(n[1][0]-n[0][0]),r/(n[1][1]-n[0][1])),a=+e[0][0]+(i-o*(n[1][0]+n[0][0]))/2,s=+e[0][1]+(r-o*(n[1][1]+n[0][1]))/2;t.scale(150*o).translate([a,s])}),n)}function yw(t,e,n){return _w(t,[[0,0],e],n)}function vw(t,e,n){return gw(t,(function(n){var i=+e,r=i/(n[1][0]-n[0][0]),o=(i-r*(n[1][0]+n[0][0]))/2,a=-r*n[0][1];t.scale(150*r).translate([o,a])}),n)}function bw(t,e,n){return gw(t,(function(n){var i=+e,r=i/(n[1][1]-n[0][1]),o=-r*n[0][0],a=(i-r*(n[1][1]+n[0][1]))/2;t.scale(150*r).translate([o,a])}),n)}dw.prototype={_radius:4.5,_circle:pw(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=pw(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},mw.prototype={constructor:mw,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var xw=By(30*Oy);function ww(t,e){return+e?(function n(t,e){function n(i,r,o,a,s,l,c,u,h,d,p,f,m,g){var _=c-i,y=u-r,v=_*_+y*y;if(v>4*e&&m--){var b=a+d,x=s+p,w=l+f,S=Wy(b*b+x*x+w*w),M=Xy(w/=S),E=Ry(Ry(w)-1)<Cy||Ry(o-h)<Cy?(o+h)/2:Dy(x,b),T=t(E,M),C=T[0],A=T[1],k=C-i,L=A-r,P=y*k-_*L;(P*P/v>e||Ry((_*k+y*L)/v-.5)>.3||a*d+s*p+l*f<xw)&&(n(i,r,o,a,s,l,C,A,E,b/=S,x/=S,w,m,g),g.point(C,A),n(C,A,E,b,x,w,c,u,h,d,p,f,m,g))}}return function(e){var i,r,o,a,s,l,c,u,h,d,p,f,m={point:g,lineStart:_,lineEnd:v,polygonStart:function(){e.polygonStart(),m.lineStart=b},polygonEnd:function(){e.polygonEnd(),m.lineStart=_}};function g(n,i){n=t(n,i),e.point(n[0],n[1])}function _(){u=NaN,m.point=y,e.lineStart()}function y(i,r){var o=gv([i,r]),a=t(i,r);n(u,h,c,d,p,f,u=a[0],h=a[1],c=i,d=o[0],p=o[1],f=o[2],16,e),e.point(u,h)}function v(){m.point=g,e.lineEnd()}function b(){_(),m.point=x,m.lineEnd=w}function x(t,e){y(i=t,e),r=u,o=h,a=d,s=p,l=f,m.point=y}function w(){n(u,h,c,d,p,f,r,o,i,a,s,l,16,e),m.lineEnd=v,v()}return m}})(t,e):(function i(t){return fw({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})})(t)}var Sw=fw({point:function(t,e){this.stream.point(t*Oy,e*Oy)}});function Mw(t,e,n,i,r){function o(o,a){return[e+t*(o*=i),n-t*(a*=r)]}return o.invert=function(o,a){return[(o-e)/t*i,(n-a)/t*r]},o}function Ew(t,e,n,i,r,o){var a=By(o),s=jy(o),l=a*t,c=s*t,u=a/t,h=s/t,d=(s*n-a*e)/t,p=(s*e+a*n)/t;function f(t,o){return[l*(t*=i)-c*(o*=r)+e,n-c*t-l*o]}return f.invert=function(t,e){return[i*(u*t-h*e+d),r*(p-h*t-u*e)]},f}function Tw(t){return Cw((function(){return t}))()}function Cw(t){var e,n,i,r,o,a,s,l,c,u,h=150,d=480,p=250,f=0,m=0,g=0,_=0,y=0,v=0,b=1,x=1,w=null,S=Bb,M=null,E=mx,T=.5;function C(t){return l(t[0]*Oy,t[1]*Oy)}function A(t){return(t=l.invert(t[0],t[1]))&&[t[0]*Iy,t[1]*Iy]}function k(){var t=Ew(h,0,0,b,x,v).apply(null,e(f,m)),i=(v?Ew:Mw)(h,d-t[0],p-t[1],b,x,v);return n=bb(g,_,y),s=yb(e,i),l=yb(n,s),a=ww(s,T),L()}function L(){return c=u=null,C}return C.stream=function(t){return c&&u===t?c:c=Sw((function e(t){return fw({point:function(e,n){var i=t(e,n);return this.stream.point(i[0],i[1])}})})(n)(S(a(E(u=t)))))},C.preclip=function(t){return arguments.length?(S=t,w=void 0,L()):S},C.postclip=function(t){return arguments.length?(E=t,M=i=r=o=null,L()):E},C.clipAngle=function(t){return arguments.length?(S=+t?Vb(w=t*Oy):(w=null,Bb),L()):w*Iy},C.clipExtent=function(t){return arguments.length?(E=null==t?(M=i=r=o=null,mx):Gb(M=+t[0][0],i=+t[0][1],r=+t[1][0],o=+t[1][1]),L()):null==M?null:[[M,i],[r,o]]},C.scale=function(t){return arguments.length?(h=+t,k()):h},C.translate=function(t){return arguments.length?(d=+t[0],p=+t[1],k()):[d,p]},C.center=function(t){return arguments.length?(f=t[0]%360*Oy,m=t[1]%360*Oy,k()):[f*Iy,m*Iy]},C.rotate=function(t){return arguments.length?(g=t[0]%360*Oy,_=t[1]%360*Oy,y=t.length>2?t[2]%360*Oy:0,k()):[g*Iy,_*Iy,y*Iy]},C.angle=function(t){return arguments.length?(v=t%360*Oy,k()):v*Iy},C.reflectX=function(t){return arguments.length?(b=t?-1:1,k()):b<0},C.reflectY=function(t){return arguments.length?(x=t?-1:1,k()):x<0},C.precision=function(t){return arguments.length?(a=ww(s,T=t*t),L()):Wy(T)},C.fitExtent=function(t,e){return _w(C,t,e)},C.fitSize=function(t,e){return yw(C,t,e)},C.fitWidth=function(t,e){return vw(C,t,e)},C.fitHeight=function(t,e){return bw(C,t,e)},function(){return e=t.apply(this,arguments),C.invert=e.invert&&A,k()}}function Aw(t){var e=0,n=ky/3,i=Cw(t),r=i(e,n);return r.parallels=function(t){return arguments.length?i(e=t[0]*Oy,n=t[1]*Oy):[e*Iy,n*Iy]},r}function kw(t,e){var n=jy(t),i=(n+jy(e))/2;if(Ry(i)<Cy)return(function r(t){var e=By(t);function n(t,n){return[t*e,jy(n)/e]}return n.invert=function(t,n){return[t/e,Xy(n*e)]},n})(t);var o=1+n*(2*i-n),a=Wy(o)/i;function s(t,e){var n=Wy(o-2*i*jy(e))/i;return[n*jy(t*=i),a-n*By(t)]}return s.invert=function(t,e){var n=a-e,r=Dy(t,Ry(n))*Gy(n);return n*i<0&&(r-=ky*Gy(t)*Gy(n)),[r/i,Xy((o-(t*t+n*n)*i*i)/(2*i))]},s}function Lw(){return Aw(kw).scale(155.424).center([0,33.6442])}function Pw(){return Lw().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Nw(t){return function(e,n){var i=By(e),r=By(n),o=t(i*r);return[o*r*jy(e),o*jy(n)]}}function Iw(t){return function(e,n){var i=Wy(e*e+n*n),r=t(i),o=jy(r),a=By(r);return[Dy(e*o,i*a),Xy(i&&n*o/i)]}}var Ow=Nw((function(t){return Wy(2/(1+t))}));Ow.invert=Iw((function(t){return 2*Xy(t/2)}));var Rw=Nw((function(t){return(t=Yy(t))&&t/jy(t)}));function zw(t,e){return[t,Vy(qy((Ly+e)/2))]}function Dw(t){var e,n,i,r=Tw(t),o=r.center,a=r.scale,s=r.translate,l=r.clipExtent,c=null;function u(){var o=ky*a(),s=r(Mb(r.rotate()).invert([0,0]));return l(null==c?[[s[0]-o,s[1]-o],[s[0]+o,s[1]+o]]:t===zw?[[Math.max(s[0]-o,c),e],[Math.min(s[0]+o,n),i]]:[[c,Math.max(s[1]-o,e)],[n,Math.min(s[1]+o,i)]])}return r.scale=function(t){return arguments.length?(a(t),u()):a()},r.translate=function(t){return arguments.length?(s(t),u()):s()},r.center=function(t){return arguments.length?(o(t),u()):o()},r.clipExtent=function(t){return arguments.length?(null==t?c=e=n=i=null:(c=+t[0][0],e=+t[0][1],n=+t[1][0],i=+t[1][1]),u()):null==c?null:[[c,e],[n,i]]},u()}function Bw(t){return qy((Ly+t)/2)}function Hw(t,e){var n=By(t),i=t===e?jy(t):Vy(n/By(e))/Vy(Bw(e)/Bw(t)),r=n*Uy(Bw(t),i)/i;if(!i)return zw;function o(t,e){r>0?e<-Ly+Cy&&(e=-Ly+Cy):e>Ly-Cy&&(e=Ly-Cy);var n=r/Uy(Bw(e),i);return[n*jy(i*t),r-n*By(i*t)]}return o.invert=function(t,e){var n=r-e,o=Gy(i)*Wy(t*t+n*n),a=Dy(t,Ry(n))*Gy(n);return n*i<0&&(a-=ky*Gy(t)*Gy(n)),[a/i,2*zy(Uy(r/o,1/i))-Ly]},o}function Fw(t,e){return[t,e]}function Vw(t,e){var n=By(t),i=t===e?jy(t):(n-By(e))/(e-t),r=n/i+t;if(Ry(i)<Cy)return Fw;function o(t,e){var n=r-e,o=i*t;return[n*jy(o),r-n*By(o)]}return o.invert=function(t,e){var n=r-e,o=Dy(t,Ry(n))*Gy(n);return n*i<0&&(o-=ky*Gy(t)*Gy(n)),[o/i,r-Gy(i)*Wy(t*t+n*n)]},o}Rw.invert=Iw((function(t){return t})),zw.invert=function(t,e){return[t,2*zy(Fy(e))-Ly]},Fw.invert=Fw;var Uw=1.340264,jw=-.081106,Gw=893e-6,Ww=.003796,qw=Wy(3)/2;function Yw(t,e){var n=Xy(qw*jy(e)),i=n*n,r=i*i*i;return[t*By(n)/(qw*(Uw+3*jw*i+r*(7*Gw+9*Ww*i))),n*(Uw+jw*i+r*(Gw+Ww*i))]}function Xw(t,e){var n=By(e),i=By(t)*n;return[n*jy(t)/i,jy(e)/i]}function $w(t,e){var n=e*e,i=n*n;return[t*(.8707-.131979*n+i*(i*(.003971*n-.001529*i)-.013791)),e*(1.007226+n*(.015085+i*(.028874*n-.044475-.005916*i)))]}function Kw(t,e){return[By(e)*jy(t),jy(e)]}function Zw(t,e){var n=By(e),i=1+By(t)*n;return[n*jy(t)/i,jy(e)/i]}function Jw(t,e){return[Vy(qy((Ly+e)/2)),-t]}function Qw(t,e){return t.parent===e.parent?1:2}function tS(t,e){return t+e.x}function eS(t,e){return Math.max(t,e.y)}function nS(t){var e=0,n=t.children,i=n&&n.length;if(i)for(;--i>=0;)e+=n[i].value;else e=1;t.value=e}function iS(t,e){var n,i,r,o,a,s=new sS(t),l=+t.value&&(s.value=t.value),c=[s];for(null==e&&(e=rS);n=c.pop();)if(l&&(n.value=+n.data.value),(r=e(n.data))&&(a=r.length))for(n.children=new Array(a),o=a-1;o>=0;--o)c.push(i=n.children[o]=new sS(r[o])),i.parent=n,i.depth=n.depth+1;return s.eachBefore(aS)}function rS(t){return t.children}function oS(t){t.data=t.data.data}function aS(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function sS(t){this.data=t,this.depth=this.height=0,this.parent=null}Yw.invert=function(t,e){for(var n,i=e,r=i*i,o=r*r*r,a=0;a<12&&(o=(r=(i-=n=(i*(Uw+jw*r+o*(Gw+Ww*r))-e)/(Uw+3*jw*r+o*(7*Gw+9*Ww*r)))*i)*r*r,!(Ry(n)<Ay));++a);return[qw*t*(Uw+3*jw*r+o*(7*Gw+9*Ww*r))/By(i),Xy(jy(i)/qw)]},Xw.invert=Iw(zy),$w.invert=function(t,e){var n,i=e,r=25;do{var o=i*i,a=o*o;i-=n=(i*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-e)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(Ry(n)>Cy&&--r>0);return[t/(.8707+(o=i*i)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),i]},Kw.invert=Iw(Xy),Zw.invert=Iw((function(t){return 2*zy(t)})),Jw.invert=function(t,e){return[-e,2*zy(Fy(t))-Ly]},sS.prototype=iS.prototype={constructor:sS,count:function lS(){return this.eachAfter(nS)},each:function cS(t){var e,n,i,r,o=this,a=[o];do{for(e=a.reverse(),a=[];o=e.pop();)if(t(o),n=o.children)for(i=0,r=n.length;i<r;++i)a.push(n[i])}while(a.length);return this},eachAfter:function uS(t){for(var e,n,i,r=this,o=[r],a=[];r=o.pop();)if(a.push(r),e=r.children)for(n=0,i=e.length;n<i;++n)o.push(e[n]);for(;r=a.pop();)t(r);return this},eachBefore:function hS(t){for(var e,n,i=this,r=[i];i=r.pop();)if(t(i),e=i.children)for(n=e.length-1;n>=0;--n)r.push(e[n]);return this},sum:function dS(t){return this.eachAfter((function(e){for(var n=+t(e.data)||0,i=e.children,r=i&&i.length;--r>=0;)n+=i[r].value;e.value=n}))},sort:function pS(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function fS(t){for(var e=this,n=(function i(t,e){if(t===e)return t;var n=t.ancestors(),i=e.ancestors(),r=null;for(t=n.pop(),e=i.pop();t===e;)r=t,t=n.pop(),e=i.pop();return r})(e,t),r=[e];e!==n;)r.push(e=e.parent);for(var o=r.length;t!==n;)r.splice(o,0,t),t=t.parent;return r},ancestors:function mS(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function gS(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function _S(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function yS(){var t=this,e=[];return t.each((function(n){n!==t&&e.push({source:n.parent,target:n})})),e},copy:function vS(){return iS(this).eachBefore(oS)}};var bS=Array.prototype.slice;function xS(t){for(var e,n,i=0,r=(t=(function o(t){for(var e,n,i=t.length;i;)n=Math.random()*i--|0,e=t[i],t[i]=t[n],t[n]=e;return t})(bS.call(t))).length,a=[];i<r;)e=t[i],n&&MS(n,e)?++i:(n=TS(a=wS(a,e)),i=0);return n}function wS(t,e){var n,i;if(ES(e,t))return[e];for(n=0;n<t.length;++n)if(SS(e,t[n])&&ES(CS(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(i=n+1;i<t.length;++i)if(SS(CS(t[n],t[i]),e)&&SS(CS(t[n],e),t[i])&&SS(CS(t[i],e),t[n])&&ES(AS(t[n],t[i],e),t))return[t[n],t[i],e];throw new Error}function SS(t,e){var n=t.r-e.r,i=e.x-t.x,r=e.y-t.y;return n<0||n*n<i*i+r*r}function MS(t,e){var n=t.r-e.r+1e-6,i=e.x-t.x,r=e.y-t.y;return n>0&&n*n>i*i+r*r}function ES(t,e){for(var n=0;n<e.length;++n)if(!MS(t,e[n]))return!1;return!0}function TS(t){switch(t.length){case 1:return(function e(t){return{x:t.x,y:t.y,r:t.r}})(t[0]);case 2:return CS(t[0],t[1]);case 3:return AS(t[0],t[1],t[2])}}function CS(t,e){var n=t.x,i=t.y,r=t.r,o=e.x,a=e.y,s=e.r,l=o-n,c=a-i,u=s-r,h=Math.sqrt(l*l+c*c);return{x:(n+o+l/h*u)/2,y:(i+a+c/h*u)/2,r:(h+r+s)/2}}function AS(t,e,n){var i=t.x,r=t.y,o=t.r,a=e.x,s=e.y,l=e.r,c=n.x,u=n.y,h=n.r,d=i-a,p=i-c,f=r-s,m=r-u,g=l-o,_=h-o,y=i*i+r*r-o*o,v=y-a*a-s*s+l*l,b=y-c*c-u*u+h*h,x=p*f-d*m,w=(f*b-m*v)/(2*x)-i,S=(m*g-f*_)/x,M=(p*v-d*b)/(2*x)-r,E=(d*_-p*g)/x,T=S*S+E*E-1,C=2*(o+w*S+M*E),A=w*w+M*M-o*o,k=-(T?(C+Math.sqrt(C*C-4*T*A))/(2*T):A/C);return{x:i+w+S*k,y:r+M+E*k,r:k}}function kS(t,e,n){var i,r,o,a,s=t.x-e.x,l=t.y-e.y,c=s*s+l*l;c?(r=e.r+n.r,a=t.r+n.r,(r*=r)>(a*=a)?(i=(c+a-r)/(2*c),o=Math.sqrt(Math.max(0,a/c-i*i)),n.x=t.x-i*s-o*l,n.y=t.y-i*l+o*s):(i=(c+r-a)/(2*c),o=Math.sqrt(Math.max(0,r/c-i*i)),n.x=e.x+i*s-o*l,n.y=e.y+i*l+o*s)):(n.x=e.x+n.r,n.y=e.y)}function LS(t,e){var n=t.r+e.r-1e-6,i=e.x-t.x,r=e.y-t.y;return n>0&&n*n>i*i+r*r}function PS(t){var e=t._,n=t.next._,i=e.r+n.r,r=(e.x*n.r+n.x*e.r)/i,o=(e.y*n.r+n.y*e.r)/i;return r*r+o*o}function NS(t){this._=t,this.next=null,this.previous=null}function IS(t){if(!(r=t.length))return 0;var e,n,i,r,o,a,s,l,c,u,h;if((e=t[0]).x=0,e.y=0,!(r>1))return e.r;if(e.x=-(n=t[1]).r,n.x=e.r,n.y=0,!(r>2))return e.r+n.r;kS(n,e,i=t[2]),e=new NS(e),n=new NS(n),i=new NS(i),e.next=i.previous=n,n.next=e.previous=i,i.next=n.previous=e;t:for(s=3;s<r;++s){kS(e._,n._,i=t[s]),i=new NS(i),l=n.next,c=e.previous,u=n._.r,h=e._.r;do{if(u<=h){if(LS(l._,i._)){e.next=n=l,n.previous=e,--s;continue t}u+=l._.r,l=l.next}else{if(LS(c._,i._)){(e=c).next=n,n.previous=e,--s;continue t}h+=c._.r,c=c.previous}}while(l!==c.next);for(i.previous=e,i.next=n,e.next=n.previous=n=i,o=PS(e);(i=i.next)!==n;)(a=PS(i))<o&&(e=i,o=a);n=e.next}for(e=[n._],i=n;(i=i.next)!==n;)e.push(i._);for(i=xS(e),s=0;s<r;++s)(e=t[s]).x-=i.x,e.y-=i.y;return i.r}function OS(t){return null==t?null:RS(t)}function RS(t){if("function"!=typeof t)throw new Error;return t}function zS(){return 0}function DS(t){return function(){return t}}function BS(t){return Math.sqrt(t.value)}function HS(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function FS(t,e){return function(n){if(i=n.children){var i,r,o,a=i.length,s=t(n)*e||0;if(s)for(r=0;r<a;++r)i[r].r+=s;if(o=IS(i),s)for(r=0;r<a;++r)i[r].r-=s;n.r=o+s}}}function VS(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function US(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function jS(t,e,n,i,r){for(var o,a=t.children,s=-1,l=a.length,c=t.value&&(i-e)/t.value;++s<l;)(o=a[s]).y0=n,o.y1=r,o.x0=e,o.x1=e+=o.value*c}var GS={depth:-1},WS={};function qS(t){return t.id}function YS(t){return t.parentId}function XS(t,e){return t.parent===e.parent?1:2}function $S(t){var e=t.children;return e?e[0]:t.t}function KS(t){var e=t.children;return e?e[e.length-1]:t.t}function ZS(t,e,n){var i=n/(e.i-t.i);e.c-=i,e.s+=n,t.c+=i,e.z+=n,e.m+=n}function JS(t,e,n){return t.a.parent===e.parent?t.a:n}function QS(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}function tM(t,e,n,i,r){for(var o,a=t.children,s=-1,l=a.length,c=t.value&&(r-n)/t.value;++s<l;)(o=a[s]).x0=e,o.x1=i,o.y0=n,o.y1=n+=o.value*c}QS.prototype=Object.create(sS.prototype);var eM=(1+Math.sqrt(5))/2;function nM(t,e,n,i,r,o){for(var a,s,l,c,u,h,d,p,f,m,g,_=[],y=e.children,v=0,b=0,x=y.length,w=e.value;v<x;){l=r-n,c=o-i;do{u=y[b++].value}while(!u&&b<x);for(h=d=u,g=u*u*(m=Math.max(c/l,l/c)/(w*t)),f=Math.max(d/g,g/h);b<x;++b){if(u+=s=y[b].value,s<h&&(h=s),s>d&&(d=s),g=u*u*m,(p=Math.max(d/g,g/h))>f){u-=s;break}f=p}_.push(a={value:u,dice:l<c,children:y.slice(v,b)}),a.dice?jS(a,n,i,r,w?i+=c*u/w:o):tM(a,n,i,w?n+=l*u/w:r,o),w-=u,v=b}return _}var iM=(function t(e){function n(t,n,i,r,o){nM(e,t,n,i,r,o)}return n.ratio=function(e){return t((e=+e)>1?e:1)},n})(eM),rM=(function t(e){function n(t,n,i,r,o){if((a=t._squarify)&&a.ratio===e)for(var a,s,l,c,u,h=-1,d=a.length,p=t.value;++h<d;){for(l=(s=a[h]).children,c=s.value=0,u=l.length;c<u;++c)s.value+=l[c].value;s.dice?jS(s,n,i,r,i+=(o-i)*s.value/p):tM(s,n,i,n+=(r-n)*s.value/p,o),p-=s.value}else t._squarify=a=nM(e,t,n,i,r,o),a.ratio=e}return n.ratio=function(e){return t((e=+e)>1?e:1)},n})(eM);function oM(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(e[1]-t[1])*(n[0]-t[0])}function aM(t,e){return t[0]-e[0]||t[1]-e[1]}function sM(t){for(var e=t.length,n=[0,1],i=2,r=2;r<e;++r){for(;i>1&&oM(t[n[i-2]],t[n[i-1]],t[r])<=0;)--i;n[i++]=r}return n.slice(0,i)}function lM(){return Math.random()}var cM=(function t(e){function n(t,n){return t=null==t?0:+t,n=null==n?1:+n,1===arguments.length?(n=t,t=0):n-=t,function(){return e()*n+t}}return n.source=t,n})(lM),uM=(function t(e){function n(t,n){var i,r;return t=null==t?0:+t,n=null==n?1:+n,function(){var o;if(null!=i)o=i,i=null;else do{i=2*e()-1,o=2*e()-1,r=i*i+o*o}while(!r||r>1);return t+n*o*Math.sqrt(-2*Math.log(r)/r)}}return n.source=t,n})(lM),hM=(function t(e){function n(){var t=uM.source(e).apply(this,arguments);return function(){return Math.exp(t())}}return n.source=t,n})(lM),dM=(function t(e){function n(t){return function(){for(var n=0,i=0;i<t;++i)n+=e();return n}}return n.source=t,n})(lM),pM=(function t(e){function n(t){var n=dM.source(e)(t);return function(){return n()/t}}return n.source=t,n})(lM),fM=(function t(e){function n(t){return function(){return-Math.log(1-e())/t}}return n.source=t,n})(lM);function mM(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function gM(t,e){switch(arguments.length){case 0:break;case 1:this.interpolator(t);break;default:this.interpolator(e).domain(t)}return this}var _M=Array.prototype,yM=_M.map,vM=_M.slice,bM={name:"implicit"};function xM(){var t=xg(),e=[],n=[],i=bM;function r(r){var o=r+"",a=t.get(o);if(!a){if(i!==bM)return i;t.set(o,a=e.push(r))}return n[(a-1)%n.length]}return r.domain=function(n){if(!arguments.length)return e.slice();e=[],t=xg();for(var i,o,a=-1,s=n.length;++a<s;)t.has(o=(i=n[a])+"")||t.set(o,e.push(i));return r},r.range=function(t){return arguments.length?(n=vM.call(t),r):n.slice()},r.unknown=function(t){return arguments.length?(i=t,r):i},r.copy=function(){return xM(e,n).unknown(i)},mM.apply(r,arguments),r}function wM(){var t,e,n=xM().unknown(void 0),i=n.domain,r=n.range,o=[0,1],a=!1,s=0,l=0,c=.5;function u(){var n=i().length,u=o[1]<o[0],h=o[u-0],d=o[1-u];t=(d-h)/Math.max(1,n-s+2*l),a&&(t=Math.floor(t)),h+=(d-h-t*(n-s))*c,e=t*(1-s),a&&(h=Math.round(h),e=Math.round(e));var p=Rl(n).map((function(e){return h+t*e}));return r(u?p.reverse():p)}return delete n.unknown,n.domain=function(t){return arguments.length?(i(t),u()):i()},n.range=function(t){return arguments.length?(o=[+t[0],+t[1]],u()):o.slice()},n.rangeRound=function(t){return o=[+t[0],+t[1]],a=!0,u()},n.bandwidth=function(){return e},n.step=function(){return t},n.round=function(t){return arguments.length?(a=!!t,u()):a},n.padding=function(t){return arguments.length?(s=Math.min(1,l=+t),u()):s},n.paddingInner=function(t){return arguments.length?(s=Math.min(1,t),u()):s},n.paddingOuter=function(t){return arguments.length?(l=+t,u()):l},n.align=function(t){return arguments.length?(c=Math.max(0,Math.min(1,t)),u()):c},n.copy=function(){return wM(i(),o).round(a).paddingInner(s).paddingOuter(l).align(c)},mM.apply(u(),arguments)}function SM(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return SM(e())},t}function MM(){return SM(wM.apply(null,arguments).paddingInner(1))}function EM(t){return+t}var TM=[0,1];function CM(t){return t}function AM(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:(function n(t){return function(){return t}})(isNaN(e)?NaN:.5)}function kM(t){var e,n=t[0],i=t[t.length-1];return n>i&&(e=n,n=i,i=e),function(t){return Math.max(n,Math.min(i,t))}}function LM(t,e,n){var i=t[0],r=t[1],o=e[0],a=e[1];return r<i?(i=AM(r,i),o=n(a,o)):(i=AM(i,r),o=n(o,a)),function(t){return o(i(t))}}function PM(t,e,n){var i=Math.min(t.length,e.length)-1,r=new Array(i),o=new Array(i),a=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<i;)r[a]=AM(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(e){var n=wl(t,e,1,i)-1;return o[n](r[n](e))}}function NM(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function IM(){var t,e,n,i,r,o,a=TM,s=TM,l=Ud,c=CM;function u(){return i=Math.min(a.length,s.length)>2?PM:LM,r=o=null,h}function h(e){return isNaN(e=+e)?n:(r||(r=i(a.map(t),s,l)))(t(c(e)))}return h.invert=function(n){return c(e((o||(o=i(s,a.map(t),Dd)))(n)))},h.domain=function(t){return arguments.length?(a=yM.call(t,EM),c===CM||(c=kM(a)),u()):a.slice()},h.range=function(t){return arguments.length?(s=vM.call(t),u()):s.slice()},h.rangeRound=function(t){return s=vM.call(t),l=jd,u()},h.clamp=function(t){return arguments.length?(c=t?kM(a):CM,h):c!==CM},h.interpolate=function(t){return arguments.length?(l=t,u()):l},h.unknown=function(t){return arguments.length?(n=t,h):n},function(n,i){return t=n,e=i,u()}}function OM(t,e){return IM()(t,e)}function RM(t,e,n,i){var r,o=Vl(t,e,n);switch((i=ay(null==i?",f":i)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(e));return null!=i.precision||isNaN(r=xy(o,a))||(i.precision=r),my(i,a);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(r=wy(o,Math.max(Math.abs(t),Math.abs(e))))||(i.precision=r-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(r=by(o))||(i.precision=r-2*("%"===i.type))}return fy(i)}function zM(t){var e=t.domain;return t.ticks=function(t){var n=e();return Hl(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var i=e();return RM(i[0],i[i.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var i,r=e(),o=0,a=r.length-1,s=r[o],l=r[a];return l<s&&(i=s,s=l,l=i,i=o,o=a,a=i),(i=Fl(s,l,n))>0?i=Fl(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,n):i<0&&(i=Fl(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,n)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(l/i)*i,e(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(l*i)/i,e(r)),t},t}function DM(){var t=OM(CM,CM);return t.copy=function(){return NM(t,DM())},mM.apply(t,arguments),zM(t)}function BM(t,e){var n,i=0,r=(t=t.slice()).length-1,o=t[i],a=t[r];return a<o&&(n=i,i=r,r=n,n=o,o=a,a=n),t[i]=e.floor(o),t[r]=e.ceil(a),t}function HM(t){return Math.log(t)}function FM(t){return Math.exp(t)}function VM(t){return-Math.log(-t)}function UM(t){return-Math.exp(-t)}function jM(t){return isFinite(t)?+("1e"+t):t<0?0:t}function GM(t){return function(e){return-t(-e)}}function WM(t){var e,n,i=t(HM,FM),r=i.domain,o=10;function a(){return e=(function a(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(e){return Math.log(e)/t})})(o),n=(function s(t){return 10===t?jM:t===Math.E?Math.exp:function(e){return Math.pow(t,e)}})(o),r()[0]<0?(e=GM(e),n=GM(n),t(VM,UM)):t(HM,FM),i}return i.base=function(t){return arguments.length?(o=+t,a()):o},i.domain=function(t){return arguments.length?(r(t),a()):r()},i.ticks=function(t){var i,a=r(),s=a[0],l=a[a.length-1];(i=l<s)&&(d=s,s=l,l=d);var c,u,h,d=e(s),p=e(l),f=null==t?10:+t,m=[];if(!(o%1)&&p-d<f){if(d=Math.round(d)-1,p=Math.round(p)+1,s>0){for(;d<p;++d)for(u=1,c=n(d);u<o;++u)if(!((h=c*u)<s)){if(h>l)break;m.push(h)}}else for(;d<p;++d)for(u=o-1,c=n(d);u>=1;--u)if(!((h=c*u)<s)){if(h>l)break;m.push(h)}}else m=Hl(d,p,Math.min(p-d,f)).map(n);return i?m.reverse():m},i.tickFormat=function(t,r){if(null==r&&(r=10===o?".0e":","),"function"!=typeof r&&(r=fy(r)),t===1/0)return r;null==t&&(t=10);var a=Math.max(1,o*t/i.ticks().length);return function(t){var i=t/n(Math.round(e(t)));return i*o<o-.5&&(i*=o),i<=a?r(t):""}},i.nice=function(){return r(BM(r(),{floor:function(t){return n(Math.floor(e(t)))},ceil:function(t){return n(Math.ceil(e(t)))}}))},i}function qM(){var t=WM(IM()).domain([1,10]);return t.copy=function(){return NM(t,qM()).base(t.base())},mM.apply(t,arguments),t}function YM(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function XM(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function $M(t){var e=1,n=t(YM(e),XM(e));return n.constant=function(n){return arguments.length?t(YM(e=+n),XM(e)):e},zM(n)}function KM(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function ZM(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function JM(t){return t<0?-t*t:t*t}function QM(t){var e=t(CM,CM),n=1;function i(){return 1===n?t(CM,CM):.5===n?t(ZM,JM):t(KM(n),KM(1/n))}return e.exponent=function(t){return arguments.length?(n=+t,i()):n},zM(e)}function tE(){var t=QM(IM());return t.copy=function(){return NM(t,tE()).exponent(t.exponent())},mM.apply(t,arguments),t}function eE(){var t,e=[],n=[],i=[];function r(){var t=0,r=Math.max(1,n.length);for(i=new Array(r-1);++t<r;)i[t-1]=jl(e,t/r);return o}function o(e){return isNaN(e=+e)?t:n[wl(i,e)]}return o.invertExtent=function(t){var r=n.indexOf(t);return r<0?[NaN,NaN]:[r>0?i[r-1]:e[0],r<i.length?i[r]:e[e.length-1]]},o.domain=function(t){if(!arguments.length)return e.slice();e=[];for(var n,i=0,o=t.length;i<o;++i)null==(n=t[i])||isNaN(n=+n)||e.push(n);return e.sort(vl),r()},o.range=function(t){return arguments.length?(n=vM.call(t),r()):n.slice()},o.unknown=function(e){return arguments.length?(t=e,o):t},o.quantiles=function(){return i.slice()},o.copy=function(){return eE().domain(e).range(n).unknown(t)},mM.apply(o,arguments)}function nE(){var t,e=0,n=1,i=1,r=[.5],o=[0,1];function a(e){return e<=e?o[wl(r,e,0,i)]:t}function s(){var t=-1;for(r=new Array(i);++t<i;)r[t]=((t+1)*n-(t-i)*e)/(i+1);return a}return a.domain=function(t){return arguments.length?(e=+t[0],n=+t[1],s()):[e,n]},a.range=function(t){return arguments.length?(i=(o=vM.call(t)).length-1,s()):o.slice()},a.invertExtent=function(t){var a=o.indexOf(t);return a<0?[NaN,NaN]:a<1?[e,r[0]]:a>=i?[r[i-1],n]:[r[a-1],r[a]]},a.unknown=function(e){return arguments.length?(t=e,a):a},a.thresholds=function(){return r.slice()},a.copy=function(){return nE().domain([e,n]).range(o).unknown(t)},mM.apply(zM(a),arguments)}var iE=new Date,rE=new Date;function oE(t,e,n,i){function r(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return r.floor=function(e){return t(e=new Date(+e)),e},r.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},r.round=function(t){var e=r(t),n=r.ceil(t);return t-e<n-t?e:n},r.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},r.range=function(n,i,o){var a,s=[];if(n=r.ceil(n),o=null==o?1:Math.floor(o),!(n<i&&o>0))return s;do{s.push(a=new Date(+n)),e(n,o),t(n)}while(a<n&&n<i);return s},r.filter=function(n){return oE((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,i){if(t>=t)if(i<0)for(;++i<=0;)for(;e(t,-1),!n(t););else for(;--i>=0;)for(;e(t,1),!n(t););}))},n&&(r.count=function(e,i){return iE.setTime(+e),rE.setTime(+i),t(iE),t(rE),Math.floor(n(iE,rE))},r.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?r.filter(i?function(e){return i(e)%t==0}:function(e){return r.count(0,e)%t==0}):r:null}),r}var aE=oE((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));aE.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?oE((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):aE:null};var sE=aE.range,lE=1e3,cE=6e4,uE=36e5,hE=864e5,dE=6048e5,pE=oE((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*lE)}),(function(t,e){return(e-t)/lE}),(function(t){return t.getUTCSeconds()})),fE=pE.range,mE=oE((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*lE)}),(function(t,e){t.setTime(+t+e*cE)}),(function(t,e){return(e-t)/cE}),(function(t){return t.getMinutes()})),gE=mE.range,_E=oE((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*lE-t.getMinutes()*cE)}),(function(t,e){t.setTime(+t+e*uE)}),(function(t,e){return(e-t)/uE}),(function(t){return t.getHours()})),yE=_E.range,vE=oE((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*cE)/hE}),(function(t){return t.getDate()-1})),bE=vE.range;function xE(t){return oE((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*cE)/dE}))}var wE=xE(0),SE=xE(1),ME=xE(2),EE=xE(3),TE=xE(4),CE=xE(5),AE=xE(6),kE=wE.range,LE=SE.range,PE=ME.range,NE=EE.range,IE=TE.range,OE=CE.range,RE=AE.range,zE=oE((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),DE=zE.range,BE=oE((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));BE.every=function(t){return isFinite(t=Math.floor(t))&&t>0?oE((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var HE=BE.range,FE=oE((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*cE)}),(function(t,e){return(e-t)/cE}),(function(t){return t.getUTCMinutes()})),VE=FE.range,UE=oE((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*uE)}),(function(t,e){return(e-t)/uE}),(function(t){return t.getUTCHours()})),jE=UE.range,GE=oE((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/hE}),(function(t){return t.getUTCDate()-1})),WE=GE.range;function qE(t){return oE((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/dE}))}var YE=qE(0),XE=qE(1),$E=qE(2),KE=qE(3),ZE=qE(4),JE=qE(5),QE=qE(6),tT=YE.range,eT=XE.range,nT=$E.range,iT=KE.range,rT=ZE.range,oT=JE.range,aT=QE.range,sT=oE((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),lT=sT.range,cT=oE((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));cT.every=function(t){return isFinite(t=Math.floor(t))&&t>0?oE((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var uT=cT.range;function hT(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function dT(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function pT(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function fT(t){var e=t.dateTime,n=t.date,i=t.time,r=t.periods,o=t.days,a=t.shortDays,s=t.months,l=t.shortMonths,c=TT(r),u=CT(r),h=TT(o),d=CT(o),p=TT(a),f=CT(a),m=TT(s),g=CT(s),_=TT(l),y=CT(l),v={a:function b(t){return a[t.getDay()]},A:function x(t){return o[t.getDay()]},b:function w(t){return l[t.getMonth()]},B:function S(t){return s[t.getMonth()]},c:null,d:XT,e:XT,f:QT,g:uC,G:dC,H:$T,I:KT,j:ZT,L:JT,m:tC,M:eC,p:function M(t){return r[+(t.getHours()>=12)]},q:function E(t){return 1+~~(t.getMonth()/3)},Q:RC,s:zC,S:nC,u:iC,U:rC,V:aC,w:sC,W:lC,x:null,X:null,y:cC,Y:hC,Z:pC,"%":OC},T={a:function C(t){return a[t.getUTCDay()]},A:function A(t){return o[t.getUTCDay()]},b:function k(t){return l[t.getUTCMonth()]},B:function L(t){return s[t.getUTCMonth()]},c:null,d:fC,e:fC,f:vC,g:LC,G:NC,H:mC,I:gC,j:_C,L:yC,m:bC,M:xC,p:function P(t){return r[+(t.getUTCHours()>=12)]},q:function N(t){return 1+~~(t.getUTCMonth()/3)},Q:RC,s:zC,S:wC,u:SC,U:MC,V:TC,w:CC,W:AC,x:null,X:null,y:kC,Y:PC,Z:IC,"%":OC},I={a:function O(t,e,n){var i=p.exec(e.slice(n));return i?(t.w=f[i[0].toLowerCase()],n+i[0].length):-1},A:function R(t,e,n){var i=h.exec(e.slice(n));return i?(t.w=d[i[0].toLowerCase()],n+i[0].length):-1},b:function z(t,e,n){var i=_.exec(e.slice(n));return i?(t.m=y[i[0].toLowerCase()],n+i[0].length):-1},B:function D(t,e,n){var i=m.exec(e.slice(n));return i?(t.m=g[i[0].toLowerCase()],n+i[0].length):-1},c:function B(t,n,i){return G(t,e,n,i)},d:BT,e:BT,f:GT,g:OT,G:IT,H:FT,I:FT,j:HT,L:jT,m:DT,M:VT,p:function H(t,e,n){var i=c.exec(e.slice(n));return i?(t.p=u[i[0].toLowerCase()],n+i[0].length):-1},q:zT,Q:qT,s:YT,S:UT,u:kT,U:LT,V:PT,w:AT,W:NT,x:function F(t,e,i){return G(t,n,e,i)},X:function V(t,e,n){return G(t,i,e,n)},y:OT,Y:IT,Z:RT,"%":WT};function U(t,e){return function(n){var i,r,o,a=[],s=-1,l=0,c=t.length;for(n instanceof Date||(n=new Date(+n));++s<c;)37===t.charCodeAt(s)&&(a.push(t.slice(l,s)),null!=(r=bT[i=t.charAt(++s)])?i=t.charAt(++s):r="e"===i?" ":"0",(o=e[i])&&(i=o(n,r)),a.push(i),l=s+1);return a.push(t.slice(l,s)),a.join("")}}function j(t,e){return function(n){var i,r,o=pT(1900,void 0,1);if(G(o,t,n+="",0)!=n.length)return null;if("Q"in o)return new Date(o.Q);if("s"in o)return new Date(1e3*o.s+("L"in o?o.L:0));if(e&&!("Z"in o)&&(o.Z=0),"p"in o&&(o.H=o.H%12+12*o.p),void 0===o.m&&(o.m="q"in o?o.q:0),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=dT(pT(o.y,0,1))).getUTCDay(),i=r>4||0===r?XE.ceil(i):XE(i),i=GE.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=hT(pT(o.y,0,1))).getDay(),i=r>4||0===r?SE.ceil(i):SE(i),i=vE.offset(i,7*(o.V-1)),o.y=i.getFullYear(),o.m=i.getMonth(),o.d=i.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),r="Z"in o?dT(pT(o.y,0,1)).getUTCDay():hT(pT(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(r+5)%7:o.w+7*o.U-(r+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,dT(o)):hT(o)}}function G(t,e,n,i){for(var r,o,a=0,s=e.length,l=n.length;a<s;){if(i>=l)return-1;if(37===(r=e.charCodeAt(a++))){if(r=e.charAt(a++),!(o=I[r in bT?e.charAt(a++):r])||(i=o(t,n,i))<0)return-1}else if(r!=n.charCodeAt(i++))return-1}return i}return v.x=U(n,v),v.X=U(i,v),v.c=U(e,v),T.x=U(n,T),T.X=U(i,T),T.c=U(e,T),{format:function(t){var e=U(t+="",v);return e.toString=function(){return t},e},parse:function(t){var e=j(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=U(t+="",T);return e.toString=function(){return t},e},utcParse:function(t){var e=j(t+="",!0);return e.toString=function(){return t},e}}}var mT,gT,_T,yT,vT,bT={"-":"",_:" ",0:"0"},xT=/^\s*\d+/,wT=/^%/,ST=/[\\^$*+?|[\]().{}]/g;function MT(t,e,n){var i=t<0?"-":"",r=(i?-t:t)+"",o=r.length;return i+(o<n?new Array(n-o+1).join(e)+r:r)}function ET(t){return t.replace(ST,"\\$&")}function TT(t){return new RegExp("^(?:"+t.map(ET).join("|")+")","i")}function CT(t){for(var e={},n=-1,i=t.length;++n<i;)e[t[n].toLowerCase()]=n;return e}function AT(t,e,n){var i=xT.exec(e.slice(n,n+1));return i?(t.w=+i[0],n+i[0].length):-1}function kT(t,e,n){var i=xT.exec(e.slice(n,n+1));return i?(t.u=+i[0],n+i[0].length):-1}function LT(t,e,n){var i=xT.exec(e.slice(n,n+2));return i?(t.U=+i[0],n+i[0].length):-1}function PT(t,e,n){var i=xT.exec(e.slice(n,n+2));return i?(t.V=+i[0],n+i[0].length):-1}function NT(t,e,n){var i=xT.exec(e.slice(n,n+2));return i?(t.W=+i[0],n+i[0].length):-1}function IT(t,e,n){var i=xT.exec(e.slice(n,n+4));return i?(t.y=+i[0],n+i[0].length):-1}function OT(t,e,n){var i=xT.exec(e.slice(n,n+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function RT(t,e,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function zT(t,e,n){var i=xT.exec(e.slice(n,n+1));return i?(t.q=3*i[0]-3,n+i[0].length):-1}function DT(t,e,n){var i=xT.exec(e.slice(n,n+2));return i?(t.m=i[0]-1,n+i[0].length):-1}function BT(t,e,n){var i=xT.exec(e.slice(n,n+2));return i?(t.d=+i[0],n+i[0].length):-1}function HT(t,e,n){var i=xT.exec(e.slice(n,n+3));return i?(t.m=0,t.d=+i[0],n+i[0].length):-1}function FT(t,e,n){var i=xT.exec(e.slice(n,n+2));return i?(t.H=+i[0],n+i[0].length):-1}function VT(t,e,n){var i=xT.exec(e.slice(n,n+2));return i?(t.M=+i[0],n+i[0].length):-1}function UT(t,e,n){var i=xT.exec(e.slice(n,n+2));return i?(t.S=+i[0],n+i[0].length):-1}function jT(t,e,n){var i=xT.exec(e.slice(n,n+3));return i?(t.L=+i[0],n+i[0].length):-1}function GT(t,e,n){var i=xT.exec(e.slice(n,n+6));return i?(t.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function WT(t,e,n){var i=wT.exec(e.slice(n,n+1));return i?n+i[0].length:-1}function qT(t,e,n){var i=xT.exec(e.slice(n));return i?(t.Q=+i[0],n+i[0].length):-1}function YT(t,e,n){var i=xT.exec(e.slice(n));return i?(t.s=+i[0],n+i[0].length):-1}function XT(t,e){return MT(t.getDate(),e,2)}function $T(t,e){return MT(t.getHours(),e,2)}function KT(t,e){return MT(t.getHours()%12||12,e,2)}function ZT(t,e){return MT(1+vE.count(BE(t),t),e,3)}function JT(t,e){return MT(t.getMilliseconds(),e,3)}function QT(t,e){return JT(t,e)+"000"}function tC(t,e){return MT(t.getMonth()+1,e,2)}function eC(t,e){return MT(t.getMinutes(),e,2)}function nC(t,e){return MT(t.getSeconds(),e,2)}function iC(t){var e=t.getDay();return 0===e?7:e}function rC(t,e){return MT(wE.count(BE(t)-1,t),e,2)}function oC(t){var e=t.getDay();return e>=4||0===e?TE(t):TE.ceil(t)}function aC(t,e){return t=oC(t),MT(TE.count(BE(t),t)+(4===BE(t).getDay()),e,2)}function sC(t){return t.getDay()}function lC(t,e){return MT(SE.count(BE(t)-1,t),e,2)}function cC(t,e){return MT(t.getFullYear()%100,e,2)}function uC(t,e){return MT((t=oC(t)).getFullYear()%100,e,2)}function hC(t,e){return MT(t.getFullYear()%1e4,e,4)}function dC(t,e){var n=t.getDay();return MT((t=n>=4||0===n?TE(t):TE.ceil(t)).getFullYear()%1e4,e,4)}function pC(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+MT(e/60|0,"0",2)+MT(e%60,"0",2)}function fC(t,e){return MT(t.getUTCDate(),e,2)}function mC(t,e){return MT(t.getUTCHours(),e,2)}function gC(t,e){return MT(t.getUTCHours()%12||12,e,2)}function _C(t,e){return MT(1+GE.count(cT(t),t),e,3)}function yC(t,e){return MT(t.getUTCMilliseconds(),e,3)}function vC(t,e){return yC(t,e)+"000"}function bC(t,e){return MT(t.getUTCMonth()+1,e,2)}function xC(t,e){return MT(t.getUTCMinutes(),e,2)}function wC(t,e){return MT(t.getUTCSeconds(),e,2)}function SC(t){var e=t.getUTCDay();return 0===e?7:e}function MC(t,e){return MT(YE.count(cT(t)-1,t),e,2)}function EC(t){var e=t.getUTCDay();return e>=4||0===e?ZE(t):ZE.ceil(t)}function TC(t,e){return t=EC(t),MT(ZE.count(cT(t),t)+(4===cT(t).getUTCDay()),e,2)}function CC(t){return t.getUTCDay()}function AC(t,e){return MT(XE.count(cT(t)-1,t),e,2)}function kC(t,e){return MT(t.getUTCFullYear()%100,e,2)}function LC(t,e){return MT((t=EC(t)).getUTCFullYear()%100,e,2)}function PC(t,e){return MT(t.getUTCFullYear()%1e4,e,4)}function NC(t,e){var n=t.getUTCDay();return MT((t=n>=4||0===n?ZE(t):ZE.ceil(t)).getUTCFullYear()%1e4,e,4)}function IC(){return"+0000"}function OC(){return"%"}function RC(t){return+t}function zC(t){return Math.floor(+t/1e3)}function DC(t){return mT=fT(t),gT=mT.format,_T=mT.parse,yT=mT.utcFormat,vT=mT.utcParse,mT}DC({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var BC="%Y-%m-%dT%H:%M:%S.%LZ",HC=Date.prototype.toISOString?function FC(t){return t.toISOString()}:yT(BC),VC=+new Date("2000-01-01T00:00:00.000Z")?function UC(t){var e=new Date(t);return isNaN(e)?null:e}:vT(BC),jC=31536e6;function GC(t){return new Date(t)}function WC(t){return t instanceof Date?+t:+new Date(+t)}function qC(t,e,n,i,r,o,a,s,l){var c=OM(CM,CM),u=c.invert,h=c.domain,d=l(".%L"),p=l(":%S"),f=l("%I:%M"),m=l("%I %p"),g=l("%a %d"),_=l("%b %d"),y=l("%B"),v=l("%Y"),b=[[a,1,1e3],[a,5,5e3],[a,15,15e3],[a,30,3e4],[o,1,6e4],[o,5,3e5],[o,15,9e5],[o,30,18e5],[r,1,36e5],[r,3,108e5],[r,6,216e5],[r,12,432e5],[i,1,864e5],[i,2,1728e5],[n,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,jC]];function x(s){return(a(s)<s?d:o(s)<s?p:r(s)<s?f:i(s)<s?m:e(s)<s?n(s)<s?g:_:t(s)<s?y:v)(s)}function w(e,n,i,r){if(null==e&&(e=10),"number"==typeof e){var o=Math.abs(i-n)/e,a=bl((function(t){return t[2]})).right(b,o);a===b.length?(r=Vl(n/jC,i/jC,e),e=t):a?(r=(a=b[o/b[a-1][2]<b[a][2]/o?a-1:a])[1],e=a[0]):(r=Math.max(Vl(n,i,e),1),e=s)}return null==r?e:e.every(r)}return c.invert=function(t){return new Date(u(t))},c.domain=function(t){return arguments.length?h(yM.call(t,WC)):h().map(GC)},c.ticks=function(t,e){var n,i=h(),r=i[0],o=i[i.length-1],a=o<r;return a&&(n=r,r=o,o=n),n=(n=w(t,r,o,e))?n.range(r,o+1):[],a?n.reverse():n},c.tickFormat=function(t,e){return null==e?x:l(e)},c.nice=function(t,e){var n=h();return(t=w(t,n[0],n[n.length-1],e))?h(BM(n,t)):c},c.copy=function(){return NM(c,qC(t,e,n,i,r,o,a,s,l))},c}function YC(){return mM.apply(qC(BE,zE,wE,vE,_E,mE,pE,aE,gT).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function XC(){var t,e,n,i,r,o=0,a=1,s=CM,l=!1;function c(e){return isNaN(e=+e)?r:s(0===n?.5:(e=(i(e)-t)*n,l?Math.max(0,Math.min(1,e)):e))}return c.domain=function(r){return arguments.length?(t=i(o=+r[0]),e=i(a=+r[1]),n=t===e?0:1/(e-t),c):[o,a]},c.clamp=function(t){return arguments.length?(l=!!t,c):l},c.interpolator=function(t){return arguments.length?(s=t,c):s},c.unknown=function(t){return arguments.length?(r=t,c):r},function(r){return i=r,t=r(o),e=r(a),n=t===e?0:1/(e-t),c}}function $C(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function KC(){var t=QM(XC());return t.copy=function(){return $C(t,KC()).exponent(t.exponent())},gM.apply(t,arguments)}function ZC(){var t,e,n,i,r,o,a,s=0,l=.5,c=1,u=CM,h=!1;function d(t){return isNaN(t=+t)?a:(t=.5+((t=+o(t))-e)*(t<e?i:r),u(h?Math.max(0,Math.min(1,t)):t))}return d.domain=function(a){return arguments.length?(t=o(s=+a[0]),e=o(l=+a[1]),n=o(c=+a[2]),i=t===e?0:.5/(e-t),r=e===n?0:.5/(n-e),d):[s,l,c]},d.clamp=function(t){return arguments.length?(h=!!t,d):h},d.interpolator=function(t){return arguments.length?(u=t,d):u},d.unknown=function(t){return arguments.length?(a=t,d):a},function(a){return o=a,t=a(s),e=a(l),n=a(c),i=t===e?0:.5/(e-t),r=e===n?0:.5/(n-e),d}}function JC(){var t=QM(ZC());return t.copy=function(){return $C(t,JC()).exponent(t.exponent())},gM.apply(t,arguments)}function QC(t){for(var e=t.length/6|0,n=new Array(e),i=0;i<e;)n[i]="#"+t.slice(6*i,6*++i);return n}var tA=QC("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),eA=QC("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),nA=QC("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),iA=QC("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),rA=QC("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),oA=QC("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),aA=QC("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),sA=QC("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),lA=QC("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),cA=QC("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");function uA(t){return Pd(t[t.length-1])}var hA=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(QC),dA=uA(hA),pA=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(QC),fA=uA(pA),mA=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(QC),gA=uA(mA),_A=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(QC),yA=uA(_A),vA=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(QC),bA=uA(vA),xA=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(QC),wA=uA(xA),SA=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(QC),MA=uA(SA),EA=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(QC),TA=uA(EA),CA=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(QC),AA=uA(CA),kA=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(QC),LA=uA(kA),PA=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(QC),NA=uA(PA),IA=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(QC),OA=uA(IA),RA=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(QC),zA=uA(RA),DA=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(QC),BA=uA(DA),HA=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(QC),FA=uA(HA),VA=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(QC),UA=uA(VA),jA=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(QC),GA=uA(jA),WA=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(QC),qA=uA(WA),YA=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(QC),XA=uA(YA),$A=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(QC),KA=uA($A),ZA=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(QC),JA=uA(ZA),QA=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(QC),tk=uA(QA),ek=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(QC),nk=uA(ek),ik=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(QC),rk=uA(ik),ok=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(QC),ak=uA(ok),sk=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(QC),lk=uA(sk),ck=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(QC),uk=uA(ck),hk=gp(bd(300,.5,0),bd(-240,.5,1)),dk=gp(bd(-100,.75,.35),bd(80,1.5,.8)),pk=gp(bd(260,.75,.35),bd(80,1.5,.8)),fk=bd(),mk=Vh(),gk=Math.PI/3,_k=2*Math.PI/3;function yk(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}var vk=yk(QC("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),bk=yk(QC("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),xk=yk(QC("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),wk=yk(QC("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function Sk(t){return function e(){return t}}var Mk=Math.abs,Ek=Math.atan2,Tk=Math.cos,Ck=Math.max,Ak=Math.min,kk=Math.sin,Lk=Math.sqrt,Pk=1e-12,Nk=Math.PI,Ik=Nk/2,Ok=2*Nk;function Rk(t){return t>1?0:t<-1?Nk:Math.acos(t)}function zk(t){return t>=1?Ik:t<=-1?-Ik:Math.asin(t)}function Dk(t){return t.innerRadius}function Bk(t){return t.outerRadius}function Hk(t){return t.startAngle}function Fk(t){return t.endAngle}function Vk(t){return t&&t.padAngle}function Uk(t,e,n,i,r,o,a,s){var l=n-t,c=i-e,u=a-r,h=s-o,d=h*l-u*c;if(!(d*d<Pk))return[t+(d=(u*(e-o)-h*(t-r))/d)*l,e+d*c]}function jk(t,e,n,i,r,o,a){var s=t-n,l=e-i,c=(a?o:-o)/Lk(s*s+l*l),u=c*l,h=-c*s,d=t+u,p=e+h,f=n+u,m=i+h,g=(d+f)/2,_=(p+m)/2,y=f-d,v=m-p,b=y*y+v*v,x=r-o,w=d*m-f*p,S=(v<0?-1:1)*Lk(Ck(0,x*x*b-w*w)),M=(w*v-y*S)/b,E=(-w*y-v*S)/b,T=(w*v+y*S)/b,C=(-w*y+v*S)/b,A=M-g,k=E-_,L=T-g,P=C-_;return A*A+k*k>L*L+P*P&&(M=T,E=C),{cx:M,cy:E,x01:-u,y01:-h,x11:M*(r/x-1),y11:E*(r/x-1)}}function Gk(t){this._context=t}function Wk(t){return new Gk(t)}function qk(t){return t[0]}function Yk(t){return t[1]}function Xk(){var t=qk,e=Yk,n=Sk(!0),i=null,r=Wk,o=null;function a(a){var s,l,c,u=a.length,h=!1;for(null==i&&(o=r(c=pg())),s=0;s<=u;++s)!(s<u&&n(l=a[s],s,a))===h&&((h=!h)?o.lineStart():o.lineEnd()),h&&o.point(+t(l,s,a),+e(l,s,a));if(c)return o=null,c+""||null}return a.x=function(e){return arguments.length?(t="function"==typeof e?e:Sk(+e),a):t},a.y=function(t){return arguments.length?(e="function"==typeof t?t:Sk(+t),a):e},a.defined=function(t){return arguments.length?(n="function"==typeof t?t:Sk(!!t),a):n},a.curve=function(t){return arguments.length?(r=t,null!=i&&(o=r(i)),a):r},a.context=function(t){return arguments.length?(null==t?i=o=null:o=r(i=t),a):i},a}function $k(){var t=qk,e=null,n=Sk(0),i=Yk,r=Sk(!0),o=null,a=Wk,s=null;function l(l){var c,u,h,d,p,f=l.length,m=!1,g=new Array(f),_=new Array(f);for(null==o&&(s=a(p=pg())),c=0;c<=f;++c){if(!(c<f&&r(d=l[c],c,l))===m)if(m=!m)u=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),h=c-1;h>=u;--h)s.point(g[h],_[h]);s.lineEnd(),s.areaEnd()}m&&(g[c]=+t(d,c,l),_[c]=+n(d,c,l),s.point(e?+e(d,c,l):g[c],i?+i(d,c,l):_[c]))}if(p)return s=null,p+""||null}function c(){return Xk().defined(r).curve(a).context(o)}return l.x=function(n){return arguments.length?(t="function"==typeof n?n:Sk(+n),e=null,l):t},l.x0=function(e){return arguments.length?(t="function"==typeof e?e:Sk(+e),l):t},l.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:Sk(+t),l):e},l.y=function(t){return arguments.length?(n="function"==typeof t?t:Sk(+t),i=null,l):n},l.y0=function(t){return arguments.length?(n="function"==typeof t?t:Sk(+t),l):n},l.y1=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:Sk(+t),l):i},l.lineX0=l.lineY0=function(){return c().x(t).y(n)},l.lineY1=function(){return c().x(t).y(i)},l.lineX1=function(){return c().x(e).y(n)},l.defined=function(t){return arguments.length?(r="function"==typeof t?t:Sk(!!t),l):r},l.curve=function(t){return arguments.length?(a=t,null!=o&&(s=a(o)),l):a},l.context=function(t){return arguments.length?(null==t?o=s=null:s=a(o=t),l):o},l}function Kk(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function Zk(t){return t}Gk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var Jk=tL(Wk);function Qk(t){this._curve=t}function tL(t){function e(e){return new Qk(t(e))}return e._curve=t,e}function eL(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(tL(t)):e()._curve},t}function nL(){return eL(Xk().curve(Jk))}function iL(){var t=$k().curve(Jk),e=t.curve,n=t.lineX0,i=t.lineX1,r=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return eL(n())},delete t.lineX0,t.lineEndAngle=function(){return eL(i())},delete t.lineX1,t.lineInnerRadius=function(){return eL(r())},delete t.lineY0,t.lineOuterRadius=function(){return eL(o())},delete t.lineY1,t.curve=function(t){return arguments.length?e(tL(t)):e()._curve},t}function rL(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}Qk.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var oL=Array.prototype.slice;function aL(t){return t.source}function sL(t){return t.target}function lL(t){var e=aL,n=sL,i=qk,r=Yk,o=null;function a(){var a,s=oL.call(arguments),l=e.apply(this,s),c=n.apply(this,s);if(o||(o=a=pg()),t(o,+i.apply(this,(s[0]=l,s)),+r.apply(this,s),+i.apply(this,(s[0]=c,s)),+r.apply(this,s)),a)return o=null,a+""||null}return a.source=function(t){return arguments.length?(e=t,a):e},a.target=function(t){return arguments.length?(n=t,a):n},a.x=function(t){return arguments.length?(i="function"==typeof t?t:Sk(+t),a):i},a.y=function(t){return arguments.length?(r="function"==typeof t?t:Sk(+t),a):r},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a}function cL(t,e,n,i,r){t.moveTo(e,n),t.bezierCurveTo(e=(e+i)/2,n,e,r,i,r)}function uL(t,e,n,i,r){t.moveTo(e,n),t.bezierCurveTo(e,n=(n+r)/2,i,n,i,r)}function hL(t,e,n,i,r){var o=rL(e,n),a=rL(e,n=(n+r)/2),s=rL(i,n),l=rL(i,r);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],s[0],s[1],l[0],l[1])}var dL={draw:function(t,e){var n=Math.sqrt(e/Nk);t.moveTo(n,0),t.arc(0,0,n,0,Ok)}},pL={draw:function(t,e){var n=Math.sqrt(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},fL=Math.sqrt(1/3),mL=2*fL,gL={draw:function(t,e){var n=Math.sqrt(e/mL),i=n*fL;t.moveTo(0,-n),t.lineTo(i,0),t.lineTo(0,n),t.lineTo(-i,0),t.closePath()}},_L=Math.sin(Nk/10)/Math.sin(7*Nk/10),yL=Math.sin(Ok/10)*_L,vL=-Math.cos(Ok/10)*_L,bL={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),i=yL*n,r=vL*n;t.moveTo(0,-n),t.lineTo(i,r);for(var o=1;o<5;++o){var a=Ok*o/5,s=Math.cos(a),l=Math.sin(a);t.lineTo(l*n,-s*n),t.lineTo(s*i-l*r,l*i+s*r)}t.closePath()}},xL={draw:function(t,e){var n=Math.sqrt(e),i=-n/2;t.rect(i,i,n,n)}},wL=Math.sqrt(3),SL={draw:function(t,e){var n=-Math.sqrt(e/(3*wL));t.moveTo(0,2*n),t.lineTo(-wL*n,-n),t.lineTo(wL*n,-n),t.closePath()}},ML=-.5,EL=Math.sqrt(3)/2,TL=1/Math.sqrt(12),CL=3*(TL/2+1),AL={draw:function(t,e){var n=Math.sqrt(e/CL),i=n/2,r=n*TL,o=i,a=n*TL+n,s=-o,l=a;t.moveTo(i,r),t.lineTo(o,a),t.lineTo(s,l),t.lineTo(ML*i-EL*r,EL*i+ML*r),t.lineTo(ML*o-EL*a,EL*o+ML*a),t.lineTo(ML*s-EL*l,EL*s+ML*l),t.lineTo(ML*i+EL*r,ML*r-EL*i),t.lineTo(ML*o+EL*a,ML*a-EL*o),t.lineTo(ML*s+EL*l,ML*l-EL*s),t.closePath()}},kL=[dL,pL,gL,xL,bL,SL,AL];function LL(){}function PL(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function NL(t){this._context=t}function IL(t){return new NL(t)}function OL(t){this._context=t}function RL(t){this._context=t}function zL(t,e){this._basis=new NL(t),this._beta=e}NL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:PL(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:PL(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},OL.prototype={areaStart:LL,areaEnd:LL,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:PL(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},RL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:PL(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},zL.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var i,r=t[0],o=e[0],a=t[n]-r,s=e[n]-o,l=-1;++l<=n;)this._basis.point(this._beta*t[l]+(1-this._beta)*(r+(i=l/n)*a),this._beta*e[l]+(1-this._beta)*(o+i*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var DL=(function t(e){function n(t){return 1===e?new NL(t):new zL(t,e)}return n.beta=function(e){return t(+e)},n})(.85);function BL(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function HL(t,e){this._context=t,this._k=(1-e)/6}HL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:BL(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:BL(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var FL=(function t(e){function n(t){return new HL(t,e)}return n.tension=function(e){return t(+e)},n})(0);function VL(t,e){this._context=t,this._k=(1-e)/6}VL.prototype={areaStart:LL,areaEnd:LL,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:BL(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var UL=(function t(e){function n(t){return new VL(t,e)}return n.tension=function(e){return t(+e)},n})(0);function jL(t,e){this._context=t,this._k=(1-e)/6}jL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:BL(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var GL=(function t(e){function n(t){return new jL(t,e)}return n.tension=function(e){return t(+e)},n})(0);function WL(t,e,n){var i=t._x1,r=t._y1,o=t._x2,a=t._y2;if(t._l01_a>Pk){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,r=(r*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>Pk){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*c+t._x1*t._l23_2a-e*t._l12_2a)/u,a=(a*c+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(i,r,o,a,t._x2,t._y2)}function qL(t,e){this._context=t,this._alpha=e}qL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:WL(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var YL=(function t(e){function n(t){return e?new qL(t,e):new HL(t,0)}return n.alpha=function(e){return t(+e)},n})(.5);function XL(t,e){this._context=t,this._alpha=e}XL.prototype={areaStart:LL,areaEnd:LL,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:WL(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var $L=(function t(e){function n(t){return e?new XL(t,e):new VL(t,0)}return n.alpha=function(e){return t(+e)},n})(.5);function KL(t,e){this._context=t,this._alpha=e}KL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:WL(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var ZL=(function t(e){function n(t){return e?new KL(t,e):new jL(t,0)}return n.alpha=function(e){return t(+e)},n})(.5);function JL(t){this._context=t}function QL(t){return t<0?-1:1}function tP(t,e,n){var i=t._x1-t._x0,r=e-t._x1,o=(t._y1-t._y0)/(i||r<0&&-0),a=(n-t._y1)/(r||i<0&&-0),s=(o*r+a*i)/(i+r);return(QL(o)+QL(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function eP(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function nP(t,e,n){var i=t._x0,r=t._x1,o=t._y1,a=(r-i)/3;t._context.bezierCurveTo(i+a,t._y0+a*e,r-a,o-a*n,r,o)}function iP(t){this._context=t}function rP(t){this._context=new oP(t)}function oP(t){this._context=t}function aP(t){this._context=t}function sP(t){var e,n,i=t.length-1,r=new Array(i),o=new Array(i),a=new Array(i);for(r[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<i-1;++e)r[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(r[i-1]=2,o[i-1]=7,a[i-1]=8*t[i-1]+t[i],e=1;e<i;++e)o[e]-=n=r[e]/o[e-1],a[e]-=n*a[e-1];for(r[i-1]=a[i-1]/o[i-1],e=i-2;e>=0;--e)r[e]=(a[e]-r[e+1])/o[e];for(o[i-1]=(t[i]+r[i-1])/2,e=0;e<i-1;++e)o[e]=2*t[e+1]-r[e+1];return[r,o]}function lP(t,e){this._context=t,this._t=e}function cP(t,e){if((r=t.length)>1)for(var n,i,r,o=1,a=t[e[0]],s=a.length;o<r;++o)for(i=a,a=t[e[o]],n=0;n<s;++n)a[n][1]+=a[n][0]=isNaN(i[n][1])?i[n][0]:i[n][1]}function uP(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function hP(t,e){return t[e]}function dP(t){var e=t.map(pP);return uP(t).sort((function(t,n){return e[t]-e[n]}))}function pP(t){for(var e,n=-1,i=0,r=t.length,o=-1/0;++n<r;)(e=+t[n][1])>o&&(o=e,i=n);return i}function fP(t){var e=t.map(mP);return uP(t).sort((function(t,n){return e[t]-e[n]}))}function mP(t){for(var e,n=0,i=-1,r=t.length;++i<r;)(e=+t[i][1])&&(n+=e);return n}function gP(t){return function(){return t}}function _P(t){return t[0]}function yP(t){return t[1]}function vP(){this._=null}function bP(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function xP(t,e){var n=e,i=e.R,r=n.U;r?r.L===n?r.L=i:r.R=i:t._=i,i.U=r,n.U=i,n.R=i.L,n.R&&(n.R.U=n),i.L=n}function wP(t,e){var n=e,i=e.L,r=n.U;r?r.L===n?r.L=i:r.R=i:t._=i,i.U=r,n.U=i,n.L=i.R,n.L&&(n.L.U=n),i.R=n}function SP(t){for(;t.L;)t=t.L;return t}function MP(t,e,n,i){var r=[null,null],o=XP.push(r)-1;return r.left=t,r.right=e,n&&TP(r,t,e,n),i&&TP(r,e,t,i),qP[t.index].halfedges.push(o),qP[e.index].halfedges.push(o),r}function EP(t,e,n){var i=[e,n];return i.left=t,i}function TP(t,e,n,i){t[0]||t[1]?t.left===n?t[1]=i:t[0]=i:(t[0]=i,t.left=e,t.right=n)}function CP(t,e,n,i,r){var o,a=t[0],s=t[1],l=a[0],c=a[1],u=0,h=1,d=s[0]-l,p=s[1]-c;if(o=e-l,d||!(o>0)){if(o/=d,d<0){if(o<u)return;o<h&&(h=o)}else if(d>0){if(o>h)return;o>u&&(u=o)}if(o=i-l,d||!(o<0)){if(o/=d,d<0){if(o>h)return;o>u&&(u=o)}else if(d>0){if(o<u)return;o<h&&(h=o)}if(o=n-c,p||!(o>0)){if(o/=p,p<0){if(o<u)return;o<h&&(h=o)}else if(p>0){if(o>h)return;o>u&&(u=o)}if(o=r-c,p||!(o<0)){if(o/=p,p<0){if(o>h)return;o>u&&(u=o)}else if(p>0){if(o<u)return;o<h&&(h=o)}return!(u>0||h<1)||(u>0&&(t[0]=[l+u*d,c+u*p]),h<1&&(t[1]=[l+h*d,c+h*p]),!0)}}}}}function AP(t,e,n,i,r){var o=t[1];if(o)return!0;var a,s,l=t[0],c=t.left,u=t.right,h=c[0],d=c[1],p=u[0],f=u[1],m=(h+p)/2;if(f===d){if(m<e||m>=i)return;if(h>p){if(l){if(l[1]>=r)return}else l=[m,n];o=[m,r]}else{if(l){if(l[1]<n)return}else l=[m,r];o=[m,n]}}else if(s=(d+f)/2-(a=(h-p)/(f-d))*m,a<-1||a>1)if(h>p){if(l){if(l[1]>=r)return}else l=[(n-s)/a,n];o=[(r-s)/a,r]}else{if(l){if(l[1]<n)return}else l=[(r-s)/a,r];o=[(n-s)/a,n]}else if(d<f){if(l){if(l[0]>=i)return}else l=[e,a*e+s];o=[i,a*i+s]}else{if(l){if(l[0]<e)return}else l=[i,a*i+s];o=[e,a*e+s]}return t[0]=l,t[1]=o,!0}function kP(t,e){var n=t.site,i=e.left,r=e.right;return n===r&&(r=i,i=n),r?Math.atan2(r[1]-i[1],r[0]-i[0]):(n===i?(i=e[1],r=e[0]):(i=e[0],r=e[1]),Math.atan2(i[0]-r[0],r[1]-i[1]))}function LP(t,e){return e[+(e.left!==t.site)]}function PP(t,e){return e[+(e.left===t.site)]}JL.prototype={areaStart:LL,areaEnd:LL,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},iP.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:nP(this,this._t0,eP(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,nP(this,eP(this,n=tP(this,t,e)),n);break;default:nP(this,this._t0,n=tP(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(rP.prototype=Object.create(iP.prototype)).point=function(t,e){iP.prototype.point.call(this,e,t)},oP.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,i,r,o){this._context.bezierCurveTo(e,t,i,n,o,r)}},aP.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var i=sP(t),r=sP(e),o=0,a=1;a<n;++o,++a)this._context.bezierCurveTo(i[0][o],r[0][o],i[1][o],r[1][o],t[a],e[a]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},lP.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}},vP.prototype={constructor:vP,insert:function(t,e){var n,i,r;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;n=t}else this._?(t=SP(this._),e.P=null,e.N=t,t.P=t.L=e,n=t):(e.P=e.N=null,this._=e,n=null);for(e.L=e.R=null,e.U=n,e.C=!0,t=e;n&&n.C;)n===(i=n.U).L?(r=i.R)&&r.C?(n.C=r.C=!1,i.C=!0,t=i):(t===n.R&&(xP(this,n),n=(t=n).U),n.C=!1,i.C=!0,wP(this,i)):(r=i.L)&&r.C?(n.C=r.C=!1,i.C=!0,t=i):(t===n.L&&(wP(this,n),n=(t=n).U),n.C=!1,i.C=!0,xP(this,i)),n=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,n,i,r=t.U,o=t.L,a=t.R;if(n=o?a?SP(a):o:a,r?r.L===t?r.L=n:r.R=n:this._=n,o&&a?(i=n.C,n.C=t.C,n.L=o,o.U=n,n!==a?(r=n.U,n.U=t.U,r.L=t=n.R,n.R=a,a.U=n):(n.U=r,r=n,t=n.R)):(i=t.C,t=n),t&&(t.U=r),!i)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===r.L){if((e=r.R).C&&(e.C=!1,r.C=!0,xP(this,r),e=r.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,wP(this,e),e=r.R),e.C=r.C,r.C=e.R.C=!1,xP(this,r),t=this._;break}}else if((e=r.L).C&&(e.C=!1,r.C=!0,wP(this,r),e=r.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,xP(this,e),e=r.L),e.C=r.C,r.C=e.L.C=!1,wP(this,r),t=this._;break}e.C=!0,t=r,r=r.U}while(!t.C);t&&(t.C=!1)}}};var NP,IP=[];function OP(){bP(this),this.x=this.y=this.arc=this.site=this.cy=null}function RP(t){var e=t.P,n=t.N;if(e&&n){var i=e.site,r=t.site,o=n.site;if(i!==o){var a=r[0],s=r[1],l=i[0]-a,c=i[1]-s,u=o[0]-a,h=o[1]-s,d=2*(l*h-c*u);if(!(d>=-KP)){var p=l*l+c*c,f=u*u+h*h,m=(h*p-c*f)/d,g=(l*f-u*p)/d,_=IP.pop()||new OP;_.arc=t,_.site=r,_.x=m+a,_.y=(_.cy=g+s)+Math.sqrt(m*m+g*g),t.circle=_;for(var y=null,v=YP._;v;)if(_.y<v.y||_.y===v.y&&_.x<=v.x){if(!v.L){y=v.P;break}v=v.L}else{if(!v.R){y=v;break}v=v.R}YP.insert(y,_),y||(NP=_)}}}}function zP(t){var e=t.circle;e&&(e.P||(NP=e.N),YP.remove(e),IP.push(e),bP(e),t.circle=null)}var DP=[];function BP(){bP(this),this.edge=this.site=this.circle=null}function HP(t){var e=DP.pop()||new BP;return e.site=t,e}function FP(t){zP(t),WP.remove(t),DP.push(t),bP(t)}function VP(t){var e=t.circle,n=e.x,i=e.cy,r=[n,i],o=t.P,a=t.N,s=[t];FP(t);for(var l=o;l.circle&&Math.abs(n-l.circle.x)<$P&&Math.abs(i-l.circle.cy)<$P;)o=l.P,s.unshift(l),FP(l),l=o;s.unshift(l),zP(l);for(var c=a;c.circle&&Math.abs(n-c.circle.x)<$P&&Math.abs(i-c.circle.cy)<$P;)a=c.N,s.push(c),FP(c),c=a;s.push(c),zP(c);var u,h=s.length;for(u=1;u<h;++u)TP((c=s[u]).edge,(l=s[u-1]).site,c.site,r);(c=s[h-1]).edge=MP((l=s[0]).site,c.site,null,r),RP(l),RP(c)}function UP(t){for(var e,n,i,r,o=t[0],a=t[1],s=WP._;s;)if((i=jP(s,a)-o)>$P)s=s.L;else{if(!((r=o-GP(s,a))>$P)){i>-$P?(e=s.P,n=s):r>-$P?(e=s,n=s.N):e=n=s;break}if(!s.R){e=s;break}s=s.R}!(function l(t){qP[t.index]={site:t,halfedges:[]}})(t);var c=HP(t);if(WP.insert(e,c),e||n){if(e===n)return zP(e),n=HP(e.site),WP.insert(c,n),c.edge=n.edge=MP(e.site,c.site),RP(e),void RP(n);if(n){zP(e),zP(n);var u=e.site,h=u[0],d=u[1],p=t[0]-h,f=t[1]-d,m=n.site,g=m[0]-h,_=m[1]-d,y=2*(p*_-f*g),v=p*p+f*f,b=g*g+_*_,x=[(_*v-f*b)/y+h,(p*b-g*v)/y+d];TP(n.edge,u,m,x),c.edge=MP(u,t,null,x),n.edge=MP(t,m,null,x),RP(e),RP(n)}else c.edge=MP(e.site,c.site)}}function jP(t,e){var n=t.site,i=n[0],r=n[1],o=r-e;if(!o)return i;var a=t.P;if(!a)return-1/0;var s=(n=a.site)[0],l=n[1],c=l-e;if(!c)return s;var u=s-i,h=1/o-1/c,d=u/c;return h?(-d+Math.sqrt(d*d-2*h*(u*u/(-2*c)-l+c/2+r-o/2)))/h+i:(i+s)/2}function GP(t,e){var n=t.N;if(n)return jP(n,e);var i=t.site;return i[1]===e?i[0]:1/0}var WP,qP,YP,XP,$P=1e-6,KP=1e-12;function ZP(t,e,n){return(t[0]-n[0])*(e[1]-t[1])-(t[0]-e[0])*(n[1]-t[1])}function JP(t,e){return e[1]-t[1]||e[0]-t[0]}function QP(t,e){var n,i,r,o=t.sort(JP).pop();for(XP=[],qP=new Array(t.length),WP=new vP,YP=new vP;;)if(r=NP,o&&(!r||o[1]<r.y||o[1]===r.y&&o[0]<r.x))o[0]===n&&o[1]===i||(UP(o),n=o[0],i=o[1]),o=t.pop();else{if(!r)break;VP(r.arc)}if((function a(){for(var t,e,n,i,r=0,o=qP.length;r<o;++r)if((t=qP[r])&&(i=(e=t.halfedges).length)){var a=new Array(i),s=new Array(i);for(n=0;n<i;++n)a[n]=n,s[n]=kP(t,XP[e[n]]);for(a.sort((function(t,e){return s[e]-s[t]})),n=0;n<i;++n)s[n]=e[a[n]];for(n=0;n<i;++n)e[n]=s[n]}})(),e){var s=+e[0][0],l=+e[0][1],c=+e[1][0],u=+e[1][1];!(function h(t,e,n,i){for(var r,o=XP.length;o--;)AP(r=XP[o],t,e,n,i)&&CP(r,t,e,n,i)&&(Math.abs(r[0][0]-r[1][0])>$P||Math.abs(r[0][1]-r[1][1])>$P)||delete XP[o]})(s,l,c,u),(function d(t,e,n,i){var r,o,a,s,l,c,u,h,d,p,f,m,g=qP.length,_=!0;for(r=0;r<g;++r)if(o=qP[r]){for(a=o.site,s=(l=o.halfedges).length;s--;)XP[l[s]]||l.splice(s,1);for(s=0,c=l.length;s<c;)f=(p=PP(o,XP[l[s]]))[0],m=p[1],h=(u=LP(o,XP[l[++s%c]]))[0],d=u[1],(Math.abs(f-h)>$P||Math.abs(m-d)>$P)&&(l.splice(s,0,XP.push(EP(a,p,Math.abs(f-t)<$P&&i-m>$P?[t,Math.abs(h-t)<$P?d:i]:Math.abs(m-i)<$P&&n-f>$P?[Math.abs(d-i)<$P?h:n,i]:Math.abs(f-n)<$P&&m-e>$P?[n,Math.abs(h-n)<$P?d:e]:Math.abs(m-e)<$P&&f-t>$P?[Math.abs(d-e)<$P?h:t,e]:null))-1),++c);c&&(_=!1)}if(_){var y,v,b,x=1/0;for(r=0,_=null;r<g;++r)(o=qP[r])&&(b=(y=(a=o.site)[0]-t)*y+(v=a[1]-e)*v)<x&&(x=b,_=o);if(_){var w=[t,e],S=[t,i],M=[n,i],E=[n,e];_.halfedges.push(XP.push(EP(a=_.site,w,S))-1,XP.push(EP(a,S,M))-1,XP.push(EP(a,M,E))-1,XP.push(EP(a,E,w))-1)}}for(r=0;r<g;++r)(o=qP[r])&&(o.halfedges.length||delete qP[r])})(s,l,c,u)}this.edges=XP,this.cells=qP,WP=YP=XP=qP=null}function tN(t){return function(){return t}}function eN(t,e,n){this.target=t,this.type=e,this.transform=n}function nN(t,e,n){this.k=t,this.x=e,this.y=n}QP.prototype={constructor:QP,polygons:function(){var t=this.edges;return this.cells.map((function(e){var n=e.halfedges.map((function(n){return LP(e,t[n])}));return n.data=e.site.data,n}))},triangles:function(){var t=[],e=this.edges;return this.cells.forEach((function(n,i){if(o=(r=n.halfedges).length)for(var r,o,a,s=n.site,l=-1,c=e[r[o-1]],u=c.left===s?c.right:c.left;++l<o;)a=u,u=(c=e[r[l]]).left===s?c.right:c.left,a&&u&&i<a.index&&i<u.index&&ZP(s,a,u)<0&&t.push([s.data,a.data,u.data])})),t},links:function(){return this.edges.filter((function(t){return t.right})).map((function(t){return{source:t.left.data,target:t.right.data}}))},find:function(t,e,n){for(var i,r,o=this,a=o._found||0,s=o.cells.length;!(r=o.cells[a]);)if(++a>=s)return null;var l=t-r.site[0],c=e-r.site[1],u=l*l+c*c;do{r=o.cells[i=a],a=null,r.halfedges.forEach((function(n){var i=o.edges[n],s=i.left;if(s!==r.site&&s||(s=i.right)){var l=t-s[0],c=e-s[1],h=l*l+c*c;h<u&&(u=h,a=s.index)}}))}while(null!==a);return o._found=i,null==n||u<=n*n?r.site:null}},nN.prototype={constructor:nN,scale:function(t){return 1===t?this:new nN(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new nN(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var iN=new nN(1,0,0);function rN(t){for(;!t.__zoom;)if(!(t=t.parentNode))return iN;return t.__zoom}function oN(){cu.stopImmediatePropagation()}function aN(){cu.preventDefault(),cu.stopImmediatePropagation()}function sN(){return!cu.ctrlKey&&!cu.button}function lN(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function cN(){return this.__zoom||iN}function uN(){return-cu.deltaY*(1===cu.deltaMode?.05:cu.deltaMode?1:.002)}function hN(){return navigator.maxTouchPoints||"ontouchstart"in this}function dN(t,e,n){var i=t.invertX(e[0][0])-n[0][0],r=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(r>i?(i+r)/2:Math.min(0,i)||Math.max(0,r),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function pN(){var t,e,n=sN,i=lN,r=dN,o=uN,a=hN,s=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],c=250,u=rp,h=sc("start","zoom","end"),d=500,p=0;function f(t){t.property("__zoom",cN).on("wheel.zoom",x).on("mousedown.zoom",w).on("dblclick.zoom",S).filter(a).on("touchstart.zoom",M).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",T).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(t,e){return(e=Math.max(s[0],Math.min(s[1],e)))===t.k?t:new nN(e,t.x,t.y)}function g(t,e,n){var i=e[0]-n[0]*t.k,r=e[1]-n[1]*t.k;return i===t.x&&r===t.y?t:new nN(t.k,i,r)}function _(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function y(t,e,n){t.on("start.zoom",(function(){v(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){v(this,arguments).end()})).tween("zoom",(function(){var t=this,r=arguments,o=v(t,r),a=i.apply(t,r),s=null==n?_(a):"function"==typeof n?n.apply(t,r):n,l=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),c=t.__zoom,h="function"==typeof e?e.apply(t,r):e,d=u(c.invert(s).concat(l/c.k),h.invert(s).concat(l/h.k));return function(t){if(1===t)t=h;else{var e=d(t),n=l/e[2];t=new nN(n,s[0]-e[0]*n,s[1]-e[1]*n)}o.zoom(null,t)}}))}function v(t,e,n){return!n&&t.__zooming||new b(t,e)}function b(t,e){this.that=t,this.args=e,this.active=0,this.extent=i.apply(t,e),this.taps=0}function x(){if(n.apply(this,arguments)){var t=v(this,arguments),e=this.__zoom,i=Math.max(s[0],Math.min(s[1],e.k*Math.pow(2,o.apply(this,arguments)))),a=oh(this);if(t.wheel)t.mouse[0][0]===a[0]&&t.mouse[0][1]===a[1]||(t.mouse[1]=e.invert(t.mouse[0]=a)),clearTimeout(t.wheel);else{if(e.k===i)return;t.mouse=[a,e.invert(a)],Fp(this),t.start()}aN(),t.wheel=setTimeout(c,150),t.zoom("mouse",r(g(m(e,i),t.mouse[0],t.mouse[1]),t.extent,l))}function c(){t.wheel=null,t.end()}}function w(){if(!e&&n.apply(this,arguments)){var t=v(this,arguments,!0),i=wu(cu.view).on("mousemove.zoom",c,!0).on("mouseup.zoom",u,!0),o=oh(this),a=cu.clientX,s=cu.clientY;uh(cu.view),oN(),t.mouse=[o,this.__zoom.invert(o)],Fp(this),t.start()}function c(){if(aN(),!t.moved){var e=cu.clientX-a,n=cu.clientY-s;t.moved=e*e+n*n>p}t.zoom("mouse",r(g(t.that.__zoom,t.mouse[0]=oh(t.that),t.mouse[1]),t.extent,l))}function u(){i.on("mousemove.zoom mouseup.zoom",null),hh(cu.view,t.moved),aN(),t.end()}}function S(){if(n.apply(this,arguments)){var t=this.__zoom,e=oh(this),o=t.invert(e),a=t.k*(cu.shiftKey?.5:2),s=r(g(m(t,a),e,o),i.apply(this,arguments),l);aN(),c>0?wu(this).transition().duration(c).call(y,s,e):wu(this).call(f.transform,s)}}function M(){if(n.apply(this,arguments)){var e,i,r,o,a=cu.touches,s=a.length,l=v(this,arguments,cu.changedTouches.length===s);for(oN(),i=0;i<s;++i)o=[o=sh(this,a,(r=a[i]).identifier),this.__zoom.invert(o),r.identifier],l.touch0?l.touch1||l.touch0[2]===o[2]||(l.touch1=o,l.taps=0):(l.touch0=o,e=!0,l.taps=1+!!t);t&&(t=clearTimeout(t)),e&&(l.taps<2&&(t=setTimeout((function(){t=null}),d)),Fp(this),l.start())}}function E(){if(this.__zooming){var e,n,i,o,a=v(this,arguments),s=cu.changedTouches,c=s.length;for(aN(),t&&(t=clearTimeout(t)),a.taps=0,e=0;e<c;++e)i=sh(this,s,(n=s[e]).identifier),a.touch0&&a.touch0[2]===n.identifier?a.touch0[0]=i:a.touch1&&a.touch1[2]===n.identifier&&(a.touch1[0]=i);if(n=a.that.__zoom,a.touch1){var u=a.touch0[0],h=a.touch0[1],d=a.touch1[0],p=a.touch1[1],f=(f=d[0]-u[0])*f+(f=d[1]-u[1])*f,_=(_=p[0]-h[0])*_+(_=p[1]-h[1])*_;n=m(n,Math.sqrt(f/_)),i=[(u[0]+d[0])/2,(u[1]+d[1])/2],o=[(h[0]+p[0])/2,(h[1]+p[1])/2]}else{if(!a.touch0)return;i=a.touch0[0],o=a.touch0[1]}a.zoom("touch",r(g(n,i,o),a.extent,l))}}function T(){if(this.__zooming){var t,n,i=v(this,arguments),r=cu.changedTouches,o=r.length;for(oN(),e&&clearTimeout(e),e=setTimeout((function(){e=null}),d),t=0;t<o;++t)n=r[t],i.touch0&&i.touch0[2]===n.identifier?delete i.touch0:i.touch1&&i.touch1[2]===n.identifier&&delete i.touch1;if(i.touch1&&!i.touch0&&(i.touch0=i.touch1,delete i.touch1),i.touch0)i.touch0[1]=this.__zoom.invert(i.touch0[0]);else if(i.end(),2===i.taps){var a=wu(this).on("dblclick.zoom");a&&a.apply(this,arguments)}}}return f.transform=function(t,e,n){var i=t.selection?t.selection():t;i.property("__zoom",cN),t!==i?y(t,e,n):i.interrupt().each((function(){v(this,arguments).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},f.scaleBy=function(t,e,n){f.scaleTo(t,(function(){var t=this.__zoom.k,n="function"==typeof e?e.apply(this,arguments):e;return t*n}),n)},f.scaleTo=function(t,e,n){f.transform(t,(function(){var t=i.apply(this,arguments),o=this.__zoom,a=null==n?_(t):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(a),c="function"==typeof e?e.apply(this,arguments):e;return r(g(m(o,c),a,s),t,l)}),n)},f.translateBy=function(t,e,n){f.transform(t,(function(){return r(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),i.apply(this,arguments),l)}))},f.translateTo=function(t,e,n,o){f.transform(t,(function(){var t=i.apply(this,arguments),a=this.__zoom,s=null==o?_(t):"function"==typeof o?o.apply(this,arguments):o;return r(iN.translate(s[0],s[1]).scale(a.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,l)}),o)},b.prototype={start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){mu(new eN(f,t,this.that.__zoom),h.apply,h,[t,this.that,this.args])}},f.wheelDelta=function(t){return arguments.length?(o="function"==typeof t?t:tN(+t),f):o},f.filter=function(t){return arguments.length?(n="function"==typeof t?t:tN(!!t),f):n},f.touchable=function(t){return arguments.length?(a="function"==typeof t?t:tN(!!t),f):a},f.extent=function(t){return arguments.length?(i="function"==typeof t?t:tN([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),f):i},f.scaleExtent=function(t){return arguments.length?(s[0]=+t[0],s[1]=+t[1],f):[s[0],s[1]]},f.translateExtent=function(t){return arguments.length?(l[0][0]=+t[0][0],l[1][0]=+t[1][0],l[0][1]=+t[0][1],l[1][1]=+t[1][1],f):[[l[0][0],l[0][1]],[l[1][0],l[1][1]]]},f.constrain=function(t){return arguments.length?(r=t,f):r},f.duration=function(t){return arguments.length?(c=+t,f):c},f.interpolate=function(t){return arguments.length?(u=t,f):u},f.on=function(){var t=h.on.apply(h,arguments);return t===h?f:t},f.clickDistance=function(t){return arguments.length?(p=(t=+t)*t,f):Math.sqrt(p)},f}rN.prototype=nN.prototype;var fN=Object.freeze({__proto__:null,version:"5.7.0",bisect:wl,bisectRight:wl,bisectLeft:Sl,ascending:vl,bisector:bl,cross:El,descending:function mN(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},deviation:Al,extent:kl,histogram:function gN(){var t=Ol,e=kl,n=Ul;function i(i){var r,o,a=i.length,s=new Array(a);for(r=0;r<a;++r)s[r]=t(i[r],r,i);var l=e(s),c=l[0],u=l[1],h=n(s,c,u);Array.isArray(h)||(h=Vl(c,u,h),h=Rl(Math.ceil(c/h)*h,u,h));for(var d=h.length;h[0]<=c;)h.shift(),--d;for(;h[d-1]>u;)h.pop(),--d;var p,f=new Array(d+1);for(r=0;r<=d;++r)(p=f[r]=[]).x0=r>0?h[r-1]:c,p.x1=r<d?h[r]:u;for(r=0;r<a;++r)c<=(o=s[r])&&o<=u&&f[wl(h,o,0,d)].push(i[r]);return f}return i.value=function(e){return arguments.length?(t="function"==typeof e?e:Il(e),i):t},i.domain=function(t){return arguments.length?(e="function"==typeof t?t:Il([t[0],t[1]]),i):e},i.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?Il(Pl.call(t)):Il(t),i):n},i},thresholdFreedmanDiaconis:function _N(t,e,n){return t=Nl.call(t,Tl).sort(vl),Math.ceil((n-e)/(2*(jl(t,.75)-jl(t,.25))*Math.pow(t.length,-1/3)))},thresholdScott:function yN(t,e,n){return Math.ceil((n-e)/(3.5*Al(t)*Math.pow(t.length,-1/3)))},thresholdSturges:Ul,max:Gl,mean:function vN(t,e){var n,i=t.length,r=i,o=-1,a=0;if(null==e)for(;++o<i;)isNaN(n=Tl(t[o]))?--r:a+=n;else for(;++o<i;)isNaN(n=Tl(e(t[o],o,t)))?--r:a+=n;if(r)return a/r},median:function bN(t,e){var n,i=t.length,r=-1,o=[];if(null==e)for(;++r<i;)isNaN(n=Tl(t[r]))||o.push(n);else for(;++r<i;)isNaN(n=Tl(e(t[r],r,t)))||o.push(n);return jl(o.sort(vl),.5)},merge:Wl,min:ql,pairs:function xN(t,e){null==e&&(e=Ml);for(var n=0,i=t.length-1,r=t[0],o=new Array(i<0?0:i);n<i;)o[n]=e(r,r=t[++n]);return o},permute:function wN(t,e){for(var n=e.length,i=new Array(n);n--;)i[n]=t[e[n]];return i},quantile:jl,range:Rl,scan:function SN(t,e){if(n=t.length){var n,i,r=0,o=0,a=t[o];for(null==e&&(e=vl);++r<n;)(e(i=t[r],a)<0||0!==e(a,a))&&(a=i,o=r);return 0===e(a,a)?o:void 0}},shuffle:function MN(t,e,n){for(var i,r,o=(null==n?t.length:n)-(e=null==e?0:+e);o;)r=Math.random()*o--|0,i=t[o+e],t[o+e]=t[r+e],t[r+e]=i;return t},sum:function EN(t,e){var n,i=t.length,r=-1,o=0;if(null==e)for(;++r<i;)(n=+t[r])&&(o+=n);else for(;++r<i;)(n=+e(t[r],r,t))&&(o+=n);return o},ticks:Hl,tickIncrement:Fl,tickStep:Vl,transpose:Yl,variance:Cl,zip:function TN(){return Yl(arguments)},axisTop:function CN(t){return ic(1,t)},axisRight:function AN(t){return ic(2,t)},axisBottom:rc,axisLeft:oc,brush:Zm,brushX:function kN(){return Jm(Rm)},brushY:Km,brushSelection:$m,chord:function LN(){var t=0,e=null,n=null,i=null;function r(r){var o,a,s,l,c,u,h=r.length,d=[],p=Rl(h),f=[],m=[],g=m.groups=new Array(h),_=new Array(h*h);for(o=0,c=-1;++c<h;){for(a=0,u=-1;++u<h;)a+=r[c][u];d.push(a),f.push(Rl(h)),o+=a}for(e&&p.sort((function(t,n){return e(d[t],d[n])})),n&&f.forEach((function(t,e){t.sort((function(t,i){return n(r[e][t],r[e][i])}))})),l=(o=rg(0,ig-t*h)/o)?t:ig/h,a=0,c=-1;++c<h;){for(s=a,u=-1;++u<h;){var y=p[c],v=f[y][u],b=r[y][v],x=a,w=a+=b*o;_[v*h+y]={index:y,subindex:v,startAngle:x,endAngle:w,value:b}}g[y]={index:y,startAngle:s,endAngle:a,value:d[y]},a+=l}for(c=-1;++c<h;)for(u=c-1;++u<h;){var S=_[u*h+c],M=_[c*h+u];(S.value||M.value)&&m.push(S.value<M.value?{source:M,target:S}:{source:S,target:M})}return i?m.sort(i):m}return r.padAngle=function(e){return arguments.length?(t=rg(0,e),r):t},r.sortGroups=function(t){return arguments.length?(e=t,r):e},r.sortSubgroups=function(t){return arguments.length?(n=t,r):n},r.sortChords=function(t){return arguments.length?(null==t?i=null:(i=og(t))._=t,r):i&&i._},r},ribbon:function PN(){var t=fg,e=mg,n=gg,i=_g,r=yg,o=null;function a(){var a,s=ag.call(arguments),l=t.apply(this,s),c=e.apply(this,s),u=+n.apply(this,(s[0]=l,s)),h=i.apply(this,s)-ng,d=r.apply(this,s)-ng,p=u*Qm(h),f=u*tg(h),m=+n.apply(this,(s[0]=c,s)),g=i.apply(this,s)-ng,_=r.apply(this,s)-ng;if(o||(o=a=pg()),o.moveTo(p,f),o.arc(0,0,u,h,d),h===g&&d===_||(o.quadraticCurveTo(0,0,m*Qm(g),m*tg(g)),o.arc(0,0,m,g,_)),o.quadraticCurveTo(0,0,p,f),o.closePath(),a)return o=null,a+""||null}return a.radius=function(t){return arguments.length?(n="function"==typeof t?t:sg(+t),a):n},a.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:sg(+t),a):i},a.endAngle=function(t){return arguments.length?(r="function"==typeof t?t:sg(+t),a):r},a.source=function(e){return arguments.length?(t=e,a):t},a.target=function(t){return arguments.length?(e=t,a):e},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a},nest:function NN(){var t,e,n,i=[],r=[];function o(n,r,a,s){if(r>=i.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var l,c,u,h=-1,d=n.length,p=i[r++],f=xg(),m=a();++h<d;)(u=f.get(l=p(c=n[h])+""))?u.push(c):f.set(l,[c]);return f.each((function(t,e){s(m,e,o(t,r,a,s))})),m}function a(t,n){if(++n>i.length)return t;var o,s=r[n-1];return null!=e&&n>=i.length?o=t.entries():(o=[],t.each((function(t,e){o.push({key:e,values:a(t,n)})}))),null!=s?o.sort((function(t,e){return s(t.key,e.key)})):o}return n={object:function(t){return o(t,0,wg,Sg)},map:function(t){return o(t,0,Mg,Eg)},entries:function(t){return a(o(t,0,Mg,Eg),0)},key:function(t){return i.push(t),n},sortKeys:function(t){return r[i.length-1]=t,n},sortValues:function(e){return t=e,n},rollup:function(t){return e=t,n}}},set:Ag,map:xg,keys:kg,values:function IN(t){var e=[];for(var n in t)e.push(t[n]);return e},entries:function ON(t){var e=[];for(var n in t)e.push({key:n,value:t[n]});return e},color:Dh,rgb:Vh,hsl:Xh,lab:ad,hcl:pd,lch:function RN(t,e,n,i){return 1===arguments.length?dd(t):new fd(n,e,t,null==i?1:i)},gray:function zN(t,e){return new sd(t,0,0,null==e?1:e)},cubehelix:bd,contours:Bg,contourDensity:function DN(){var t=Vg,e=Ug,n=jg,i=960,r=500,o=20,a=2,s=3*o,l=i+2*s>>a,c=r+2*s>>a,u=Ng(20);function h(i){var r=new Float32Array(l*c),h=new Float32Array(l*c);i.forEach((function(i,o,u){var h=+t(i,o,u)+s>>a,d=+e(i,o,u)+s>>a,p=+n(i,o,u);h>=0&&h<l&&d>=0&&d<c&&(r[h+d*l]+=p)})),Hg({width:l,height:c,data:r},{width:l,height:c,data:h},o>>a),Fg({width:l,height:c,data:h},{width:l,height:c,data:r},o>>a),Hg({width:l,height:c,data:r},{width:l,height:c,data:h},o>>a),Fg({width:l,height:c,data:h},{width:l,height:c,data:r},o>>a),Hg({width:l,height:c,data:r},{width:l,height:c,data:h},o>>a),Fg({width:l,height:c,data:h},{width:l,height:c,data:r},o>>a);var p=u(r);if(!Array.isArray(p)){var f=Gl(r);p=Vl(0,f,p),(p=Rl(0,Math.floor(f/p)*p,p)).shift()}return Bg().thresholds(p).size([l,c])(r).map(d)}function d(t){return t.value*=Math.pow(2,-2*a),t.coordinates.forEach(p),t}function p(t){t.forEach(f)}function f(t){t.forEach(m)}function m(t){t[0]=t[0]*Math.pow(2,a)-s,t[1]=t[1]*Math.pow(2,a)-s}function g(){return l=i+2*(s=3*o)>>a,c=r+2*s>>a,h}return h.x=function(e){return arguments.length?(t="function"==typeof e?e:Ng(+e),h):t},h.y=function(t){return arguments.length?(e="function"==typeof t?t:Ng(+t),h):e},h.weight=function(t){return arguments.length?(n="function"==typeof t?t:Ng(+t),h):n},h.size=function(t){if(!arguments.length)return[i,r];var e=Math.ceil(t[0]),n=Math.ceil(t[1]);if(!(e>=0||e>=0))throw new Error("invalid size");return i=e,r=n,g()},h.cellSize=function(t){if(!arguments.length)return 1<<a;if(!((t=+t)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(t)/Math.LN2),g()},h.thresholds=function(t){return arguments.length?(u="function"==typeof t?t:Array.isArray(t)?Ng(Lg.call(t)):Ng(t),h):u},h.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return o=Math.round((Math.sqrt(4*t*t+1)-1)/2),g()},h},dispatch:sc,drag:yh,dragDisable:uh,dragEnable:hh,dsvFormat:$g,csvParse:Zg,csvParseRows:Jg,csvFormat:Qg,csvFormatBody:t_,csvFormatRows:e_,csvFormatRow:n_,csvFormatValue:i_,tsvParse:o_,tsvParseRows:a_,tsvFormat:s_,tsvFormatBody:l_,tsvFormatRows:c_,tsvFormatRow:u_,tsvFormatValue:h_,autoType:function BN(t){for(var e in t){var n,i,r=t[e].trim();if(r)if("true"===r)r=!0;else if("false"===r)r=!1;else if("NaN"===r)r=NaN;else if(isNaN(n=+r)){if(!(i=r.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;d_&&i[4]&&!i[7]&&(r=r.replace(/-/g,"/").replace(/T/," ")),r=new Date(r)}else r=n;else r=null;t[e]=r}return t},easeLinear:vf,easeQuad:wf,easeQuadIn:bf,easeQuadOut:xf,easeQuadInOut:wf,easeCubic:Ef,easeCubicIn:Sf,easeCubicOut:Mf,easeCubicInOut:Ef,easePoly:Yf,easePolyIn:Wf,easePolyOut:qf,easePolyInOut:Yf,easeSin:Jf,easeSinIn:Kf,easeSinOut:Zf,easeSinInOut:Jf,easeExp:nm,easeExpIn:tm,easeExpOut:em,easeExpInOut:nm,easeCircle:om,easeCircleIn:im,easeCircleOut:rm,easeCircleInOut:om,easeBounce:lm,easeBounceIn:sm,easeBounceOut:lm,easeBounceInOut:cm,easeBack:pm,easeBackIn:hm,easeBackOut:dm,easeBackInOut:pm,easeElastic:gm,easeElasticIn:mm,easeElasticOut:gm,easeElasticInOut:_m,blob:function HN(t,e){return fetch(t,e).then(p_)},buffer:function FN(t,e){return fetch(t,e).then(f_)},dsv:function VN(t,e,n,i){3===arguments.length&&"function"==typeof n&&(i=n,n=void 0);var r=$g(t);return g_(e,n).then((function(t){return r.parse(t,i)}))},csv:y_,tsv:v_,image:function UN(t,e){return new Promise((function(n,i){var r=new Image;for(var o in e)r[o]=e[o];r.onerror=i,r.onload=function(){n(r)},r.src=t}))},json:function jN(t,e){return fetch(t,e).then(b_)},text:g_,xml:w_,html:S_,svg:M_,forceCenter:function GN(t,e){var n;function i(){var i,r,o=n.length,a=0,s=0;for(i=0;i<o;++i)a+=(r=n[i]).x,s+=r.y;for(a=a/o-t,s=s/o-e,i=0;i<o;++i)(r=n[i]).x-=a,r.y-=s}return null==t&&(t=0),null==e&&(e=0),i.initialize=function(t){n=t},i.x=function(e){return arguments.length?(t=+e,i):t},i.y=function(t){return arguments.length?(e=+t,i):e},i},forceCollide:function WN(t){var e,n,i=1,r=1;function o(){for(var t,o,s,l,c,u,h,d=e.length,p=0;p<r;++p)for(o=P_(e,R_,z_).visitAfter(a),t=0;t<d;++t)h=(u=n[(s=e[t]).index])*u,l=s.x+s.vx,c=s.y+s.vy,o.visit(f);function f(t,e,n,r,o){var a=t.data,d=t.r,p=u+d;if(!a)return e>l+p||r<l-p||n>c+p||o<c-p;if(a.index>s.index){var f=l-a.x-a.vx,m=c-a.y-a.vy,g=f*f+m*m;g<p*p&&(0===f&&(g+=(f=T_())*f),0===m&&(g+=(m=T_())*m),g=(p-(g=Math.sqrt(g)))/g*i,s.vx+=(f*=g)*(p=(d*=d)/(h+d)),s.vy+=(m*=g)*p,a.vx-=f*(p=1-p),a.vy-=m*p)}}}function a(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function s(){if(e){var i,r,o=e.length;for(n=new Array(o),i=0;i<o;++i)n[(r=e[i]).index]=+t(r,i,e)}}return"function"!=typeof t&&(t=E_(null==t?1:+t)),o.initialize=function(t){e=t,s()},o.iterations=function(t){return arguments.length?(r=+t,o):r},o.strength=function(t){return arguments.length?(i=+t,o):i},o.radius=function(e){return arguments.length?(t="function"==typeof e?e:E_(+e),s(),o):t},o},forceLink:function qN(t){var e,n,i,r,o,a=D_,s=function l(t){return 1/Math.min(r[t.source.index],r[t.target.index])},c=E_(30),u=1;function h(i){for(var r=0,a=t.length;r<u;++r)for(var s,l,c,h,d,p,f,m=0;m<a;++m)h=(c=(s=t[m]).target).x+c.vx-(l=s.source).x-l.vx||T_(),d=c.y+c.vy-l.y-l.vy||T_(),d*=p=((p=Math.sqrt(h*h+d*d))-n[m])/p*i*e[m],c.vx-=(h*=p)*(f=o[m]),c.vy-=d*f,l.vx+=h*(f=1-f),l.vy+=d*f}function d(){if(i){var s,l,c=i.length,u=t.length,h=xg(i,a);for(s=0,r=new Array(c);s<u;++s)(l=t[s]).index=s,"object"!=typeof l.source&&(l.source=B_(h,l.source)),"object"!=typeof l.target&&(l.target=B_(h,l.target)),r[l.source.index]=(r[l.source.index]||0)+1,r[l.target.index]=(r[l.target.index]||0)+1;for(s=0,o=new Array(u);s<u;++s)o[s]=r[(l=t[s]).source.index]/(r[l.source.index]+r[l.target.index]);e=new Array(u),p(),n=new Array(u),f()}}function p(){if(i)for(var n=0,r=t.length;n<r;++n)e[n]=+s(t[n],n,t)}function f(){if(i)for(var e=0,r=t.length;e<r;++e)n[e]=+c(t[e],e,t)}return null==t&&(t=[]),h.initialize=function(t){i=t,d()},h.links=function(e){return arguments.length?(t=e,d(),h):t},h.id=function(t){return arguments.length?(a=t,h):a},h.iterations=function(t){return arguments.length?(u=+t,h):u},h.strength=function(t){return arguments.length?(s="function"==typeof t?t:E_(+t),p(),h):s},h.distance=function(t){return arguments.length?(c="function"==typeof t?t:E_(+t),f(),h):c},h},forceManyBody:function YN(){var t,e,n,i,r=E_(-30),o=1,a=1/0,s=.81;function l(i){var r,o=t.length,a=P_(t,H_,F_).visitAfter(u);for(n=i,r=0;r<o;++r)e=t[r],a.visit(h)}function c(){if(t){var e,n,o=t.length;for(i=new Array(o),e=0;e<o;++e)i[(n=t[e]).index]=+r(n,e,t)}}function u(t){var e,n,r,o,a,s=0,l=0;if(t.length){for(r=o=a=0;a<4;++a)(e=t[a])&&(n=Math.abs(e.value))&&(s+=e.value,l+=n,r+=n*e.x,o+=n*e.y);t.x=r/l,t.y=o/l}else{(e=t).x=e.data.x,e.y=e.data.y;do{s+=i[e.data.index]}while(e=e.next)}t.value=s}function h(t,r,l,c){if(!t.value)return!0;var u=t.x-e.x,h=t.y-e.y,d=c-r,p=u*u+h*h;if(d*d/s<p)return p<a&&(0===u&&(p+=(u=T_())*u),0===h&&(p+=(h=T_())*h),p<o&&(p=Math.sqrt(o*p)),e.vx+=u*t.value*n/p,e.vy+=h*t.value*n/p),!0;if(!(t.length||p>=a)){(t.data!==e||t.next)&&(0===u&&(p+=(u=T_())*u),0===h&&(p+=(h=T_())*h),p<o&&(p=Math.sqrt(o*p)));do{t.data!==e&&(e.vx+=u*(d=i[t.data.index]*n/p),e.vy+=h*d)}while(t=t.next)}}return l.initialize=function(e){t=e,c()},l.strength=function(t){return arguments.length?(r="function"==typeof t?t:E_(+t),c(),l):r},l.distanceMin=function(t){return arguments.length?(o=t*t,l):Math.sqrt(o)},l.distanceMax=function(t){return arguments.length?(a=t*t,l):Math.sqrt(a)},l.theta=function(t){return arguments.length?(s=t*t,l):Math.sqrt(s)},l},forceRadial:function XN(t,e,n){var i,r,o,a=E_(.1);function s(t){for(var a=0,s=i.length;a<s;++a){var l=i[a],c=l.x-e||1e-6,u=l.y-n||1e-6,h=Math.sqrt(c*c+u*u),d=(o[a]-h)*r[a]*t/h;l.vx+=c*d,l.vy+=u*d}}function l(){if(i){var e,n=i.length;for(r=new Array(n),o=new Array(n),e=0;e<n;++e)o[e]=+t(i[e],e,i),r[e]=isNaN(o[e])?0:+a(i[e],e,i)}}return"function"!=typeof t&&(t=E_(+t)),null==e&&(e=0),null==n&&(n=0),s.initialize=function(t){i=t,l()},s.strength=function(t){return arguments.length?(a="function"==typeof t?t:E_(+t),l(),s):a},s.radius=function(e){return arguments.length?(t="function"==typeof e?e:E_(+e),l(),s):t},s.x=function(t){return arguments.length?(e=+t,s):e},s.y=function(t){return arguments.length?(n=+t,s):n},s},forceSimulation:function $N(t){var e,n=1,i=.001,r=1-Math.pow(i,1/300),o=0,a=.6,s=xg(),l=Ap(u),c=sc("tick","end");function u(){h(),c.call("tick",e),n<i&&(l.stop(),c.call("end",e))}function h(i){var l,c,u=t.length;void 0===i&&(i=1);for(var h=0;h<i;++h)for(n+=(o-n)*r,s.each((function(t){t(n)})),l=0;l<u;++l)null==(c=t[l]).fx?c.x+=c.vx*=a:(c.x=c.fx,c.vx=0),null==c.fy?c.y+=c.vy*=a:(c.y=c.fy,c.vy=0);return e}function d(){for(var e,n=0,i=t.length;n<i;++n){if((e=t[n]).index=n,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),isNaN(e.x)||isNaN(e.y)){var r=10*Math.sqrt(n),o=n*ey;e.x=r*Math.cos(o),e.y=r*Math.sin(o)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function p(e){return e.initialize&&e.initialize(t),e}return null==t&&(t=[]),d(),e={tick:h,restart:function(){return l.restart(u),e},stop:function(){return l.stop(),e},nodes:function(n){return arguments.length?(t=n,d(),s.each(p),e):t},alpha:function(t){return arguments.length?(n=+t,e):n},alphaMin:function(t){return arguments.length?(i=+t,e):i},alphaDecay:function(t){return arguments.length?(r=+t,e):+r},alphaTarget:function(t){return arguments.length?(o=+t,e):o},velocityDecay:function(t){return arguments.length?(a=1-t,e):1-a},force:function(t,n){return arguments.length>1?(null==n?s.remove(t):s.set(t,p(n)),e):s.get(t)},find:function(e,n,i){var r,o,a,s,l,c=0,u=t.length;for(null==i?i=1/0:i*=i,c=0;c<u;++c)(a=(r=e-(s=t[c]).x)*r+(o=n-s.y)*o)<i&&(l=s,i=a);return l},on:function(t,n){return arguments.length>1?(c.on(t,n),e):c.on(t)}}},forceX:function KN(t){var e,n,i,r=E_(.1);function o(t){for(var r,o=0,a=e.length;o<a;++o)(r=e[o]).vx+=(i[o]-r.x)*n[o]*t}function a(){if(e){var o,a=e.length;for(n=new Array(a),i=new Array(a),o=0;o<a;++o)n[o]=isNaN(i[o]=+t(e[o],o,e))?0:+r(e[o],o,e)}}return"function"!=typeof t&&(t=E_(null==t?0:+t)),o.initialize=function(t){e=t,a()},o.strength=function(t){return arguments.length?(r="function"==typeof t?t:E_(+t),a(),o):r},o.x=function(e){return arguments.length?(t="function"==typeof e?e:E_(+e),a(),o):t},o},forceY:function ZN(t){var e,n,i,r=E_(.1);function o(t){for(var r,o=0,a=e.length;o<a;++o)(r=e[o]).vy+=(i[o]-r.y)*n[o]*t}function a(){if(e){var o,a=e.length;for(n=new Array(a),i=new Array(a),o=0;o<a;++o)n[o]=isNaN(i[o]=+t(e[o],o,e))?0:+r(e[o],o,e)}}return"function"!=typeof t&&(t=E_(null==t?0:+t)),o.initialize=function(t){e=t,a()},o.strength=function(t){return arguments.length?(r="function"==typeof t?t:E_(+t),a(),o):r},o.y=function(e){return arguments.length?(t="function"==typeof e?e:E_(+e),a(),o):t},o},formatDefaultLocale:vy,get format(){return fy},get formatPrefix(){return my},formatLocale:yy,formatSpecifier:ay,FormatSpecifier:sy,precisionFixed:by,precisionPrefix:xy,precisionRound:wy,geoArea:function JN(t){return cv.reset(),nv(t,uv),2*cv},geoBounds:function QN(t){var e,n,i,r,o,a,s;if(Ev=Mv=-(wv=Sv=1/0),Lv=[],nv(t,$v),n=Lv.length){for(Lv.sort(rb),e=1,o=[i=Lv[0]];e<n;++e)ob(i,(r=Lv[e])[0])||ob(i,r[1])?(ib(i[0],r[1])>ib(i[0],i[1])&&(i[1]=r[1]),ib(r[0],i[1])>ib(i[0],i[1])&&(i[0]=r[0])):o.push(i=r);for(a=-1/0,e=0,i=o[n=o.length-1];e<=n;i=r,++e)(s=ib(i[1],(r=o[e])[0]))>a&&(a=s,wv=r[0],Mv=i[1])}return Lv=Pv=null,wv===1/0||Sv===1/0?[[NaN,NaN],[NaN,NaN]]:[[wv,Sv],[Mv,Ev]]},geoCentroid:function tI(t){Nv=Iv=Ov=Rv=zv=Dv=Bv=Hv=Fv=Vv=Uv=0,nv(t,ab);var e=Fv,n=Vv,i=Uv,r=e*e+n*n+i*i;return r<Ay&&(e=Dv,n=Bv,i=Hv,Iv<Cy&&(e=Ov,n=Rv,i=zv),(r=e*e+n*n+i*i)<Ay)?[NaN,NaN]:[Dy(n,e)*Iy,Xy(i/Wy(r))*Iy]},geoCircle:function eI(){var t,e,n=_b([0,0]),i=_b(90),r=_b(6),o={point:function a(n,i){t.push(n=e(n,i)),n[0]*=Iy,n[1]*=Iy}};function s(){var a=n.apply(this,arguments),s=i.apply(this,arguments)*Oy,l=r.apply(this,arguments)*Oy;return t=[],e=bb(-a[0]*Oy,-a[1]*Oy,0).invert,Eb(o,s,l,1),a={type:"Polygon",coordinates:[t]},t=e=null,a}return s.center=function(t){return arguments.length?(n="function"==typeof t?t:_b([+t[0],+t[1]]),s):n},s.radius=function(t){return arguments.length?(i="function"==typeof t?t:_b(+t),s):i},s.precision=function(t){return arguments.length?(r="function"==typeof t?t:_b(+t),s):r},s},geoClipAntimeridian:Bb,geoClipCircle:Vb,geoClipExtent:function nI(){var t,e,n,i=0,r=0,o=960,a=500;return n={stream:function(n){return t&&e===n?t:t=Gb(i,r,o,a)(e=n)},extent:function(s){return arguments.length?(i=+s[0][0],r=+s[0][1],o=+s[1][0],a=+s[1][1],t=e=null,n):[[i,r],[o,a]]}}},geoClipRectangle:Gb,geoContains:function iI(t,e){return(t&&rx.hasOwnProperty(t.type)?rx[t.type]:ax)(t,e)},geoDistance:ix,geoGraticule:fx,geoGraticule10:function rI(){return fx()()},geoInterpolate:function oI(t,e){var n=t[0]*Oy,i=t[1]*Oy,r=e[0]*Oy,o=e[1]*Oy,a=By(i),s=jy(i),l=By(o),c=jy(o),u=a*By(n),h=a*jy(n),d=l*By(r),p=l*jy(r),f=2*Xy(Wy($y(o-i)+a*l*$y(r-n))),m=jy(f),g=f?function(t){var e=jy(t*=f)/m,n=jy(f-t)/m,i=n*u+e*d,r=n*h+e*p,o=n*s+e*c;return[Dy(r,i)*Iy,Dy(o,Wy(i*i+r*r))*Iy]}:function(){return[n*Iy,i*Iy]};return g.distance=f,g},geoLength:tx,geoPath:function aI(t,e){var n,i,r=4.5;function o(t){return t&&("function"==typeof r&&i.pointRadius(+r.apply(this,arguments)),nv(t,n(i))),i.result()}return o.area=function(t){return nv(t,n(wx)),wx.result()},o.measure=function(t){return nv(t,n(cw)),cw.result()},o.bounds=function(t){return nv(t,n(Rx)),Rx.result()},o.centroid=function(t){return nv(t,n(qx)),qx.result()},o.projection=function(e){return arguments.length?(n=null==e?(t=null,mx):(t=e).stream,o):t},o.context=function(t){return arguments.length?(i=null==t?(e=null,new dw):new nw(e=t),"function"!=typeof r&&i.pointRadius(r),o):e},o.pointRadius=function(t){return arguments.length?(r="function"==typeof t?t:(i.pointRadius(+t),+t),o):r},o.projection(t).context(e)},geoAlbers:Pw,geoAlbersUsa:function sI(){var t,e,n,i,r,o,a=Pw(),s=Lw().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=Lw().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(t,e){o=[t,e]}};function u(t){var e=t[0],a=t[1];return o=null,n.point(e,a),o||(i.point(e,a),o)||(r.point(e,a),o)}function h(){return t=e=null,u}return u.invert=function(t){var e=a.scale(),n=a.translate(),i=(t[0]-n[0])/e,r=(t[1]-n[1])/e;return(r>=.12&&r<.234&&i>=-.425&&i<-.214?s:r>=.166&&r<.234&&i>=-.214&&i<-.115?l:a).invert(t)},u.stream=function(n){return t&&e===n?t:t=(function i(t){var e=t.length;return{point:function(n,i){for(var r=-1;++r<e;)t[r].point(n,i)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}})([a.stream(e=n),s.stream(n),l.stream(n)])},u.precision=function(t){return arguments.length?(a.precision(t),s.precision(t),l.precision(t),h()):a.precision()},u.scale=function(t){return arguments.length?(a.scale(t),s.scale(.35*t),l.scale(t),u.translate(a.translate())):a.scale()},u.translate=function(t){if(!arguments.length)return a.translate();var e=a.scale(),o=+t[0],u=+t[1];return n=a.translate(t).clipExtent([[o-.455*e,u-.238*e],[o+.455*e,u+.238*e]]).stream(c),i=s.translate([o-.307*e,u+.201*e]).clipExtent([[o-.425*e+Cy,u+.12*e+Cy],[o-.214*e-Cy,u+.234*e-Cy]]).stream(c),r=l.translate([o-.205*e,u+.212*e]).clipExtent([[o-.214*e+Cy,u+.166*e+Cy],[o-.115*e-Cy,u+.234*e-Cy]]).stream(c),h()},u.fitExtent=function(t,e){return _w(u,t,e)},u.fitSize=function(t,e){return yw(u,t,e)},u.fitWidth=function(t,e){return vw(u,t,e)},u.fitHeight=function(t,e){return bw(u,t,e)},u.scale(1070)},geoAzimuthalEqualArea:function lI(){return Tw(Ow).scale(124.75).clipAngle(179.999)},geoAzimuthalEqualAreaRaw:Ow,geoAzimuthalEquidistant:function cI(){return Tw(Rw).scale(79.4188).clipAngle(179.999)},geoAzimuthalEquidistantRaw:Rw,geoConicConformal:function uI(){return Aw(Hw).scale(109.5).parallels([30,30])},geoConicConformalRaw:Hw,geoConicEqualArea:Lw,geoConicEqualAreaRaw:kw,geoConicEquidistant:function hI(){return Aw(Vw).scale(131.154).center([0,13.9389])},geoConicEquidistantRaw:Vw,geoEqualEarth:function dI(){return Tw(Yw).scale(177.158)},geoEqualEarthRaw:Yw,geoEquirectangular:function pI(){return Tw(Fw).scale(152.63)},geoEquirectangularRaw:Fw,geoGnomonic:function fI(){return Tw(Xw).scale(144.049).clipAngle(60)},geoGnomonicRaw:Xw,geoIdentity:function mI(){var t,e,n,i,r,o,a,s=1,l=0,c=0,u=1,h=1,d=0,p=null,f=1,m=1,g=fw({point:function(t,e){var n=v([t,e]);this.stream.point(n[0],n[1])}}),_=mx;function y(){return f=s*u,m=s*h,o=a=null,v}function v(n){var i=n[0]*f,r=n[1]*m;if(d){var o=r*t-i*e;i=i*t+r*e,r=o}return[i+l,r+c]}return v.invert=function(n){var i=n[0]-l,r=n[1]-c;if(d){var o=r*t+i*e;i=i*t-r*e,r=o}return[i/f,r/m]},v.stream=function(t){return o&&a===t?o:o=g(_(a=t))},v.postclip=function(t){return arguments.length?(_=t,p=n=i=r=null,y()):_},v.clipExtent=function(t){return arguments.length?(_=null==t?(p=n=i=r=null,mx):Gb(p=+t[0][0],n=+t[0][1],i=+t[1][0],r=+t[1][1]),y()):null==p?null:[[p,n],[i,r]]},v.scale=function(t){return arguments.length?(s=+t,y()):s},v.translate=function(t){return arguments.length?(l=+t[0],c=+t[1],y()):[l,c]},v.angle=function(n){return arguments.length?(e=jy(d=n%360*Oy),t=By(d),y()):d*Iy},v.reflectX=function(t){return arguments.length?(u=t?-1:1,y()):u<0},v.reflectY=function(t){return arguments.length?(h=t?-1:1,y()):h<0},v.fitExtent=function(t,e){return _w(v,t,e)},v.fitSize=function(t,e){return yw(v,t,e)},v.fitWidth=function(t,e){return vw(v,t,e)},v.fitHeight=function(t,e){return bw(v,t,e)},v},geoProjection:Tw,geoProjectionMutator:Cw,geoMercator:function gI(){return Dw(zw).scale(961/Ny)},geoMercatorRaw:zw,geoNaturalEarth1:function _I(){return Tw($w).scale(175.295)},geoNaturalEarth1Raw:$w,geoOrthographic:function yI(){return Tw(Kw).scale(249.5).clipAngle(90.000001)},geoOrthographicRaw:Kw,geoStereographic:function vI(){return Tw(Zw).scale(250).clipAngle(142)},geoStereographicRaw:Zw,geoTransverseMercator:function bI(){var t=Dw(Jw),e=t.center,n=t.rotate;return t.center=function(t){return arguments.length?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return arguments.length?n([t[0],t[1],t.length>2?t[2]+90:90]):[(t=n())[0],t[1],t[2]-90]},n([0,0,90]).scale(159.155)},geoTransverseMercatorRaw:Jw,geoRotation:Mb,geoStream:nv,geoTransform:function xI(t){return{stream:fw(t)}},cluster:function wI(){var t=Qw,e=1,n=1,i=!1;function r(r){var o,a=0;r.eachAfter((function(e){var n=e.children;n?(e.x=(function i(t){return t.reduce(tS,0)/t.length})(n),e.y=(function r(t){return 1+t.reduce(eS,0)})(n)):(e.x=o?a+=t(e,o):0,e.y=0,o=e)}));var s=(function l(t){for(var e;e=t.children;)t=e[0];return t})(r),c=(function u(t){for(var e;e=t.children;)t=e[e.length-1];return t})(r),h=s.x-t(s,c)/2,d=c.x+t(c,s)/2;return r.eachAfter(i?function(t){t.x=(t.x-r.x)*e,t.y=(r.y-t.y)*n}:function(t){t.x=(t.x-h)/(d-h)*e,t.y=(1-(r.y?t.y/r.y:1))*n})}return r.separation=function(e){return arguments.length?(t=e,r):t},r.size=function(t){return arguments.length?(i=!1,e=+t[0],n=+t[1],r):i?null:[e,n]},r.nodeSize=function(t){return arguments.length?(i=!0,e=+t[0],n=+t[1],r):i?[e,n]:null},r},hierarchy:iS,pack:function SI(){var t=null,e=1,n=1,i=zS;function r(r){return r.x=e/2,r.y=n/2,t?r.eachBefore(HS(t)).eachAfter(FS(i,.5)).eachBefore(VS(1)):r.eachBefore(HS(BS)).eachAfter(FS(zS,1)).eachAfter(FS(i,r.r/Math.min(e,n))).eachBefore(VS(Math.min(e,n)/(2*r.r))),r}return r.radius=function(e){return arguments.length?(t=OS(e),r):t},r.size=function(t){return arguments.length?(e=+t[0],n=+t[1],r):[e,n]},r.padding=function(t){return arguments.length?(i="function"==typeof t?t:DS(+t),r):i},r},packSiblings:function MI(t){return IS(t),t},packEnclose:xS,partition:function EI(){var t=1,e=1,n=0,i=!1;function r(r){var o=r.height+1;return r.x0=r.y0=n,r.x1=t,r.y1=e/o,r.eachBefore((function a(t,e){return function(i){i.children&&jS(i,i.x0,t*(i.depth+1)/e,i.x1,t*(i.depth+2)/e);var r=i.x0,o=i.y0,a=i.x1-n,s=i.y1-n;a<r&&(r=a=(r+a)/2),s<o&&(o=s=(o+s)/2),i.x0=r,i.y0=o,i.x1=a,i.y1=s}})(e,o)),i&&r.eachBefore(US),r}return r.round=function(t){return arguments.length?(i=!!t,r):i},r.size=function(n){return arguments.length?(t=+n[0],e=+n[1],r):[t,e]},r.padding=function(t){return arguments.length?(n=+t,r):n},r},stratify:function TI(){var t=qS,e=YS;function n(n){var i,r,o,a,s,l,c,u=n.length,h=new Array(u),d={};for(r=0;r<u;++r)s=h[r]=new sS(i=n[r]),null!=(l=t(i,r,n))&&(l+="")&&(d[c="$"+(s.id=l)]=c in d?WS:s);for(r=0;r<u;++r)if(s=h[r],null!=(l=e(n[r],r,n))&&(l+="")){if(!(a=d["$"+l]))throw new Error("missing: "+l);if(a===WS)throw new Error("ambiguous: "+l);a.children?a.children.push(s):a.children=[s],s.parent=a}else{if(o)throw new Error("multiple roots");o=s}if(!o)throw new Error("no root");if(o.parent=GS,o.eachBefore((function(t){t.depth=t.parent.depth+1,--u})).eachBefore(aS),o.parent=null,u>0)throw new Error("cycle");return o}return n.id=function(e){return arguments.length?(t=RS(e),n):t},n.parentId=function(t){return arguments.length?(e=RS(t),n):e},n},tree:function CI(){var t=XS,e=1,n=1,i=null;function r(r){var l=(function c(t){for(var e,n,i,r,o,a=new QS(t,0),s=[a];e=s.pop();)if(i=e._.children)for(e.children=new Array(o=i.length),r=o-1;r>=0;--r)s.push(n=e.children[r]=new QS(i[r],r)),n.parent=e;return(a.parent=new QS(null,0)).children=[a],a})(r);if(l.eachAfter(o),l.parent.m=-l.z,l.eachBefore(a),i)r.eachBefore(s);else{var u=r,h=r,d=r;r.eachBefore((function(t){t.x<u.x&&(u=t),t.x>h.x&&(h=t),t.depth>d.depth&&(d=t)}));var p=u===h?1:t(u,h)/2,f=p-u.x,m=e/(h.x+p+f),g=n/(d.depth||1);r.eachBefore((function(t){t.x=(t.x+f)*m,t.y=t.depth*g}))}return r}function o(e){var n=e.children,i=e.parent.children,r=e.i?i[e.i-1]:null;if(n){!(function o(t){for(var e,n=0,i=0,r=t.children,o=r.length;--o>=0;)(e=r[o]).z+=n,e.m+=n,n+=e.s+(i+=e.c)})(e);var a=(n[0].z+n[n.length-1].z)/2;r?(e.z=r.z+t(e._,r._),e.m=e.z-a):e.z=a}else r&&(e.z=r.z+t(e._,r._));e.parent.A=(function s(e,n,i){if(n){for(var r,o=e,a=e,s=n,l=o.parent.children[0],c=o.m,u=a.m,h=s.m,d=l.m;s=KS(s),o=$S(o),s&&o;)l=$S(l),(a=KS(a)).a=e,(r=s.z+h-o.z-c+t(s._,o._))>0&&(ZS(JS(s,e,i),e,r),c+=r,u+=r),h+=s.m,c+=o.m,d+=l.m,u+=a.m;s&&!KS(a)&&(a.t=s,a.m+=h-u),o&&!$S(l)&&(l.t=o,l.m+=c-d,i=e)}return i})(e,r,e.parent.A||i[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*n}return r.separation=function(e){return arguments.length?(t=e,r):t},r.size=function(t){return arguments.length?(i=!1,e=+t[0],n=+t[1],r):i?null:[e,n]},r.nodeSize=function(t){return arguments.length?(i=!0,e=+t[0],n=+t[1],r):i?[e,n]:null},r},treemap:function AI(){var t=iM,e=!1,n=1,i=1,r=[0],o=zS,a=zS,s=zS,l=zS,c=zS;function u(t){return t.x0=t.y0=0,t.x1=n,t.y1=i,t.eachBefore(h),r=[0],e&&t.eachBefore(US),t}function h(e){var n=r[e.depth],i=e.x0+n,u=e.y0+n,h=e.x1-n,d=e.y1-n;h<i&&(i=h=(i+h)/2),d<u&&(u=d=(u+d)/2),e.x0=i,e.y0=u,e.x1=h,e.y1=d,e.children&&(n=r[e.depth+1]=o(e)/2,i+=c(e)-n,u+=a(e)-n,(h-=s(e)-n)<i&&(i=h=(i+h)/2),(d-=l(e)-n)<u&&(u=d=(u+d)/2),t(e,i,u,h,d))}return u.round=function(t){return arguments.length?(e=!!t,u):e},u.size=function(t){return arguments.length?(n=+t[0],i=+t[1],u):[n,i]},u.tile=function(e){return arguments.length?(t=RS(e),u):t},u.padding=function(t){return arguments.length?u.paddingInner(t).paddingOuter(t):u.paddingInner()},u.paddingInner=function(t){return arguments.length?(o="function"==typeof t?t:DS(+t),u):o},u.paddingOuter=function(t){return arguments.length?u.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):u.paddingTop()},u.paddingTop=function(t){return arguments.length?(a="function"==typeof t?t:DS(+t),u):a},u.paddingRight=function(t){return arguments.length?(s="function"==typeof t?t:DS(+t),u):s},u.paddingBottom=function(t){return arguments.length?(l="function"==typeof t?t:DS(+t),u):l},u.paddingLeft=function(t){return arguments.length?(c="function"==typeof t?t:DS(+t),u):c},u},treemapBinary:function kI(t,e,n,i,r){var o,a,s=t.children,l=s.length,c=new Array(l+1);for(c[0]=a=o=0;o<l;++o)c[o+1]=a+=s[o].value;!(function t(e,n,i,r,o,a,l){if(e>=n-1){var u=s[e];return u.x0=r,u.y0=o,u.x1=a,void(u.y1=l)}for(var h=c[e],d=i/2+h,p=e+1,f=n-1;p<f;){var m=p+f>>>1;c[m]<d?p=m+1:f=m}d-c[p-1]<c[p]-d&&e+1<p&&--p;var g=c[p]-h,_=i-g;if(a-r>l-o){var y=(r*_+a*g)/i;t(e,p,g,r,o,y,l),t(p,n,_,y,o,a,l)}else{var v=(o*_+l*g)/i;t(e,p,g,r,o,a,v),t(p,n,_,r,v,a,l)}})(0,l,t.value,e,n,i,r)},treemapDice:jS,treemapSlice:tM,treemapSliceDice:function LI(t,e,n,i,r){(1&t.depth?tM:jS)(t,e,n,i,r)},treemapSquarify:iM,treemapResquarify:rM,interpolate:Ud,interpolateArray:function PI(t,e){return(Od(e)?Id:Rd)(t,e)},interpolateBasis:Sd,interpolateBasisClosed:Md,interpolateDate:zd,interpolateDiscrete:function NI(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}},interpolateHue:function II(t,e){var n=Cd(+t,+e);return function(t){var e=n(t);return e-360*Math.floor(e/360)}},interpolateNumber:Dd,interpolateNumberArray:Id,interpolateObject:Bd,interpolateRound:jd,interpolateString:Vd,interpolateTransformCss:Jd,interpolateTransformSvg:tp,interpolateZoom:rp,interpolateRgb:kd,interpolateRgbBasis:Pd,interpolateRgbBasisClosed:Nd,interpolateHsl:ap,interpolateHslLong:sp,interpolateLab:lp,interpolateHcl:up,interpolateHclLong:hp,interpolateCubehelix:mp,interpolateCubehelixLong:gp,piecewise:function OI(t,e){for(var n=0,i=e.length-1,r=e[0],o=new Array(i<0?0:i);n<i;)o[n]=t(r,r=e[++n]);return function(t){var e=Math.max(0,Math.min(i-1,Math.floor(t*=i)));return o[e](t-e)}},quantize:function RI(t,e){for(var n=new Array(e),i=0;i<e;++i)n[i]=t(i/(e-1));return n},path:pg,polygonArea:function zI(t){for(var e,n=-1,i=t.length,r=t[i-1],o=0;++n<i;)o+=(e=r)[1]*(r=t[n])[0]-e[0]*r[1];return o/2},polygonCentroid:function DI(t){for(var e,n,i=-1,r=t.length,o=0,a=0,s=t[r-1],l=0;++i<r;)l+=n=(e=s)[0]*(s=t[i])[1]-s[0]*e[1],o+=(e[0]+s[0])*n,a+=(e[1]+s[1])*n;return[o/(l*=3),a/l]},polygonHull:function BI(t){if((n=t.length)<3)return null;var e,n,i=new Array(n),r=new Array(n);for(e=0;e<n;++e)i[e]=[+t[e][0],+t[e][1],e];for(i.sort(aM),e=0;e<n;++e)r[e]=[i[e][0],-i[e][1]];var o=sM(i),a=sM(r),s=a[0]===o[0],l=a[a.length-1]===o[o.length-1],c=[];for(e=o.length-1;e>=0;--e)c.push(t[i[o[e]][2]]);for(e=+s;e<a.length-l;++e)c.push(t[i[a[e]][2]]);return c},polygonContains:function HI(t,e){for(var n,i,r=t.length,o=t[r-1],a=e[0],s=e[1],l=o[0],c=o[1],u=!1,h=0;h<r;++h)n=(o=t[h])[0],(i=o[1])>s!=c>s&&a<(l-n)*(s-i)/(c-i)+n&&(u=!u),l=n,c=i;return u},polygonLength:function FI(t){for(var e,n,i=-1,r=t.length,o=t[r-1],a=o[0],s=o[1],l=0;++i<r;)e=a,n=s,e-=a=(o=t[i])[0],n-=s=o[1],l+=Math.sqrt(e*e+n*n);return l},quadtree:P_,randomUniform:cM,randomNormal:uM,randomLogNormal:hM,randomBates:pM,randomIrwinHall:dM,randomExponential:fM,scaleBand:wM,scalePoint:MM,scaleIdentity:function t(e){var n;function i(t){return isNaN(t=+t)?n:t}return i.invert=i,i.domain=i.range=function(t){return arguments.length?(e=yM.call(t,EM),i):e.slice()},i.unknown=function(t){return arguments.length?(n=t,i):n},i.copy=function(){return t(e).unknown(n)},e=arguments.length?yM.call(e,EM):[0,1],zM(i)},scaleLinear:DM,scaleLog:qM,scaleSymlog:function t(){var e=$M(IM());return e.copy=function(){return NM(e,t()).constant(e.constant())},mM.apply(e,arguments)},scaleOrdinal:xM,scaleImplicit:bM,scalePow:tE,scaleSqrt:function VI(){return tE.apply(null,arguments).exponent(.5)},scaleQuantile:eE,scaleQuantize:nE,scaleThreshold:function t(){var e,n=[.5],i=[0,1],r=1;function o(t){return t<=t?i[wl(n,t,0,r)]:e}return o.domain=function(t){return arguments.length?(n=vM.call(t),r=Math.min(n.length,i.length-1),o):n.slice()},o.range=function(t){return arguments.length?(i=vM.call(t),r=Math.min(n.length,i.length-1),o):i.slice()},o.invertExtent=function(t){var e=i.indexOf(t);return[n[e-1],n[e]]},o.unknown=function(t){return arguments.length?(e=t,o):e},o.copy=function(){return t().domain(n).range(i).unknown(e)},mM.apply(o,arguments)},scaleTime:YC,scaleUtc:function UI(){return mM.apply(qC(cT,sT,YE,GE,UE,FE,pE,aE,yT).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},scaleSequential:function t(){var e=zM(XC()(CM));return e.copy=function(){return $C(e,t())},gM.apply(e,arguments)},scaleSequentialLog:function t(){var e=WM(XC()).domain([1,10]);return e.copy=function(){return $C(e,t()).base(e.base())},gM.apply(e,arguments)},scaleSequentialPow:KC,scaleSequentialSqrt:function jI(){return KC.apply(null,arguments).exponent(.5)},scaleSequentialSymlog:function t(){var e=$M(XC());return e.copy=function(){return $C(e,t()).constant(e.constant())},gM.apply(e,arguments)},scaleSequentialQuantile:function t(){var e=[],n=CM;function i(t){if(!isNaN(t=+t))return n((wl(e,t)-1)/(e.length-1))}return i.domain=function(t){if(!arguments.length)return e.slice();e=[];for(var n,r=0,o=t.length;r<o;++r)null==(n=t[r])||isNaN(n=+n)||e.push(n);return e.sort(vl),i},i.interpolator=function(t){return arguments.length?(n=t,i):n},i.copy=function(){return t(n).domain(e)},gM.apply(i,arguments)},scaleDiverging:function t(){var e=zM(ZC()(CM));return e.copy=function(){return $C(e,t())},gM.apply(e,arguments)},scaleDivergingLog:function t(){var e=WM(ZC()).domain([.1,1,10]);return e.copy=function(){return $C(e,t()).base(e.base())},gM.apply(e,arguments)},scaleDivergingPow:JC,scaleDivergingSqrt:function GI(){return JC.apply(null,arguments).exponent(.5)},scaleDivergingSymlog:function t(){var e=$M(ZC());return e.copy=function(){return $C(e,t()).constant(e.constant())},gM.apply(e,arguments)},tickFormat:RM,schemeCategory10:tA,schemeAccent:eA,schemeDark2:nA,schemePaired:iA,schemePastel1:rA,schemePastel2:oA,schemeSet1:aA,schemeSet2:sA,schemeSet3:lA,schemeTableau10:cA,interpolateBrBG:dA,schemeBrBG:hA,interpolatePRGn:fA,schemePRGn:pA,interpolatePiYG:gA,schemePiYG:mA,interpolatePuOr:yA,schemePuOr:_A,interpolateRdBu:bA,schemeRdBu:vA,interpolateRdGy:wA,schemeRdGy:xA,interpolateRdYlBu:MA,schemeRdYlBu:SA,interpolateRdYlGn:TA,schemeRdYlGn:EA,interpolateSpectral:AA,schemeSpectral:CA,interpolateBuGn:LA,schemeBuGn:kA,interpolateBuPu:NA,schemeBuPu:PA,interpolateGnBu:OA,schemeGnBu:IA,interpolateOrRd:zA,schemeOrRd:RA,interpolatePuBuGn:BA,schemePuBuGn:DA,interpolatePuBu:FA,schemePuBu:HA,interpolatePuRd:UA,schemePuRd:VA,interpolateRdPu:GA,schemeRdPu:jA,interpolateYlGnBu:qA,schemeYlGnBu:WA,interpolateYlGn:XA,schemeYlGn:YA,interpolateYlOrBr:KA,schemeYlOrBr:$A,interpolateYlOrRd:JA,schemeYlOrRd:ZA,interpolateBlues:tk,schemeBlues:QA,interpolateGreens:nk,schemeGreens:ek,interpolateGreys:rk,schemeGreys:ik,interpolatePurples:ak,schemePurples:ok,interpolateReds:lk,schemeReds:sk,interpolateOranges:uk,schemeOranges:ck,interpolateCividis:function WI(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-2710.57*t)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-67.37*t)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-2475.67*t)))))))+")"},interpolateCubehelixDefault:hk,interpolateRainbow:function qI(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return fk.h=360*t-100,fk.s=1.5-1.5*e,fk.l=.8-.9*e,fk+""},interpolateWarm:dk,interpolateCool:pk,interpolateSinebow:function YI(t){var e;return t=(.5-t)*Math.PI,mk.r=255*(e=Math.sin(t))*e,mk.g=255*(e=Math.sin(t+gk))*e,mk.b=255*(e=Math.sin(t+_k))*e,mk+""},interpolateTurbo:function XI(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+")"},interpolateViridis:vk,interpolateMagma:bk,interpolateInferno:xk,interpolatePlasma:wk,create:function $I(t){return wu(_c(t).call(document.documentElement))},creator:_c,local:eh,matcher:wc,mouse:oh,namespace:fc,namespaces:pc,clientPoint:rh,select:wu,selectAll:ah,selection:xu,selector:vc,selectorAll:xc,style:Bc,touch:sh,touches:function KI(t,e){null==e&&(e=ih().touches);for(var n=0,i=e?e.length:0,r=new Array(i);n<i;++n)r[n]=rh(t,e[n]);return r},window:Oc,get event(){return cu},customEvent:mu,arc:function ZI(){var t=Dk,e=Bk,n=Sk(0),i=null,r=Hk,o=Fk,a=Vk,s=null;function l(){var l,c,u=+t.apply(this,arguments),h=+e.apply(this,arguments),d=r.apply(this,arguments)-Ik,p=o.apply(this,arguments)-Ik,f=Mk(p-d),m=p>d;if(s||(s=l=pg()),h<u&&(c=h,h=u,u=c),h>Pk)if(f>Ok-Pk)s.moveTo(h*Tk(d),h*kk(d)),s.arc(0,0,h,d,p,!m),u>Pk&&(s.moveTo(u*Tk(p),u*kk(p)),s.arc(0,0,u,p,d,m));else{var g,_,y=d,v=p,b=d,x=p,w=f,S=f,M=a.apply(this,arguments)/2,E=M>Pk&&(i?+i.apply(this,arguments):Lk(u*u+h*h)),T=Ak(Mk(h-u)/2,+n.apply(this,arguments)),C=T,A=T;if(E>Pk){var k=zk(E/u*kk(M)),L=zk(E/h*kk(M));(w-=2*k)>Pk?(b+=k*=m?1:-1,x-=k):(w=0,b=x=(d+p)/2),(S-=2*L)>Pk?(y+=L*=m?1:-1,v-=L):(S=0,y=v=(d+p)/2)}var P=h*Tk(y),N=h*kk(y),I=u*Tk(x),O=u*kk(x);if(T>Pk){var R,z=h*Tk(v),D=h*kk(v),B=u*Tk(b),H=u*kk(b);if(f<Nk&&(R=Uk(P,N,B,H,z,D,I,O))){var F=P-R[0],V=N-R[1],U=z-R[0],j=D-R[1],G=1/kk(Rk((F*U+V*j)/(Lk(F*F+V*V)*Lk(U*U+j*j)))/2),W=Lk(R[0]*R[0]+R[1]*R[1]);C=Ak(T,(u-W)/(G-1)),A=Ak(T,(h-W)/(G+1))}}S>Pk?A>Pk?(g=jk(B,H,P,N,h,A,m),_=jk(z,D,I,O,h,A,m),s.moveTo(g.cx+g.x01,g.cy+g.y01),A<T?s.arc(g.cx,g.cy,A,Ek(g.y01,g.x01),Ek(_.y01,_.x01),!m):(s.arc(g.cx,g.cy,A,Ek(g.y01,g.x01),Ek(g.y11,g.x11),!m),s.arc(0,0,h,Ek(g.cy+g.y11,g.cx+g.x11),Ek(_.cy+_.y11,_.cx+_.x11),!m),s.arc(_.cx,_.cy,A,Ek(_.y11,_.x11),Ek(_.y01,_.x01),!m))):(s.moveTo(P,N),s.arc(0,0,h,y,v,!m)):s.moveTo(P,N),u>Pk&&w>Pk?C>Pk?(g=jk(I,O,z,D,u,-C,m),_=jk(P,N,B,H,u,-C,m),s.lineTo(g.cx+g.x01,g.cy+g.y01),C<T?s.arc(g.cx,g.cy,C,Ek(g.y01,g.x01),Ek(_.y01,_.x01),!m):(s.arc(g.cx,g.cy,C,Ek(g.y01,g.x01),Ek(g.y11,g.x11),!m),s.arc(0,0,u,Ek(g.cy+g.y11,g.cx+g.x11),Ek(_.cy+_.y11,_.cx+_.x11),m),s.arc(_.cx,_.cy,C,Ek(_.y11,_.x11),Ek(_.y01,_.x01),!m))):s.arc(0,0,u,x,b,m):s.lineTo(I,O)}else s.moveTo(0,0);if(s.closePath(),l)return s=null,l+""||null}return l.centroid=function(){var n=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,i=(+r.apply(this,arguments)+ +o.apply(this,arguments))/2-Nk/2;return[Tk(i)*n,kk(i)*n]},l.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:Sk(+e),l):t},l.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:Sk(+t),l):e},l.cornerRadius=function(t){return arguments.length?(n="function"==typeof t?t:Sk(+t),l):n},l.padRadius=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:Sk(+t),l):i},l.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:Sk(+t),l):r},l.endAngle=function(t){return arguments.length?(o="function"==typeof t?t:Sk(+t),l):o},l.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:Sk(+t),l):a},l.context=function(t){return arguments.length?(s=null==t?null:t,l):s},l},area:$k,line:Xk,pie:function JI(){var t=Zk,e=Kk,n=null,i=Sk(0),r=Sk(Ok),o=Sk(0);function a(a){var s,l,c,u,h,d=a.length,p=0,f=new Array(d),m=new Array(d),g=+i.apply(this,arguments),_=Math.min(Ok,Math.max(-Ok,r.apply(this,arguments)-g)),y=Math.min(Math.abs(_)/d,o.apply(this,arguments)),v=y*(_<0?-1:1);for(s=0;s<d;++s)(h=m[f[s]=s]=+t(a[s],s,a))>0&&(p+=h);for(null!=e?f.sort((function(t,n){return e(m[t],m[n])})):null!=n&&f.sort((function(t,e){return n(a[t],a[e])})),s=0,c=p?(_-d*v)/p:0;s<d;++s,g=u)m[l=f[s]]={data:a[l],index:s,value:h=m[l],startAngle:g,endAngle:u=g+(h>0?h*c:0)+v,padAngle:y};return m}return a.value=function(e){return arguments.length?(t="function"==typeof e?e:Sk(+e),a):t},a.sortValues=function(t){return arguments.length?(e=t,n=null,a):e},a.sort=function(t){return arguments.length?(n=t,e=null,a):n},a.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:Sk(+t),a):i},a.endAngle=function(t){return arguments.length?(r="function"==typeof t?t:Sk(+t),a):r},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:Sk(+t),a):o},a},areaRadial:iL,radialArea:iL,lineRadial:nL,radialLine:nL,pointRadial:rL,linkHorizontal:function QI(){return lL(cL)},linkVertical:function tO(){return lL(uL)},linkRadial:function eO(){var t=lL(hL);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},symbol:function nO(){var t=Sk(dL),e=Sk(64),n=null;function i(){var i;if(n||(n=i=pg()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),i)return n=null,i+""||null}return i.type=function(e){return arguments.length?(t="function"==typeof e?e:Sk(e),i):t},i.size=function(t){return arguments.length?(e="function"==typeof t?t:Sk(+t),i):e},i.context=function(t){return arguments.length?(n=null==t?null:t,i):n},i},symbols:kL,symbolCircle:dL,symbolCross:pL,symbolDiamond:gL,symbolSquare:xL,symbolStar:bL,symbolTriangle:SL,symbolWye:AL,curveBasisClosed:function iO(t){return new OL(t)},curveBasisOpen:function rO(t){return new RL(t)},curveBasis:IL,curveBundle:DL,curveCardinalClosed:UL,curveCardinalOpen:GL,curveCardinal:FL,curveCatmullRomClosed:$L,curveCatmullRomOpen:ZL,curveCatmullRom:YL,curveLinearClosed:function oO(t){return new JL(t)},curveLinear:Wk,curveMonotoneX:function aO(t){return new iP(t)},curveMonotoneY:function sO(t){return new rP(t)},curveNatural:function lO(t){return new aP(t)},curveStep:function cO(t){return new lP(t,.5)},curveStepAfter:function uO(t){return new lP(t,1)},curveStepBefore:function hO(t){return new lP(t,0)},stack:function dO(){var t=Sk([]),e=uP,n=cP,i=hP;function r(r){var o,a,s=t.apply(this,arguments),l=r.length,c=s.length,u=new Array(c);for(o=0;o<c;++o){for(var h,d=s[o],p=u[o]=new Array(l),f=0;f<l;++f)p[f]=h=[0,+i(r[f],d,f,r)],h.data=r[f];p.key=d}for(o=0,a=e(u);o<c;++o)u[a[o]].index=o;return n(u,a),u}return r.keys=function(e){return arguments.length?(t="function"==typeof e?e:Sk(oL.call(e)),r):t},r.value=function(t){return arguments.length?(i="function"==typeof t?t:Sk(+t),r):i},r.order=function(t){return arguments.length?(e=null==t?uP:"function"==typeof t?t:Sk(oL.call(t)),r):e},r.offset=function(t){return arguments.length?(n=null==t?cP:t,r):n},r},stackOffsetExpand:function pO(t,e){if((i=t.length)>0){for(var n,i,r,o=0,a=t[0].length;o<a;++o){for(r=n=0;n<i;++n)r+=t[n][o][1]||0;if(r)for(n=0;n<i;++n)t[n][o][1]/=r}cP(t,e)}},stackOffsetDiverging:function fO(t,e){if((s=t.length)>0)for(var n,i,r,o,a,s,l=0,c=t[e[0]].length;l<c;++l)for(o=a=0,n=0;n<s;++n)(r=(i=t[e[n]][l])[1]-i[0])>0?(i[0]=o,i[1]=o+=r):r<0?(i[1]=a,i[0]=a+=r):(i[0]=0,i[1]=r)},stackOffsetNone:cP,stackOffsetSilhouette:function mO(t,e){if((n=t.length)>0){for(var n,i=0,r=t[e[0]],o=r.length;i<o;++i){for(var a=0,s=0;a<n;++a)s+=t[a][i][1]||0;r[i][1]+=r[i][0]=-s/2}cP(t,e)}},stackOffsetWiggle:function gO(t,e){if((r=t.length)>0&&(i=(n=t[e[0]]).length)>0){for(var n,i,r,o=0,a=1;a<i;++a){for(var s=0,l=0,c=0;s<r;++s){for(var u=t[e[s]],h=u[a][1]||0,d=(h-(u[a-1][1]||0))/2,p=0;p<s;++p){var f=t[e[p]];d+=(f[a][1]||0)-(f[a-1][1]||0)}l+=h,c+=d*h}n[a-1][1]+=n[a-1][0]=o,l&&(o-=c/l)}n[a-1][1]+=n[a-1][0]=o,cP(t,e)}},stackOrderAppearance:dP,stackOrderAscending:fP,stackOrderDescending:function _O(t){return fP(t).reverse()},stackOrderInsideOut:function yO(t){var e,n,i=t.length,r=t.map(mP),o=dP(t),a=0,s=0,l=[],c=[];for(e=0;e<i;++e)n=o[e],a<s?(a+=r[n],l.push(n)):(s+=r[n],c.push(n));return c.reverse().concat(l)},stackOrderNone:uP,stackOrderReverse:function vO(t){return uP(t).reverse()},timeInterval:oE,timeMillisecond:aE,timeMilliseconds:sE,utcMillisecond:aE,utcMilliseconds:sE,timeSecond:pE,timeSeconds:fE,utcSecond:pE,utcSeconds:fE,timeMinute:mE,timeMinutes:gE,timeHour:_E,timeHours:yE,timeDay:vE,timeDays:bE,timeWeek:wE,timeWeeks:kE,timeSunday:wE,timeSundays:kE,timeMonday:SE,timeMondays:LE,timeTuesday:ME,timeTuesdays:PE,timeWednesday:EE,timeWednesdays:NE,timeThursday:TE,timeThursdays:IE,timeFriday:CE,timeFridays:OE,timeSaturday:AE,timeSaturdays:RE,timeMonth:zE,timeMonths:DE,timeYear:BE,timeYears:HE,utcMinute:FE,utcMinutes:VE,utcHour:UE,utcHours:jE,utcDay:GE,utcDays:WE,utcWeek:YE,utcWeeks:tT,utcSunday:YE,utcSundays:tT,utcMonday:XE,utcMondays:eT,utcTuesday:$E,utcTuesdays:nT,utcWednesday:KE,utcWednesdays:iT,utcThursday:ZE,utcThursdays:rT,utcFriday:JE,utcFridays:oT,utcSaturday:QE,utcSaturdays:aT,utcMonth:sT,utcMonths:lT,utcYear:cT,utcYears:uT,timeFormatDefaultLocale:DC,get timeFormat(){return gT},get timeParse(){return _T},get utcFormat(){return yT},get utcParse(){return vT},timeFormatLocale:fT,isoFormat:HC,isoParse:VC,now:Ep,timer:Ap,timerFlush:kp,timeout:Ip,interval:function bO(t,e,n){var i=new Cp,r=e;return null==e?(i.restart(t,e,n),i):(e=+e,n=null==n?Ep():+n,i.restart((function o(a){a+=r,i.restart(o,r+=e,n),t(a)}),e,n),i)},transition:gf,active:function xO(t,e){var n,i,r=t.__transition;if(r)for(i in e=null==e?null:e+"",r)if((n=r[i]).state>1&&n.name===e)return new mf([[t]],Sm,e,+i);return null},interrupt:Fp,voronoi:function wO(){var t=_P,e=yP,n=null;function i(i){return new QP(i.map((function(n,r){var o=[Math.round(t(n,r,i)/$P)*$P,Math.round(e(n,r,i)/$P)*$P];return o.index=r,o.data=n,o})),n)}return i.polygons=function(t){return i(t).polygons()},i.links=function(t){return i(t).links()},i.triangles=function(t){return i(t).triangles()},i.x=function(e){return arguments.length?(t="function"==typeof e?e:gP(+e),i):t},i.y=function(t){return arguments.length?(e="function"==typeof t?t:gP(+t),i):e},i.extent=function(t){return arguments.length?(n=null==t?null:[[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]],i):n&&[[n[0][0],n[0][1]],[n[1][0],n[1][1]]]},i.size=function(t){return arguments.length?(n=null==t?null:[[0,0],[+t[0],+t[1]]],i):n&&[n[1][0]-n[0][0],n[1][1]-n[0][1]]},i},zoom:pN,zoomTransform:rN,zoomIdentity:iN});const SO=["#ff7043","#0077bb","#cc3311","#33bbee","#ee3377","#009988","#bbbbbb"];class MO extends fl{constructor(){super(...arguments),this._experiments=[]}load(){const t=gr().experiments();return this.requestManager.request(t).then((t=>{we.isEqual(this._experiments,t)||(this._experiments=t,this.emitChange())}))}getExperiments(){return this._experiments.slice()}}const EO=new MO;class TO{constructor(t=SO){this.palette=t,this.identifiers=xg()}setDomain(t){return this.identifiers=xg(),t.forEach(((t,e)=>{this.identifiers.set(t,this.palette[e%this.palette.length])})),this}getColor(t){if(!this.identifiers.has(t))throw new Error(`String ${t} was not in the domain.`);return this.identifiers.get(t)}}function CO(t,e){const n=new TO;function i(){n.setDomain(e())}return t.addListener(i),i(),t=>n.getColor(t)}const AO=CO(yl,(()=>yl.getRuns()));CO(EO,(()=>EO.getExperiments().map((({name:t})=>t)))),tl({moduleName:"run-color-style",styleContent:"\n    [color-class='light-blue'] paper-checkbox {\n      --paper-checkbox-checked-color: var(--paper-light-blue-500);\n      --paper-checkbox-checked-ink-color: var(--paper-light-blue-500);\n      --paper-checkbox-unchecked-color: var(--paper-light-blue-900);\n      --paper-checkbox-unchecked-ink-color: var(--paper-light-blue-900);\n    }\n    [color-class='red'] paper-checkbox {\n      --paper-checkbox-checked-color: var(--paper-red-500);\n      --paper-checkbox-checked-ink-color: var(--paper-red-500);\n      --paper-checkbox-unchecked-color: var(--paper-red-900);\n      --paper-checkbox-unchecked-ink-color: var(--paper-red-900);\n    }\n    [color-class='green'] paper-checkbox {\n      --paper-checkbox-checked-color: var(--paper-green-500);\n      --paper-checkbox-checked-ink-color: var(--paper-green-500);\n      --paper-checkbox-unchecked-color: var(--paper-green-900);\n      --paper-checkbox-unchecked-ink-color: var(--paper-green-900);\n    }\n    [color-class='purple'] paper-checkbox {\n      --paper-checkbox-checked-color: var(--paper-purple-500);\n      --paper-checkbox-checked-ink-color: var(--paper-purple-500);\n      --paper-checkbox-unchecked-color: var(--paper-purple-900);\n      --paper-checkbox-unchecked-ink-color: var(--paper-purple-900);\n    }\n    [color-class='teal'] paper-checkbox {\n      --paper-checkbox-checked-color: var(--paper-teal-500);\n      --paper-checkbox-checked-ink-color: var(--paper-teal-500);\n      --paper-checkbox-unchecked-color: var(--paper-teal-900);\n      --paper-checkbox-unchecked-ink-color: var(--paper-teal-900);\n    }\n    [color-class='pink'] paper-checkbox {\n      --paper-checkbox-checked-color: var(--paper-pink-500);\n      --paper-checkbox-checked-ink-color: var(--paper-pink-500);\n      --paper-checkbox-unchecked-color: var(--paper-pink-900);\n      --paper-checkbox-unchecked-ink-color: var(--paper-pink-900);\n    }\n    [color-class='orange'] paper-checkbox {\n      --paper-checkbox-checked-color: var(--paper-orange-500);\n      --paper-checkbox-checked-ink-color: var(--paper-orange-500);\n      --paper-checkbox-unchecked-color: var(--paper-orange-900);\n      --paper-checkbox-unchecked-ink-color: var(--paper-orange-900);\n    }\n    [color-class='brown'] paper-checkbox {\n      --paper-checkbox-checked-color: var(--paper-brown-500);\n      --paper-checkbox-checked-ink-color: var(--paper-brown-500);\n      --paper-checkbox-unchecked-color: var(--paper-brown-900);\n      --paper-checkbox-unchecked-ink-color: var(--paper-brown-900);\n    }\n    [color-class='indigo'] paper-checkbox {\n      --paper-checkbox-checked-color: var(--paper-indigo-500);\n      --paper-checkbox-checked-ink-color: var(--paper-indigo-500);\n      --paper-checkbox-unchecked-color: var(--paper-indigo-900);\n      --paper-checkbox-unchecked-ink-color: var(--paper-indigo-900);\n    }\n  "});let kO=class extends(tr(ye)){constructor(){super(...arguments),this.names=[],this.coloring={getColor:()=>""},this.regex="",this.selectionState={},this.maxNamesToEnableByDefault=40,this._debouncedRegexChange=this._debouncedRegexChangeImpl()}_debouncedRegexChangeImpl(){var t=we.debounce((t=>{this.regex=t}),150,{leading:!1});return function(){var e=this.$$("#names-regex").value;""==e?this.async((()=>{this.regex=e}),30):t(e)}}get _regex(){var t=this.regex;try{return new RegExp(t)}catch(t){return null}}_setIsolatorIcon(){var t=this.selectionState,e=we.filter(we.values(t)).length;Array.prototype.slice.call(this.root.querySelectorAll(".isolator")).forEach((function(n){n.icon=1===e&&t[n.name]?"radio-button-checked":"radio-button-unchecked"}))}computeNamesMatchingRegex(t,e){const n=this._regex;return n?this.names.filter((t=>n.test(t))):this.names}computeOutSelected(t,e){var n=this.selectionState,i=this.namesMatchingRegex.length<=this.maxNamesToEnableByDefault;return this.namesMatchingRegex.filter((t=>null==n[t]?i:n[t]))}synchronizeColors(t){this._setIsolatorIcon(),this.root.querySelectorAll("paper-checkbox").forEach((t=>{const e=this.coloring.getColor(t.name);t.updateStyles({"--paper-checkbox-checked-color":e,"--paper-checkbox-checked-ink-color":e,"--paper-checkbox-unchecked-color":e,"--paper-checkbox-unchecked-ink-color":e})})),this.root.querySelectorAll(".isolator").forEach((t=>{const e=this.coloring.getColor(t.name);t.style.color=e})),window.requestAnimationFrame((()=>{this.updateStyles()}))}_isolateName(t){var e=t.target.name,n={};this.names.forEach((function(t){n[t]=t==e})),this.selectionState=n}_checkboxChange(t){var e=t.target;const n=we.clone(this.selectionState);n[e.name]=e.checked,this.selectionState=n}_isChecked(t,e){return-1!=this.outSelected.indexOf(t)}toggleAll(){const t=this.namesMatchingRegex.some((t=>this.outSelected.includes(t))),e={};this.names.forEach((n=>{e[n]=!t})),this.selectionState=e}};kO.template=_e`
    <style include="scrollbar-style"></style>
    <style include="run-color-style"></style>

    <paper-input
      id="names-regex"
      no-label-float=""
      label="Write a regex to filter runs"
      value="[[regex]]"
      on-bind-value-changed="_debouncedRegexChange"
    ></paper-input>
    <div id="outer-container" class="scrollbar">
      <template
        is="dom-repeat"
        items="[[namesMatchingRegex]]"
        on-dom-change="synchronizeColors"
      >
        <div class="name-row">
          <div
            class="icon-container checkbox-container vertical-align-container"
          >
            <paper-checkbox
              class="checkbox vertical-align-center"
              id$="checkbox-[[item]]"
              name="[[item]]"
              checked$="[[_isChecked(item, selectionState.*)]]"
              on-change="_checkboxChange"
            ></paper-checkbox>
          </div>
          <div
            class="icon-container isolator-container vertical-align-container"
          >
            <paper-icon-button
              icon="radio-button-unchecked"
              class="isolator vertical-align-center"
              on-tap="_isolateName"
              name="[[item]]"
            ></paper-icon-button>
          </div>
          <div class="item-label-container">
            <span>[[item]]</span>
          </div>
        </div>
      </template>
    </div>
    <style>
      paper-input {
        --paper-input-container-focus-color: var(--tb-orange-strong);
        --paper-input-container-input: {
          font-size: 14px;
        }
        --paper-input-container-label: {
          font-size: 14px;
        }
      }
      :host {
        display: flex;
        flex-direction: column;
        height: 100%;
        overflow: hidden;
      }
      #outer-container {
        contain: content;
        flex-grow: 1;
        flex-shrink: 1;
        overflow-x: hidden;
        overflow-y: auto;
        width: 100%;
        will-change: transform;
        word-wrap: break-word;
      }
      .name-row {
        contain: content;
        padding-top: 5px;
        padding-bottom: 5px;
        display: flex;
        flex-direction: row;
        font-size: 13px;
        word-break: break-all; /* makes wrapping of hyperparam strings better */
      }
      .icon-container {
        flex-grow: 0;
        flex-shrink: 0;
        padding-left: 2px;
      }
      .checkbox {
        padding-left: 2px;
        width: 18px;
        height: 18px;
      }
      .isolator {
        width: 18px;
        height: 18px;
        padding: 0px;
      }
      .isolator-container {
        padding-left: 6px;
        padding-right: 3px;
      }
      .checkbox-container {
        padding-left: 2px;
      }
      .item-label-container {
        padding-left: 5px;
        flex-grow: 1;
        flex-shrink: 1;
        width: 0px; /* hack to get the flex-grow to work properly */
      }
      .tooltip-value-container {
        display: flex;
        justify-content: center;
        flex-grow: 0;
        flex-shrink: 0;
        text-align: right;
        padding-left: 2px;
      }
      .vertical-align-container {
        display: flex;
        justify-content: center;
      }
      .vertical-align-container .vertical-align-center {
        align-self: center;
      }
      .vertical-align-container .vertical-align-top {
        align-self: start;
      }
    </style>
  `,t([o({type:Array}),e("design:type",Array)],kO.prototype,"names",void 0),t([o({type:Object}),e("design:type",Object)],kO.prototype,"coloring",void 0),t([o({type:String,notify:!0}),e("design:type",String)],kO.prototype,"regex",void 0),t([o({type:Array,computed:"computeNamesMatchingRegex(names.*, _regex)"}),e("design:type",Array)],kO.prototype,"namesMatchingRegex",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],kO.prototype,"selectionState",void 0),t([o({type:Array,notify:!0,computed:"computeOutSelected(namesMatchingRegex.*, selectionState.*)"}),e("design:type",Array)],kO.prototype,"outSelected",void 0),t([o({type:Number}),e("design:type",Number)],kO.prototype,"maxNamesToEnableByDefault",void 0),t([o({type:Object}),e("design:type",Object)],kO.prototype,"_debouncedRegexChange",void 0),t([s("regex"),e("design:type",RegExp),e("design:paramtypes",[])],kO.prototype,"_regex",null),t([a("selectionState","names"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],kO.prototype,"_setIsolatorIcon",null),kO=t([i("tf-multi-checkbox")],kO);let LO=class extends ye{get _parts(){var t=this.value,e=this.delimiterPattern;const n=[];for(;;){const i=new RegExp(e,"g");if(i.test(t),0===i.lastIndex){n.push(t);break}n.push(t.slice(0,i.lastIndex)),t=t.slice(i.lastIndex)}return n}};LO.template=_e`
    <!--
      This ugly formatting is required to prevent spaces from slipping
      into the HTML.
    -->
    <template is="dom-repeat" items="[[_parts]]" as="part"
      >[[part]]<wbr
    /></template>
  `,t([o({type:String}),e("design:type",String)],LO.prototype,"value",void 0),t([o({type:String}),e("design:type",String)],LO.prototype,"delimiterPattern",void 0),t([s("value","delimiterPattern"),e("design:type",Array),e("design:paramtypes",[])],LO.prototype,"_parts",null),LO=t([i("tf-wbr-string")],LO);let PO=class extends(tr(ye)){constructor(){super(...arguments),this.runSelectionState=Xs("runSelectionState",{defaultValue:{}}).call(this),this.regexInput=Is("regexInput",{defaultValue:""}).call(this),this._dataLocationClipLength=250,this._dataLocationDelimiterPattern="[/=_,-]",this.coloring={getColor:AO},this._storeRunSelectionState=$s("runSelectionState",{defaultValue:{}}),this._regexObserver=Os("regexInput",{defaultValue:""})}attached(){this._runStoreListener=yl.addListener((()=>{this.set("runs",yl.getRuns())})),this.set("runs",yl.getRuns()),this._envStoreListener=gl.addListener((()=>{this.set("dataLocation",gl.getDataLocation())})),this.set("dataLocation",gl.getDataLocation())}detached(){yl.removeListenerByKey(this._runStoreListener),gl.removeListenerByKey(this._envStoreListener)}_toggleAll(){this.$.multiCheckbox.toggleAll()}get _clippedDataLocation(){var t=this.dataLocation,e=this._dataLocationClipLength;if(void 0!==t)return t.length>e?t.substring(0,e):t}_openDataLocationDialog(t){t.preventDefault(),this.$$("#data-location-dialog").open()}_shouldShowExpandDataLocationButton(t,e){return t&&t.length>e}};PO.template=_e`
    <paper-dialog with-backdrop="" id="data-location-dialog">
      <h2>Data Location</h2>
      <tf-wbr-string
        value="[[dataLocation]]"
        delimiter-pattern="[[_dataLocationDelimiterPattern]]"
      >
      </tf-wbr-string
    ></paper-dialog>
    <div id="top-text">
      <h3 id="tooltip-help" class="tooltip-container">Runs</h3>
    </div>
    <tf-multi-checkbox
      id="multiCheckbox"
      names="[[runs]]"
      selection-state="{{runSelectionState}}"
      out-selected="{{selectedRuns}}"
      regex="{{regexInput}}"
      coloring="[[coloring]]"
    ></tf-multi-checkbox>
    <paper-button class="x-button" id="toggle-all" on-tap="_toggleAll">
      Toggle All Runs
    </paper-button>
    <template is="dom-if" if="[[dataLocation]]">
      <div id="data-location">
        <tf-wbr-string
          value="[[_clippedDataLocation]]"
          delimiter-pattern="[[_dataLocationDelimiterPattern]]"
        ></tf-wbr-string
        ><!--
          We use HTML comments to remove spaces before the ellipsis.
        --><template
          is="dom-if"
          if="[[_shouldShowExpandDataLocationButton(dataLocation, _dataLocationClipLength)]]"
          ><!--
          --><a href="" on-click="_openDataLocationDialog">…</a>
        </template>
      </div>
    </template>
    <style>
      :host {
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        padding-bottom: 10px;
      }
      #top-text {
        color: var(--tb-secondary-text-color);
        width: 100%;
        flex-grow: 0;
        flex-shrink: 0;
        padding-right: 16px;
        box-sizing: border-box;
      }
      tf-multi-checkbox {
        display: flex;
        flex-grow: 1;
        flex-shrink: 1;
        overflow: hidden;
      }
      .x-button {
        font-size: 13px;
        background-color: var(--tb-ui-light-accent);
        color: var(--tb-ui-dark-accent);
      }
      #tooltip-help {
        color: var(--tb-secondary-text-color);
        margin: 0;
        font-weight: normal;
        font-size: 14px;
        margin-bottom: 5px;
      }
      paper-button {
        margin-left: 0;
      }
      #data-location {
        color: var(--tb-ui-dark-accent);
        font-size: 13px;
        margin: 5px 0 0 0;
        max-width: 288px;
      }
    </style>
  `,t([o({type:Object,observer:"_storeRunSelectionState"}),e("design:type",Object)],PO.prototype,"runSelectionState",void 0),t([o({type:String,observer:"_regexObserver"}),e("design:type",String)],PO.prototype,"regexInput",void 0),t([o({type:Array,notify:!0}),e("design:type",Array)],PO.prototype,"selectedRuns",void 0),t([o({type:Array}),e("design:type",Array)],PO.prototype,"runs",void 0),t([o({type:String,notify:!0}),e("design:type",String)],PO.prototype,"dataLocation",void 0),t([o({type:Number}),e("design:type",Number)],PO.prototype,"_dataLocationClipLength",void 0),t([o({type:String}),e("design:type",String)],PO.prototype,"_dataLocationDelimiterPattern",void 0),t([o({type:Object}),e("design:type",Object)],PO.prototype,"coloring",void 0),t([s("dataLocation","_dataLocationClipLength"),e("design:type",String),e("design:paramtypes",[])],PO.prototype,"_clippedDataLocation",null),PO=t([i("tf-runs-selector")],PO);class NO{constructor(){this.cancellationCount=0}cancellable(t){const e=this.cancellationCount;return n=>t({value:n,cancelled:this.cancellationCount!==e})}cancelAll(){this.cancellationCount++}}let IO=class extends(tr(ye)){constructor(){super(...arguments),this.html=""}get sanitizedHtml(){return this.html}attached(){window.requestAnimationFrame((()=>{this.scopeSubtree(this.$.markdown,!0)}))}};function OO(t){return t?t.toString().replace(/GMT-\d+ \(([^)]+)\)/,"$1"):""}IO.template=_e`
    <div id="markdown" inner-h-t-m-l="[[sanitizedHtml]]"></div>
    <style>
      /*
       * Reduce topmost and bottommost margins from 16px to 0.3em (renders
       * at about 4.8px) to keep the layout compact. This improves the
       * appearance when there is only one line of text; standard Markdown
       * renderers will still include a \`<p>\` element.
       *
       * By targeting only the top-level, extremal elements, we preserve any
       * actual paragraph breaks and only change the padding against the
       * component edges.
       */
      #markdown > p:first-child {
        margin-top: 0.3em;
      }
      #markdown > p:last-child {
        margin-bottom: 0.3em;
      }

      /* Pleasant styles for Markdown tables. */
      #markdown table {
        border-collapse: collapse;
      }
      #markdown table th {
        font-weight: 600;
      }
      #markdown table th,
      #markdown table td {
        padding: 6px 13px;
        border: 1px solid var(--tb-ui-border, #dfe2e5);
      }
      #markdown table tr {
        background-color: inherit;
        border-top: 1px solid var(--tb-ui-border, #c6cbd1);
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],IO.prototype,"html",void 0),t([s("html"),e("design:type",Object),e("design:paramtypes",[])],IO.prototype,"sanitizedHtml",null),IO=t([i("tf-markdown-view")],IO),tl({moduleName:"tf-card-heading-style",styleContent:"\n    figcaption {\n      width: 100%;\n    }\n\n    /** Horizontal line of labels. */\n    .heading-row {\n      margin-top: -4px;\n      display: flex;\n      flex-direction: row;\n      flex-wrap: wrap;\n    }\n\n    /** Piece of text in the figure caption. */\n    .heading-label {\n      flex-grow: 1;\n      margin-top: 4px;\n      max-width: 100%;\n      word-wrap: break-word;\n    }\n\n    /** Makes label show on the right. */\n    .heading-right {\n      flex-grow: 0;\n    }\n  "});let RO=class extends ye{constructor(){super(...arguments),this.displayName=null,this.tag=null,this.run=null,this.description=null,this.color=null}_updateHeadingStyle(){this.updateStyles({"--tf-card-heading-background-color":this._runBackground,"--tf-card-heading-color":this._runColor})}_computeRunBackground(t){return t||"none"}_computeRunColor(t){return(function e(t){const e=(function n(t){if(!t)return null;let e=t.match(/^#([0-9a-f]{1,2})([0-9a-f]{1,2})([0-9a-f]{1,2})$/);if(!e)return null;if(4==t.length)for(var n=1;n<=3;n++)e[n]=e[n]+e[n];return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]})(t);return e?Math.round((299*e[0]+587*e[1]+114*e[2])/1e3)>125?"inherit":"#eee":"inherit"})(t)}get _nameLabel(){return this.displayName||this.tag||""}get _tagLabel(){var t=this.tag;return t&&t!==this.displayName?t:""}_toggleDescriptionDialog(t){const e=this.$.descriptionDialog;e.positionTarget=t.target,e.toggle()}};RO.template=_e`
    <div class="container">
      <figcaption class="content">
        <div class="heading-row">
          <template is="dom-if" if="[[_nameLabel]]">
            <div itemprop="name" class="heading-label name">[[_nameLabel]]</div>
          </template>
          <template is="dom-if" if="[[run]]">
            <!-- Extra wrapping span needed to avoid flexbox blockification. -->
            <!-- (see flexbox spec, section 4 "Flex Items") -->
            <span>
              <span
                itemprop="run"
                id="heading-run"
                class="heading-label heading-right run"
                >[[run]]</span
              >
            </span>
          </template>
        </div>
        <template is="dom-if" if="[[_tagLabel]]">
          <div class="heading-row">
            <div class="heading-label">
              tag: <span itemprop="tag">[[_tagLabel]]</span>
            </div>
          </div>
        </template>
        <slot></slot>
      </figcaption>
      <template is="dom-if" if="[[description]]">
        <paper-icon-button
          icon="info"
          on-tap="_toggleDescriptionDialog"
          title="Show summary description"
        ></paper-icon-button>
      </template>
      <paper-dialog
        id="descriptionDialog"
        no-overlap=""
        horizontal-align="auto"
        vertical-align="auto"
      >
        <paper-dialog-scrollable>
          <tf-markdown-view html="[[description]]"></tf-markdown-view>
        </paper-dialog-scrollable>
      </paper-dialog>
    </div>
    <style include="tf-card-heading-style">
      .container {
        display: flex;
      }
      .content {
        font-size: 12px;
        flex-grow: 1;
      }
      .name {
        font-size: 14px;
      }
      .run {
        font-size: 11px;
        width: auto;
        border-radius: 3px;
        font-weight: bold;
        padding: 1px 4px 2px;
      }
      paper-icon-button {
        flex-grow: 0;
      }
      paper-dialog-scrollable {
        max-width: 640px;
      }
      #heading-run {
        background: var(--tf-card-heading-background-color);
        color: var(--tf-card-heading-color);
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],RO.prototype,"displayName",void 0),t([o({type:String}),e("design:type",String)],RO.prototype,"tag",void 0),t([o({type:String}),e("design:type",String)],RO.prototype,"run",void 0),t([o({type:String}),e("design:type",String)],RO.prototype,"description",void 0),t([o({type:String}),e("design:type",String)],RO.prototype,"color",void 0),t([o({type:String,computed:"_computeRunBackground(color)",readOnly:!0,observer:"_updateHeadingStyle"}),e("design:type",String)],RO.prototype,"_runBackground",void 0),t([o({type:String,computed:"_computeRunColor(color)",readOnly:!0,observer:"_updateHeadingStyle"}),e("design:type",String)],RO.prototype,"_runColor",void 0),t([s("displayName","tag"),e("design:type",String),e("design:paramtypes",[])],RO.prototype,"_nameLabel",null),t([s("displayName","tag"),e("design:type",String),e("design:paramtypes",[])],RO.prototype,"_tagLabel",null),RO=t([i("tf-card-heading")],RO);let zO=class extends(tr(ye)){constructor(){super(...arguments),this._metadataCanceller=new NO,this._steps=[],this._attached=!1}get _runColor(){return AO(this.run)}get _hasAtLeastOneStep(){var t=this._steps;return!!t&&t.length>0}get _hasMultipleSteps(){var t=this._steps;return!!t&&t.length>1}get _maxStepIndex(){return this._steps.length-1}get _currentDatum(){return this._steps[this._stepIndex]}get _sampleText(){return`${this.sample+1}`}get _hasMultipleSamples(){return this.totalSamples>1}attached(){this._attached=!0,this.reload()}_reloadOnRunTagChange(){this.reload()}reload(){if(!this._attached)return;this._metadataCanceller.cancelAll();const t=gr().pluginRoute("audio","/audio",new URLSearchParams({tag:this.tag,run:this.run,sample:String(this.sample)})),e=this._metadataCanceller.cancellable((t=>{if(t.cancelled)return;const e=t.value.map(this._createStepDatum.bind(this));this.set("_steps",e),this.set("_stepIndex",e.length-1)}));this.requestManager.request(t).then(e)}_createStepDatum(t){const e=new URLSearchParams(t.query);e.append("ts",String(t.wall_time));const n=gr().pluginRoute("audio","/individualAudio",e);return{wall_time:OO(new Date(1e3*t.wall_time)),step:t.step,label:t.label,contentType:t.contentType,url:n}}};zO.template=_e`
    <tf-card-heading
      tag="[[tag]]"
      run="[[run]]"
      display-name="[[tagMetadata.displayName]]"
      description="[[tagMetadata.description]]"
      color="[[_runColor]]"
    >
      <template is="dom-if" if="[[_hasMultipleSamples]]">
        <div class="heading-row">
          <div class="heading-label">
            sample: [[_sampleText]] of [[totalSamples]]
          </div>
        </div>
      </template>
      <template is="dom-if" if="[[_hasAtLeastOneStep]]">
        <div class="heading-row">
          <div class="heading-label">
            step <strong>[[_currentDatum.step]]</strong>
          </div>
          <template is="dom-if" if="[[_currentDatum.wall_time]]">
            <div class="heading-label heading-right">
              [[_currentDatum.wall_time]]
            </div>
          </template>
        </div>
      </template>
      <template is="dom-if" if="[[_hasMultipleSteps]]">
        <div class="heading-row">
          <paper-slider
            id="steps"
            immediate-value="{{_stepIndex}}"
            max="[[_maxStepIndex]]"
            max-markers="[[_maxStepIndex]]"
            snaps=""
            step="1"
            value="{{_stepIndex}}"
          ></paper-slider>
        </div>
      </template>
    </tf-card-heading>
    <template is="dom-if" if="[[_hasAtLeastOneStep]]">
      <audio
        controls=""
        src$="[[_currentDatum.url]]"
        type$="[[_currentDatum.contentType]]"
      ></audio>
      <tf-markdown-view html="[[_currentDatum.label]]"></tf-markdown-view>
    </template>
    <div id="main-audio-container"></div>

    <style include="tf-card-heading-style">
      :host {
        display: block;
        width: 350px;
        height: auto;
        position: relative;
        --step-slider-knob-color: #424242;
        margin-right: 15px;
        margin-bottom: 15px;
      }

      #steps {
        height: 15px;
        margin: 0 0 0 -15px;
        width: 100%;
        box-sizing: border-box;
        padding: 0 5px; /* so the slider knob doesn't butt out */
        margin-top: 5px;
        --paper-slider-active-color: var(--step-slider-knob-color);
        --paper-slider-knob-color: var(--step-slider-knob-color);
        --paper-slider-pin-color: var(--step-slider-knob-color);
        --paper-slider-knob-start-color: var(--step-slider-knob-color);
        --paper-slider-knob-start-border-color: var(--step-slider-knob-color);
        --paper-slider-pin-start-color: var(--step-slider-knob-color);
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],zO.prototype,"run",void 0),t([o({type:String}),e("design:type",String)],zO.prototype,"tag",void 0),t([o({type:Number}),e("design:type",Number)],zO.prototype,"sample",void 0),t([o({type:Number}),e("design:type",Number)],zO.prototype,"totalSamples",void 0),t([o({type:Object}),e("design:type",Object)],zO.prototype,"tagMetadata",void 0),t([o({type:Object}),e("design:type",hr)],zO.prototype,"requestManager",void 0),t([o({type:Object}),e("design:type",NO)],zO.prototype,"_metadataCanceller",void 0),t([o({type:Array}),e("design:type",Array)],zO.prototype,"_steps",void 0),t([o({type:Number}),e("design:type",Number)],zO.prototype,"_stepIndex",void 0),t([s("run"),e("design:type",String),e("design:paramtypes",[])],zO.prototype,"_runColor",null),t([s("_steps"),e("design:type",Boolean),e("design:paramtypes",[])],zO.prototype,"_hasAtLeastOneStep",null),t([s("_steps"),e("design:type",Boolean),e("design:paramtypes",[])],zO.prototype,"_hasMultipleSteps",null),t([s("_steps"),e("design:type",Number),e("design:paramtypes",[])],zO.prototype,"_maxStepIndex",null),t([s("_steps","_stepIndex"),e("design:type",Object),e("design:paramtypes",[])],zO.prototype,"_currentDatum",null),t([s("sample"),e("design:type",String),e("design:paramtypes",[])],zO.prototype,"_sampleText",null),t([s("totalSamples"),e("design:type",Boolean),e("design:paramtypes",[])],zO.prototype,"_hasMultipleSamples",null),t([a("run","tag"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],zO.prototype,"_reloadOnRunTagChange",null),zO=t([i("tf-audio-loader")],zO);let DO=class extends(tr(ye)){constructor(){super(...arguments),this.reloadOnReady=!0,this._tagFilter="",this._requestManager=new hr}ready(){super.ready(),this.reloadOnReady&&this.reload()}reload(){this._fetchTags().then((()=>{this._reloadAudio()}))}_fetchTags(){const t=gr().pluginRoute("audio","/tags");return this._requestManager.request(t).then((t=>{if(we.isEqual(t,this._runToTagInfo))return;const e=or(we.mapValues(t,(t=>Object.keys(t))));this.set("_dataNotFound",0===e.length),this.set("_runToTagInfo",t)}))}_reloadAudio(){this.root.querySelectorAll("tf-audio-loader").forEach((t=>{t.reload()}))}_shouldOpen(t){return t<=2}get _categories(){var t=this._runToTagInfo,e=this._selectedRuns,n=this._tagFilter;function i(e){const n=t[e.run][e.tag].samples;return we.range(n).map((t=>Object.assign({},e,{sample:t,totalSamples:n})))}return Sr(we.mapValues(t,(t=>Object.keys(t))),e,n).map((t=>Object.assign({},t,{items:[].concat.apply([],t.items.map(i))})))}_tagMetadata(t,e,n){return t[e][n]}};DO.template=_e`
    <tf-dashboard-layout>
      <div class="sidebar" slot="sidebar">
        <div class="sidebar-section runs-selector">
          <tf-runs-selector
            id="runs-selector"
            selected-runs="{{_selectedRuns}}"
          ></tf-runs-selector>
        </div>
      </div>
      <div class="center" slot="center">
        <template is="dom-if" if="[[_dataNotFound]]">
          <div class="no-data-warning">
            <h3>No audio data was found.</h3>
            <p>Probable causes:</p>
            <ul>
              <li>You haven’t written any audio data to your event files.</li>
              <li>TensorBoard can’t find your event files.</li>
            </ul>

            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>

            <p>
              If you think TensorBoard is configured properly, please see
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
                >the section of the README devoted to missing data problems</a
              >
              and consider filing an issue on GitHub.
            </p>
          </div>
        </template>
        <template is="dom-if" if="[[!_dataNotFound]]">
          <tf-tag-filterer tag-filter="{{_tagFilter}}"></tf-tag-filterer>
          <template is="dom-repeat" items="[[_categories]]" as="category">
            <tf-category-paginated-view
              category="[[category]]"
              initial-opened="[[_shouldOpen(index)]]"
            >
              <template>
                <tf-audio-loader
                  active="[[active]]"
                  run="[[item.run]]"
                  tag="[[item.tag]]"
                  sample="[[item.sample]]"
                  total-samples="[[item.totalSamples]]"
                  tag-metadata="[[_tagMetadata(_runToTagInfo, item.run, item.tag)]]"
                  request-manager="[[_requestManager]]"
                ></tf-audio-loader>
              </template>
            </tf-category-paginated-view>
          </template>
        </template>
      </div>
    </tf-dashboard-layout>
    <style include="dashboard-style"></style>
    <style>
      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }
    </style>
  `,t([o({type:Boolean}),e("design:type",Boolean)],DO.prototype,"reloadOnReady",void 0),t([o({type:Array}),e("design:type",Array)],DO.prototype,"_selectedRuns",void 0),t([o({type:Object}),e("design:type",Object)],DO.prototype,"_runToTagInfo",void 0),t([o({type:Boolean}),e("design:type",Boolean)],DO.prototype,"_dataNotFound",void 0),t([o({type:String}),e("design:type",String)],DO.prototype,"_tagFilter",void 0),t([o({type:Object}),e("design:type",hr)],DO.prototype,"_requestManager",void 0),t([s("_runToTagInfo","_selectedRuns","_tagFilter"),e("design:type",Array),e("design:paramtypes",[])],DO.prototype,"_categories",null),DO=t([i("tf-audio-dashboard")],DO);let BO=class extends(tr(ye)){attached(){this.async((function(){this.getEffectiveChildren().forEach(function(t){this.listen(t,"tap","_selectTarget")}.bind(this))}))}_selectTarget(t){this.selectedId=t.currentTarget.id}_selectedIdChanged(){var t=this.queryEffectiveChildren("#"+this.selectedId);t&&(this.getEffectiveChildren().forEach((function(t){t.classList.remove("selected")})),t.classList.add("selected"))}};function HO(t,e){let n;const i={};return Object.keys(t).forEach((e=>{const r=t[e];void 0===n&&(n=r.displayName),n!==r.displayName&&(n=null),void 0===i[r.description]&&(i[r.description]=[]),i[r.description].push(e)})),{displayName:null!=n?n:e,description:(()=>{const t=Object.keys(i);return 0===t.length?"":1===t.length?t[0]:`<p><strong>Multiple descriptions:</strong></p><ul>${t.map((t=>{const e=i[t].map((t=>`<code>${t.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/&/g,"&amp;")}</code>`)),n=e.length>2?e.slice(0,e.length-1).join(", ")+", and "+e[e.length-1]:e.join(" and ");return`<li><p>For ${(function r(t,e,n){return 1===t?e:n})(e.length,"run","runs")} ${n}:</p>${t}</li>`})).join("")}</ul>`})()}}BO.template=_e`
    <div id="wrap">
      <h3>[[name]]</h3>
      <div class="content-wrapper"><slot></slot></div>
    </div>
    <style>
      .content-wrapper ::slotted(*) {
        background: none;
        color: var(--tb-ui-dark-accent);
        font-size: 13px;
        margin-top: 10px;
      }

      .content-wrapper ::slotted(*) {
        background: none;
        color: var(--tb-ui-dark-accent);
        font-size: 13px;
        margin-top: 10px;
      }

      .content-wrapper ::slotted(.selected) {
        background-color: var(--tb-ui-dark-accent);
        color: white !important;
      }

      h3 {
        color: var(--tb-secondary-text-color);
        display: block;
        font-size: 14px;
        font-weight: normal;
        margin: 0 0 5px;
        pointer-events: none;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],BO.prototype,"name",void 0),t([o({type:String,notify:!0,observer:"_selectedIdChanged"}),e("design:type",String)],BO.prototype,"selectedId",void 0),BO=t([i("tf-option-selector")],BO);let FO=class extends ye{constructor(){super(...arguments),this.weight=.6,this._updateWeight=we.debounce((function(t){this.weight=t}),250)}_immediateWeightNumberForPaperSliderChanged(){this._inputWeightStringForPaperInput=this._immediateWeightNumberForPaperSlider.toString(),this._updateWeight.call(this,this._immediateWeightNumberForPaperSlider)}_inputWeightStringForPaperInputChanged(){+this._inputWeightStringForPaperInput<0?this._inputWeightStringForPaperInput="0":+this._inputWeightStringForPaperInput>1&&(this._inputWeightStringForPaperInput="1");var t=+this._inputWeightStringForPaperInput;isNaN(t)||this._updateWeight.call(this,t)}};function VO(t,e){const n=Object.keys(e).sort().filter((t=>void 0!==e[t]));if(!n.length)return t;const i=-1!==t.indexOf("?")?"&":"?";return t+i+[].concat(...n.map((t=>{const n=e[t];return(Array.isArray(n)?n:[n]).map((e=>`${t}=${(function n(t){return encodeURIComponent(t).replace(/\(/g,"%28").replace(/\)/g,"%29")}
/*! *****************************************************************************
    Copyright (c) Microsoft Corporation. All rights reserved.
    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
    this file except in compliance with the License. You may obtain a copy of the
    License at http://www.apache.org/licenses/LICENSE-2.0

    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
    MERCHANTABLITY OR NON-INFRINGEMENT.

    See the Apache Version 2.0 License for specific language governing permissions
    and limitations under the License.
    ***************************************************************************** */)(e)}`))}))).join("&")}FO.template=_e`
    <h3 class="title">Smoothing</h3>
    <div class="smoothing-block">
      <paper-slider
        id="slider"
        immediate-value="{{_immediateWeightNumberForPaperSlider}}"
        max="[[max]]"
        min="[[min]]"
        pin
        step="[[step]]"
        type="number"
        value="{{weight}}"
      ></paper-slider>
      <paper-input
        id="input"
        label="weight"
        no-label-float
        value="{{_inputWeightStringForPaperInput}}"
        type="number"
        step="[[step]]"
        min="[[min]]"
        max="[[max]]"
      ></paper-input>
    </div>
    <style>
      .title {
        color: var(--tb-secondary-text-color);
        margin: 0;
        font-weight: normal;
        font-size: 14px;
        margin-bottom: 5px;
      }

      .smoothing-block {
        display: flex;
      }

      paper-slider {
        --paper-slider-active-color: var(--tb-orange-strong);
        --paper-slider-knob-color: var(--tb-orange-strong);
        --paper-slider-knob-start-border-color: var(--tb-orange-strong);
        --paper-slider-knob-start-color: var(--tb-orange-strong);
        --paper-slider-markers-color: var(--tb-orange-strong);
        --paper-slider-pin-color: var(--tb-orange-strong);
        --paper-slider-pin-start-color: var(--tb-orange-strong);
        flex-grow: 2;
      }

      paper-input {
        --paper-input-container-focus-color: var(--tb-orange-strong);
        --paper-input-container-input: {
          font-size: 14px;
        }
        --paper-input-container-label: {
          font-size: 14px;
        }
        width: 60px;
      }
    </style>
  `,t([o({type:Number}),e("design:type",Number)],FO.prototype,"step",void 0),t([o({type:Number}),e("design:type",Number)],FO.prototype,"max",void 0),t([o({type:Number}),e("design:type",Number)],FO.prototype,"min",void 0),t([o({type:Number,notify:!0}),e("design:type",Number)],FO.prototype,"weight",void 0),t([o({type:Number,notify:!0,observer:"_immediateWeightNumberForPaperSliderChanged"}),e("design:type",Number)],FO.prototype,"_immediateWeightNumberForPaperSlider",void 0),t([o({type:String,notify:!0,observer:"_inputWeightStringForPaperInputChanged"}),e("design:type",String)],FO.prototype,"_inputWeightStringForPaperInput",void 0),FO=t([i("tf-smoothing-input")],FO);var UO=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},jO=Object.assign||function t(e){for(var n,i=1,r=arguments.length;i<r;i++)for(var o in n=arguments[i])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e};function GO(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}function WO(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,r,o=n.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(i=o.next()).done;)a.push(i.value)}catch(t){r={error:t}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return a}function qO(t){return this instanceof qO?(this.v=t,this):new qO(t)}var YO=Object.freeze({__proto__:null,__extends:function XO(t,e){function n(){this.constructor=t}UO(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},__assign:jO,__rest:function $O(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&(n[i[r]]=t[i[r]])}return n},__decorate:function KO(t,e,n,i){var r,o=arguments.length,a=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(a=(o<3?r(a):o>3?r(e,n,a):r(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},__param:function ZO(t,e){return function(n,i){e(n,i,t)}},__metadata:function JO(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},__awaiter:function QO(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){t.done?r(t.value):new n((function(e){e(t.value)})).then(a,s)}l((i=i.apply(t,e||[])).next())}))},__generator:function tR(t,e){var n,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return(function l(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,i&&(r=i[2&o[0]?"return":o[0]?"throw":"next"])&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[0,r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!((r=(r=a.trys).length>0&&r[r.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],i=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}})([o,s])}}},__exportStar:function eR(t,e){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])},__values:GO,__read:WO,__spread:function nR(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(WO(arguments[e]));return t},__await:qO,__asyncGenerator:function iR(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=n.apply(t,e||[]),o=[];return i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i;function a(t){r[t]&&(i[t]=function(e){return new Promise((function(n,i){o.push([t,e,n,i])>1||s(t,e)}))})}function s(t,e){try{!(function n(t){t.value instanceof qO?Promise.resolve(t.value.v).then(l,c):u(o[0][2],t)})(r[t](e))}catch(t){u(o[0][3],t)}}function l(t){s("next",t)}function c(t){s("throw",t)}function u(t,e){t(e),o.shift(),o.length&&s(o[0][0],o[0][1])}},__asyncDelegator:function rR(t){var e,n;return e={},i("next"),i("throw",(function(t){throw t})),i("return"),e[Symbol.iterator]=function(){return this},e;function i(i,r){t[i]&&(e[i]=function(e){return(n=!n)?{value:qO(t[i](e)),done:"return"===i}:r?r(e):e})}},__asyncValues:function oR(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator];return e?e.call(t):GO(t)},__makeTemplateObject:function aR(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}});function sR(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function lR(t){return 1===t.length&&(t=(function e(t){return function(e,n){return sR(t(e),n)}})(t)),{left:function(e,n,i,r){for(null==i&&(i=0),null==r&&(r=e.length);i<r;){var o=i+r>>>1;t(e[o],n)<0?i=o+1:r=o}return i},right:function(e,n,i,r){for(null==i&&(i=0),null==r&&(r=e.length);i<r;){var o=i+r>>>1;t(e[o],n)>0?r=o:i=o+1}return i}}}var cR=lR(sR),uR=cR.right,hR=cR.left;function dR(t,e){return[t,e]}function pR(t){return null===t?NaN:+t}function fR(t,e){var n,i,r=t.length,o=0,a=-1,s=0,l=0;if(null==e)for(;++a<r;)isNaN(n=pR(t[a]))||(l+=(i=n-s)*(n-(s+=i/++o)));else for(;++a<r;)isNaN(n=pR(e(t[a],a,t)))||(l+=(i=n-s)*(n-(s+=i/++o)));if(o>1)return l/(o-1)}function mR(t,e){var n=fR(t,e);return n?Math.sqrt(n):n}function gR(t,e){var n,i,r,o=t.length,a=-1;if(null==e){for(;++a<o;)if(null!=(n=t[a])&&n>=n)for(i=r=n;++a<o;)null!=(n=t[a])&&(i>n&&(i=n),r<n&&(r=n))}else for(;++a<o;)if(null!=(n=e(t[a],a,t))&&n>=n)for(i=r=n;++a<o;)null!=(n=e(t[a],a,t))&&(i>n&&(i=n),r<n&&(r=n));return[i,r]}var _R=Array.prototype,yR=_R.slice,vR=_R.map;function bR(t){return function(){return t}}function xR(t){return t}function wR(t,e,n){t=+t,e=+e,n=(r=arguments.length)<2?(e=t,t=0,1):r<3?1:+n;for(var i=-1,r=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(r);++i<r;)o[i]=t+i*n;return o}var SR=Math.sqrt(50),MR=Math.sqrt(10),ER=Math.sqrt(2);function TR(t,e,n){var i=(e-t)/Math.max(0,n),r=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,r);return r>=0?(o>=SR?10:o>=MR?5:o>=ER?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=SR?10:o>=MR?5:o>=ER?2:1)}function CR(t,e,n){var i=Math.abs(e-t)/Math.max(0,n),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=SR?r*=10:o>=MR?r*=5:o>=ER&&(r*=2),e<t?-r:r}function AR(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function kR(t,e,n){if(null==n&&(n=pR),i=t.length){if((e=+e)<=0||i<2)return+n(t[0],0,t);if(e>=1)return+n(t[i-1],i-1,t);var i,r=(i-1)*e,o=Math.floor(r),a=+n(t[o],o,t);return a+(+n(t[o+1],o+1,t)-a)*(r-o)}}function LR(t,e){var n,i,r=t.length,o=-1;if(null==e){for(;++o<r;)if(null!=(n=t[o])&&n>=n)for(i=n;++o<r;)null!=(n=t[o])&&i>n&&(i=n)}else for(;++o<r;)if(null!=(n=e(t[o],o,t))&&n>=n)for(i=n;++o<r;)null!=(n=e(t[o],o,t))&&i>n&&(i=n);return i}function PR(t){if(!(r=t.length))return[];for(var e=-1,n=LR(t,NR),i=new Array(n);++e<n;)for(var r,o=-1,a=i[e]=new Array(r);++o<r;)a[o]=t[o][e];return i}function NR(t){return t.length}var IR=Array.prototype.slice;function OR(t){return t}var RR=1e-6;function zR(t){return"translate("+(t+.5)+",0)"}function DR(t){return"translate(0,"+(t+.5)+")"}function BR(t){return function(e){return+t(e)}}function HR(t){var e=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function FR(){return!this.__axis}function VR(t,e){var n=[],i=null,r=null,o=6,a=6,s=3,l=1===t||4===t?-1:1,c=4===t||2===t?"x":"y",u=1===t||3===t?zR:DR;function h(h){var d=null==i?e.ticks?e.ticks.apply(e,n):e.domain():i,p=null==r?e.tickFormat?e.tickFormat.apply(e,n):OR:r,f=Math.max(o,0)+s,m=e.range(),g=+m[0]+.5,_=+m[m.length-1]+.5,y=(e.bandwidth?HR:BR)(e.copy()),v=h.selection?h.selection():h,b=v.selectAll(".domain").data([null]),x=v.selectAll(".tick").data(d,e).order(),w=x.exit(),S=x.enter().append("g").attr("class","tick"),M=x.select("line"),E=x.select("text");b=b.merge(b.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),x=x.merge(S),M=M.merge(S.append("line").attr("stroke","#000").attr(c+"2",l*o)),E=E.merge(S.append("text").attr("fill","#000").attr(c,l*f).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==v&&(b=b.transition(h),x=x.transition(h),M=M.transition(h),E=E.transition(h),w=w.transition(h).attr("opacity",RR).attr("transform",(function(t){return isFinite(t=y(t))?u(t):this.getAttribute("transform")})),S.attr("opacity",RR).attr("transform",(function(t){var e=this.parentNode.__axis;return u(e&&isFinite(e=e(t))?e:y(t))}))),w.remove(),b.attr("d",4===t||2==t?"M"+l*a+","+g+"H0.5V"+_+"H"+l*a:"M"+g+","+l*a+"V0.5H"+_+"V"+l*a),x.attr("opacity",1).attr("transform",(function(t){return u(y(t))})),M.attr(c+"2",l*o),E.attr(c,l*f).text(p),v.filter(FR).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),v.each((function(){this.__axis=y}))}return h.scale=function(t){return arguments.length?(e=t,h):e},h.ticks=function(){return n=IR.call(arguments),h},h.tickArguments=function(t){return arguments.length?(n=null==t?[]:IR.call(t),h):n.slice()},h.tickValues=function(t){return arguments.length?(i=null==t?null:IR.call(t),h):i&&i.slice()},h.tickFormat=function(t){return arguments.length?(r=t,h):r},h.tickSize=function(t){return arguments.length?(o=a=+t,h):o},h.tickSizeInner=function(t){return arguments.length?(o=+t,h):o},h.tickSizeOuter=function(t){return arguments.length?(a=+t,h):a},h.tickPadding=function(t){return arguments.length?(s=+t,h):s},h}var UR={value:function(){}};function jR(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new GR(i)}function GR(t){this._=t}function WR(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function qR(t,e){for(var n,i=0,r=t.length;i<r;++i)if((n=t[i]).name===e)return n.value}function YR(t,e,n){for(var i=0,r=t.length;i<r;++i)if(t[i].name===e){t[i]=UR,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}GR.prototype=jR.prototype={constructor:GR,on:function(t,e){var n,i=this._,r=WR(t+"",i),o=-1,a=r.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o<a;)if(n=(t=r[o]).type)i[n]=YR(i[n],t.name,e);else if(null==e)for(n in i)i[n]=YR(i[n],t.name,null);return this}for(;++o<a;)if((n=(t=r[o]).type)&&(n=qR(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new GR(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,r=new Array(n),o=0;o<n;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(i=this._[t]).length;o<n;++o)i[o].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)}};var XR="http://www.w3.org/1999/xhtml",$R={svg:"http://www.w3.org/2000/svg",xhtml:XR,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function KR(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),$R.hasOwnProperty(e)?{space:$R[e],local:t}:t}function ZR(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===XR&&e.documentElement.namespaceURI===XR?e.createElement(t):e.createElementNS(n,t)}}function JR(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function QR(t){var e=KR(t);return(e.local?JR:ZR)(e)}function tz(){}function ez(t){return null==t?tz:function(){return this.querySelector(t)}}function nz(){return[]}function iz(t){return null==t?nz:function(){return this.querySelectorAll(t)}}function rz(t){return function(){return this.matches(t)}}function oz(t){return new Array(t.length)}function az(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function sz(t,e,n,i,r,o){for(var a,s=0,l=e.length,c=o.length;s<c;++s)(a=e[s])?(a.__data__=o[s],i[s]=a):n[s]=new az(t,o[s]);for(;s<l;++s)(a=e[s])&&(r[s]=a)}function lz(t,e,n,i,r,o,a){var s,l,c,u={},h=e.length,d=o.length,p=new Array(h);for(s=0;s<h;++s)(l=e[s])&&(p[s]=c="$"+a.call(l,l.__data__,s,e),c in u?r[s]=l:u[c]=l);for(s=0;s<d;++s)(l=u[c="$"+a.call(t,o[s],s,o)])?(i[s]=l,l.__data__=o[s],u[c]=null):n[s]=new az(t,o[s]);for(s=0;s<h;++s)(l=e[s])&&u[p[s]]===l&&(r[s]=l)}function cz(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function uz(t){return function(){this.removeAttribute(t)}}function hz(t){return function(){this.removeAttributeNS(t.space,t.local)}}function dz(t,e){return function(){this.setAttribute(t,e)}}function pz(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function fz(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function mz(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function gz(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function _z(t){return function(){this.style.removeProperty(t)}}function yz(t,e,n){return function(){this.style.setProperty(t,e,n)}}function vz(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function bz(t,e){return t.style.getPropertyValue(e)||gz(t).getComputedStyle(t,null).getPropertyValue(e)}function xz(t){return function(){delete this[t]}}function wz(t,e){return function(){this[t]=e}}function Sz(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function Mz(t){return t.trim().split(/^|\s+/)}function Ez(t){return t.classList||new Tz(t)}function Tz(t){this._node=t,this._names=Mz(t.getAttribute("class")||"")}function Cz(t,e){for(var n=Ez(t),i=-1,r=e.length;++i<r;)n.add(e[i])}function Az(t,e){for(var n=Ez(t),i=-1,r=e.length;++i<r;)n.remove(e[i])}function kz(t){return function(){Cz(this,t)}}function Lz(t){return function(){Az(this,t)}}function Pz(t,e){return function(){(e.apply(this,arguments)?Cz:Az)(this,t)}}function Nz(){this.textContent=""}function Iz(t){return function(){this.textContent=t}}function Oz(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function Rz(){this.innerHTML=""}function zz(t){return function(){this.innerHTML=t}}function Dz(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Bz(){this.nextSibling&&this.parentNode.appendChild(this)}function Hz(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Fz(){return null}function Vz(){var t=this.parentNode;t&&t.removeChild(this)}function Uz(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function jz(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}az.prototype={constructor:az,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},Tz.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Gz={},Wz=null;function qz(t,e,n){return t=Yz(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function Yz(t,e,n){return function(i){var r=Wz;Wz=i;try{t.call(this,this.__data__,e,n)}finally{Wz=r}}}function Xz(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function $z(t){return function(){var e=this.__on;if(e){for(var n,i=0,r=-1,o=e.length;i<o;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.capture);++r?e.length=r:delete this.__on}}}function Kz(t,e,n){var i=Gz.hasOwnProperty(t.type)?qz:Yz;return function(r,o,a){var s,l=this.__on,c=i(e,o,a);if(l)for(var u=0,h=l.length;u<h;++u)if((s=l[u]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=e);this.addEventListener(t.type,c,n),s={type:t.type,name:t.name,value:e,listener:c,capture:n},l?l.push(s):this.__on=[s]}}function Zz(t,e,n){var i=gz(t),r=i.CustomEvent;"function"==typeof r?r=new r(e,n):(r=i.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function Jz(t,e){return function(){return Zz(this,t,e)}}function Qz(t,e){return function(){return Zz(this,t,e.apply(this,arguments))}}"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(Gz={mouseenter:"mouseover",mouseleave:"mouseout"}));var tD=[null];function eD(t,e){this._groups=t,this._parents=e}function nD(){return new eD([[document.documentElement]],tD)}function iD(t){return"string"==typeof t?new eD([[document.querySelector(t)]],[document.documentElement]):new eD([[t]],tD)}function rD(t){var e=(function n(){for(var t,e=Wz;t=e.sourceEvent;)e=t;return e})();return e.changedTouches&&(e=e.changedTouches[0]),(function i(t,e){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var i=n.createSVGPoint();return i.x=e.clientX,i.y=e.clientY,[(i=i.matrixTransform(t.getScreenCTM().inverse())).x,i.y]}var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]})(t,e)}function oD(){Wz.preventDefault(),Wz.stopImmediatePropagation()}function aD(t){var e=t.document.documentElement,n=iD(t).on("dragstart.drag",oD,!0);"onselectstart"in e?n.on("selectstart.drag",oD,!0):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function sD(t,e){var n=t.document.documentElement,i=iD(t).on("dragstart.drag",null);e&&(i.on("click.drag",oD,!0),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in n?i.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function lD(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function cD(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function uD(){}eD.prototype=nD.prototype={constructor:eD,select:function hD(t){"function"!=typeof t&&(t=ez(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a,s=e[r],l=s.length,c=i[r]=new Array(l),u=0;u<l;++u)(o=s[u])&&(a=t.call(o,o.__data__,u,s))&&("__data__"in o&&(a.__data__=o.__data__),c[u]=a);return new eD(i,this._parents)},selectAll:function dD(t){"function"!=typeof t&&(t=iz(t));for(var e=this._groups,n=e.length,i=[],r=[],o=0;o<n;++o)for(var a,s=e[o],l=s.length,c=0;c<l;++c)(a=s[c])&&(i.push(t.call(a,a.__data__,c,s)),r.push(a));return new eD(i,r)},filter:function pD(t){"function"!=typeof t&&(t=rz(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a=e[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new eD(i,this._parents)},data:function fD(t,e){if(!t)return f=new Array(this.size()),u=-1,this.each((function(t){f[++u]=t})),f;var n=e?lz:sz,i=this._parents,r=this._groups;"function"!=typeof t&&(t=(function o(t){return function(){return t}})(t));for(var a=r.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var h=i[u],d=r[u],p=d.length,f=t.call(h,h&&h.__data__,u,i),m=f.length,g=l[u]=new Array(m),_=s[u]=new Array(m);n(h,d,g,_,c[u]=new Array(p),f,e);for(var y,v,b=0,x=0;b<m;++b)if(y=g[b]){for(b>=x&&(x=b+1);!(v=_[x])&&++x<m;);y._next=v||null}}return(s=new eD(s,i))._enter=l,s._exit=c,s},enter:function mD(){return new eD(this._enter||this._groups.map(oz),this._parents)},exit:function gD(){return new eD(this._exit||this._groups.map(oz),this._parents)},join:function _D(t,e,n){var i=this.enter(),r=this,o=this.exit();return i="function"==typeof t?t(i):i.append(t+""),null!=e&&(r=e(r)),null==n?o.remove():n(o),i&&r?i.merge(r).order():r},merge:function yD(t){for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new eD(o,this._parents)},order:function vD(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,r=t[e],o=r.length-1,a=r[o];--o>=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function bD(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=cz);for(var n=this._groups,i=n.length,r=new Array(i),o=0;o<i;++o){for(var a,s=n[o],l=s.length,c=r[o]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(e)}return new eD(r,this._parents).order()},call:function xD(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function wD(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t},node:function SD(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],r=0,o=i.length;r<o;++r){var a=i[r];if(a)return a}return null},size:function MD(){var t=0;return this.each((function(){++t})),t},empty:function ED(){return!this.node()},each:function TD(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var r,o=e[n],a=0,s=o.length;a<s;++a)(r=o[a])&&t.call(r,r.__data__,a,o);return this},attr:function CD(t,e){var n=KR(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?hz:uz:"function"==typeof e?n.local?mz:fz:n.local?pz:dz)(n,e))},style:function AD(t,e,n){return arguments.length>1?this.each((null==e?_z:"function"==typeof e?vz:yz)(t,e,null==n?"":n)):bz(this.node(),t)},property:function kD(t,e){return arguments.length>1?this.each((null==e?xz:"function"==typeof e?Sz:wz)(t,e)):this.node()[t]},classed:function LD(t,e){var n=Mz(t+"");if(arguments.length<2){for(var i=Ez(this.node()),r=-1,o=n.length;++r<o;)if(!i.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?Pz:e?kz:Lz)(n,e))},text:function PD(t){return arguments.length?this.each(null==t?Nz:("function"==typeof t?Oz:Iz)(t)):this.node().textContent},html:function ND(t){return arguments.length?this.each(null==t?Rz:("function"==typeof t?Dz:zz)(t)):this.node().innerHTML},raise:function ID(){return this.each(Bz)},lower:function OD(){return this.each(Hz)},append:function RD(t){var e="function"==typeof t?t:QR(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function zD(t,e){var n="function"==typeof t?t:QR(t),i=null==e?Fz:"function"==typeof e?e:ez(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function DD(){return this.each(Vz)},clone:function BD(t){return this.select(t?jz:Uz)},datum:function HD(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function FD(t,e,n){var i,r,o=Xz(t+""),a=o.length;if(!(arguments.length<2)){for(s=e?Kz:$z,null==n&&(n=!1),i=0;i<a;++i)this.each(s(o[i],e,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(i=0,l=s[c];i<a;++i)if((r=o[i]).type===l.type&&r.name===l.name)return l.value},dispatch:function VD(t,e){return this.each(("function"==typeof e?Qz:Jz)(t,e))}};var UD=.7,jD=1/UD,GD="\\s*([+-]?\\d+)\\s*",WD="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",qD="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",YD=/^#([0-9a-f]{3,8})$/,XD=new RegExp("^rgb\\("+[GD,GD,GD]+"\\)$"),$D=new RegExp("^rgb\\("+[qD,qD,qD]+"\\)$"),KD=new RegExp("^rgba\\("+[GD,GD,GD,WD]+"\\)$"),ZD=new RegExp("^rgba\\("+[qD,qD,qD,WD]+"\\)$"),JD=new RegExp("^hsl\\("+[WD,qD,qD]+"\\)$"),QD=new RegExp("^hsla\\("+[WD,qD,qD,WD]+"\\)$"),tB={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function eB(){return this.rgb().formatHex()}function nB(){return this.rgb().formatRgb()}function iB(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=YD.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?rB(e):3===n?new lB(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?oB(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?oB(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=XD.exec(t))?new lB(e[1],e[2],e[3],1):(e=$D.exec(t))?new lB(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=KD.exec(t))?oB(e[1],e[2],e[3],e[4]):(e=ZD.exec(t))?oB(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=JD.exec(t))?dB(e[1],e[2]/100,e[3]/100,1):(e=QD.exec(t))?dB(e[1],e[2]/100,e[3]/100,e[4]):tB.hasOwnProperty(t)?rB(tB[t]):"transparent"===t?new lB(NaN,NaN,NaN,0):null}function rB(t){return new lB(t>>16&255,t>>8&255,255&t,1)}function oB(t,e,n,i){return i<=0&&(t=e=n=NaN),new lB(t,e,n,i)}function aB(t){return t instanceof uD||(t=iB(t)),t?new lB((t=t.rgb()).r,t.g,t.b,t.opacity):new lB}function sB(t,e,n,i){return 1===arguments.length?aB(t):new lB(t,e,n,null==i?1:i)}function lB(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function cB(){return"#"+hB(this.r)+hB(this.g)+hB(this.b)}function uB(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function hB(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function dB(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new fB(t,e,n,i)}function pB(t){if(t instanceof fB)return new fB(t.h,t.s,t.l,t.opacity);if(t instanceof uD||(t=iB(t)),!t)return new fB;if(t instanceof fB)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),o=Math.max(e,n,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=e===o?(n-i)/s+6*(n<i):n===o?(i-e)/s+2:(e-n)/s+4,s/=l<.5?o+r:2-o-r,a*=60):s=l>0&&l<1?0:a,new fB(a,s,l,t.opacity)}function fB(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function mB(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function gB(t){return function(){return t}}function _B(t,e){var n=e-t;return n?(function i(t,e){return function(n){return t+n*e}})(t,n):gB(isNaN(t)?e:t)}lD(uD,iB,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:eB,formatHex:eB,formatHsl:function yB(){return pB(this).formatHsl()},formatRgb:nB,toString:nB}),lD(lB,sB,cD(uD,{brighter:function(t){return t=null==t?jD:Math.pow(jD,t),new lB(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?UD:Math.pow(UD,t),new lB(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:cB,formatHex:cB,formatRgb:uB,toString:uB})),lD(fB,(function vB(t,e,n,i){return 1===arguments.length?pB(t):new fB(t,e,n,null==i?1:i)}),cD(uD,{brighter:function(t){return t=null==t?jD:Math.pow(jD,t),new fB(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?UD:Math.pow(UD,t),new fB(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new lB(mB(t>=240?t-240:t+120,r,i),mB(t,r,i),mB(t<120?t+240:t-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var bB=(function t(e){var n=(function i(t){return 1==(t=+t)?_B:function(e,n){return n-e?(function i(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}})(e,n,t):gB(isNaN(e)?n:e)}})(e);function r(t,e){var i=n((t=sB(t)).r,(e=sB(e)).r),r=n(t.g,e.g),o=n(t.b,e.b),a=_B(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=r(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r})(1);function xB(t,e){e||(e=[]);var n,i=t?Math.min(e.length,t.length):0,r=e.slice();return function(o){for(n=0;n<i;++n)r[n]=t[n]*(1-o)+e[n]*o;return r}}function wB(t,e){var n,i=e?e.length:0,r=t?Math.min(i,t.length):0,o=new Array(r),a=new Array(i);for(n=0;n<r;++n)o[n]=kB(t[n],e[n]);for(;n<i;++n)a[n]=e[n];return function(t){for(n=0;n<r;++n)a[n]=o[n](t);return a}}function SB(t,e){var n=new Date;return t=+t,e=+e,function(i){return n.setTime(t*(1-i)+e*i),n}}function MB(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function EB(t,e){var n,i={},r={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?i[n]=kB(t[n],e[n]):r[n]=e[n];return function(t){for(n in i)r[n]=i[n](t);return r}}var TB=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,CB=new RegExp(TB.source,"g");function AB(t,e){var n,i,r,o=TB.lastIndex=CB.lastIndex=0,a=-1,s=[],l=[];for(t+="",e+="";(n=TB.exec(t))&&(i=CB.exec(e));)(r=i.index)>o&&(r=e.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:MB(n,i)})),o=CB.lastIndex;return o<e.length&&(r=e.slice(o),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?(function c(t){return function(e){return t(e)+""}})(l[0].x):(function u(t){return function(){return t}})(e):(e=l.length,function(t){for(var n,i=0;i<e;++i)s[(n=l[i]).i]=n.x(t);return s.join("")})}function kB(t,e){var n,i=typeof e;return null==e||"boolean"===i?gB(e):("number"===i?MB:"string"===i?(n=iB(e))?(e=n,bB):AB:e instanceof iB?bB:e instanceof Date?SB:(function r(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)})(e)?xB:Array.isArray(e)?wB:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?EB:MB)(t,e)}var LB,PB,NB,IB,OB=180/Math.PI,RB={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function zB(t,e,n,i,r,o){var a,s,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*n+e*i)&&(n-=t*l,i-=e*l),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,l/=s),t*i<e*n&&(t=-t,e=-e,l=-l,a=-a),{translateX:r,translateY:o,rotate:Math.atan2(e,t)*OB,skewX:Math.atan(l)*OB,scaleX:a,scaleY:s}}function DB(t,e,n,i){function r(t){return t.length?t.pop()+" ":""}return function(o,a){var s=[],l=[];return o=t(o),a=t(a),(function c(t,i,r,o,a,s){if(t!==r||i!==o){var l=a.push("translate(",null,e,null,n);s.push({i:l-4,x:MB(t,r)},{i:l-2,x:MB(i,o)})}else(r||o)&&a.push("translate("+r+e+o+n)})(o.translateX,o.translateY,a.translateX,a.translateY,s,l),(function u(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:MB(t,e)})):e&&n.push(r(n)+"rotate("+e+i)})(o.rotate,a.rotate,s,l),(function h(t,e,n,o){t!==e?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:MB(t,e)}):e&&n.push(r(n)+"skewX("+e+i)})(o.skewX,a.skewX,s,l),(function d(t,e,n,i,o,a){if(t!==n||e!==i){var s=o.push(r(o)+"scale(",null,",",null,")");a.push({i:s-4,x:MB(t,n)},{i:s-2,x:MB(e,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")})(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(t){for(var e,n=-1,i=l.length;++n<i;)s[(e=l[n]).i]=e.x(t);return s.join("")}}}var BB,HB,FB=DB((function VB(t){return"none"===t?RB:(LB||(LB=document.createElement("DIV"),PB=document.documentElement,NB=document.defaultView),LB.style.transform=t,t=NB.getComputedStyle(PB.appendChild(LB),null).getPropertyValue("transform"),PB.removeChild(LB),zB(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),UB=DB((function jB(t){return null==t?RB:(IB||(IB=document.createElementNS("http://www.w3.org/2000/svg","g")),IB.setAttribute("transform",t),(t=IB.transform.baseVal.consolidate())?zB((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):RB)}),", ",")",")"),GB=0,WB=0,qB=0,YB=0,XB=0,$B=0,KB="object"==typeof performance&&performance.now?performance:Date,ZB="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function JB(){return XB||(ZB(QB),XB=KB.now()+$B)}function QB(){XB=0}function tH(){this._call=this._time=this._next=null}function eH(t,e,n){var i=new tH;return i.restart(t,e,n),i}function nH(){XB=(YB=KB.now())+$B,GB=WB=0;try{!(function t(){JB(),++GB;for(var t,e=BB;e;)(t=XB-e._time)>=0&&e._call.call(null,t),e=e._next;--GB})()}finally{GB=0,(function e(){for(var t,e,n=BB,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:BB=e);HB=t,rH(i)})(),XB=0}}function iH(){var t=KB.now(),e=t-YB;e>1e3&&($B-=e,YB=t)}function rH(t){GB||(WB&&(WB=clearTimeout(WB)),t-XB>24?(t<1/0&&(WB=setTimeout(nH,t-KB.now()-$B)),qB&&(qB=clearInterval(qB))):(qB||(YB=KB.now(),qB=setInterval(iH,1e3)),GB=1,ZB(nH)))}function oH(t,e,n){var i=new tH;return i.restart((function(n){i.stop(),t(n+e)}),e=null==e?0:+e,n),i}tH.prototype=eH.prototype={constructor:tH,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?JB():+n)+(null==e?0:+e),this._next||HB===this||(HB?HB._next=this:BB=this,HB=this),this._call=t,this._time=n,rH()},stop:function(){this._call&&(this._call=null,this._time=1/0,rH())}};var aH=jR("start","end","cancel","interrupt"),sH=[];function lH(t,e,n,i,r,o){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!(function s(t,e,n){var i,r=t.__transition;function o(l){var c,u,h,d;if(1!==n.state)return s();for(c in r)if((d=r[c]).name===n.name){if(3===d.state)return oH(o);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[c]):+c<e&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[c])}if(oH((function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(l))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,i=new Array(h=n.tween.length),c=0,u=-1;c<h;++c)(d=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(i[++u]=d);i.length=u+1}}function a(e){for(var r=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(s),n.state=5,1),o=-1,a=i.length;++o<a;)i[o].call(t,r);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),s())}function s(){for(var i in n.state=6,n.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=n,n.timer=eH((function l(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}),0,n.time)})(t,n,{name:e,index:i,group:r,on:aH,tween:sH,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function cH(t,e){var n=hH(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function uH(t,e){var n=hH(t,e);if(n.state>3)throw new Error("too late; already running");return n}function hH(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function dH(t,e){var n,i,r,o=t.__transition,a=!0;if(o){for(r in e=null==e?null:e+"",o)(n=o[r]).name===e?(i=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(i?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete o[r]):a=!1;a&&delete t.__transition}}function pH(t,e){var n,i;return function(){var r=uH(this,t),o=r.tween;if(o!==n)for(var a=0,s=(i=n=o).length;a<s;++a)if(i[a].name===e){(i=i.slice()).splice(a,1);break}r.tween=i}}function fH(t,e,n){var i,r;if("function"!=typeof n)throw new Error;return function(){var o=uH(this,t),a=o.tween;if(a!==i){r=(i=a).slice();for(var s={name:e,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===e){r[l]=s;break}l===c&&r.push(s)}o.tween=r}}function mH(t,e,n){var i=t._id;return t.each((function(){var t=uH(this,i);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return hH(t,i).value[e]}}function gH(t,e){var n;return("number"==typeof e?MB:e instanceof iB?bB:(n=iB(e))?(e=n,bB):AB)(t,e)}function _H(t){return function(){this.removeAttribute(t)}}function yH(t){return function(){this.removeAttributeNS(t.space,t.local)}}function vH(t,e,n){var i,r,o=n+"";return function(){var a=this.getAttribute(t);return a===o?null:a===i?r:r=e(i=a,n)}}function bH(t,e,n){var i,r,o=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===i?r:r=e(i=a,n)}}function xH(t,e,n){var i,r,o;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(t))===(s=l+"")?null:a===i&&s===r?o:(r=s,o=e(i=a,l));this.removeAttribute(t)}}function wH(t,e,n){var i,r,o;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(s=l+"")?null:a===i&&s===r?o:(r=s,o=e(i=a,l));this.removeAttributeNS(t.space,t.local)}}function SH(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function MH(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function EH(t,e){var n,i;function r(){var r=e.apply(this,arguments);return r!==i&&(n=(i=r)&&MH(t,r)),n}return r._value=e,r}function TH(t,e){var n,i;function r(){var r=e.apply(this,arguments);return r!==i&&(n=(i=r)&&SH(t,r)),n}return r._value=e,r}function CH(t,e){return function(){cH(this,t).delay=+e.apply(this,arguments)}}function AH(t,e){return e=+e,function(){cH(this,t).delay=e}}function kH(t,e){return function(){uH(this,t).duration=+e.apply(this,arguments)}}function LH(t,e){return e=+e,function(){uH(this,t).duration=e}}function PH(t,e){if("function"!=typeof e)throw new Error;return function(){uH(this,t).ease=e}}function NH(t,e,n){var i,r,o=(function a(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))})(e)?cH:uH;return function(){var a=o(this,t),s=a.on;s!==i&&(r=(i=s).copy()).on(e,n),a.on=r}}var IH=nD.prototype.constructor;function OH(t){return function(){this.style.removeProperty(t)}}function RH(t,e,n){return function(i){this.style.setProperty(t,e.call(this,i),n)}}function zH(t,e,n){var i,r;function o(){var o=e.apply(this,arguments);return o!==r&&(i=(r=o)&&RH(t,o,n)),i}return o._value=e,o}function DH(t){return function(e){this.textContent=t.call(this,e)}}function BH(t){var e,n;function i(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&DH(i)),e}return i._value=t,i}var HH=0;function FH(t,e,n,i){this._groups=t,this._parents=e,this._name=n,this._id=i}function VH(){return++HH}var UH=nD.prototype;FH.prototype={constructor:FH,select:function jH(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=ez(t));for(var i=this._groups,r=i.length,o=new Array(r),a=0;a<r;++a)for(var s,l,c=i[a],u=c.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=c[d])&&(l=t.call(s,s.__data__,d,c))&&("__data__"in s&&(l.__data__=s.__data__),h[d]=l,lH(h[d],e,n,d,h,hH(s,n)));return new FH(o,this._parents,e,n)},selectAll:function GH(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=iz(t));for(var i=this._groups,r=i.length,o=[],a=[],s=0;s<r;++s)for(var l,c=i[s],u=c.length,h=0;h<u;++h)if(l=c[h]){for(var d,p=t.call(l,l.__data__,h,c),f=hH(l,n),m=0,g=p.length;m<g;++m)(d=p[m])&&lH(d,e,n,m,p,f);o.push(p),a.push(l)}return new FH(o,a,e,n)},filter:function WH(t){"function"!=typeof t&&(t=rz(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a=e[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new FH(i,this._parents,this._name,this._id)},merge:function qH(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new FH(o,this._parents,this._name,this._id)},selection:function YH(){return new IH(this._groups,this._parents)},transition:function XH(){for(var t=this._name,e=this._id,n=VH(),i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)if(a=s[c]){var u=hH(a,e);lH(a,t,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new FH(i,this._parents,t,n)},call:UH.call,nodes:UH.nodes,node:UH.node,size:UH.size,empty:UH.empty,each:UH.each,on:function $H(t,e){var n=this._id;return arguments.length<2?hH(this.node(),n).on.on(t):this.each(NH(n,t,e))},attr:function KH(t,e){var n=KR(t),i="transform"===n?UB:gH;return this.attrTween(t,"function"==typeof e?(n.local?wH:xH)(n,i,mH(this,"attr."+t,e)):null==e?(n.local?yH:_H)(n):(n.local?bH:vH)(n,i,e))},attrTween:function ZH(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var i=KR(t);return this.tween(n,(i.local?EH:TH)(i,e))},style:function JH(t,e,n){var i="transform"==(t+="")?FB:gH;return null==e?this.styleTween(t,(function r(t,e){var n,i,r;return function(){var o=bz(this,t),a=(this.style.removeProperty(t),bz(this,t));return o===a?null:o===n&&a===i?r:r=e(n=o,i=a)}})(t,i)).on("end.style."+t,OH(t)):"function"==typeof e?this.styleTween(t,(function a(t,e,n){var i,r,o;return function(){var a=bz(this,t),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(t),l=s=bz(this,t)),a===l?null:a===i&&l===r?o:(r=l,o=e(i=a,s))}})(t,i,mH(this,"style."+t,e))).each((function o(t,e){var n,i,r,o,a="style."+e,s="end."+a;return function(){var l=uH(this,t),c=l.on,u=null==l.value[a]?o||(o=OH(e)):void 0;c===n&&r===u||(i=(n=c).copy()).on(s,r=u),l.on=i}})(this._id,t)):this.styleTween(t,(function s(t,e,n){var i,r,o=n+"";return function(){var a=bz(this,t);return a===o?null:a===i?r:r=e(i=a,n)}})(t,i,e),n).on("end.style."+t,null)},styleTween:function QH(t,e,n){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;return this.tween(i,zH(t,e,null==n?"":n))},text:function tF(t){return this.tween("text","function"==typeof t?(function e(t){return function(){var e=t(this);this.textContent=null==e?"":e}})(mH(this,"text",t)):(function n(t){return function(){this.textContent=t}})(null==t?"":t+""))},textTween:function eF(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,BH(t))},remove:function nF(){return this.on("end.remove",(function t(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}})(this._id))},tween:function iF(t,e){var n=this._id;if(t+="",arguments.length<2){for(var i,r=hH(this.node(),n).tween,o=0,a=r.length;o<a;++o)if((i=r[o]).name===t)return i.value;return null}return this.each((null==e?pH:fH)(n,t,e))},delay:function rF(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?CH:AH)(e,t)):hH(this.node(),e).delay},duration:function oF(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?kH:LH)(e,t)):hH(this.node(),e).duration},ease:function aF(t){var e=this._id;return arguments.length?this.each(PH(e,t)):hH(this.node(),e).ease},end:function sF(){var t,e,n=this,i=n._id,r=n.size();return new Promise((function(o,a){var s={value:a},l={value:function(){0==--r&&o()}};n.each((function(){var n=uH(this,i),r=n.on;r!==t&&((e=(t=r).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),n.on=e}))}))}};var lF={time:null,delay:0,duration:250,ease:Ef};function cF(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))return lF.time=JB(),lF;return n}function uF(t){return function(){return t}}function hF(t,e,n){this.target=t,this.type=e,this.selection=n}function dF(){Wz.stopImmediatePropagation()}function pF(){Wz.preventDefault(),Wz.stopImmediatePropagation()}nD.prototype.interrupt=function fF(t){return this.each((function(){dH(this,t)}))},nD.prototype.transition=function mF(t){var e,n;t instanceof FH?(e=t._id,t=t._name):(e=VH(),(n=lF).time=JB(),t=null==t?null:t+"");for(var i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)(a=s[c])&&lH(a,t,e,c,s,n||cF(a,e));return new FH(i,this._parents,t,e)};var gF={name:"drag"},_F={name:"space"},yF={name:"handle"},vF={name:"center"},bF={name:"x",handles:["e","w"].map(AF),input:function(t,e){return t&&[[t[0],e[0][1]],[t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},xF={name:"y",handles:["n","s"].map(AF),input:function(t,e){return t&&[[e[0][0],t[0]],[e[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},wF={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(AF),input:function(t){return t},output:function(t){return t}},SF={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},MF={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},EF={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},TF={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},CF={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function AF(t){return{type:t}}function kF(){return!Wz.button}function LF(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function PF(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function NF(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function IF(t){var e,n=LF,i=kF,r=jR(a,"start","brush","end"),o=6;function a(e){var n=e.property("__brush",h).selectAll(".overlay").data([AF("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",SF.overlay).merge(n).each((function(){var t=PF(this).extent;iD(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),e.selectAll(".selection").data([AF("selection")]).enter().append("rect").attr("class","selection").attr("cursor",SF.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=e.selectAll(".handle").data(t.handles,(function(t){return t.type}));i.exit().remove(),i.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return SF[t.type]})),e.each(s).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",u)}function s(){var t=iD(this),e=PF(this).selection;e?(t.selectAll(".selection").style("display",null).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?e[1][0]-o/2:e[0][0]-o/2})).attr("y",(function(t){return"s"===t.type[0]?e[1][1]-o/2:e[0][1]-o/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?e[1][0]-e[0][0]+o:o})).attr("height",(function(t){return"e"===t.type||"w"===t.type?e[1][1]-e[0][1]+o:o}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function l(t,e){return t.__brush.emitter||new c(t,e)}function c(t,e){this.that=t,this.args=e,this.state=t.__brush,this.active=0}function u(){if(Wz.touches){if(Wz.changedTouches.length<Wz.touches.length)return pF()}else if(e)return;if(i.apply(this,arguments)){var n,r,o,a,c,u,h,d,p,f,m,g,_,y=this,v=Wz.target.__data__.type,b="selection"===(Wz.metaKey?v="overlay":v)?gF:Wz.altKey?vF:yF,x=t===xF?null:TF[v],w=t===bF?null:CF[v],S=PF(y),M=S.extent,E=S.selection,T=M[0][0],C=M[0][1],A=M[1][0],k=M[1][1],L=x&&w&&Wz.shiftKey,P=rD(y),N=P,I=l(y,arguments).beforestart();"overlay"===v?S.selection=E=[[n=t===xF?T:P[0],o=t===bF?C:P[1]],[c=t===xF?A:n,h=t===bF?k:o]]:(n=E[0][0],o=E[0][1],c=E[1][0],h=E[1][1]),r=n,a=o,u=c,d=h;var O=iD(y).attr("pointer-events","none"),R=O.selectAll(".overlay").attr("cursor",SF[v]);if(Wz.touches)O.on("touchmove.brush",D,!0).on("touchend.brush touchcancel.brush",H,!0);else{var z=iD(Wz.view).on("keydown.brush",F,!0).on("keyup.brush",V,!0).on("mousemove.brush",D,!0).on("mouseup.brush",H,!0);aD(Wz.view)}dF(),dH(y),s.call(y),I.start()}function D(){var t=rD(y);!L||g||_||(Math.abs(t[0]-N[0])>Math.abs(t[1]-N[1])?_=!0:g=!0),N=t,m=!0,pF(),B()}function B(){var t;switch(p=N[0]-P[0],f=N[1]-P[1],b){case _F:case gF:x&&(p=Math.max(T-n,Math.min(A-c,p)),r=n+p,u=c+p),w&&(f=Math.max(C-o,Math.min(k-h,f)),a=o+f,d=h+f);break;case yF:x<0?(p=Math.max(T-n,Math.min(A-n,p)),r=n+p,u=c):x>0&&(p=Math.max(T-c,Math.min(A-c,p)),r=n,u=c+p),w<0?(f=Math.max(C-o,Math.min(k-o,f)),a=o+f,d=h):w>0&&(f=Math.max(C-h,Math.min(k-h,f)),a=o,d=h+f);break;case vF:x&&(r=Math.max(T,Math.min(A,n-p*x)),u=Math.max(T,Math.min(A,c+p*x))),w&&(a=Math.max(C,Math.min(k,o-f*w)),d=Math.max(C,Math.min(k,h+f*w)))}u<r&&(x*=-1,t=n,n=c,c=t,t=r,r=u,u=t,v in MF&&R.attr("cursor",SF[v=MF[v]])),d<a&&(w*=-1,t=o,o=h,h=t,t=a,a=d,d=t,v in EF&&R.attr("cursor",SF[v=EF[v]])),S.selection&&(E=S.selection),g&&(r=E[0][0],u=E[1][0]),_&&(a=E[0][1],d=E[1][1]),E[0][0]===r&&E[0][1]===a&&E[1][0]===u&&E[1][1]===d||(S.selection=[[r,a],[u,d]],s.call(y),I.brush())}function H(){if(dF(),Wz.touches){if(Wz.touches.length)return;e&&clearTimeout(e),e=setTimeout((function(){e=null}),500),O.on("touchmove.brush touchend.brush touchcancel.brush",null)}else sD(Wz.view,m),z.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);O.attr("pointer-events","all"),R.attr("cursor",SF.overlay),S.selection&&(E=S.selection),NF(E)&&(S.selection=null,s.call(y)),I.end()}function F(){switch(Wz.keyCode){case 16:L=x&&w;break;case 18:b===yF&&(x&&(c=u-p*x,n=r+p*x),w&&(h=d-f*w,o=a+f*w),b=vF,B());break;case 32:b!==yF&&b!==vF||(x<0?c=u-p:x>0&&(n=r-p),w<0?h=d-f:w>0&&(o=a-f),b=_F,R.attr("cursor",SF.selection),B());break;default:return}pF()}function V(){switch(Wz.keyCode){case 16:L&&(g=_=L=!1,B());break;case 18:b===vF&&(x<0?c=u:x>0&&(n=r),w<0?h=d:w>0&&(o=a),b=yF,B());break;case 32:b===_F&&(Wz.altKey?(x&&(c=u-p*x,n=r+p*x),w&&(h=d-f*w,o=a+f*w),b=vF):(x<0?c=u:x>0&&(n=r),w<0?h=d:w>0&&(o=a),b=yF),R.attr("cursor",SF[v]),B());break;default:return}pF()}}function h(){var e=this.__brush||{selection:null};return e.extent=n.apply(this,arguments),e.dim=t,e}return a.move=function(e,n){e.selection?e.on("start.brush",(function(){l(this,arguments).beforestart().start()})).on("interrupt.brush end.brush",(function(){l(this,arguments).end()})).tween("brush",(function(){var e=this,i=e.__brush,r=l(e,arguments),o=i.selection,a=t.input("function"==typeof n?n.apply(this,arguments):n,i.extent),c=kB(o,a);function u(t){i.selection=1===t&&NF(a)?null:c(t),s.call(e),r.brush()}return o&&a?u:u(1)})):e.each((function(){var e=this,i=arguments,r=e.__brush,o=t.input("function"==typeof n?n.apply(e,i):n,r.extent),a=l(e,i).beforestart();dH(e),r.selection=null==o||NF(o)?null:o,s.call(e),a.start().brush().end()}))},c.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(e){!(function n(t,e,i,r){var o=Wz;t.sourceEvent=Wz,Wz=t;try{e.apply(i,r)}finally{Wz=o}})(new hF(a,e,t.output(this.state.selection)),r.apply,r,[e,this.that,this.args])}},a.extent=function(t){return arguments.length?(n="function"==typeof t?t:uF([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),a):n},a.filter=function(t){return arguments.length?(i="function"==typeof t?t:uF(!!t),a):i},a.handleSize=function(t){return arguments.length?(o=+t,a):o},a.on=function(){var t=r.on.apply(r,arguments);return t===r?a:t},a}function OF(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function RF(t,e,n){t=+t,e=+e,n=(r=arguments.length)<2?(e=t,t=0,1):r<3?1:+n;for(var i=-1,r=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(r);++i<r;)o[i]=t+i*n;return o}!(function zF(t){1===t.length&&(t=(function e(t){return function(e,n){return OF(t(e),n)}})(t))})(OF);var DF=Math.cos,BF=Math.sin,HF=Math.PI,FF=HF/2,VF=2*HF,UF=Math.max;function jF(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}var GF=Array.prototype.slice;function WF(t){return function(){return t}}var qF=Math.PI,YF=2*qF,XF=1e-6,$F=YF-XF;function KF(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function ZF(){return new KF}function JF(t){return t.source}function QF(t){return t.target}function tV(t){return t.radius}function eV(t){return t.startAngle}function nV(t){return t.endAngle}KF.prototype=ZF.prototype={constructor:KF,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,r,o){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+r)+","+(this._y1=+o)},arcTo:function(t,e,n,i,r){var o=this._x1,a=this._y1,s=(n=+n)-(t=+t),l=(i=+i)-(e=+e),c=o-t,u=a-e,h=c*c+u*u;if((r=+r)<0)throw new Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(h>XF)if(Math.abs(u*s-l*c)>XF&&r){var d=n-o,p=i-a,f=s*s+l*l,m=d*d+p*p,g=Math.sqrt(f),_=Math.sqrt(h),y=r*Math.tan((qF-Math.acos((f+h-m)/(2*g*_)))/2),v=y/_,b=y/g;Math.abs(v-1)>XF&&(this._+="L"+(t+v*c)+","+(e+v*u)),this._+="A"+r+","+r+",0,0,"+ +(u*d>c*p)+","+(this._x1=t+b*s)+","+(this._y1=e+b*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,i,r,o){t=+t,e=+e,o=!!o;var a=(n=+n)*Math.cos(i),s=n*Math.sin(i),l=t+a,c=e+s,u=1^o,h=o?i-r:r-i;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>XF||Math.abs(this._y1-c)>XF)&&(this._+="L"+l+","+c),n&&(h<0&&(h=h%YF+YF),h>$F?this._+="A"+n+","+n+",0,1,"+u+","+(t-a)+","+(e-s)+"A"+n+","+n+",0,1,"+u+","+(this._x1=l)+","+(this._y1=c):h>XF&&(this._+="A"+n+","+n+",0,"+ +(h>=qF)+","+u+","+(this._x1=t+n*Math.cos(r))+","+(this._y1=e+n*Math.sin(r))))},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};var iV="$";function rV(){}function oV(t,e){var n=new rV;if(t instanceof rV)t.each((function(t,e){n.set(e,t)}));else if(Array.isArray(t)){var i,r=-1,o=t.length;if(null==e)for(;++r<o;)n.set(r,t[r]);else for(;++r<o;)n.set(e(i=t[r],r,t),i)}else if(t)for(var a in t)n.set(a,t[a]);return n}function aV(){return{}}function sV(t,e,n){t[e]=n}function lV(){return oV()}function cV(t,e,n){t.set(e,n)}function uV(){}rV.prototype=oV.prototype={constructor:rV,has:function(t){return iV+t in this},get:function(t){return this[iV+t]},set:function(t,e){return this[iV+t]=e,this},remove:function(t){var e=iV+t;return e in this&&delete this[e]},clear:function(){for(var t in this)t[0]===iV&&delete this[t]},keys:function(){var t=[];for(var e in this)e[0]===iV&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)e[0]===iV&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)e[0]===iV&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)e[0]===iV&&++t;return t},empty:function(){for(var t in this)if(t[0]===iV)return!1;return!0},each:function(t){for(var e in this)e[0]===iV&&t(this[e],e.slice(1),this)}};var hV=oV.prototype;function dV(t,e){var n=new uV;if(t instanceof uV)t.each((function(t){n.add(t)}));else if(t){var i=-1,r=t.length;if(null==e)for(;++i<r;)n.add(t[i]);else for(;++i<r;)n.add(e(t[i],i,t))}return n}function pV(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function fV(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function mV(){}uV.prototype=dV.prototype={constructor:uV,has:hV.has,add:function(t){return this[iV+(t+="")]=t,this},remove:hV.remove,clear:hV.clear,values:hV.keys,size:hV.size,empty:hV.empty,each:hV.each};var gV=.7,_V=1/gV,yV="\\s*([+-]?\\d+)\\s*",vV="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",bV="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",xV=/^#([0-9a-f]{3})$/,wV=/^#([0-9a-f]{6})$/,SV=new RegExp("^rgb\\("+[yV,yV,yV]+"\\)$"),MV=new RegExp("^rgb\\("+[bV,bV,bV]+"\\)$"),EV=new RegExp("^rgba\\("+[yV,yV,yV,vV]+"\\)$"),TV=new RegExp("^rgba\\("+[bV,bV,bV,vV]+"\\)$"),CV=new RegExp("^hsl\\("+[vV,bV,bV]+"\\)$"),AV=new RegExp("^hsla\\("+[vV,bV,bV,vV]+"\\)$"),kV={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function LV(t){var e;return t=(t+"").trim().toLowerCase(),(e=xV.exec(t))?new RV((e=parseInt(e[1],16))>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=wV.exec(t))?PV(parseInt(e[1],16)):(e=SV.exec(t))?new RV(e[1],e[2],e[3],1):(e=MV.exec(t))?new RV(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=EV.exec(t))?NV(e[1],e[2],e[3],e[4]):(e=TV.exec(t))?NV(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=CV.exec(t))?zV(e[1],e[2]/100,e[3]/100,1):(e=AV.exec(t))?zV(e[1],e[2]/100,e[3]/100,e[4]):kV.hasOwnProperty(t)?PV(kV[t]):"transparent"===t?new RV(NaN,NaN,NaN,0):null}function PV(t){return new RV(t>>16&255,t>>8&255,255&t,1)}function NV(t,e,n,i){return i<=0&&(t=e=n=NaN),new RV(t,e,n,i)}function IV(t){return t instanceof mV||(t=LV(t)),t?new RV((t=t.rgb()).r,t.g,t.b,t.opacity):new RV}function OV(t,e,n,i){return 1===arguments.length?IV(t):new RV(t,e,n,null==i?1:i)}function RV(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function zV(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new HV(t,e,n,i)}function DV(t){if(t instanceof HV)return new HV(t.h,t.s,t.l,t.opacity);if(t instanceof mV||(t=LV(t)),!t)return new HV;if(t instanceof HV)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),o=Math.max(e,n,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=e===o?(n-i)/s+6*(n<i):n===o?(i-e)/s+2:(e-n)/s+4,s/=l<.5?o+r:2-o-r,a*=60):s=l>0&&l<1?0:a,new HV(a,s,l,t.opacity)}function BV(t,e,n,i){return 1===arguments.length?DV(t):new HV(t,e,n,null==i?1:i)}function HV(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function FV(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}pV(mV,LV,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),pV(RV,OV,fV(mV,{brighter:function(t){return t=null==t?_V:Math.pow(_V,t),new RV(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?gV:Math.pow(gV,t),new RV(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),pV(HV,BV,fV(mV,{brighter:function(t){return t=null==t?_V:Math.pow(_V,t),new HV(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?gV:Math.pow(gV,t),new HV(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new RV(FV(t>=240?t-240:t+120,r,i),FV(t,r,i),FV(t<120?t+240:t-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var VV=Math.PI/180,UV=180/Math.PI,jV=.95047,GV=1.08883,WV=4/29,qV=6/29,YV=3*qV*qV;function XV(t){if(t instanceof KV)return new KV(t.l,t.a,t.b,t.opacity);if(t instanceof iU){var e=t.h*VV;return new KV(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof RV||(t=IV(t));var n=tU(t.r),i=tU(t.g),r=tU(t.b),o=ZV((.4124564*n+.3575761*i+.1804375*r)/jV),a=ZV((.2126729*n+.7151522*i+.072175*r)/1);return new KV(116*a-16,500*(o-a),200*(a-ZV((.0193339*n+.119192*i+.9503041*r)/GV)),t.opacity)}function $V(t,e,n,i){return 1===arguments.length?XV(t):new KV(t,e,n,null==i?1:i)}function KV(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}function ZV(t){return t>.008856451679035631?Math.pow(t,1/3):t/YV+WV}function JV(t){return t>qV?t*t*t:YV*(t-WV)}function QV(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function tU(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function eU(t){if(t instanceof iU)return new iU(t.h,t.c,t.l,t.opacity);t instanceof KV||(t=XV(t));var e=Math.atan2(t.b,t.a)*UV;return new iU(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function nU(t,e,n,i){return 1===arguments.length?eU(t):new iU(t,e,n,null==i?1:i)}function iU(t,e,n,i){this.h=+t,this.c=+e,this.l=+n,this.opacity=+i}pV(KV,$V,fV(mV,{brighter:function(t){return new KV(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new KV(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return t=1*JV(t),new RV(QV(3.2404542*(e=jV*JV(e))-1.5371385*t-.4985314*(n=GV*JV(n))),QV(-.969266*e+1.8760108*t+.041556*n),QV(.0556434*e-.2040259*t+1.0572252*n),this.opacity)}})),pV(iU,nU,fV(mV,{brighter:function(t){return new iU(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new iU(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return XV(this).rgb()}}));var rU=-.29227,oU=-.90649,aU=1.97294;function sU(t){if(t instanceof cU)return new cU(t.h,t.s,t.l,t.opacity);t instanceof RV||(t=IV(t));var e=t.g/255,n=t.b/255,i=(-.6557636667999999*n+t.r/255*-1.7884503806-3.5172982438*e)/-5.9615122912,r=n-i,o=(aU*(e-i)-rU*r)/oU,a=Math.sqrt(o*o+r*r)/(aU*i*(1-i)),s=a?Math.atan2(o,r)*UV-120:NaN;return new cU(s<0?s+360:s,a,i,t.opacity)}function lU(t,e,n,i){return 1===arguments.length?sU(t):new cU(t,e,n,null==i?1:i)}function cU(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}pV(cU,lU,fV(mV,{brighter:function(t){return t=null==t?_V:Math.pow(_V,t),new cU(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?gV:Math.pow(gV,t),new cU(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*VV,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),i=Math.cos(t),r=Math.sin(t);return new RV(255*(e+n*(-.14861*i+1.78277*r)),255*(e+n*(rU*i+oU*r)),255*(e+n*(aU*i)),this.opacity)}}));var uU={value:function(){}};function hU(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i)throw new Error("illegal type: "+t);i[t]=[]}return new dU(i)}function dU(t){this._=t}function pU(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function fU(t,e){for(var n,i=0,r=t.length;i<r;++i)if((n=t[i]).name===e)return n.value}function mU(t,e,n){for(var i=0,r=t.length;i<r;++i)if(t[i].name===e){t[i]=uU,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}dU.prototype=hU.prototype={constructor:dU,on:function(t,e){var n,i=this._,r=pU(t+"",i),o=-1,a=r.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o<a;)if(n=(t=r[o]).type)i[n]=mU(i[n],t.name,e);else if(null==e)for(n in i)i[n]=mU(i[n],t.name,null);return this}for(;++o<a;)if((n=(t=r[o]).type)&&(n=fU(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new dU(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,r=new Array(n),o=0;o<n;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(i=this._[t]).length;o<n;++o)i[o].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)}};var gU={value:function(){}};function _U(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new yU(i)}function yU(t){this._=t}function vU(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function bU(t,e){for(var n,i=0,r=t.length;i<r;++i)if((n=t[i]).name===e)return n.value}function xU(t,e,n){for(var i=0,r=t.length;i<r;++i)if(t[i].name===e){t[i]=gU,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}yU.prototype=_U.prototype={constructor:yU,on:function(t,e){var n,i=this._,r=vU(t+"",i),o=-1,a=r.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o<a;)if(n=(t=r[o]).type)i[n]=xU(i[n],t.name,e);else if(null==e)for(n in i)i[n]=xU(i[n],t.name,null);return this}for(;++o<a;)if((n=(t=r[o]).type)&&(n=bU(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new yU(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,r=new Array(n),o=0;o<n;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(i=this._[t]).length;o<n;++o)i[o].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)}};var wU="http://www.w3.org/1999/xhtml",SU={svg:"http://www.w3.org/2000/svg",xhtml:wU,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function MU(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),SU.hasOwnProperty(e)?{space:SU[e],local:t}:t}function EU(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===wU&&e.documentElement.namespaceURI===wU?e.createElement(t):e.createElementNS(n,t)}}function TU(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function CU(t){var e=MU(t);return(e.local?TU:EU)(e)}function AU(){}function kU(t){return null==t?AU:function(){return this.querySelector(t)}}function LU(){return[]}function PU(t){return new Array(t.length)}function NU(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function IU(t,e,n,i,r,o){for(var a,s=0,l=e.length,c=o.length;s<c;++s)(a=e[s])?(a.__data__=o[s],i[s]=a):n[s]=new NU(t,o[s]);for(;s<l;++s)(a=e[s])&&(r[s]=a)}function OU(t,e,n,i,r,o,a){var s,l,c,u={},h=e.length,d=o.length,p=new Array(h);for(s=0;s<h;++s)(l=e[s])&&(p[s]=c="$"+a.call(l,l.__data__,s,e),c in u?r[s]=l:u[c]=l);for(s=0;s<d;++s)(l=u[c="$"+a.call(t,o[s],s,o)])?(i[s]=l,l.__data__=o[s],u[c]=null):n[s]=new NU(t,o[s]);for(s=0;s<h;++s)(l=e[s])&&u[p[s]]===l&&(r[s]=l)}function RU(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function zU(t){return function(){this.removeAttribute(t)}}function DU(t){return function(){this.removeAttributeNS(t.space,t.local)}}function BU(t,e){return function(){this.setAttribute(t,e)}}function HU(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function FU(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function VU(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function UU(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function jU(t){return function(){this.style.removeProperty(t)}}function GU(t,e,n){return function(){this.style.setProperty(t,e,n)}}function WU(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function qU(t,e){return t.style.getPropertyValue(e)||UU(t).getComputedStyle(t,null).getPropertyValue(e)}function YU(t){return function(){delete this[t]}}function XU(t,e){return function(){this[t]=e}}function $U(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function KU(t){return t.trim().split(/^|\s+/)}function ZU(t){return t.classList||new JU(t)}function JU(t){this._node=t,this._names=KU(t.getAttribute("class")||"")}function QU(t,e){for(var n=ZU(t),i=-1,r=e.length;++i<r;)n.add(e[i])}function tj(t,e){for(var n=ZU(t),i=-1,r=e.length;++i<r;)n.remove(e[i])}function ej(t){return function(){QU(this,t)}}function nj(t){return function(){tj(this,t)}}function ij(t,e){return function(){(e.apply(this,arguments)?QU:tj)(this,t)}}function rj(){this.textContent=""}function oj(t){return function(){this.textContent=t}}function aj(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function sj(){this.innerHTML=""}function lj(t){return function(){this.innerHTML=t}}function cj(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function uj(){this.nextSibling&&this.parentNode.appendChild(this)}function hj(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function dj(){return null}function pj(){var t=this.parentNode;t&&t.removeChild(this)}function fj(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function mj(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}NU.prototype={constructor:NU,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},JU.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var gj={},_j=null;function yj(t,e,n){return t=vj(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function vj(t,e,n){return function(i){var r=_j;_j=i;try{t.call(this,this.__data__,e,n)}finally{_j=r}}}function bj(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function xj(t){return function(){var e=this.__on;if(e){for(var n,i=0,r=-1,o=e.length;i<o;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.capture);++r?e.length=r:delete this.__on}}}function wj(t,e,n){var i=gj.hasOwnProperty(t.type)?yj:vj;return function(r,o,a){var s,l=this.__on,c=i(e,o,a);if(l)for(var u=0,h=l.length;u<h;++u)if((s=l[u]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=e);this.addEventListener(t.type,c,n),s={type:t.type,name:t.name,value:e,listener:c,capture:n},l?l.push(s):this.__on=[s]}}function Sj(t,e,n,i){var r=_j;t.sourceEvent=_j,_j=t;try{return e.apply(n,i)}finally{_j=r}}function Mj(t,e,n){var i=UU(t),r=i.CustomEvent;"function"==typeof r?r=new r(e,n):(r=i.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function Ej(t,e){return function(){return Mj(this,t,e)}}function Tj(t,e){return function(){return Mj(this,t,e.apply(this,arguments))}}"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(gj={mouseenter:"mouseover",mouseleave:"mouseout"}));var Cj=[null];function Aj(t,e){this._groups=t,this._parents=e}function kj(t){return"string"==typeof t?new Aj([[document.querySelector(t)]],[document.documentElement]):new Aj([[t]],Cj)}function Lj(){for(var t,e=_j;t=e.sourceEvent;)e=t;return e}function Pj(t,e){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var i=n.createSVGPoint();return i.x=e.clientX,i.y=e.clientY,[(i=i.matrixTransform(t.getScreenCTM().inverse())).x,i.y]}var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}function Nj(t){var e=Lj();return e.changedTouches&&(e=e.changedTouches[0]),Pj(t,e)}function Ij(t,e,n){arguments.length<3&&(n=e,e=Lj().changedTouches);for(var i,r=0,o=e?e.length:0;r<o;++r)if((i=e[r]).identifier===n)return Pj(t,i);return null}function Oj(){_j.stopImmediatePropagation()}function Rj(){_j.preventDefault(),_j.stopImmediatePropagation()}function zj(t){var e=t.document.documentElement,n=kj(t).on("dragstart.drag",Rj,!0);"onselectstart"in e?n.on("selectstart.drag",Rj,!0):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Dj(t,e){var n=t.document.documentElement,i=kj(t).on("dragstart.drag",null);e&&(i.on("click.drag",Rj,!0),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in n?i.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function Bj(t){return function(){return t}}function Hj(t,e,n,i,r,o,a,s,l,c){this.target=t,this.type=e,this.subject=n,this.identifier=i,this.active=r,this.x=o,this.y=a,this.dx=s,this.dy=l,this._=c}function Fj(){return!_j.button}function Vj(){return this.parentNode}function Uj(t){return null==t?{x:_j.x,y:_j.y}:t}function jj(){return"ontouchstart"in this}Aj.prototype={constructor:Aj,select:function Gj(t){"function"!=typeof t&&(t=kU(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a,s=e[r],l=s.length,c=i[r]=new Array(l),u=0;u<l;++u)(o=s[u])&&(a=t.call(o,o.__data__,u,s))&&("__data__"in o&&(a.__data__=o.__data__),c[u]=a);return new Aj(i,this._parents)},selectAll:function Wj(t){"function"!=typeof t&&(t=(function e(t){return null==t?LU:function(){return this.querySelectorAll(t)}})(t));for(var n=this._groups,i=n.length,r=[],o=[],a=0;a<i;++a)for(var s,l=n[a],c=l.length,u=0;u<c;++u)(s=l[u])&&(r.push(t.call(s,s.__data__,u,l)),o.push(s));return new Aj(r,o)},filter:function qj(t){"function"!=typeof t&&(t=(function e(t){return function(){return this.matches(t)}})(t));for(var n=this._groups,i=n.length,r=new Array(i),o=0;o<i;++o)for(var a,s=n[o],l=s.length,c=r[o]=[],u=0;u<l;++u)(a=s[u])&&t.call(a,a.__data__,u,s)&&c.push(a);return new Aj(r,this._parents)},data:function Yj(t,e){if(!t)return f=new Array(this.size()),u=-1,this.each((function(t){f[++u]=t})),f;var n=e?OU:IU,i=this._parents,r=this._groups;"function"!=typeof t&&(t=(function o(t){return function(){return t}})(t));for(var a=r.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var h=i[u],d=r[u],p=d.length,f=t.call(h,h&&h.__data__,u,i),m=f.length,g=l[u]=new Array(m),_=s[u]=new Array(m);n(h,d,g,_,c[u]=new Array(p),f,e);for(var y,v,b=0,x=0;b<m;++b)if(y=g[b]){for(b>=x&&(x=b+1);!(v=_[x])&&++x<m;);y._next=v||null}}return(s=new Aj(s,i))._enter=l,s._exit=c,s},enter:function Xj(){return new Aj(this._enter||this._groups.map(PU),this._parents)},exit:function $j(){return new Aj(this._exit||this._groups.map(PU),this._parents)},join:function Kj(t,e,n){var i=this.enter(),r=this,o=this.exit();return i="function"==typeof t?t(i):i.append(t+""),null!=e&&(r=e(r)),null==n?o.remove():n(o),i&&r?i.merge(r).order():r},merge:function Zj(t){for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new Aj(o,this._parents)},order:function Jj(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,r=t[e],o=r.length-1,a=r[o];--o>=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function Qj(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=RU);for(var n=this._groups,i=n.length,r=new Array(i),o=0;o<i;++o){for(var a,s=n[o],l=s.length,c=r[o]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(e)}return new Aj(r,this._parents).order()},call:function tG(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function eG(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t},node:function nG(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],r=0,o=i.length;r<o;++r){var a=i[r];if(a)return a}return null},size:function iG(){var t=0;return this.each((function(){++t})),t},empty:function rG(){return!this.node()},each:function oG(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var r,o=e[n],a=0,s=o.length;a<s;++a)(r=o[a])&&t.call(r,r.__data__,a,o);return this},attr:function aG(t,e){var n=MU(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?DU:zU:"function"==typeof e?n.local?VU:FU:n.local?HU:BU)(n,e))},style:function sG(t,e,n){return arguments.length>1?this.each((null==e?jU:"function"==typeof e?WU:GU)(t,e,null==n?"":n)):qU(this.node(),t)},property:function lG(t,e){return arguments.length>1?this.each((null==e?YU:"function"==typeof e?$U:XU)(t,e)):this.node()[t]},classed:function cG(t,e){var n=KU(t+"");if(arguments.length<2){for(var i=ZU(this.node()),r=-1,o=n.length;++r<o;)if(!i.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?ij:e?ej:nj)(n,e))},text:function uG(t){return arguments.length?this.each(null==t?rj:("function"==typeof t?aj:oj)(t)):this.node().textContent},html:function hG(t){return arguments.length?this.each(null==t?sj:("function"==typeof t?cj:lj)(t)):this.node().innerHTML},raise:function dG(){return this.each(uj)},lower:function pG(){return this.each(hj)},append:function fG(t){var e="function"==typeof t?t:CU(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function mG(t,e){var n="function"==typeof t?t:CU(t),i=null==e?dj:"function"==typeof e?e:kU(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function gG(){return this.each(pj)},clone:function _G(t){return this.select(t?mj:fj)},datum:function yG(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function vG(t,e,n){var i,r,o=bj(t+""),a=o.length;if(!(arguments.length<2)){for(s=e?wj:xj,null==n&&(n=!1),i=0;i<a;++i)this.each(s(o[i],e,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(i=0,l=s[c];i<a;++i)if((r=o[i]).type===l.type&&r.name===l.name)return l.value},dispatch:function bG(t,e){return this.each(("function"==typeof e?Tj:Ej)(t,e))}},Hj.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var xG={},wG={};function SG(t){return new Function("d","return {"+t.map((function(t,e){return JSON.stringify(t)+": d["+e+"]"})).join(",")+"}")}function MG(t){var e=new RegExp('["'+t+"\n\r]"),n=t.charCodeAt(0);function i(t,e){var i,r=[],o=t.length,a=0,s=0,l=o<=0,c=!1;function u(){if(l)return wG;if(c)return c=!1,xG;var e,i,r=a;if(34===t.charCodeAt(r)){for(;a++<o&&34!==t.charCodeAt(a)||34===t.charCodeAt(++a););return(e=a)>=o?l=!0:10===(i=t.charCodeAt(a++))?c=!0:13===i&&(c=!0,10===t.charCodeAt(a)&&++a),t.slice(r+1,e-1).replace(/""/g,'"')}for(;a<o;){if(10===(i=t.charCodeAt(e=a++)))c=!0;else if(13===i)c=!0,10===t.charCodeAt(a)&&++a;else if(i!==n)continue;return t.slice(r,e)}return l=!0,t.slice(r,o)}for(10===t.charCodeAt(o-1)&&--o,13===t.charCodeAt(o-1)&&--o;(i=u())!==wG;){for(var h=[];i!==xG&&i!==wG;)h.push(i),i=u();e&&null==(h=e(h,s++))||r.push(h)}return r}function r(e){return e.map(o).join(t)}function o(t){return null==t?"":e.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function a(t,e){var n,r,o=i(t,(function(t,i){if(n)return n(t,i-1);r=t,n=e?(function o(t,e){var n=SG(t);return function(i,r){return e(n(i),r,t)}})(t,e):SG(t)}));return o.columns=r||[],o},parseRows:i,format:function s(e,n){return null==n&&(n=(function i(t){var e=Object.create(null),n=[];return t.forEach((function(t){for(var i in t)i in e||n.push(e[i]=i)})),n})(e)),[n.map(o).join(t)].concat(e.map((function(e){return n.map((function(t){return o(e[t])})).join(t)}))).join("\n")},formatRows:function l(t){return t.map(r).join("\n")}}}var EG=MG(","),TG=EG.parse,CG=EG.parseRows,AG=EG.format,kG=EG.formatRows,LG=MG("\t"),PG=LG.parse,NG=LG.parseRows,IG=LG.format,OG=LG.formatRows;function RG(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function zG(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var DG=(function t(e){function n(t){return Math.pow(t,e)}return e=+e,n.exponent=t,n})(3),BG=(function t(e){function n(t){return 1-Math.pow(1-t,e)}return e=+e,n.exponent=t,n})(3),HG=(function t(e){function n(t){return((t*=2)<=1?Math.pow(t,e):2-Math.pow(2-t,e))/2}return e=+e,n.exponent=t,n})(3),FG=Math.PI,VG=FG/2;function UG(t){return(1-Math.cos(FG*t))/2}function jG(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function GG(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var WG=7.5625;function qG(t){return(t=+t)<.36363636363636365?WG*t*t:t<.7272727272727273?WG*(t-=.5454545454545454)*t+.75:t<.9090909090909091?WG*(t-=.8181818181818182)*t+.9375:WG*(t-=.9545454545454546)*t+.984375}var YG=1.70158,XG=(function t(e){function n(t){return t*t*((e+1)*t-e)}return e=+e,n.overshoot=t,n})(YG),$G=(function t(e){function n(t){return--t*t*((e+1)*t+e)+1}return e=+e,n.overshoot=t,n})(YG),KG=(function t(e){function n(t){return((t*=2)<1?t*t*((e+1)*t-e):(t-=2)*t*((e+1)*t+e)+2)/2}return e=+e,n.overshoot=t,n})(YG),ZG=2*Math.PI,JG=(function t(e,n){var i=Math.asin(1/(e=Math.max(1,e)))*(n/=ZG);function r(t){return e*Math.pow(2,10*--t)*Math.sin((i-t)/n)}return r.amplitude=function(e){return t(e,n*ZG)},r.period=function(n){return t(e,n)},r})(1,.3),QG=(function t(e,n){var i=Math.asin(1/(e=Math.max(1,e)))*(n/=ZG);function r(t){return 1-e*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/n)}return r.amplitude=function(e){return t(e,n*ZG)},r.period=function(n){return t(e,n)},r})(1,.3),tW=(function t(e,n){var i=Math.asin(1/(e=Math.max(1,e)))*(n/=ZG);function r(t){return((t=2*t-1)<0?e*Math.pow(2,10*t)*Math.sin((i-t)/n):2-e*Math.pow(2,-10*t)*Math.sin((i+t)/n))/2}return r.amplitude=function(e){return t(e,n*ZG)},r.period=function(n){return t(e,n)},r})(1,.3);function eW(t){return function(){return t}}function nW(){return 1e-6*(Math.random()-.5)}function iW(t,e,n,i){if(isNaN(e)||isNaN(n))return t;var r,o,a,s,l,c,u,h,d,p=t._root,f={data:i},m=t._x0,g=t._y0,_=t._x1,y=t._y1;if(!p)return t._root=f,t;for(;p.length;)if((c=e>=(o=(m+_)/2))?m=o:_=o,(u=n>=(a=(g+y)/2))?g=a:y=a,r=p,!(p=p[h=u<<1|c]))return r[h]=f,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&n===l)return f.next=p,r?r[h]=f:t._root=f,t;do{r=r?r[h]=new Array(4):t._root=new Array(4),(c=e>=(o=(m+_)/2))?m=o:_=o,(u=n>=(a=(g+y)/2))?g=a:y=a}while((h=u<<1|c)==(d=(l>=a)<<1|s>=o));return r[d]=p,r[h]=f,t}function rW(t,e,n,i,r){this.node=t,this.x0=e,this.y0=n,this.x1=i,this.y1=r}function oW(t){return t[0]}function aW(t){return t[1]}function sW(t,e,n){var i=new lW(null==e?oW:e,null==n?aW:n,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function lW(t,e,n,i,r,o){this._x=t,this._y=e,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function cW(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var uW=sW.prototype=lW.prototype;function hW(t){return t.x+t.vx}function dW(t){return t.y+t.vy}uW.copy=function(){var t,e,n=new lW(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root;if(!i)return n;if(!i.length)return n._root=cW(i),n;for(t=[{source:i,target:n._root=new Array(4)}];i=t.pop();)for(var r=0;r<4;++r)(e=i.source[r])&&(e.length?t.push({source:e,target:i.target[r]=new Array(4)}):i.target[r]=cW(e));return n},uW.add=function pW(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return iW(this.cover(e,n),e,n,t)},uW.addAll=function fW(t){var e,n,i,r,o=t.length,a=new Array(o),s=new Array(o),l=1/0,c=1/0,u=-1/0,h=-1/0;for(n=0;n<o;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(r=+this._y.call(null,e))||(a[n]=i,s[n]=r,i<l&&(l=i),i>u&&(u=i),r<c&&(c=r),r>h&&(h=r));if(l>u||c>h)return this;for(this.cover(l,c).cover(u,h),n=0;n<o;++n)iW(this,a[n],s[n],t[n]);return this},uW.cover=function mW(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,i=this._y0,r=this._x1,o=this._y1;if(isNaN(n))r=(n=Math.floor(t))+1,o=(i=Math.floor(e))+1;else{for(var a,s,l=r-n,c=this._root;n>t||t>=r||i>e||e>=o;)switch(s=(e<i)<<1|t<n,(a=new Array(4))[s]=c,c=a,l*=2,s){case 0:r=n+l,o=i+l;break;case 1:n=r-l,o=i+l;break;case 2:r=n+l,i=o-l;break;case 3:n=r-l,i=o-l}this._root&&this._root.length&&(this._root=c)}return this._x0=n,this._y0=i,this._x1=r,this._y1=o,this},uW.data=function gW(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},uW.extent=function _W(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},uW.find=function yW(t,e,n){var i,r,o,a,s,l,c,u=this._x0,h=this._y0,d=this._x1,p=this._y1,f=[],m=this._root;for(m&&f.push(new rW(m,u,h,d,p)),null==n?n=1/0:(u=t-n,h=e-n,d=t+n,p=e+n,n*=n);l=f.pop();)if(!(!(m=l.node)||(r=l.x0)>d||(o=l.y0)>p||(a=l.x1)<u||(s=l.y1)<h))if(m.length){var g=(r+a)/2,_=(o+s)/2;f.push(new rW(m[3],g,_,a,s),new rW(m[2],r,_,g,s),new rW(m[1],g,o,a,_),new rW(m[0],r,o,g,_)),(c=(e>=_)<<1|t>=g)&&(l=f[f.length-1],f[f.length-1]=f[f.length-1-c],f[f.length-1-c]=l)}else{var y=t-+this._x.call(null,m.data),v=e-+this._y.call(null,m.data),b=y*y+v*v;if(b<n){var x=Math.sqrt(n=b);u=t-x,h=e-x,d=t+x,p=e+x,i=m.data}}return i},uW.remove=function vW(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var e,n,i,r,o,a,s,l,c,u,h,d,p=this._root,f=this._x0,m=this._y0,g=this._x1,_=this._y1;if(!p)return this;if(p.length)for(;;){if((c=o>=(s=(f+g)/2))?f=s:g=s,(u=a>=(l=(m+_)/2))?m=l:_=l,e=p,!(p=p[h=u<<1|c]))return this;if(!p.length)break;(e[h+1&3]||e[h+2&3]||e[h+3&3])&&(n=e,d=h)}for(;p.data!==t;)if(i=p,!(p=p.next))return this;return(r=p.next)&&delete p.next,i?(r?i.next=r:delete i.next,this):e?(r?e[h]=r:delete e[h],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(n?n[d]=p:this._root=p),this):(this._root=r,this)},uW.removeAll=function bW(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},uW.root=function xW(){return this._root},uW.size=function wW(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},uW.visit=function SW(t){var e,n,i,r,o,a,s=[],l=this._root;for(l&&s.push(new rW(l,this._x0,this._y0,this._x1,this._y1));e=s.pop();)if(!t(l=e.node,i=e.x0,r=e.y0,o=e.x1,a=e.y1)&&l.length){var c=(i+o)/2,u=(r+a)/2;(n=l[3])&&s.push(new rW(n,c,u,o,a)),(n=l[2])&&s.push(new rW(n,i,u,c,a)),(n=l[1])&&s.push(new rW(n,c,r,o,u)),(n=l[0])&&s.push(new rW(n,i,r,c,u))}return this},uW.visitAfter=function MW(t){var e,n=[],i=[];for(this._root&&n.push(new rW(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var r=e.node;if(r.length){var o,a=e.x0,s=e.y0,l=e.x1,c=e.y1,u=(a+l)/2,h=(s+c)/2;(o=r[0])&&n.push(new rW(o,a,s,u,h)),(o=r[1])&&n.push(new rW(o,u,s,l,h)),(o=r[2])&&n.push(new rW(o,a,h,u,c)),(o=r[3])&&n.push(new rW(o,u,h,l,c))}i.push(e)}for(;e=i.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},uW.x=function EW(t){return arguments.length?(this._x=t,this):this._x},uW.y=function TW(t){return arguments.length?(this._y=t,this):this._y};var CW="$";function AW(){}function kW(t,e){var n=new AW;if(t instanceof AW)t.each((function(t,e){n.set(e,t)}));else if(Array.isArray(t)){var i,r=-1,o=t.length;if(null==e)for(;++r<o;)n.set(r,t[r]);else for(;++r<o;)n.set(e(i=t[r],r,t),i)}else if(t)for(var a in t)n.set(a,t[a]);return n}function LW(){}AW.prototype=kW.prototype={constructor:AW,has:function(t){return CW+t in this},get:function(t){return this[CW+t]},set:function(t,e){return this[CW+t]=e,this},remove:function(t){var e=CW+t;return e in this&&delete this[e]},clear:function(){for(var t in this)t[0]===CW&&delete this[t]},keys:function(){var t=[];for(var e in this)e[0]===CW&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)e[0]===CW&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)e[0]===CW&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)e[0]===CW&&++t;return t},empty:function(){for(var t in this)if(t[0]===CW)return!1;return!0},each:function(t){for(var e in this)e[0]===CW&&t(this[e],e.slice(1),this)}};var PW=kW.prototype;function NW(t){return t.index}function IW(t,e){var n=t.get(e);if(!n)throw new Error("missing: "+e);return n}LW.prototype={constructor:LW,has:PW.has,add:function(t){return this[CW+(t+="")]=t,this},remove:PW.remove,clear:PW.clear,values:PW.keys,size:PW.size,empty:PW.empty,each:PW.each};var OW={value:function(){}};function RW(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new zW(i)}function zW(t){this._=t}function DW(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function BW(t,e){for(var n,i=0,r=t.length;i<r;++i)if((n=t[i]).name===e)return n.value}function HW(t,e,n){for(var i=0,r=t.length;i<r;++i)if(t[i].name===e){t[i]=OW,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}zW.prototype=RW.prototype={constructor:zW,on:function(t,e){var n,i=this._,r=DW(t+"",i),o=-1,a=r.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o<a;)if(n=(t=r[o]).type)i[n]=HW(i[n],t.name,e);else if(null==e)for(n in i)i[n]=HW(i[n],t.name,null);return this}for(;++o<a;)if((n=(t=r[o]).type)&&(n=BW(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new zW(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,r=new Array(n),o=0;o<n;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(i=this._[t]).length;o<n;++o)i[o].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)}};var FW,VW,UW=0,jW=0,GW=0,WW=0,qW=0,YW=0,XW="object"==typeof performance&&performance.now?performance:Date,$W="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function KW(){return qW||($W(ZW),qW=XW.now()+YW)}function ZW(){qW=0}function JW(){this._call=this._time=this._next=null}function QW(t,e,n){var i=new JW;return i.restart(t,e,n),i}function tq(){qW=(WW=XW.now())+YW,UW=jW=0;try{!(function t(){KW(),++UW;for(var t,e=FW;e;)(t=qW-e._time)>=0&&e._call.call(null,t),e=e._next;--UW})()}finally{UW=0,(function e(){for(var t,e,n=FW,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:FW=e);VW=t,nq(i)})(),qW=0}}function eq(){var t=XW.now(),e=t-WW;e>1e3&&(YW-=e,WW=t)}function nq(t){UW||(jW&&(jW=clearTimeout(jW)),t-qW>24?(t<1/0&&(jW=setTimeout(tq,t-XW.now()-YW)),GW&&(GW=clearInterval(GW))):(GW||(WW=XW.now(),GW=setInterval(eq,1e3)),UW=1,$W(tq)))}function iq(t){return t.x}function rq(t){return t.y}JW.prototype=QW.prototype={constructor:JW,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?KW():+n)+(null==e?0:+e),this._next||VW===this||(VW?VW._next=this:FW=this,VW=this),this._call=t,this._time=n,nq()},stop:function(){this._call&&(this._call=null,this._time=1/0,nq())}};var oq,aq=Math.PI*(3-Math.sqrt(5));function sq(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,i=t.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+t.slice(n+1)]}function lq(t){return(t=sq(Math.abs(t)))?t[1]:NaN}function cq(t,e){var n=sq(t,e);if(!n)return t+"";var i=n[0],r=n[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}var uq={"":function hq(t,e){t:for(var n,i=(t=t.toPrecision(e)).length,r=1,o=-1;r<i;++r)switch(t[r]){case".":o=n=r;break;case"0":0===o&&(o=r),n=r;break;case"e":break t;default:o>0&&(o=0)}return o>0?t.slice(0,o)+t.slice(n+1):t},"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return cq(100*t,e)},r:cq,s:function dq(t,e){var n=sq(t,e);if(!n)return t+"";var i=n[0],r=n[1],o=r-(oq=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+sq(t,Math.max(0,e+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},pq=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;function fq(t){return new mq(t)}function mq(t){if(!(e=pq.exec(t)))throw new Error("invalid format: "+t);var e,n=e[1]||" ",i=e[2]||">",r=e[3]||"-",o=e[4]||"",a=!!e[5],s=e[6]&&+e[6],l=!!e[7],c=e[8]&&+e[8].slice(1),u=e[9]||"";"n"===u?(l=!0,u="g"):uq[u]||(u=""),(a||"0"===n&&"="===i)&&(a=!0,n="0",i="="),this.fill=n,this.align=i,this.sign=r,this.symbol=o,this.zero=a,this.width=s,this.comma=l,this.precision=c,this.type=u}function gq(t){return t}fq.prototype=mq.prototype,mq.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var _q,yq,vq,bq=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function xq(t){var e=t.grouping&&t.thousands?(function n(t,e){return function(n,i){for(var r=n.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(n.substring(r-=s,r+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}})(t.grouping,t.thousands):gq,i=t.currency,r=t.decimal,o=t.numerals?(function a(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}})(t.numerals):gq,s=t.percent||"%";function l(t){var n=(t=fq(t)).fill,a=t.align,l=t.sign,c=t.symbol,u=t.zero,h=t.width,d=t.comma,p=t.precision,f=t.type,m="$"===c?i[0]:"#"===c&&/[boxX]/.test(f)?"0"+f.toLowerCase():"",g="$"===c?i[1]:/[%p]/.test(f)?s:"",_=uq[f],y=!f||/[defgprs%]/.test(f);function v(t){var i,s,c,v=m,b=g;if("c"===f)b=_(t)+b,t="";else{var x=(t=+t)<0;if(t=_(Math.abs(t),p),x&&0==+t&&(x=!1),v=(x?"("===l?l:"-":"-"===l||"("===l?"":l)+v,b=("s"===f?bq[8+oq/3]:"")+b+(x&&"("===l?")":""),y)for(i=-1,s=t.length;++i<s;)if(48>(c=t.charCodeAt(i))||c>57){b=(46===c?r+t.slice(i+1):t.slice(i))+b,t=t.slice(0,i);break}}d&&!u&&(t=e(t,1/0));var w=v.length+t.length+b.length,S=w<h?new Array(h-w+1).join(n):"";switch(d&&u&&(t=e(S+t,S.length?h-b.length:1/0),S=""),a){case"<":t=v+t+b+S;break;case"=":t=v+S+t+b;break;case"^":t=S.slice(0,w=S.length>>1)+v+t+b+S.slice(w);break;default:t=S+v+t+b}return o(t)}return p=null==p?f?6:12:/[gprs]/.test(f)?Math.max(1,Math.min(21,p)):Math.max(0,Math.min(20,p)),v.toString=function(){return t+""},v}return{format:l,formatPrefix:function c(t,e){var n=l(((t=fq(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(lq(e)/3))),r=Math.pow(10,-i),o=bq[8+i/3];return function(t){return n(r*t)+o}}}}function wq(t){return _q=xq(t),yq=_q.format,vq=_q.formatPrefix,_q}function Sq(){return new Mq}function Mq(){this.reset()}wq({decimal:".",thousands:",",grouping:[3],currency:["$",""]}),Mq.prototype={constructor:Mq,reset:function(){this.s=this.t=0},add:function(t){Tq(Eq,t,this.t),Tq(this,Eq.s,this.s),this.s?this.t+=Eq.t:this.s=Eq.t},valueOf:function(){return this.s}};var Eq=new Mq;function Tq(t,e,n){var i=t.s=e+n,r=i-e;t.t=e-(i-r)+(n-r)}var Cq=1e-6,Aq=Math.PI,kq=Aq/2,Lq=Aq/4,Pq=2*Aq,Nq=180/Aq,Iq=Aq/180,Oq=Math.abs,Rq=Math.atan,zq=Math.atan2,Dq=Math.cos,Bq=Math.ceil,Hq=Math.exp,Fq=Math.log,Vq=Math.pow,Uq=Math.sin,jq=Math.sign||function(t){return t>0?1:t<0?-1:0},Gq=Math.sqrt,Wq=Math.tan;function qq(t){return t>1?0:t<-1?Aq:Math.acos(t)}function Yq(t){return t>1?kq:t<-1?-kq:Math.asin(t)}function Xq(t){return(t=Uq(t/2))*t}function $q(){}function Kq(t,e){t&&Jq.hasOwnProperty(t.type)&&Jq[t.type](t,e)}var Zq={Feature:function(t,e){Kq(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,r=n.length;++i<r;)Kq(n[i].geometry,e)}},Jq={Sphere:function(t,e){e.sphere()},Point:function(t,e){e.point((t=t.coordinates)[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)e.point((t=n[i])[0],t[1],t[2])},LineString:function(t,e){Qq(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)Qq(n[i],e,0)},Polygon:function(t,e){tY(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)tY(n[i],e)},GeometryCollection:function(t,e){for(var n=t.geometries,i=-1,r=n.length;++i<r;)Kq(n[i],e)}};function Qq(t,e,n){var i,r=-1,o=t.length-n;for(e.lineStart();++r<o;)e.point((i=t[r])[0],i[1],i[2]);e.lineEnd()}function tY(t,e){var n=-1,i=t.length;for(e.polygonStart();++n<i;)Qq(t[n],e,1);e.polygonEnd()}function eY(t,e){t&&Zq.hasOwnProperty(t.type)?Zq[t.type](t,e):Kq(t,e)}var nY,iY,rY,oY,aY,sY=Sq(),lY=Sq(),cY={point:$q,lineStart:$q,lineEnd:$q,polygonStart:function(){sY.reset(),cY.lineStart=uY,cY.lineEnd=hY},polygonEnd:function(){var t=+sY;lY.add(t<0?Pq+t:t),this.lineStart=this.lineEnd=this.point=$q},sphere:function(){lY.add(Pq)}};function uY(){cY.point=dY}function hY(){pY(nY,iY)}function dY(t,e){cY.point=pY,nY=t,iY=e,rY=t*=Iq,oY=Dq(e=(e*=Iq)/2+Lq),aY=Uq(e)}function pY(t,e){var n=(t*=Iq)-rY,i=n>=0?1:-1,r=i*n,o=Dq(e=(e*=Iq)/2+Lq),a=Uq(e),s=aY*a,l=oY*o+s*Dq(r),c=s*i*Uq(r);sY.add(zq(c,l)),rY=t,oY=o,aY=a}function fY(t){return[zq(t[1],t[0]),Yq(t[2])]}function mY(t){var e=t[0],n=t[1],i=Dq(n);return[i*Dq(e),i*Uq(e),Uq(n)]}function gY(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function _Y(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function yY(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function vY(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function bY(t){var e=Gq(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var xY,wY,SY,MY,EY,TY,CY,AY,kY,LY,PY,NY,IY,OY,RY,zY,DY,BY,HY,FY,VY,UY,jY,GY,WY,qY,YY=Sq(),XY={point:$Y,lineStart:ZY,lineEnd:JY,polygonStart:function(){XY.point=QY,XY.lineStart=tX,XY.lineEnd=eX,YY.reset(),cY.polygonStart()},polygonEnd:function(){cY.polygonEnd(),XY.point=$Y,XY.lineStart=ZY,XY.lineEnd=JY,sY<0?(xY=-(SY=180),wY=-(MY=90)):YY>Cq?MY=90:YY<-1e-6&&(wY=-90),LY[0]=xY,LY[1]=SY}};function $Y(t,e){kY.push(LY=[xY=t,SY=t]),e<wY&&(wY=e),e>MY&&(MY=e)}function KY(t,e){var n=mY([t*Iq,e*Iq]);if(AY){var i=_Y(AY,n),r=_Y([i[1],-i[0],0],i);bY(r),r=fY(r);var o,a=t-EY,s=a>0?1:-1,l=r[0]*Nq*s,c=Oq(a)>180;c^(s*EY<l&&l<s*t)?(o=r[1]*Nq)>MY&&(MY=o):c^(s*EY<(l=(l+360)%360-180)&&l<s*t)?(o=-r[1]*Nq)<wY&&(wY=o):(e<wY&&(wY=e),e>MY&&(MY=e)),c?t<EY?nX(xY,t)>nX(xY,SY)&&(SY=t):nX(t,SY)>nX(xY,SY)&&(xY=t):SY>=xY?(t<xY&&(xY=t),t>SY&&(SY=t)):t>EY?nX(xY,t)>nX(xY,SY)&&(SY=t):nX(t,SY)>nX(xY,SY)&&(xY=t)}else kY.push(LY=[xY=t,SY=t]);e<wY&&(wY=e),e>MY&&(MY=e),AY=n,EY=t}function ZY(){XY.point=KY}function JY(){LY[0]=xY,LY[1]=SY,XY.point=$Y,AY=null}function QY(t,e){if(AY){var n=t-EY;YY.add(Oq(n)>180?n+(n>0?360:-360):n)}else TY=t,CY=e;cY.point(t,e),KY(t,e)}function tX(){cY.lineStart()}function eX(){QY(TY,CY),cY.lineEnd(),Oq(YY)>Cq&&(xY=-(SY=180)),LY[0]=xY,LY[1]=SY,AY=null}function nX(t,e){return(e-=t)<0?e+360:e}function iX(t,e){return t[0]-e[0]}function rX(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}var oX={sphere:$q,point:aX,lineStart:lX,lineEnd:hX,polygonStart:function(){oX.lineStart=dX,oX.lineEnd=pX},polygonEnd:function(){oX.lineStart=lX,oX.lineEnd=hX}};function aX(t,e){t*=Iq;var n=Dq(e*=Iq);sX(n*Dq(t),n*Uq(t),Uq(e))}function sX(t,e,n){++PY,IY+=(t-IY)/PY,OY+=(e-OY)/PY,RY+=(n-RY)/PY}function lX(){oX.point=cX}function cX(t,e){t*=Iq;var n=Dq(e*=Iq);GY=n*Dq(t),WY=n*Uq(t),qY=Uq(e),oX.point=uX,sX(GY,WY,qY)}function uX(t,e){t*=Iq;var n=Dq(e*=Iq),i=n*Dq(t),r=n*Uq(t),o=Uq(e),a=zq(Gq((a=WY*o-qY*r)*a+(a=qY*i-GY*o)*a+(a=GY*r-WY*i)*a),GY*i+WY*r+qY*o);NY+=a,zY+=a*(GY+(GY=i)),DY+=a*(WY+(WY=r)),BY+=a*(qY+(qY=o)),sX(GY,WY,qY)}function hX(){oX.point=aX}function dX(){oX.point=fX}function pX(){mX(UY,jY),oX.point=aX}function fX(t,e){UY=t,jY=e,t*=Iq,e*=Iq,oX.point=mX;var n=Dq(e);GY=n*Dq(t),WY=n*Uq(t),qY=Uq(e),sX(GY,WY,qY)}function mX(t,e){t*=Iq;var n=Dq(e*=Iq),i=n*Dq(t),r=n*Uq(t),o=Uq(e),a=WY*o-qY*r,s=qY*i-GY*o,l=GY*r-WY*i,c=Gq(a*a+s*s+l*l),u=Yq(c),h=c&&-u/c;HY+=h*a,FY+=h*s,VY+=h*l,NY+=u,zY+=u*(GY+(GY=i)),DY+=u*(WY+(WY=r)),BY+=u*(qY+(qY=o)),sX(GY,WY,qY)}function gX(t){return function(){return t}}function _X(t,e){function n(n,i){return n=t(n,i),e(n[0],n[1])}return t.invert&&e.invert&&(n.invert=function(n,i){return(n=e.invert(n,i))&&t.invert(n[0],n[1])}),n}function yX(t,e){return[t>Aq?t-Pq:t<-Aq?t+Pq:t,e]}function vX(t,e,n){return(t%=Pq)?e||n?_X(xX(t),wX(e,n)):xX(t):e||n?wX(e,n):yX}function bX(t){return function(e,n){return[(e+=t)>Aq?e-Pq:e<-Aq?e+Pq:e,n]}}function xX(t){var e=bX(t);return e.invert=bX(-t),e}function wX(t,e){var n=Dq(t),i=Uq(t),r=Dq(e),o=Uq(e);function a(t,e){var a=Dq(e),s=Dq(t)*a,l=Uq(t)*a,c=Uq(e),u=c*n+s*i;return[zq(l*r-u*o,s*n-c*i),Yq(u*r+l*o)]}return a.invert=function(t,e){var a=Dq(e),s=Dq(t)*a,l=Uq(t)*a,c=Uq(e),u=c*r-l*o;return[zq(l*r+c*o,s*n+u*i),Yq(u*n-s*i)]},a}function SX(t){function e(e){return(e=t(e[0]*Iq,e[1]*Iq))[0]*=Nq,e[1]*=Nq,e}return t=vX(t[0]*Iq,t[1]*Iq,t.length>2?t[2]*Iq:0),e.invert=function(e){return(e=t.invert(e[0]*Iq,e[1]*Iq))[0]*=Nq,e[1]*=Nq,e},e}function MX(t,e,n,i,r,o){if(n){var a=Dq(e),s=Uq(e),l=i*n;null==r?(r=e+i*Pq,o=e-l/2):(r=EX(a,r),o=EX(a,o),(i>0?r<o:r>o)&&(r+=i*Pq));for(var c,u=r;i>0?u>o:u<o;u-=l)c=fY([a,-s*Dq(u),-s*Uq(u)]),t.point(c[0],c[1])}}function EX(t,e){(e=mY(e))[0]-=t,bY(e);var n=qq(-e[1]);return((-e[2]<0?-n:n)+Pq-Cq)%Pq}function TX(){var t,e=[];return{point:function(e,n){t.push([e,n])},lineStart:function(){e.push(t=[])},lineEnd:$q,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}}function CX(t,e){return Oq(t[0]-e[0])<Cq&&Oq(t[1]-e[1])<Cq}function AX(t,e,n,i){this.x=t,this.z=e,this.o=n,this.e=i,this.v=!1,this.n=this.p=null}function kX(t,e,n,i,r){var o,a,s=[],l=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,n,i=t[0],a=t[e];if(CX(i,a)){for(r.lineStart(),o=0;o<e;++o)r.point((i=t[o])[0],i[1]);r.lineEnd()}else s.push(n=new AX(i,t,null,!0)),l.push(n.o=new AX(i,null,n,!1)),s.push(n=new AX(a,t,null,!1)),l.push(n.o=new AX(a,null,n,!0))}})),s.length){for(l.sort(e),LX(s),LX(l),o=0,a=l.length;o<a;++o)l[o].e=n=!n;for(var c,u,h=s[0];;){for(var d=h,p=!0;d.v;)if((d=d.n)===h)return;c=d.z,r.lineStart();do{if(d.v=d.o.v=!0,d.e){if(p)for(o=0,a=c.length;o<a;++o)r.point((u=c[o])[0],u[1]);else i(d.x,d.n.x,1,r);d=d.n}else{if(p)for(o=(c=d.p.z).length-1;o>=0;--o)r.point((u=c[o])[0],u[1]);else i(d.x,d.p.x,-1,r);d=d.p}c=(d=d.o).z,p=!p}while(!d.v);r.lineEnd()}}}function LX(t){if(e=t.length){for(var e,n,i=0,r=t[0];++i<e;)r.n=n=t[i],n.p=r,r=n;r.n=n=t[0],n.p=r}}yX.invert=yX;var PX=Sq();function NX(t,e){var n=e[0],i=e[1],r=[Uq(n),-Dq(n),0],o=0,a=0;PX.reset();for(var s=0,l=t.length;s<l;++s)if(u=(c=t[s]).length)for(var c,u,h=c[u-1],d=h[0],p=h[1]/2+Lq,f=Uq(p),m=Dq(p),g=0;g<u;++g,d=y,f=b,m=x,h=_){var _=c[g],y=_[0],v=_[1]/2+Lq,b=Uq(v),x=Dq(v),w=y-d,S=w>=0?1:-1,M=S*w,E=M>Aq,T=f*b;if(PX.add(zq(T*S*Uq(M),m*x+T*Dq(M))),o+=E?w+S*Pq:w,E^d>=n^y>=n){var C=_Y(mY(h),mY(_));bY(C);var A=_Y(r,C);bY(A);var k=(E^w>=0?-1:1)*Yq(A[2]);(i>k||i===k&&(C[0]||C[1]))&&(a+=E^w>=0?1:-1)}}return(o<-1e-6||o<Cq&&PX<-1e-6)^1&a}function IX(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function OX(t,e,n){t=+t,e=+e,n=(r=arguments.length)<2?(e=t,t=0,1):r<3?1:+n;for(var i=-1,r=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(r);++i<r;)o[i]=t+i*n;return o}function RX(t){for(var e,n,i,r=t.length,o=-1,a=0;++o<r;)a+=t[o].length;for(n=new Array(a);--r>=0;)for(e=(i=t[r]).length;--e>=0;)n[--a]=i[e];return n}function zX(t,e,n,i){return function(r){var o,a,s,l=e(r),c=TX(),u=e(c),h=!1,d={point:p,lineStart:m,lineEnd:g,polygonStart:function(){d.point=_,d.lineStart=y,d.lineEnd=v,a=[],o=[]},polygonEnd:function(){d.point=p,d.lineStart=m,d.lineEnd=g,a=RX(a);var t=NX(o,i);a.length?(h||(r.polygonStart(),h=!0),kX(a,BX,t,n,r)):t&&(h||(r.polygonStart(),h=!0),r.lineStart(),n(null,null,1,r),r.lineEnd()),h&&(r.polygonEnd(),h=!1),a=o=null},sphere:function(){r.polygonStart(),r.lineStart(),n(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function p(e,n){t(e,n)&&r.point(e,n)}function f(t,e){l.point(t,e)}function m(){d.point=f,l.lineStart()}function g(){d.point=p,l.lineEnd()}function _(t,e){s.push([t,e]),u.point(t,e)}function y(){u.lineStart(),s=[]}function v(){_(s[0][0],s[0][1]),u.lineEnd();var t,e,n,i,l=u.clean(),d=c.result(),p=d.length;if(s.pop(),o.push(s),s=null,p)if(1&l){if((e=(n=d[0]).length-1)>0){for(h||(r.polygonStart(),h=!0),r.lineStart(),t=0;t<e;++t)r.point((i=n[t])[0],i[1]);r.lineEnd()}}else p>1&&2&l&&d.push(d.pop().concat(d.shift())),a.push(d.filter(DX))}return d}}function DX(t){return t.length>1}function BX(t,e){return((t=t.x)[0]<0?t[1]-kq-Cq:kq-t[1])-((e=e.x)[0]<0?e[1]-kq-Cq:kq-e[1])}!(function HX(t){1===t.length&&(t=(function e(t){return function(e,n){return IX(t(e),n)}})(t))})(IX);var FX=zX((function(){return!0}),(function VX(t){var e,n=NaN,i=NaN,r=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(o,a){var s=o>0?Aq:-Aq,l=Oq(o-n);Oq(l-Aq)<Cq?(t.point(n,i=(i+a)/2>0?kq:-kq),t.point(r,i),t.lineEnd(),t.lineStart(),t.point(s,i),t.point(o,i),e=0):r!==s&&l>=Aq&&(Oq(n-r)<Cq&&(n-=r*Cq),Oq(o-s)<Cq&&(o-=s*Cq),i=(function c(t,e,n,i){var r,o,a=Uq(t-n);return Oq(a)>Cq?Rq((Uq(e)*(o=Dq(i))*Uq(n)-Uq(i)*(r=Dq(e))*Uq(t))/(r*o*a)):(e+i)/2})(n,i,o,a),t.point(r,i),t.lineEnd(),t.lineStart(),t.point(s,i),e=0),t.point(n=o,i=a),r=s},lineEnd:function(){t.lineEnd(),n=i=NaN},clean:function(){return 2-e}}}),(function UX(t,e,n,i){var r;if(null==t)i.point(-Aq,r=n*kq),i.point(0,r),i.point(Aq,r),i.point(Aq,0),i.point(Aq,-r),i.point(0,-r),i.point(-Aq,-r),i.point(-Aq,0),i.point(-Aq,r);else if(Oq(t[0]-e[0])>Cq){var o=t[0]<e[0]?Aq:-Aq;i.point(-o,r=n*o/2),i.point(0,r),i.point(o,r)}else i.point(e[0],e[1])}),[-Aq,-kq]);function jX(t){var e=Dq(t),n=6*Iq,i=e>0,r=Oq(e)>Cq;function o(t,n){return Dq(t)*Dq(n)>e}function a(t,n,i){var r=[1,0,0],o=_Y(mY(t),mY(n)),a=gY(o,o),s=o[0],l=a-s*s;if(!l)return!i&&t;var c=e*a/l,u=-e*s/l,h=_Y(r,o),d=vY(r,c);yY(d,vY(o,u));var p=h,f=gY(d,p),m=gY(p,p),g=f*f-m*(gY(d,d)-1);if(!(g<0)){var _=Gq(g),y=vY(p,(-f-_)/m);if(yY(y,d),y=fY(y),!i)return y;var v,b=t[0],x=n[0],w=t[1],S=n[1];x<b&&(v=b,b=x,x=v);var M=x-b,E=Oq(M-Aq)<Cq;if(!E&&S<w&&(v=w,w=S,S=v),E||M<Cq?E?w+S>0^y[1]<(Oq(y[0]-b)<Cq?w:S):w<=y[1]&&y[1]<=S:M>Aq^(b<=y[0]&&y[0]<=x)){var T=vY(p,(-f+_)/m);return yY(T,d),[y,fY(T)]}}}function s(e,n){var r=i?t:Aq-t,o=0;return e<-r?o|=1:e>r&&(o|=2),n<-r?o|=4:n>r&&(o|=8),o}return zX(o,(function l(t){var e,n,l,c,u;return{lineStart:function(){c=l=!1,u=1},point:function(h,d){var p,f=[h,d],m=o(h,d),g=i?m?0:s(h,d):m?s(h+(h<0?Aq:-Aq),d):0;if(!e&&(c=l=m)&&t.lineStart(),m!==l&&(!(p=a(e,f))||CX(e,p)||CX(f,p))&&(f[0]+=Cq,f[1]+=Cq,m=o(f[0],f[1])),m!==l)u=0,m?(t.lineStart(),p=a(f,e),t.point(p[0],p[1])):(p=a(e,f),t.point(p[0],p[1]),t.lineEnd()),e=p;else if(r&&e&&i^m){var _;g&n||!(_=a(f,e,!0))||(u=0,i?(t.lineStart(),t.point(_[0][0],_[0][1]),t.point(_[1][0],_[1][1]),t.lineEnd()):(t.point(_[1][0],_[1][1]),t.lineEnd(),t.lineStart(),t.point(_[0][0],_[0][1])))}!m||e&&CX(e,f)||t.point(f[0],f[1]),e=f,l=m,n=g},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return u|(c&&l)<<1}}}),(function c(e,i,r,o){MX(o,t,n,r,e,i)}),i?[0,-t]:[-Aq,t-Aq])}var GX=1e9,WX=-GX;function qX(t,e,n,i){function r(r,o){return t<=r&&r<=n&&e<=o&&o<=i}function o(r,o,s,c){var u=0,h=0;if(null==r||(u=a(r,s))!==(h=a(o,s))||l(r,o)<0^s>0)do{c.point(0===u||3===u?t:n,u>1?i:e)}while((u=(u+s+4)%4)!==h);else c.point(o[0],o[1])}function a(i,r){return Oq(i[0]-t)<Cq?r>0?0:3:Oq(i[0]-n)<Cq?r>0?2:1:Oq(i[1]-e)<Cq?r>0?1:0:r>0?3:2}function s(t,e){return l(t.x,e.x)}function l(t,e){var n=a(t,1),i=a(e,1);return n!==i?n-i:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(a){var l,c,u,h,d,p,f,m,g,_,y,v=a,b=TX(),x={point:T,lineStart:function w(){x.point=C,c&&c.push(u=[]),_=!0,g=!1,f=m=NaN},lineEnd:function S(){l&&(C(h,d),p&&g&&b.rejoin(),l.push(b.result())),x.point=T,g&&v.lineEnd()},polygonStart:function M(){v=b,l=[],c=[],y=!0},polygonEnd:function E(){var e=(function n(){for(var e=0,n=0,r=c.length;n<r;++n)for(var o,a,s=c[n],l=1,u=s.length,h=s[0],d=h[0],p=h[1];l<u;++l)o=d,a=p,d=(h=s[l])[0],p=h[1],a<=i?p>i&&(d-o)*(i-a)>(p-a)*(t-o)&&++e:p<=i&&(d-o)*(i-a)<(p-a)*(t-o)&&--e;return e})(),r=y&&e,h=(l=RX(l)).length;(r||h)&&(a.polygonStart(),r&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),h&&kX(l,s,e,o,a),a.polygonEnd()),v=a,l=c=u=null}};function T(t,e){r(t,e)&&v.point(t,e)}function C(o,a){var s=r(o,a);if(c&&u.push([o,a]),_)h=o,d=a,p=s,_=!1,s&&(v.lineStart(),v.point(o,a));else if(s&&g)v.point(o,a);else{var l=[f=Math.max(WX,Math.min(GX,f)),m=Math.max(WX,Math.min(GX,m))],b=[o=Math.max(WX,Math.min(GX,o)),a=Math.max(WX,Math.min(GX,a))];!(function x(t,e,n,i,r,o){var a,s=t[0],l=t[1],c=0,u=1,h=e[0]-s,d=e[1]-l;if(a=n-s,h||!(a>0)){if(a/=h,h<0){if(a<c)return;a<u&&(u=a)}else if(h>0){if(a>u)return;a>c&&(c=a)}if(a=r-s,h||!(a<0)){if(a/=h,h<0){if(a>u)return;a>c&&(c=a)}else if(h>0){if(a<c)return;a<u&&(u=a)}if(a=i-l,d||!(a>0)){if(a/=d,d<0){if(a<c)return;a<u&&(u=a)}else if(d>0){if(a>u)return;a>c&&(c=a)}if(a=o-l,d||!(a<0)){if(a/=d,d<0){if(a>u)return;a>c&&(c=a)}else if(d>0){if(a<c)return;a<u&&(u=a)}return c>0&&(t[0]=s+c*h,t[1]=l+c*d),u<1&&(e[0]=s+u*h,e[1]=l+u*d),!0}}}}})(l,b,t,e,n,i)?s&&(v.lineStart(),v.point(o,a),y=!1):(g||(v.lineStart(),v.point(l[0],l[1])),v.point(b[0],b[1]),s||v.lineEnd(),y=!1)}f=o,m=a,g=s}return x}}var YX,XX,$X,KX=Sq(),ZX={sphere:$q,point:$q,lineStart:function JX(){ZX.point=t$,ZX.lineEnd=QX},lineEnd:$q,polygonStart:$q,polygonEnd:$q};function QX(){ZX.point=ZX.lineEnd=$q}function t$(t,e){YX=t*=Iq,XX=Uq(e*=Iq),$X=Dq(e),ZX.point=e$}function e$(t,e){t*=Iq;var n=Uq(e*=Iq),i=Dq(e),r=Oq(t-YX),o=Dq(r),a=i*Uq(r),s=$X*n-XX*i*o,l=XX*n+$X*i*o;KX.add(zq(Gq(a*a+s*s),l)),YX=t,XX=n,$X=i}function n$(t){return KX.reset(),eY(t,ZX),+KX}var i$=[null,null],r$={type:"LineString",coordinates:i$};function o$(t,e){return i$[0]=t,i$[1]=e,n$(r$)}var a$={Feature:function(t,e){return l$(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,r=n.length;++i<r;)if(l$(n[i].geometry,e))return!0;return!1}},s$={Sphere:function(){return!0},Point:function(t,e){return c$(t.coordinates,e)},MultiPoint:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)if(c$(n[i],e))return!0;return!1},LineString:function(t,e){return u$(t.coordinates,e)},MultiLineString:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)if(u$(n[i],e))return!0;return!1},Polygon:function(t,e){return h$(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,i=-1,r=n.length;++i<r;)if(h$(n[i],e))return!0;return!1},GeometryCollection:function(t,e){for(var n=t.geometries,i=-1,r=n.length;++i<r;)if(l$(n[i],e))return!0;return!1}};function l$(t,e){return!(!t||!s$.hasOwnProperty(t.type))&&s$[t.type](t,e)}function c$(t,e){return 0===o$(t,e)}function u$(t,e){var n=o$(t[0],t[1]);return o$(t[0],e)+o$(e,t[1])<=n+Cq}function h$(t,e){return!!NX(t.map(d$),p$(e))}function d$(t){return(t=t.map(p$)).pop(),t}function p$(t){return[t[0]*Iq,t[1]*Iq]}function f$(t,e,n){var i=OX(t,e-Cq,n).concat(e);return function(t){return i.map((function(e){return[t,e]}))}}function m$(t,e,n){var i=OX(t,e-Cq,n).concat(e);return function(t){return i.map((function(e){return[e,t]}))}}function g$(){var t,e,n,i,r,o,a,s,l,c,u,h,d=10,p=d,f=90,m=360,g=2.5;function _(){return{type:"MultiLineString",coordinates:y()}}function y(){return OX(Bq(i/f)*f,n,f).map(u).concat(OX(Bq(s/m)*m,a,m).map(h)).concat(OX(Bq(e/d)*d,t,d).filter((function(t){return Oq(t%f)>Cq})).map(l)).concat(OX(Bq(o/p)*p,r,p).filter((function(t){return Oq(t%m)>Cq})).map(c))}return _.lines=function(){return y().map((function(t){return{type:"LineString",coordinates:t}}))},_.outline=function(){return{type:"Polygon",coordinates:[u(i).concat(h(a).slice(1),u(n).reverse().slice(1),h(s).reverse().slice(1))]}},_.extent=function(t){return arguments.length?_.extentMajor(t).extentMinor(t):_.extentMinor()},_.extentMajor=function(t){return arguments.length?(s=+t[0][1],a=+t[1][1],(i=+t[0][0])>(n=+t[1][0])&&(t=i,i=n,n=t),s>a&&(t=s,s=a,a=t),_.precision(g)):[[i,s],[n,a]]},_.extentMinor=function(n){return arguments.length?(o=+n[0][1],r=+n[1][1],(e=+n[0][0])>(t=+n[1][0])&&(n=e,e=t,t=n),o>r&&(n=o,o=r,r=n),_.precision(g)):[[e,o],[t,r]]},_.step=function(t){return arguments.length?_.stepMajor(t).stepMinor(t):_.stepMinor()},_.stepMajor=function(t){return arguments.length?(f=+t[0],m=+t[1],_):[f,m]},_.stepMinor=function(t){return arguments.length?(d=+t[0],p=+t[1],_):[d,p]},_.precision=function(d){return arguments.length?(g=+d,l=f$(o,r,90),c=m$(e,t,g),u=f$(s,a,90),h=m$(i,n,g),_):g},_.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}function _$(t){return t}var y$,v$,b$,x$,w$=Sq(),S$=Sq(),M$={point:$q,lineStart:$q,lineEnd:$q,polygonStart:function(){M$.lineStart=E$,M$.lineEnd=A$},polygonEnd:function(){M$.lineStart=M$.lineEnd=M$.point=$q,w$.add(Oq(S$)),S$.reset()},result:function(){var t=w$/2;return w$.reset(),t}};function E$(){M$.point=T$}function T$(t,e){M$.point=C$,y$=b$=t,v$=x$=e}function C$(t,e){S$.add(x$*t-b$*e),b$=t,x$=e}function A$(){C$(y$,v$)}var k$,L$,P$,N$,I$=1/0,O$=I$,R$=-I$,z$=R$,D$={point:function B$(t,e){t<I$&&(I$=t),t>R$&&(R$=t),e<O$&&(O$=e),e>z$&&(z$=e)},lineStart:$q,lineEnd:$q,polygonStart:$q,polygonEnd:$q,result:function(){var t=[[I$,O$],[R$,z$]];return R$=z$=-(O$=I$=1/0),t}},H$=0,F$=0,V$=0,U$=0,j$=0,G$=0,W$=0,q$=0,Y$=0,X$={point:$$,lineStart:K$,lineEnd:Q$,polygonStart:function(){X$.lineStart=tK,X$.lineEnd=eK},polygonEnd:function(){X$.point=$$,X$.lineStart=K$,X$.lineEnd=Q$},result:function(){var t=Y$?[W$/Y$,q$/Y$]:G$?[U$/G$,j$/G$]:V$?[H$/V$,F$/V$]:[NaN,NaN];return H$=F$=V$=U$=j$=G$=W$=q$=Y$=0,t}};function $$(t,e){H$+=t,F$+=e,++V$}function K$(){X$.point=Z$}function Z$(t,e){X$.point=J$,$$(P$=t,N$=e)}function J$(t,e){var n=t-P$,i=e-N$,r=Gq(n*n+i*i);U$+=r*(P$+t)/2,j$+=r*(N$+e)/2,G$+=r,$$(P$=t,N$=e)}function Q$(){X$.point=$$}function tK(){X$.point=nK}function eK(){iK(k$,L$)}function nK(t,e){X$.point=iK,$$(k$=P$=t,L$=N$=e)}function iK(t,e){var n=t-P$,i=e-N$,r=Gq(n*n+i*i);U$+=r*(P$+t)/2,j$+=r*(N$+e)/2,G$+=r,W$+=(r=N$*t-P$*e)*(P$+t),q$+=r*(N$+e),Y$+=3*r,$$(P$=t,N$=e)}function rK(t){this._context=t}rK.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,Pq)}},result:$q};var oK,aK,sK,lK,cK,uK=Sq(),hK={point:$q,lineStart:function(){hK.point=dK},lineEnd:function(){oK&&pK(aK,sK),hK.point=$q},polygonStart:function(){oK=!0},polygonEnd:function(){oK=null},result:function(){var t=+uK;return uK.reset(),t}};function dK(t,e){hK.point=pK,aK=lK=t,sK=cK=e}function pK(t,e){uK.add(Gq((lK-=t)*lK+(cK-=e)*cK)),lK=t,cK=e}function fK(){this._string=[]}function mK(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function gK(t){return function(e){var n=new _K;for(var i in t)n[i]=t[i];return n.stream=e,n}}function _K(){}function yK(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=i&&t.clipExtent(null),eY(n,t.stream(D$)),e(D$.result()),null!=i&&t.clipExtent(i),t}function vK(t,e,n){return yK(t,(function(n){var i=e[1][0]-e[0][0],r=e[1][1]-e[0][1],o=Math.min(i/(n[1][0]-n[0][0]),r/(n[1][1]-n[0][1])),a=+e[0][0]+(i-o*(n[1][0]+n[0][0]))/2,s=+e[0][1]+(r-o*(n[1][1]+n[0][1]))/2;t.scale(150*o).translate([a,s])}),n)}function bK(t,e,n){return vK(t,[[0,0],e],n)}function xK(t,e,n){return yK(t,(function(n){var i=+e,r=i/(n[1][0]-n[0][0]),o=(i-r*(n[1][0]+n[0][0]))/2,a=-r*n[0][1];t.scale(150*r).translate([o,a])}),n)}function wK(t,e,n){return yK(t,(function(n){var i=+e,r=i/(n[1][1]-n[0][1]),o=-r*n[0][0],a=(i-r*(n[1][1]+n[0][1]))/2;t.scale(150*r).translate([o,a])}),n)}fK.prototype={_radius:4.5,_circle:mK(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=mK(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},_K.prototype={constructor:_K,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var SK=Dq(30*Iq);function MK(t,e){return+e?(function n(t,e){function n(i,r,o,a,s,l,c,u,h,d,p,f,m,g){var _=c-i,y=u-r,v=_*_+y*y;if(v>4*e&&m--){var b=a+d,x=s+p,w=l+f,S=Gq(b*b+x*x+w*w),M=Yq(w/=S),E=Oq(Oq(w)-1)<Cq||Oq(o-h)<Cq?(o+h)/2:zq(x,b),T=t(E,M),C=T[0],A=T[1],k=C-i,L=A-r,P=y*k-_*L;(P*P/v>e||Oq((_*k+y*L)/v-.5)>.3||a*d+s*p+l*f<SK)&&(n(i,r,o,a,s,l,C,A,E,b/=S,x/=S,w,m,g),g.point(C,A),n(C,A,E,b,x,w,c,u,h,d,p,f,m,g))}}return function(e){var i,r,o,a,s,l,c,u,h,d,p,f,m={point:g,lineStart:_,lineEnd:v,polygonStart:function(){e.polygonStart(),m.lineStart=b},polygonEnd:function(){e.polygonEnd(),m.lineStart=_}};function g(n,i){n=t(n,i),e.point(n[0],n[1])}function _(){u=NaN,m.point=y,e.lineStart()}function y(i,r){var o=mY([i,r]),a=t(i,r);n(u,h,c,d,p,f,u=a[0],h=a[1],c=i,d=o[0],p=o[1],f=o[2],16,e),e.point(u,h)}function v(){m.point=g,e.lineEnd()}function b(){_(),m.point=x,m.lineEnd=w}function x(t,e){y(i=t,e),r=u,o=h,a=d,s=p,l=f,m.point=y}function w(){n(u,h,c,d,p,f,r,o,i,a,s,l,16,e),m.lineEnd=v,v()}return m}})(t,e):(function i(t){return gK({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})})(t)}var EK=gK({point:function(t,e){this.stream.point(t*Iq,e*Iq)}});function TK(t){return CK((function(){return t}))()}function CK(t){var e,n,i,r,o,a,s,l,c,u,h=150,d=480,p=250,f=0,m=0,g=0,_=0,y=0,v=null,b=FX,x=null,w=_$,S=.5,M=MK(C,S);function E(t){return[(t=o(t[0]*Iq,t[1]*Iq))[0]*h+n,i-t[1]*h]}function T(t){return(t=o.invert((t[0]-n)/h,(i-t[1])/h))&&[t[0]*Nq,t[1]*Nq]}function C(t,r){return[(t=e(t,r))[0]*h+n,i-t[1]*h]}function A(){o=_X(r=vX(g,_,y),e);var t=e(f,m);return n=d-t[0]*h,i=p+t[1]*h,k()}function k(){return c=u=null,E}return E.stream=function(t){return c&&u===t?c:c=EK((function e(t){return gK({point:function(e,n){var i=t(e,n);return this.stream.point(i[0],i[1])}})})(r)(b(M(w(u=t)))))},E.preclip=function(t){return arguments.length?(b=t,v=void 0,k()):b},E.postclip=function(t){return arguments.length?(w=t,x=a=s=l=null,k()):w},E.clipAngle=function(t){return arguments.length?(b=+t?jX(v=t*Iq):(v=null,FX),k()):v*Nq},E.clipExtent=function(t){return arguments.length?(w=null==t?(x=a=s=l=null,_$):qX(x=+t[0][0],a=+t[0][1],s=+t[1][0],l=+t[1][1]),k()):null==x?null:[[x,a],[s,l]]},E.scale=function(t){return arguments.length?(h=+t,A()):h},E.translate=function(t){return arguments.length?(d=+t[0],p=+t[1],A()):[d,p]},E.center=function(t){return arguments.length?(f=t[0]%360*Iq,m=t[1]%360*Iq,A()):[f*Nq,m*Nq]},E.rotate=function(t){return arguments.length?(g=t[0]%360*Iq,_=t[1]%360*Iq,y=t.length>2?t[2]%360*Iq:0,A()):[g*Nq,_*Nq,y*Nq]},E.precision=function(t){return arguments.length?(M=MK(C,S=t*t),k()):Gq(S)},E.fitExtent=function(t,e){return vK(E,t,e)},E.fitSize=function(t,e){return bK(E,t,e)},E.fitWidth=function(t,e){return xK(E,t,e)},E.fitHeight=function(t,e){return wK(E,t,e)},function(){return e=t.apply(this,arguments),E.invert=e.invert&&T,A()}}function AK(t){var e=0,n=Aq/3,i=CK(t),r=i(e,n);return r.parallels=function(t){return arguments.length?i(e=t[0]*Iq,n=t[1]*Iq):[e*Nq,n*Nq]},r}function kK(t,e){var n=Uq(t),i=(n+Uq(e))/2;if(Oq(i)<Cq)return(function r(t){var e=Dq(t);function n(t,n){return[t*e,Uq(n)/e]}return n.invert=function(t,n){return[t/e,Yq(n*e)]},n})(t);var o=1+n*(2*i-n),a=Gq(o)/i;function s(t,e){var n=Gq(o-2*i*Uq(e))/i;return[n*Uq(t*=i),a-n*Dq(t)]}return s.invert=function(t,e){var n=a-e;return[zq(t,Oq(n))/i*jq(n),Yq((o-(t*t+n*n)*i*i)/(2*i))]},s}function LK(){return AK(kK).scale(155.424).center([0,33.6442])}function PK(){return LK().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function NK(t){return function(e,n){var i=Dq(e),r=Dq(n),o=t(i*r);return[o*r*Uq(e),o*Uq(n)]}}function IK(t){return function(e,n){var i=Gq(e*e+n*n),r=t(i),o=Uq(r),a=Dq(r);return[zq(e*o,i*a),Yq(i&&n*o/i)]}}var OK=NK((function(t){return Gq(2/(1+t))}));OK.invert=IK((function(t){return 2*Yq(t/2)}));var RK=NK((function(t){return(t=qq(t))&&t/Uq(t)}));function zK(t,e){return[t,Fq(Wq((kq+e)/2))]}function DK(t){var e,n,i,r=TK(t),o=r.center,a=r.scale,s=r.translate,l=r.clipExtent,c=null;function u(){var o=Aq*a(),s=r(SX(r.rotate()).invert([0,0]));return l(null==c?[[s[0]-o,s[1]-o],[s[0]+o,s[1]+o]]:t===zK?[[Math.max(s[0]-o,c),e],[Math.min(s[0]+o,n),i]]:[[c,Math.max(s[1]-o,e)],[n,Math.min(s[1]+o,i)]])}return r.scale=function(t){return arguments.length?(a(t),u()):a()},r.translate=function(t){return arguments.length?(s(t),u()):s()},r.center=function(t){return arguments.length?(o(t),u()):o()},r.clipExtent=function(t){return arguments.length?(null==t?c=e=n=i=null:(c=+t[0][0],e=+t[0][1],n=+t[1][0],i=+t[1][1]),u()):null==c?null:[[c,e],[n,i]]},u()}function BK(t){return Wq((kq+t)/2)}function HK(t,e){var n=Dq(t),i=t===e?Uq(t):Fq(n/Dq(e))/Fq(BK(e)/BK(t)),r=n*Vq(BK(t),i)/i;if(!i)return zK;function o(t,e){r>0?e<-kq+Cq&&(e=-kq+Cq):e>kq-Cq&&(e=kq-Cq);var n=r/Vq(BK(e),i);return[n*Uq(i*t),r-n*Dq(i*t)]}return o.invert=function(t,e){var n=r-e,o=jq(i)*Gq(t*t+n*n);return[zq(t,Oq(n))/i*jq(n),2*Rq(Vq(r/o,1/i))-kq]},o}function FK(t,e){return[t,e]}function VK(t,e){var n=Dq(t),i=t===e?Uq(t):(n-Dq(e))/(e-t),r=n/i+t;if(Oq(i)<Cq)return FK;function o(t,e){var n=r-e,o=i*t;return[n*Uq(o),r-n*Dq(o)]}return o.invert=function(t,e){var n=r-e;return[zq(t,Oq(n))/i*jq(n),r-jq(i)*Gq(t*t+n*n)]},o}function UK(t,e){var n=Dq(e),i=Dq(t)*n;return[n*Uq(t)/i,Uq(e)/i]}function jK(t,e,n,i){return 1===t&&1===e&&0===n&&0===i?_$:gK({point:function(r,o){this.stream.point(r*t+n,o*e+i)}})}function GK(t,e){var n=e*e,i=n*n;return[t*(.8707-.131979*n+i*(i*(.003971*n-.001529*i)-.013791)),e*(1.007226+n*(.015085+i*(.028874*n-.044475-.005916*i)))]}function WK(t,e){return[Dq(e)*Uq(t),Uq(e)]}function qK(t,e){var n=Dq(e),i=1+Dq(t)*n;return[n*Uq(t)/i,Uq(e)/i]}function YK(t,e){return[Fq(Wq((kq+e)/2)),-t]}function XK(t,e){return t.parent===e.parent?1:2}function $K(t,e){return t+e.x}function KK(t,e){return Math.max(t,e.y)}function ZK(t){var e=0,n=t.children,i=n&&n.length;if(i)for(;--i>=0;)e+=n[i].value;else e=1;t.value=e}function JK(t,e){var n,i,r,o,a,s=new nZ(t),l=+t.value&&(s.value=t.value),c=[s];for(null==e&&(e=QK);n=c.pop();)if(l&&(n.value=+n.data.value),(r=e(n.data))&&(a=r.length))for(n.children=new Array(a),o=a-1;o>=0;--o)c.push(i=n.children[o]=new nZ(r[o])),i.parent=n,i.depth=n.depth+1;return s.eachBefore(eZ)}function QK(t){return t.children}function tZ(t){t.data=t.data.data}function eZ(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function nZ(t){this.data=t,this.depth=this.height=0,this.parent=null}RK.invert=IK((function(t){return t})),zK.invert=function(t,e){return[t,2*Rq(Hq(e))-kq]},FK.invert=FK,UK.invert=IK(Rq),GK.invert=function(t,e){var n,i=e,r=25;do{var o=i*i,a=o*o;i-=n=(i*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-e)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(Oq(n)>Cq&&--r>0);return[t/(.8707+(o=i*i)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),i]},WK.invert=IK(Yq),qK.invert=IK((function(t){return 2*Rq(t)})),YK.invert=function(t,e){return[-e,2*Rq(Hq(t))-kq]},nZ.prototype=JK.prototype={constructor:nZ,count:function iZ(){return this.eachAfter(ZK)},each:function rZ(t){var e,n,i,r,o=this,a=[o];do{for(e=a.reverse(),a=[];o=e.pop();)if(t(o),n=o.children)for(i=0,r=n.length;i<r;++i)a.push(n[i])}while(a.length);return this},eachAfter:function oZ(t){for(var e,n,i,r=this,o=[r],a=[];r=o.pop();)if(a.push(r),e=r.children)for(n=0,i=e.length;n<i;++n)o.push(e[n]);for(;r=a.pop();)t(r);return this},eachBefore:function aZ(t){for(var e,n,i=this,r=[i];i=r.pop();)if(t(i),e=i.children)for(n=e.length-1;n>=0;--n)r.push(e[n]);return this},sum:function sZ(t){return this.eachAfter((function(e){for(var n=+t(e.data)||0,i=e.children,r=i&&i.length;--r>=0;)n+=i[r].value;e.value=n}))},sort:function lZ(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function cZ(t){for(var e=this,n=(function i(t,e){if(t===e)return t;var n=t.ancestors(),i=e.ancestors(),r=null;for(t=n.pop(),e=i.pop();t===e;)r=t,t=n.pop(),e=i.pop();return r})(e,t),r=[e];e!==n;)r.push(e=e.parent);for(var o=r.length;t!==n;)r.splice(o,0,t),t=t.parent;return r},ancestors:function uZ(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function hZ(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function dZ(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function pZ(){var t=this,e=[];return t.each((function(n){n!==t&&e.push({source:n.parent,target:n})})),e},copy:function fZ(){return JK(this).eachBefore(tZ)}};var mZ=Array.prototype.slice;function gZ(t){for(var e,n,i=0,r=(t=(function o(t){for(var e,n,i=t.length;i;)n=Math.random()*i--|0,e=t[i],t[i]=t[n],t[n]=e;return t})(mZ.call(t))).length,a=[];i<r;)e=t[i],n&&vZ(n,e)?++i:(n=xZ(a=_Z(a,e)),i=0);return n}function _Z(t,e){var n,i;if(bZ(e,t))return[e];for(n=0;n<t.length;++n)if(yZ(e,t[n])&&bZ(wZ(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(i=n+1;i<t.length;++i)if(yZ(wZ(t[n],t[i]),e)&&yZ(wZ(t[n],e),t[i])&&yZ(wZ(t[i],e),t[n])&&bZ(SZ(t[n],t[i],e),t))return[t[n],t[i],e];throw new Error}function yZ(t,e){var n=t.r-e.r,i=e.x-t.x,r=e.y-t.y;return n<0||n*n<i*i+r*r}function vZ(t,e){var n=t.r-e.r+1e-6,i=e.x-t.x,r=e.y-t.y;return n>0&&n*n>i*i+r*r}function bZ(t,e){for(var n=0;n<e.length;++n)if(!vZ(t,e[n]))return!1;return!0}function xZ(t){switch(t.length){case 1:return(function e(t){return{x:t.x,y:t.y,r:t.r}})(t[0]);case 2:return wZ(t[0],t[1]);case 3:return SZ(t[0],t[1],t[2])}}function wZ(t,e){var n=t.x,i=t.y,r=t.r,o=e.x,a=e.y,s=e.r,l=o-n,c=a-i,u=s-r,h=Math.sqrt(l*l+c*c);return{x:(n+o+l/h*u)/2,y:(i+a+c/h*u)/2,r:(h+r+s)/2}}function SZ(t,e,n){var i=t.x,r=t.y,o=t.r,a=e.x,s=e.y,l=e.r,c=n.x,u=n.y,h=n.r,d=i-a,p=i-c,f=r-s,m=r-u,g=l-o,_=h-o,y=i*i+r*r-o*o,v=y-a*a-s*s+l*l,b=y-c*c-u*u+h*h,x=p*f-d*m,w=(f*b-m*v)/(2*x)-i,S=(m*g-f*_)/x,M=(p*v-d*b)/(2*x)-r,E=(d*_-p*g)/x,T=S*S+E*E-1,C=2*(o+w*S+M*E),A=w*w+M*M-o*o,k=-(T?(C+Math.sqrt(C*C-4*T*A))/(2*T):A/C);return{x:i+w+S*k,y:r+M+E*k,r:k}}function MZ(t,e,n){var i=t.x,r=t.y,o=e.r+n.r,a=t.r+n.r,s=e.x-i,l=e.y-r,c=s*s+l*l;if(c){var u=.5+((a*=a)-(o*=o))/(2*c),h=Math.sqrt(Math.max(0,2*o*(a+c)-(a-=c)*a-o*o))/(2*c);n.x=i+u*s+h*l,n.y=r+u*l-h*s}else n.x=i+a,n.y=r}function EZ(t,e){var n=e.x-t.x,i=e.y-t.y,r=t.r+e.r;return r*r-1e-6>n*n+i*i}function TZ(t){var e=t._,n=t.next._,i=e.r+n.r,r=(e.x*n.r+n.x*e.r)/i,o=(e.y*n.r+n.y*e.r)/i;return r*r+o*o}function CZ(t){this._=t,this.next=null,this.previous=null}function AZ(t){if(!(r=t.length))return 0;var e,n,i,r,o,a,s,l,c,u,h;if((e=t[0]).x=0,e.y=0,!(r>1))return e.r;if(e.x=-(n=t[1]).r,n.x=e.r,n.y=0,!(r>2))return e.r+n.r;MZ(n,e,i=t[2]),e=new CZ(e),n=new CZ(n),i=new CZ(i),e.next=i.previous=n,n.next=e.previous=i,i.next=n.previous=e;t:for(s=3;s<r;++s){MZ(e._,n._,i=t[s]),i=new CZ(i),l=n.next,c=e.previous,u=n._.r,h=e._.r;do{if(u<=h){if(EZ(l._,i._)){e.next=n=l,n.previous=e,--s;continue t}u+=l._.r,l=l.next}else{if(EZ(c._,i._)){(e=c).next=n,n.previous=e,--s;continue t}h+=c._.r,c=c.previous}}while(l!==c.next);for(i.previous=e,i.next=n,e.next=n.previous=n=i,o=TZ(e);(i=i.next)!==n;)(a=TZ(i))<o&&(e=i,o=a);n=e.next}for(e=[n._],i=n;(i=i.next)!==n;)e.push(i._);for(i=gZ(e),s=0;s<r;++s)(e=t[s]).x-=i.x,e.y-=i.y;return i.r}function kZ(t){return null==t?null:LZ(t)}function LZ(t){if("function"!=typeof t)throw new Error;return t}function PZ(){return 0}function NZ(t){return function(){return t}}function IZ(t){return Math.sqrt(t.value)}function OZ(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function RZ(t,e){return function(n){if(i=n.children){var i,r,o,a=i.length,s=t(n)*e||0;if(s)for(r=0;r<a;++r)i[r].r+=s;if(o=AZ(i),s)for(r=0;r<a;++r)i[r].r-=s;n.r=o+s}}}function zZ(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function DZ(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function BZ(t,e,n,i,r){for(var o,a=t.children,s=-1,l=a.length,c=t.value&&(i-e)/t.value;++s<l;)(o=a[s]).y0=n,o.y1=r,o.x0=e,o.x1=e+=o.value*c}var HZ={depth:-1},FZ={};function VZ(t){return t.id}function UZ(t){return t.parentId}function jZ(t,e){return t.parent===e.parent?1:2}function GZ(t){var e=t.children;return e?e[0]:t.t}function WZ(t){var e=t.children;return e?e[e.length-1]:t.t}function qZ(t,e,n){var i=n/(e.i-t.i);e.c-=i,e.s+=n,t.c+=i,e.z+=n,e.m+=n}function YZ(t,e,n){return t.a.parent===e.parent?t.a:n}function XZ(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}function $Z(t,e,n,i,r){for(var o,a=t.children,s=-1,l=a.length,c=t.value&&(r-n)/t.value;++s<l;)(o=a[s]).x0=e,o.x1=i,o.y0=n,o.y1=n+=o.value*c}XZ.prototype=Object.create(nZ.prototype);var KZ=(1+Math.sqrt(5))/2;function ZZ(t,e,n,i,r,o){for(var a,s,l,c,u,h,d,p,f,m,g,_=[],y=e.children,v=0,b=0,x=y.length,w=e.value;v<x;){l=r-n,c=o-i;do{u=y[b++].value}while(!u&&b<x);for(h=d=u,g=u*u*(m=Math.max(c/l,l/c)/(w*t)),f=Math.max(d/g,g/h);b<x;++b){if(u+=s=y[b].value,s<h&&(h=s),s>d&&(d=s),g=u*u*m,(p=Math.max(d/g,g/h))>f){u-=s;break}f=p}_.push(a={value:u,dice:l<c,children:y.slice(v,b)}),a.dice?BZ(a,n,i,r,w?i+=c*u/w:o):$Z(a,n,i,w?n+=l*u/w:r,o),w-=u,v=b}return _}var JZ=(function t(e){function n(t,n,i,r,o){ZZ(e,t,n,i,r,o)}return n.ratio=function(e){return t((e=+e)>1?e:1)},n})(KZ),QZ=(function t(e){function n(t,n,i,r,o){if((a=t._squarify)&&a.ratio===e)for(var a,s,l,c,u,h=-1,d=a.length,p=t.value;++h<d;){for(l=(s=a[h]).children,c=s.value=0,u=l.length;c<u;++c)s.value+=l[c].value;s.dice?BZ(s,n,i,r,i+=(o-i)*s.value/p):$Z(s,n,i,n+=(r-n)*s.value/p,o),p-=s.value}else t._squarify=a=ZZ(e,t,n,i,r,o),a.ratio=e}return n.ratio=function(e){return t((e=+e)>1?e:1)},n})(KZ);function tJ(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function eJ(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function nJ(){}var iJ=.7,rJ=1/iJ,oJ="\\s*([+-]?\\d+)\\s*",aJ="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",sJ="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",lJ=/^#([0-9a-f]{3,8})$/,cJ=new RegExp("^rgb\\("+[oJ,oJ,oJ]+"\\)$"),uJ=new RegExp("^rgb\\("+[sJ,sJ,sJ]+"\\)$"),hJ=new RegExp("^rgba\\("+[oJ,oJ,oJ,aJ]+"\\)$"),dJ=new RegExp("^rgba\\("+[sJ,sJ,sJ,aJ]+"\\)$"),pJ=new RegExp("^hsl\\("+[aJ,sJ,sJ]+"\\)$"),fJ=new RegExp("^hsla\\("+[aJ,sJ,sJ,aJ]+"\\)$"),mJ={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function gJ(){return this.rgb().formatHex()}function _J(){return this.rgb().formatRgb()}function yJ(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=lJ.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?vJ(e):3===n?new SJ(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?bJ(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?bJ(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=cJ.exec(t))?new SJ(e[1],e[2],e[3],1):(e=uJ.exec(t))?new SJ(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=hJ.exec(t))?bJ(e[1],e[2],e[3],e[4]):(e=dJ.exec(t))?bJ(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=pJ.exec(t))?CJ(e[1],e[2]/100,e[3]/100,1):(e=fJ.exec(t))?CJ(e[1],e[2]/100,e[3]/100,e[4]):mJ.hasOwnProperty(t)?vJ(mJ[t]):"transparent"===t?new SJ(NaN,NaN,NaN,0):null}function vJ(t){return new SJ(t>>16&255,t>>8&255,255&t,1)}function bJ(t,e,n,i){return i<=0&&(t=e=n=NaN),new SJ(t,e,n,i)}function xJ(t){return t instanceof nJ||(t=yJ(t)),t?new SJ((t=t.rgb()).r,t.g,t.b,t.opacity):new SJ}function wJ(t,e,n,i){return 1===arguments.length?xJ(t):new SJ(t,e,n,null==i?1:i)}function SJ(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function MJ(){return"#"+TJ(this.r)+TJ(this.g)+TJ(this.b)}function EJ(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function TJ(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function CJ(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new LJ(t,e,n,i)}function AJ(t){if(t instanceof LJ)return new LJ(t.h,t.s,t.l,t.opacity);if(t instanceof nJ||(t=yJ(t)),!t)return new LJ;if(t instanceof LJ)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),o=Math.max(e,n,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=e===o?(n-i)/s+6*(n<i):n===o?(i-e)/s+2:(e-n)/s+4,s/=l<.5?o+r:2-o-r,a*=60):s=l>0&&l<1?0:a,new LJ(a,s,l,t.opacity)}function kJ(t,e,n,i){return 1===arguments.length?AJ(t):new LJ(t,e,n,null==i?1:i)}function LJ(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function PJ(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}tJ(nJ,yJ,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:gJ,formatHex:gJ,formatHsl:function NJ(){return AJ(this).formatHsl()},formatRgb:_J,toString:_J}),tJ(SJ,wJ,eJ(nJ,{brighter:function(t){return t=null==t?rJ:Math.pow(rJ,t),new SJ(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?iJ:Math.pow(iJ,t),new SJ(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:MJ,formatHex:MJ,formatRgb:EJ,toString:EJ})),tJ(LJ,kJ,eJ(nJ,{brighter:function(t){return t=null==t?rJ:Math.pow(rJ,t),new LJ(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?iJ:Math.pow(iJ,t),new LJ(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new SJ(PJ(t>=240?t-240:t+120,r,i),PJ(t,r,i),PJ(t<120?t+240:t-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var IJ=Math.PI/180,OJ=180/Math.PI,RJ=.96422,zJ=.82521,DJ=4/29,BJ=6/29,HJ=3*BJ*BJ;function FJ(t){if(t instanceof UJ)return new UJ(t.l,t.a,t.b,t.opacity);if(t instanceof $J)return KJ(t);t instanceof SJ||(t=xJ(t));var e,n,i=qJ(t.r),r=qJ(t.g),o=qJ(t.b),a=jJ((.2225045*i+.7168786*r+.0606169*o)/1);return i===r&&r===o?e=n=a:(e=jJ((.4360747*i+.3850649*r+.1430804*o)/RJ),n=jJ((.0139322*i+.0971045*r+.7141733*o)/zJ)),new UJ(116*a-16,500*(e-a),200*(a-n),t.opacity)}function VJ(t,e,n,i){return 1===arguments.length?FJ(t):new UJ(t,e,n,null==i?1:i)}function UJ(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}function jJ(t){return t>.008856451679035631?Math.pow(t,1/3):t/HJ+DJ}function GJ(t){return t>BJ?t*t*t:HJ*(t-DJ)}function WJ(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function qJ(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function YJ(t){if(t instanceof $J)return new $J(t.h,t.c,t.l,t.opacity);if(t instanceof UJ||(t=FJ(t)),0===t.a&&0===t.b)return new $J(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*OJ;return new $J(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function XJ(t,e,n,i){return 1===arguments.length?YJ(t):new $J(t,e,n,null==i?1:i)}function $J(t,e,n,i){this.h=+t,this.c=+e,this.l=+n,this.opacity=+i}function KJ(t){if(isNaN(t.h))return new UJ(t.l,0,0,t.opacity);var e=t.h*IJ;return new UJ(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}tJ(UJ,VJ,eJ(nJ,{brighter:function(t){return new UJ(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new UJ(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return new SJ(WJ(3.1338561*(e=RJ*GJ(e))-1.6168667*(t=1*GJ(t))-.4906146*(n=zJ*GJ(n))),WJ(-.9787684*e+1.9161415*t+.033454*n),WJ(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),tJ($J,XJ,eJ(nJ,{brighter:function(t){return new $J(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new $J(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return KJ(this).rgb()}}));var ZJ=-.29227,JJ=-.90649,QJ=1.97294;function tQ(t){if(t instanceof nQ)return new nQ(t.h,t.s,t.l,t.opacity);t instanceof SJ||(t=xJ(t));var e=t.g/255,n=t.b/255,i=(-.6557636667999999*n+t.r/255*-1.7884503806-3.5172982438*e)/-5.9615122912,r=n-i,o=(QJ*(e-i)-ZJ*r)/JJ,a=Math.sqrt(o*o+r*r)/(QJ*i*(1-i)),s=a?Math.atan2(o,r)*OJ-120:NaN;return new nQ(s<0?s+360:s,a,i,t.opacity)}function eQ(t,e,n,i){return 1===arguments.length?tQ(t):new nQ(t,e,n,null==i?1:i)}function nQ(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function iQ(t,e,n,i,r){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*i+a*r)/6}function rQ(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),r=t[i],o=t[i+1];return iQ((n-i/e)*e,i>0?t[i-1]:2*r-o,r,o,i<e-1?t[i+2]:2*o-r)}}function oQ(t){var e=t.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*e);return iQ((n-i/e)*e,t[(i+e-1)%e],t[i%e],t[(i+1)%e],t[(i+2)%e])}}function aQ(t){return function(){return t}}function sQ(t,e){return function(n){return t+n*e}}function lQ(t,e){var n=e-t;return n?sQ(t,n>180||n<-180?n-360*Math.round(n/360):n):aQ(isNaN(t)?e:t)}function cQ(t,e){var n=e-t;return n?sQ(t,n):aQ(isNaN(t)?e:t)}tJ(nQ,eQ,eJ(nJ,{brighter:function(t){return t=null==t?rJ:Math.pow(rJ,t),new nQ(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?iJ:Math.pow(iJ,t),new nQ(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*IJ,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),i=Math.cos(t),r=Math.sin(t);return new SJ(255*(e+n*(-.14861*i+1.78277*r)),255*(e+n*(ZJ*i+JJ*r)),255*(e+n*(QJ*i)),this.opacity)}}));var uQ=(function t(e){var n=(function i(t){return 1==(t=+t)?cQ:function(e,n){return n-e?(function i(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}})(e,n,t):aQ(isNaN(e)?n:e)}})(e);function r(t,e){var i=n((t=wJ(t)).r,(e=wJ(e)).r),r=n(t.g,e.g),o=n(t.b,e.b),a=cQ(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=r(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r})(1);function hQ(t){return function(e){var n,i,r=e.length,o=new Array(r),a=new Array(r),s=new Array(r);for(n=0;n<r;++n)i=wJ(e[n]),o[n]=i.r||0,a[n]=i.g||0,s[n]=i.b||0;return o=t(o),a=t(a),s=t(s),i.opacity=1,function(t){return i.r=o(t),i.g=a(t),i.b=s(t),i+""}}}var dQ=hQ(rQ),pQ=hQ(oQ);function fQ(t,e){var n,i=e?e.length:0,r=t?Math.min(i,t.length):0,o=new Array(r),a=new Array(i);for(n=0;n<r;++n)o[n]=xQ(t[n],e[n]);for(;n<i;++n)a[n]=e[n];return function(t){for(n=0;n<r;++n)a[n]=o[n](t);return a}}function mQ(t,e){var n=new Date;return e-=t=+t,function(i){return n.setTime(t+e*i),n}}function gQ(t,e){return e-=t=+t,function(n){return t+e*n}}function _Q(t,e){var n,i={},r={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?i[n]=xQ(t[n],e[n]):r[n]=e[n];return function(t){for(n in i)r[n]=i[n](t);return r}}var yQ=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,vQ=new RegExp(yQ.source,"g");function bQ(t,e){var n,i,r,o=yQ.lastIndex=vQ.lastIndex=0,a=-1,s=[],l=[];for(t+="",e+="";(n=yQ.exec(t))&&(i=vQ.exec(e));)(r=i.index)>o&&(r=e.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:gQ(n,i)})),o=vQ.lastIndex;return o<e.length&&(r=e.slice(o),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?(function c(t){return function(e){return t(e)+""}})(l[0].x):(function u(t){return function(){return t}})(e):(e=l.length,function(t){for(var n,i=0;i<e;++i)s[(n=l[i]).i]=n.x(t);return s.join("")})}function xQ(t,e){var n,i=typeof e;return null==e||"boolean"===i?aQ(e):("number"===i?gQ:"string"===i?(n=yJ(e))?(e=n,uQ):bQ:e instanceof yJ?uQ:e instanceof Date?mQ:Array.isArray(e)?fQ:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?_Q:gQ)(t,e)}var wQ,SQ,MQ,EQ,TQ=180/Math.PI,CQ={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function AQ(t,e,n,i,r,o){var a,s,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*n+e*i)&&(n-=t*l,i-=e*l),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,l/=s),t*i<e*n&&(t=-t,e=-e,l=-l,a=-a),{translateX:r,translateY:o,rotate:Math.atan2(e,t)*TQ,skewX:Math.atan(l)*TQ,scaleX:a,scaleY:s}}function kQ(t,e,n,i){function r(t){return t.length?t.pop()+" ":""}return function(o,a){var s=[],l=[];return o=t(o),a=t(a),(function c(t,i,r,o,a,s){if(t!==r||i!==o){var l=a.push("translate(",null,e,null,n);s.push({i:l-4,x:gQ(t,r)},{i:l-2,x:gQ(i,o)})}else(r||o)&&a.push("translate("+r+e+o+n)})(o.translateX,o.translateY,a.translateX,a.translateY,s,l),(function u(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:gQ(t,e)})):e&&n.push(r(n)+"rotate("+e+i)})(o.rotate,a.rotate,s,l),(function h(t,e,n,o){t!==e?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:gQ(t,e)}):e&&n.push(r(n)+"skewX("+e+i)})(o.skewX,a.skewX,s,l),(function d(t,e,n,i,o,a){if(t!==n||e!==i){var s=o.push(r(o)+"scale(",null,",",null,")");a.push({i:s-4,x:gQ(t,n)},{i:s-2,x:gQ(e,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")})(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(t){for(var e,n=-1,i=l.length;++n<i;)s[(e=l[n]).i]=e.x(t);return s.join("")}}}var LQ=kQ((function PQ(t){return"none"===t?CQ:(wQ||(wQ=document.createElement("DIV"),SQ=document.documentElement,MQ=document.defaultView),wQ.style.transform=t,t=MQ.getComputedStyle(SQ.appendChild(wQ),null).getPropertyValue("transform"),SQ.removeChild(wQ),AQ(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),NQ=kQ((function IQ(t){return null==t?CQ:(EQ||(EQ=document.createElementNS("http://www.w3.org/2000/svg","g")),EQ.setAttribute("transform",t),(t=EQ.transform.baseVal.consolidate())?AQ((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):CQ)}),", ",")",")"),OQ=Math.SQRT2;function RQ(t){return((t=Math.exp(t))+1/t)/2}function zQ(t){return function(e,n){var i=t((e=kJ(e)).h,(n=kJ(n)).h),r=cQ(e.s,n.s),o=cQ(e.l,n.l),a=cQ(e.opacity,n.opacity);return function(t){return e.h=i(t),e.s=r(t),e.l=o(t),e.opacity=a(t),e+""}}}var DQ=zQ(lQ),BQ=zQ(cQ);function HQ(t){return function(e,n){var i=t((e=XJ(e)).h,(n=XJ(n)).h),r=cQ(e.c,n.c),o=cQ(e.l,n.l),a=cQ(e.opacity,n.opacity);return function(t){return e.h=i(t),e.c=r(t),e.l=o(t),e.opacity=a(t),e+""}}}var FQ=HQ(lQ),VQ=HQ(cQ);function UQ(t){return(function e(n){function i(e,i){var r=t((e=eQ(e)).h,(i=eQ(i)).h),o=cQ(e.s,i.s),a=cQ(e.l,i.l),s=cQ(e.opacity,i.opacity);return function(t){return e.h=r(t),e.s=o(t),e.l=a(Math.pow(t,n)),e.opacity=s(t),e+""}}return n=+n,i.gamma=e,i})(1)}var jQ=UQ(lQ),GQ=UQ(cQ),WQ=Math.PI,qQ=2*WQ,YQ=1e-6,XQ=qQ-YQ;function $Q(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function KQ(){return new $Q}function ZQ(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(e[1]-t[1])*(n[0]-t[0])}function JQ(t,e){return t[0]-e[0]||t[1]-e[1]}function QQ(t){for(var e=t.length,n=[0,1],i=2,r=2;r<e;++r){for(;i>1&&ZQ(t[n[i-2]],t[n[i-1]],t[r])<=0;)--i;n[i++]=r}return n.slice(0,i)}function t1(t,e,n,i){if(isNaN(e)||isNaN(n))return t;var r,o,a,s,l,c,u,h,d,p=t._root,f={data:i},m=t._x0,g=t._y0,_=t._x1,y=t._y1;if(!p)return t._root=f,t;for(;p.length;)if((c=e>=(o=(m+_)/2))?m=o:_=o,(u=n>=(a=(g+y)/2))?g=a:y=a,r=p,!(p=p[h=u<<1|c]))return r[h]=f,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&n===l)return f.next=p,r?r[h]=f:t._root=f,t;do{r=r?r[h]=new Array(4):t._root=new Array(4),(c=e>=(o=(m+_)/2))?m=o:_=o,(u=n>=(a=(g+y)/2))?g=a:y=a}while((h=u<<1|c)==(d=(l>=a)<<1|s>=o));return r[d]=p,r[h]=f,t}function e1(t,e,n,i,r){this.node=t,this.x0=e,this.y0=n,this.x1=i,this.y1=r}function n1(t){return t[0]}function i1(t){return t[1]}function r1(t,e,n){var i=new o1(null==e?n1:e,null==n?i1:n,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function o1(t,e,n,i,r,o){this._x=t,this._y=e,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function a1(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}$Q.prototype=KQ.prototype={constructor:$Q,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,r,o){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+r)+","+(this._y1=+o)},arcTo:function(t,e,n,i,r){var o=this._x1,a=this._y1,s=(n=+n)-(t=+t),l=(i=+i)-(e=+e),c=o-t,u=a-e,h=c*c+u*u;if((r=+r)<0)throw new Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(h>YQ)if(Math.abs(u*s-l*c)>YQ&&r){var d=n-o,p=i-a,f=s*s+l*l,m=d*d+p*p,g=Math.sqrt(f),_=Math.sqrt(h),y=r*Math.tan((WQ-Math.acos((f+h-m)/(2*g*_)))/2),v=y/_,b=y/g;Math.abs(v-1)>YQ&&(this._+="L"+(t+v*c)+","+(e+v*u)),this._+="A"+r+","+r+",0,0,"+ +(u*d>c*p)+","+(this._x1=t+b*s)+","+(this._y1=e+b*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,i,r,o){t=+t,e=+e;var a=(n=+n)*Math.cos(i),s=n*Math.sin(i),l=t+a,c=e+s,u=1^o,h=o?i-r:r-i;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>YQ||Math.abs(this._y1-c)>YQ)&&(this._+="L"+l+","+c),n&&(h<0&&(h=h%qQ+qQ),h>XQ?this._+="A"+n+","+n+",0,1,"+u+","+(t-a)+","+(e-s)+"A"+n+","+n+",0,1,"+u+","+(this._x1=l)+","+(this._y1=c):h>YQ&&(this._+="A"+n+","+n+",0,"+ +(h>=WQ)+","+u+","+(this._x1=t+n*Math.cos(r))+","+(this._y1=e+n*Math.sin(r))))},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};var s1=r1.prototype=o1.prototype;s1.copy=function(){var t,e,n=new o1(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root;if(!i)return n;if(!i.length)return n._root=a1(i),n;for(t=[{source:i,target:n._root=new Array(4)}];i=t.pop();)for(var r=0;r<4;++r)(e=i.source[r])&&(e.length?t.push({source:e,target:i.target[r]=new Array(4)}):i.target[r]=a1(e));return n},s1.add=function l1(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return t1(this.cover(e,n),e,n,t)},s1.addAll=function c1(t){var e,n,i,r,o=t.length,a=new Array(o),s=new Array(o),l=1/0,c=1/0,u=-1/0,h=-1/0;for(n=0;n<o;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(r=+this._y.call(null,e))||(a[n]=i,s[n]=r,i<l&&(l=i),i>u&&(u=i),r<c&&(c=r),r>h&&(h=r));for(u<l&&(l=this._x0,u=this._x1),h<c&&(c=this._y0,h=this._y1),this.cover(l,c).cover(u,h),n=0;n<o;++n)t1(this,a[n],s[n],t[n]);return this},s1.cover=function u1(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,i=this._y0,r=this._x1,o=this._y1;if(isNaN(n))r=(n=Math.floor(t))+1,o=(i=Math.floor(e))+1;else{if(!(n>t||t>r||i>e||e>o))return this;var a,s,l=r-n,c=this._root;switch(s=(e<(i+o)/2)<<1|t<(n+r)/2){case 0:do{(a=new Array(4))[s]=c,c=a}while(o=i+(l*=2),t>(r=n+l)||e>o);break;case 1:do{(a=new Array(4))[s]=c,c=a}while(o=i+(l*=2),(n=r-l)>t||e>o);break;case 2:do{(a=new Array(4))[s]=c,c=a}while(i=o-(l*=2),t>(r=n+l)||i>e);break;case 3:do{(a=new Array(4))[s]=c,c=a}while(i=o-(l*=2),(n=r-l)>t||i>e)}this._root&&this._root.length&&(this._root=c)}return this._x0=n,this._y0=i,this._x1=r,this._y1=o,this},s1.data=function h1(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},s1.extent=function d1(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},s1.find=function p1(t,e,n){var i,r,o,a,s,l,c,u=this._x0,h=this._y0,d=this._x1,p=this._y1,f=[],m=this._root;for(m&&f.push(new e1(m,u,h,d,p)),null==n?n=1/0:(u=t-n,h=e-n,d=t+n,p=e+n,n*=n);l=f.pop();)if(!(!(m=l.node)||(r=l.x0)>d||(o=l.y0)>p||(a=l.x1)<u||(s=l.y1)<h))if(m.length){var g=(r+a)/2,_=(o+s)/2;f.push(new e1(m[3],g,_,a,s),new e1(m[2],r,_,g,s),new e1(m[1],g,o,a,_),new e1(m[0],r,o,g,_)),(c=(e>=_)<<1|t>=g)&&(l=f[f.length-1],f[f.length-1]=f[f.length-1-c],f[f.length-1-c]=l)}else{var y=t-+this._x.call(null,m.data),v=e-+this._y.call(null,m.data),b=y*y+v*v;if(b<n){var x=Math.sqrt(n=b);u=t-x,h=e-x,d=t+x,p=e+x,i=m.data}}return i},s1.remove=function f1(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var e,n,i,r,o,a,s,l,c,u,h,d,p=this._root,f=this._x0,m=this._y0,g=this._x1,_=this._y1;if(!p)return this;if(p.length)for(;;){if((c=o>=(s=(f+g)/2))?f=s:g=s,(u=a>=(l=(m+_)/2))?m=l:_=l,e=p,!(p=p[h=u<<1|c]))return this;if(!p.length)break;(e[h+1&3]||e[h+2&3]||e[h+3&3])&&(n=e,d=h)}for(;p.data!==t;)if(i=p,!(p=p.next))return this;return(r=p.next)&&delete p.next,i?(r?i.next=r:delete i.next,this):e?(r?e[h]=r:delete e[h],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(n?n[d]=p:this._root=p),this):(this._root=r,this)},s1.removeAll=function m1(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},s1.root=function g1(){return this._root},s1.size=function _1(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},s1.visit=function y1(t){var e,n,i,r,o,a,s=[],l=this._root;for(l&&s.push(new e1(l,this._x0,this._y0,this._x1,this._y1));e=s.pop();)if(!t(l=e.node,i=e.x0,r=e.y0,o=e.x1,a=e.y1)&&l.length){var c=(i+o)/2,u=(r+a)/2;(n=l[3])&&s.push(new e1(n,c,u,o,a)),(n=l[2])&&s.push(new e1(n,i,u,c,a)),(n=l[1])&&s.push(new e1(n,c,r,o,u)),(n=l[0])&&s.push(new e1(n,i,r,c,u))}return this},s1.visitAfter=function v1(t){var e,n=[],i=[];for(this._root&&n.push(new e1(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var r=e.node;if(r.length){var o,a=e.x0,s=e.y0,l=e.x1,c=e.y1,u=(a+l)/2,h=(s+c)/2;(o=r[0])&&n.push(new e1(o,a,s,u,h)),(o=r[1])&&n.push(new e1(o,u,s,l,h)),(o=r[2])&&n.push(new e1(o,a,h,u,c)),(o=r[3])&&n.push(new e1(o,u,h,l,c))}i.push(e)}for(;e=i.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},s1.x=function b1(t){return arguments.length?(this._x=t,this):this._x},s1.y=function x1(t){return arguments.length?(this._y=t,this):this._y};var w1=[].slice,S1={};function M1(t){this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function E1(t){if(!t._start)try{!(function e(t){for(;t._start=t._waiting&&t._active<t._size;){var e=t._ended+t._active,n=t._tasks[e],i=n.length-1,r=n[i];n[i]=T1(t,e),--t._waiting,++t._active,n=r.apply(null,n),t._tasks[e]&&(t._tasks[e]=n||S1)}})(t)}catch(e){if(t._tasks[t._ended+t._active-1])C1(t,e);else if(!t._data)throw e}}function T1(t,e){return function(n,i){t._tasks[e]&&(--t._active,++t._ended,t._tasks[e]=null,null==t._error&&(null!=n?C1(t,n):(t._data[e]=i,t._waiting?E1(t):A1(t))))}}function C1(t,e){var n,i=t._tasks.length;for(t._error=e,t._data=void 0,t._waiting=NaN;--i>=0;)if((n=t._tasks[i])&&(t._tasks[i]=null,n.abort))try{n.abort()}catch(e){}t._active=NaN,A1(t)}function A1(t){if(!t._active&&t._call){var e=t._data;t._data=void 0,t._call(t._error,e)}}function k1(t){if(null==t)t=1/0;else if(!((t=+t)>=1))throw new Error("invalid concurrency");return new M1(t)}function L1(){return Math.random()}M1.prototype=k1.prototype={constructor:M1,defer:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("defer after await");if(null!=this._error)return this;var e=w1.call(arguments,1);return e.push(t),++this._waiting,this._tasks.push(e),E1(this),this},abort:function(){return null==this._error&&C1(this,new Error("abort")),this},await:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("multiple await");return this._call=function(e,n){t.apply(null,[e].concat(n))},A1(this),this},awaitAll:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("multiple await");return this._call=t,A1(this),this}};var P1=(function t(e){function n(t,n){return t=null==t?0:+t,n=null==n?1:+n,1===arguments.length?(n=t,t=0):n-=t,function(){return e()*n+t}}return n.source=t,n})(L1),N1=(function t(e){function n(t,n){var i,r;return t=null==t?0:+t,n=null==n?1:+n,function(){var o;if(null!=i)o=i,i=null;else do{i=2*e()-1,o=2*e()-1,r=i*i+o*o}while(!r||r>1);return t+n*o*Math.sqrt(-2*Math.log(r)/r)}}return n.source=t,n})(L1),I1=(function t(e){function n(){var t=N1.source(e).apply(this,arguments);return function(){return Math.exp(t())}}return n.source=t,n})(L1),O1=(function t(e){function n(t){return function(){for(var n=0,i=0;i<t;++i)n+=e();return n}}return n.source=t,n})(L1),R1=(function t(e){function n(t){var n=O1.source(e)(t);return function(){return n()/t}}return n.source=t,n})(L1),z1=(function t(e){function n(t){return function(){return-Math.log(1-e())/t}}return n.source=t,n})(L1);function D1(t,e){var n,i,r,o,a=sc("beforesend","progress","load","error"),s=xg(),l=new XMLHttpRequest,c=null,u=null,h=0;function d(t){var e,i=l.status;if(!i&&(function o(t){var e=t.responseType;return e&&"text"!==e?t.response:t.responseText})(l)||i>=200&&i<300||304===i){if(r)try{e=r.call(n,l)}catch(t){return void a.call("error",n,t)}else e=l;a.call("load",n,e)}else a.call("error",n,t)}if("undefined"!=typeof XDomainRequest&&!("withCredentials"in l)&&/^(http(s)?:)?\/\//.test(t)&&(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=l.ontimeout=d:l.onreadystatechange=function(t){l.readyState>3&&d(t)},l.onprogress=function(t){a.call("progress",n,t)},n={header:function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?s.get(t):(null==e?s.remove(t):s.set(t,e+""),n)},mimeType:function(t){return arguments.length?(i=null==t?null:t+"",n):i},responseType:function(t){return arguments.length?(o=t,n):o},timeout:function(t){return arguments.length?(h=+t,n):h},user:function(t){return arguments.length<1?c:(c=null==t?null:t+"",n)},password:function(t){return arguments.length<1?u:(u=null==t?null:t+"",n)},response:function(t){return r=t,n},get:function(t,e){return n.send("GET",t,e)},post:function(t,e){return n.send("POST",t,e)},send:function(e,r,d){return l.open(e,t,!0,c,u),null==i||s.has("accept")||s.set("accept",i+",*/*"),l.setRequestHeader&&s.each((function(t,e){l.setRequestHeader(e,t)})),null!=i&&l.overrideMimeType&&l.overrideMimeType(i),null!=o&&(l.responseType=o),h>0&&(l.timeout=h),null==d&&"function"==typeof r&&(d=r,r=null),null!=d&&1===d.length&&(d=(function p(t){return function(e,n){t(null==e?n:null)}})(d)),null!=d&&n.on("error",d).on("load",(function(t){d(null,t)})),a.call("beforesend",n,l),l.send(null==r?null:r),n},abort:function(){return l.abort(),n},on:function(){var t=a.on.apply(a,arguments);return t===a?n:t}},null!=e){if("function"!=typeof e)throw new Error("invalid callback: "+e);return n.get(e)}return n}function B1(t,e){return function(n,i){var r=D1(n).mimeType(t).response(e);if(null!=i){if("function"!=typeof i)throw new Error("invalid callback: "+i);return r.get(i)}return r}}var H1=B1("text/html",(function(t){return document.createRange().createContextualFragment(t.responseText)})),F1=B1("application/json",(function(t){return JSON.parse(t.responseText)})),V1=B1("text/plain",(function(t){return t.responseText})),U1=B1("application/xml",(function(t){var e=t.responseXML;if(!e)throw new Error("parse error");return e}));function j1(t,e){return function(n,i,r){arguments.length<3&&(r=i,i=null);var o=D1(n).mimeType(t);return o.row=function(t){return arguments.length?o.response(G1(e,i=t)):i},o.row(i),r?o.get(r):o}}function G1(t,e){return function(n){return t(n.responseText,e)}}var W1=j1("text/csv",Zg),q1=j1("text/tab-separated-values",o_);function Y1(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function X1(t){return 1===t.length&&(t=(function e(t){return function(e,n){return Y1(t(e),n)}})(t)),{left:function(e,n,i,r){for(null==i&&(i=0),null==r&&(r=e.length);i<r;){var o=i+r>>>1;t(e[o],n)<0?i=o+1:r=o}return i},right:function(e,n,i,r){for(null==i&&(i=0),null==r&&(r=e.length);i<r;){var o=i+r>>>1;t(e[o],n)>0?r=o:i=o+1}return i}}}var $1=X1(Y1).right;function K1(t){return null===t?NaN:+t}var Z1=Math.sqrt(50),J1=Math.sqrt(10),Q1=Math.sqrt(2);function t0(t,e,n){var i,r,o,a,s=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((i=e<t)&&(r=t,t=e,e=r),0===(a=e0(t,e,n))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),e=Math.floor(e/a),o=new Array(r=Math.ceil(e-t+1));++s<r;)o[s]=(t+s)*a;else for(t=Math.floor(t*a),e=Math.ceil(e*a),o=new Array(r=Math.ceil(t-e+1));++s<r;)o[s]=(t-s)/a;return i&&o.reverse(),o}function e0(t,e,n){var i=(e-t)/Math.max(0,n),r=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,r);return r>=0?(o>=Z1?10:o>=J1?5:o>=Q1?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=Z1?10:o>=J1?5:o>=Q1?2:1)}function n0(t,e,n){var i=Math.abs(e-t)/Math.max(0,n),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=Z1?r*=10:o>=J1?r*=5:o>=Q1&&(r*=2),e<t?-r:r}function i0(t,e,n){if(null==n&&(n=K1),i=t.length){if((e=+e)<=0||i<2)return+n(t[0],0,t);if(e>=1)return+n(t[i-1],i-1,t);var i,r=(i-1)*e,o=Math.floor(r),a=+n(t[o],o,t);return a+(+n(t[o+1],o+1,t)-a)*(r-o)}}var r0="$";function o0(){}function a0(t,e){var n=new o0;if(t instanceof o0)t.each((function(t,e){n.set(e,t)}));else if(Array.isArray(t)){var i,r=-1,o=t.length;if(null==e)for(;++r<o;)n.set(r,t[r]);else for(;++r<o;)n.set(e(i=t[r],r,t),i)}else if(t)for(var a in t)n.set(a,t[a]);return n}function s0(){}o0.prototype=a0.prototype={constructor:o0,has:function(t){return r0+t in this},get:function(t){return this[r0+t]},set:function(t,e){return this[r0+t]=e,this},remove:function(t){var e=r0+t;return e in this&&delete this[e]},clear:function(){for(var t in this)t[0]===r0&&delete this[t]},keys:function(){var t=[];for(var e in this)e[0]===r0&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)e[0]===r0&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)e[0]===r0&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)e[0]===r0&&++t;return t},empty:function(){for(var t in this)if(t[0]===r0)return!1;return!0},each:function(t){for(var e in this)e[0]===r0&&t(this[e],e.slice(1),this)}};var l0=a0.prototype;s0.prototype={constructor:s0,has:l0.has,add:function(t){return this[r0+(t+="")]=t,this},remove:l0.remove,clear:l0.clear,values:l0.keys,size:l0.size,empty:l0.empty,each:l0.each};var c0=Array.prototype,u0=c0.map,h0=c0.slice,d0={name:"implicit"};function p0(t){var e=a0(),n=[],i=d0;function r(r){var o=r+"",a=e.get(o);if(!a){if(i!==d0)return i;e.set(o,a=n.push(r))}return t[(a-1)%t.length]}return t=null==t?[]:h0.call(t),r.domain=function(t){if(!arguments.length)return n.slice();n=[],e=a0();for(var i,o,a=-1,s=t.length;++a<s;)e.has(o=(i=t[a])+"")||e.set(o,n.push(i));return r},r.range=function(e){return arguments.length?(t=h0.call(e),r):t.slice()},r.unknown=function(t){return arguments.length?(i=t,r):i},r.copy=function(){return p0().domain(n).range(t).unknown(i)},r}function f0(){var t,e,n=p0().unknown(void 0),i=n.domain,r=n.range,o=[0,1],a=!1,s=0,l=0,c=.5;function u(){var n=i().length,u=o[1]<o[0],h=o[u-0],d=o[1-u];t=(d-h)/Math.max(1,n-s+2*l),a&&(t=Math.floor(t)),h+=(d-h-t*(n-s))*c,e=t*(1-s),a&&(h=Math.round(h),e=Math.round(e));var p=(function f(t,e,n){t=+t,e=+e,n=(r=arguments.length)<2?(e=t,t=0,1):r<3?1:+n;for(var i=-1,r=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(r);++i<r;)o[i]=t+i*n;return o})(n).map((function(e){return h+t*e}));return r(u?p.reverse():p)}return delete n.unknown,n.domain=function(t){return arguments.length?(i(t),u()):i()},n.range=function(t){return arguments.length?(o=[+t[0],+t[1]],u()):o.slice()},n.rangeRound=function(t){return o=[+t[0],+t[1]],a=!0,u()},n.bandwidth=function(){return e},n.step=function(){return t},n.round=function(t){return arguments.length?(a=!!t,u()):a},n.padding=function(t){return arguments.length?(s=l=Math.max(0,Math.min(1,t)),u()):s},n.paddingInner=function(t){return arguments.length?(s=Math.max(0,Math.min(1,t)),u()):s},n.paddingOuter=function(t){return arguments.length?(l=Math.max(0,Math.min(1,t)),u()):l},n.align=function(t){return arguments.length?(c=Math.max(0,Math.min(1,t)),u()):c},n.copy=function(){return f0().domain(i()).range(o).round(a).paddingInner(s).paddingOuter(l).align(c)},u()}function m0(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return m0(e())},t}function g0(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function _0(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function y0(){}var v0=.7,b0=1/v0,x0="\\s*([+-]?\\d+)\\s*",w0="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",S0="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",M0=/^#([0-9a-f]{3,8})$/,E0=new RegExp("^rgb\\("+[x0,x0,x0]+"\\)$"),T0=new RegExp("^rgb\\("+[S0,S0,S0]+"\\)$"),C0=new RegExp("^rgba\\("+[x0,x0,x0,w0]+"\\)$"),A0=new RegExp("^rgba\\("+[S0,S0,S0,w0]+"\\)$"),k0=new RegExp("^hsl\\("+[w0,S0,S0]+"\\)$"),L0=new RegExp("^hsla\\("+[w0,S0,S0,w0]+"\\)$"),P0={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function N0(){return this.rgb().formatHex()}function I0(){return this.rgb().formatRgb()}function O0(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=M0.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?R0(e):3===n?new H0(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?z0(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?z0(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=E0.exec(t))?new H0(e[1],e[2],e[3],1):(e=T0.exec(t))?new H0(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=C0.exec(t))?z0(e[1],e[2],e[3],e[4]):(e=A0.exec(t))?z0(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=k0.exec(t))?j0(e[1],e[2]/100,e[3]/100,1):(e=L0.exec(t))?j0(e[1],e[2]/100,e[3]/100,e[4]):P0.hasOwnProperty(t)?R0(P0[t]):"transparent"===t?new H0(NaN,NaN,NaN,0):null}function R0(t){return new H0(t>>16&255,t>>8&255,255&t,1)}function z0(t,e,n,i){return i<=0&&(t=e=n=NaN),new H0(t,e,n,i)}function D0(t){return t instanceof y0||(t=O0(t)),t?new H0((t=t.rgb()).r,t.g,t.b,t.opacity):new H0}function B0(t,e,n,i){return 1===arguments.length?D0(t):new H0(t,e,n,null==i?1:i)}function H0(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function F0(){return"#"+U0(this.r)+U0(this.g)+U0(this.b)}function V0(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function U0(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function j0(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new W0(t,e,n,i)}function G0(t){if(t instanceof W0)return new W0(t.h,t.s,t.l,t.opacity);if(t instanceof y0||(t=O0(t)),!t)return new W0;if(t instanceof W0)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),o=Math.max(e,n,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=e===o?(n-i)/s+6*(n<i):n===o?(i-e)/s+2:(e-n)/s+4,s/=l<.5?o+r:2-o-r,a*=60):s=l>0&&l<1?0:a,new W0(a,s,l,t.opacity)}function W0(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function q0(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}g0(y0,O0,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:N0,formatHex:N0,formatHsl:function Y0(){return G0(this).formatHsl()},formatRgb:I0,toString:I0}),g0(H0,B0,_0(y0,{brighter:function(t){return t=null==t?b0:Math.pow(b0,t),new H0(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?v0:Math.pow(v0,t),new H0(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:F0,formatHex:F0,formatRgb:V0,toString:V0})),g0(W0,(function X0(t,e,n,i){return 1===arguments.length?G0(t):new W0(t,e,n,null==i?1:i)}),_0(y0,{brighter:function(t){return t=null==t?b0:Math.pow(b0,t),new W0(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?v0:Math.pow(v0,t),new W0(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new H0(q0(t>=240?t-240:t+120,r,i),q0(t,r,i),q0(t<120?t+240:t-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var $0=Math.PI/180,K0=180/Math.PI,Z0=-.14861,J0=1.78277,Q0=-.29227,t2=-.90649,e2=1.97294,n2=e2*t2,i2=e2*J0,r2=J0*Q0-t2*Z0;function o2(t){if(t instanceof s2)return new s2(t.h,t.s,t.l,t.opacity);t instanceof H0||(t=D0(t));var e=t.g/255,n=t.b/255,i=(r2*n+n2*(t.r/255)-i2*e)/(r2+n2-i2),r=n-i,o=(e2*(e-i)-Q0*r)/t2,a=Math.sqrt(o*o+r*r)/(e2*i*(1-i)),s=a?Math.atan2(o,r)*K0-120:NaN;return new s2(s<0?s+360:s,a,i,t.opacity)}function a2(t,e,n,i){return 1===arguments.length?o2(t):new s2(t,e,n,null==i?1:i)}function s2(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function l2(t){return function(){return t}}function c2(t,e){return function(n){return t+n*e}}function u2(t,e){var n=e-t;return n?c2(t,n):l2(isNaN(t)?e:t)}g0(s2,a2,_0(y0,{brighter:function(t){return t=null==t?b0:Math.pow(b0,t),new s2(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?v0:Math.pow(v0,t),new s2(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*$0,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),i=Math.cos(t),r=Math.sin(t);return new H0(255*(e+n*(Z0*i+J0*r)),255*(e+n*(Q0*i+t2*r)),255*(e+n*(e2*i)),this.opacity)}}));var h2=(function t(e){var n=(function i(t){return 1==(t=+t)?u2:function(e,n){return n-e?(function i(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}})(e,n,t):l2(isNaN(e)?n:e)}})(e);function r(t,e){var i=n((t=B0(t)).r,(e=B0(e)).r),r=n(t.g,e.g),o=n(t.b,e.b),a=u2(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=r(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r})(1);function d2(t,e){e||(e=[]);var n,i=t?Math.min(e.length,t.length):0,r=e.slice();return function(o){for(n=0;n<i;++n)r[n]=t[n]*(1-o)+e[n]*o;return r}}function p2(t,e){var n,i=e?e.length:0,r=t?Math.min(i,t.length):0,o=new Array(r),a=new Array(i);for(n=0;n<r;++n)o[n]=b2(t[n],e[n]);for(;n<i;++n)a[n]=e[n];return function(t){for(n=0;n<r;++n)a[n]=o[n](t);return a}}function f2(t,e){var n=new Date;return t=+t,e=+e,function(i){return n.setTime(t*(1-i)+e*i),n}}function m2(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function g2(t,e){var n,i={},r={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?i[n]=b2(t[n],e[n]):r[n]=e[n];return function(t){for(n in i)r[n]=i[n](t);return r}}var _2=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,y2=new RegExp(_2.source,"g");function v2(t,e){var n,i,r,o=_2.lastIndex=y2.lastIndex=0,a=-1,s=[],l=[];for(t+="",e+="";(n=_2.exec(t))&&(i=y2.exec(e));)(r=i.index)>o&&(r=e.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:m2(n,i)})),o=y2.lastIndex;return o<e.length&&(r=e.slice(o),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?(function c(t){return function(e){return t(e)+""}})(l[0].x):(function u(t){return function(){return t}})(e):(e=l.length,function(t){for(var n,i=0;i<e;++i)s[(n=l[i]).i]=n.x(t);return s.join("")})}function b2(t,e){var n,i=typeof e;return null==e||"boolean"===i?l2(e):("number"===i?m2:"string"===i?(n=O0(e))?(e=n,h2):v2:e instanceof O0?h2:e instanceof Date?f2:(function r(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)})(e)?d2:Array.isArray(e)?p2:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?g2:m2)(t,e)}function x2(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}function w2(t){return(function e(n){function i(e,i){var r=t((e=a2(e)).h,(i=a2(i)).h),o=u2(e.s,i.s),a=u2(e.l,i.l),s=u2(e.opacity,i.opacity);return function(t){return e.h=r(t),e.s=o(t),e.l=a(Math.pow(t,n)),e.opacity=s(t),e+""}}return n=+n,i.gamma=e,i})(1)}w2((function S2(t,e){var n=e-t;return n?c2(t,n>180||n<-180?n-360*Math.round(n/360):n):l2(isNaN(t)?e:t)}));var M2=w2(u2);function E2(t){return function(){return t}}function T2(t){return+t}var C2=[0,1];function A2(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:E2(e)}function k2(t,e,n,i){var r=t[0],o=t[1],a=e[0],s=e[1];return o<r?(r=n(o,r),a=i(s,a)):(r=n(r,o),a=i(a,s)),function(t){return a(r(t))}}function L2(t,e,n,i){var r=Math.min(t.length,e.length)-1,o=new Array(r),a=new Array(r),s=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++s<r;)o[s]=n(t[s],t[s+1]),a[s]=i(e[s],e[s+1]);return function(e){var n=$1(t,e,1,r)-1;return a[n](o[n](e))}}function P2(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function N2(t,e){var n,i,r,o=C2,a=C2,s=b2,l=!1;function c(){return n=Math.min(o.length,a.length)>2?L2:k2,i=r=null,u}function u(e){return(i||(i=n(o,a,l?(function r(t){return function(e,n){var i=t(e=+e,n=+n);return function(t){return t<=e?0:t>=n?1:i(t)}}})(t):t,s)))(+e)}return u.invert=function(t){return(r||(r=n(a,o,A2,l?(function i(t){return function(e,n){var i=t(e=+e,n=+n);return function(t){return t<=0?e:t>=1?n:i(t)}}})(e):e)))(+t)},u.domain=function(t){return arguments.length?(o=u0.call(t,T2),c()):o.slice()},u.range=function(t){return arguments.length?(a=h0.call(t),c()):a.slice()},u.rangeRound=function(t){return a=h0.call(t),s=x2,c()},u.clamp=function(t){return arguments.length?(l=!!t,c()):l},u.interpolate=function(t){return arguments.length?(s=t,c()):s},c()}function I2(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,i=t.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+t.slice(n+1)]}function O2(t){return(t=I2(Math.abs(t)))?t[1]:NaN}var R2,z2=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function D2(t){if(!(e=z2.exec(t)))throw new Error("invalid format: "+t);var e;return new B2({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function B2(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function H2(t,e){var n=I2(t,e);if(!n)return t+"";var i=n[0],r=n[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}D2.prototype=B2.prototype,B2.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var F2={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function V2(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return H2(100*t,e)},r:H2,s:function U2(t,e){var n=I2(t,e);if(!n)return t+"";var i=n[0],r=n[1],o=r-(R2=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+I2(t,Math.max(0,e+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function j2(t){return t}var G2,W2,q2,Y2=Array.prototype.map,X2=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function $2(t){var e=t.domain;return t.ticks=function(t){var n=e();return t0(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){return(function i(t,e,n){var i,r=t[0],o=t[t.length-1],a=n0(r,o,null==e?10:e);switch((n=D2(null==n?",f":n)).type){case"s":var s=Math.max(Math.abs(r),Math.abs(o));return null!=n.precision||isNaN(i=(function l(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(O2(e)/3)))-O2(Math.abs(t)))})(a,s))||(n.precision=i),q2(n,s);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(i=(function c(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,O2(e)-O2(t))+1})(a,Math.max(Math.abs(r),Math.abs(o))))||(n.precision=i-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(i=(function u(t){return Math.max(0,-O2(Math.abs(t)))})(a))||(n.precision=i-2*("%"===n.type))}return W2(n)})(e(),t,n)},t.nice=function(n){null==n&&(n=10);var i,r=e(),o=0,a=r.length-1,s=r[o],l=r[a];return l<s&&(i=s,s=l,l=i,i=o,o=a,a=i),(i=e0(s,l,n))>0?i=e0(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,n):i<0&&(i=e0(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,n)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(l/i)*i,e(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(l*i)/i,e(r)),t},t}function K2(t,e){var n,i=0,r=(t=t.slice()).length-1,o=t[i],a=t[r];return a<o&&(n=i,i=r,r=n,n=o,o=a,a=n),t[i]=e.floor(o),t[r]=e.ceil(a),t}function Z2(t,e){return(e=Math.log(e/t))?function(n){return Math.log(n/t)/e}:E2(e)}function J2(t,e){return t<0?function(n){return-Math.pow(-e,n)*Math.pow(-t,1-n)}:function(n){return Math.pow(e,n)*Math.pow(t,1-n)}}function Q2(t){return isFinite(t)?+("1e"+t):t<0?0:t}function t5(t){return 10===t?Q2:t===Math.E?Math.exp:function(e){return Math.pow(t,e)}}function e5(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(e){return Math.log(e)/t})}function n5(t){return function(e){return-t(-e)}}function i5(t,e){return t<0?-Math.pow(-t,e):Math.pow(t,e)}function r5(){var t=1,e=N2((function n(e,i){return(i=i5(i,t)-(e=i5(e,t)))?function(n){return(i5(n,t)-e)/i}:E2(i)}),(function i(e,n){return n=i5(n,t)-(e=i5(e,t)),function(i){return i5(e+n*i,1/t)}})),r=e.domain;return e.exponent=function(e){return arguments.length?(t=+e,r(r())):t},e.copy=function(){return P2(e,r5().exponent(t))},$2(e)}!(function o5(t){G2=(function e(t){var e=void 0===t.grouping||void 0===t.thousands?j2:(function n(t,e){return function(n,i){for(var r=n.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(n.substring(r-=s,r+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}})(Y2.call(t.grouping,Number),t.thousands+""),i=void 0===t.currency?"":t.currency[0]+"",r=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",a=void 0===t.numerals?j2:(function s(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}})(Y2.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"-":t.minus+"",u=void 0===t.nan?"NaN":t.nan+"";function h(t){var n=(t=D2(t)).fill,s=t.align,h=t.sign,d=t.symbol,p=t.zero,f=t.width,m=t.comma,g=t.precision,_=t.trim,y=t.type;"n"===y?(m=!0,y="g"):F2[y]||(void 0===g&&(g=12),_=!0,y="g"),(p||"0"===n&&"="===s)&&(p=!0,n="0",s="=");var v="$"===d?i:"#"===d&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",b="$"===d?r:/[%p]/.test(y)?l:"",x=F2[y],w=/[defgprs%]/.test(y);function S(t){var i,r,l,d=v,S=b;if("c"===y)S=x(t)+S,t="";else{var M=(t=+t)<0||1/t<0;if(t=isNaN(t)?u:x(Math.abs(t),g),_&&(t=(function E(t){t:for(var e,n=t.length,i=1,r=-1;i<n;++i)switch(t[i]){case".":r=e=i;break;case"0":0===r&&(r=i),e=i;break;default:if(!+t[i])break t;r>0&&(r=0)}return r>0?t.slice(0,r)+t.slice(e+1):t})(t)),M&&0==+t&&"+"!==h&&(M=!1),d=(M?"("===h?h:c:"-"===h||"("===h?"":h)+d,S=("s"===y?X2[8+R2/3]:"")+S+(M&&"("===h?")":""),w)for(i=-1,r=t.length;++i<r;)if(48>(l=t.charCodeAt(i))||l>57){S=(46===l?o+t.slice(i+1):t.slice(i))+S,t=t.slice(0,i);break}}m&&!p&&(t=e(t,1/0));var T=d.length+t.length+S.length,C=T<f?new Array(f-T+1).join(n):"";switch(m&&p&&(t=e(C+t,C.length?f-S.length:1/0),C=""),s){case"<":t=d+t+S+C;break;case"=":t=d+C+t+S;break;case"^":t=C.slice(0,T=C.length>>1)+d+t+S+C.slice(T);break;default:t=C+d+t+S}return a(t)}return g=void 0===g?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),S.toString=function(){return t+""},S}return{format:h,formatPrefix:function d(t,e){var n=h(((t=D2(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(O2(e)/3))),r=Math.pow(10,-i),o=X2[8+i/3];return function(t){return n(r*t)+o}}}})(t),W2=G2.format,q2=G2.formatPrefix})({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});var a5=new Date,s5=new Date;function l5(t,e,n,i){function r(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return r.floor=function(e){return t(e=new Date(+e)),e},r.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},r.round=function(t){var e=r(t),n=r.ceil(t);return t-e<n-t?e:n},r.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},r.range=function(n,i,o){var a,s=[];if(n=r.ceil(n),o=null==o?1:Math.floor(o),!(n<i&&o>0))return s;do{s.push(a=new Date(+n)),e(n,o),t(n)}while(a<n&&n<i);return s},r.filter=function(n){return l5((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,i){if(t>=t)if(i<0)for(;++i<=0;)for(;e(t,-1),!n(t););else for(;--i>=0;)for(;e(t,1),!n(t););}))},n&&(r.count=function(e,i){return a5.setTime(+e),s5.setTime(+i),t(a5),t(s5),Math.floor(n(a5,s5))},r.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?r.filter(i?function(e){return i(e)%t==0}:function(e){return r.count(0,e)%t==0}):r:null}),r}var c5=l5((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));c5.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?l5((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):c5:null};var u5=1e3,h5=6e4,d5=36e5,p5=864e5,f5=6048e5,m5=l5((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*u5)}),(function(t,e){return(e-t)/u5}),(function(t){return t.getUTCSeconds()})),g5=l5((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*u5)}),(function(t,e){t.setTime(+t+e*h5)}),(function(t,e){return(e-t)/h5}),(function(t){return t.getMinutes()})),_5=l5((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*u5-t.getMinutes()*h5)}),(function(t,e){t.setTime(+t+e*d5)}),(function(t,e){return(e-t)/d5}),(function(t){return t.getHours()})),y5=l5((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*h5)/p5}),(function(t){return t.getDate()-1}));function v5(t){return l5((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*h5)/f5}))}var b5=v5(0),x5=v5(1);v5(2),v5(3);var w5=v5(4);v5(5),v5(6);var S5=l5((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),M5=l5((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));M5.every=function(t){return isFinite(t=Math.floor(t))&&t>0?l5((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var E5=l5((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*h5)}),(function(t,e){return(e-t)/h5}),(function(t){return t.getUTCMinutes()})),T5=l5((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*d5)}),(function(t,e){return(e-t)/d5}),(function(t){return t.getUTCHours()})),C5=l5((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/p5}),(function(t){return t.getUTCDate()-1}));function A5(t){return l5((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/f5}))}var k5=A5(0),L5=A5(1);A5(2),A5(3);var P5=A5(4);A5(5),A5(6);var N5=l5((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),I5=l5((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));function O5(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function R5(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function z5(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}I5.every=function(t){return isFinite(t=Math.floor(t))&&t>0?l5((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var D5,B5,H5,F5={"-":"",_:" ",0:"0"},V5=/^\s*\d+/,U5=/^%/,j5=/[\\^$*+?|[\]().{}]/g;function G5(t,e,n){var i=t<0?"-":"",r=(i?-t:t)+"",o=r.length;return i+(o<n?new Array(n-o+1).join(e)+r:r)}function W5(t){return t.replace(j5,"\\$&")}function q5(t){return new RegExp("^(?:"+t.map(W5).join("|")+")","i")}function Y5(t){for(var e={},n=-1,i=t.length;++n<i;)e[t[n].toLowerCase()]=n;return e}function X5(t,e,n){var i=V5.exec(e.slice(n,n+1));return i?(t.w=+i[0],n+i[0].length):-1}function $5(t,e,n){var i=V5.exec(e.slice(n,n+1));return i?(t.u=+i[0],n+i[0].length):-1}function K5(t,e,n){var i=V5.exec(e.slice(n,n+2));return i?(t.U=+i[0],n+i[0].length):-1}function Z5(t,e,n){var i=V5.exec(e.slice(n,n+2));return i?(t.V=+i[0],n+i[0].length):-1}function J5(t,e,n){var i=V5.exec(e.slice(n,n+2));return i?(t.W=+i[0],n+i[0].length):-1}function Q5(t,e,n){var i=V5.exec(e.slice(n,n+4));return i?(t.y=+i[0],n+i[0].length):-1}function t3(t,e,n){var i=V5.exec(e.slice(n,n+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function e3(t,e,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function n3(t,e,n){var i=V5.exec(e.slice(n,n+1));return i?(t.q=3*i[0]-3,n+i[0].length):-1}function i3(t,e,n){var i=V5.exec(e.slice(n,n+2));return i?(t.m=i[0]-1,n+i[0].length):-1}function r3(t,e,n){var i=V5.exec(e.slice(n,n+2));return i?(t.d=+i[0],n+i[0].length):-1}function o3(t,e,n){var i=V5.exec(e.slice(n,n+3));return i?(t.m=0,t.d=+i[0],n+i[0].length):-1}function a3(t,e,n){var i=V5.exec(e.slice(n,n+2));return i?(t.H=+i[0],n+i[0].length):-1}function s3(t,e,n){var i=V5.exec(e.slice(n,n+2));return i?(t.M=+i[0],n+i[0].length):-1}function l3(t,e,n){var i=V5.exec(e.slice(n,n+2));return i?(t.S=+i[0],n+i[0].length):-1}function c3(t,e,n){var i=V5.exec(e.slice(n,n+3));return i?(t.L=+i[0],n+i[0].length):-1}function u3(t,e,n){var i=V5.exec(e.slice(n,n+6));return i?(t.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function h3(t,e,n){var i=U5.exec(e.slice(n,n+1));return i?n+i[0].length:-1}function d3(t,e,n){var i=V5.exec(e.slice(n));return i?(t.Q=+i[0],n+i[0].length):-1}function p3(t,e,n){var i=V5.exec(e.slice(n));return i?(t.s=+i[0],n+i[0].length):-1}function f3(t,e){return G5(t.getDate(),e,2)}function m3(t,e){return G5(t.getHours(),e,2)}function g3(t,e){return G5(t.getHours()%12||12,e,2)}function _3(t,e){return G5(1+y5.count(M5(t),t),e,3)}function y3(t,e){return G5(t.getMilliseconds(),e,3)}function v3(t,e){return y3(t,e)+"000"}function b3(t,e){return G5(t.getMonth()+1,e,2)}function x3(t,e){return G5(t.getMinutes(),e,2)}function w3(t,e){return G5(t.getSeconds(),e,2)}function S3(t){var e=t.getDay();return 0===e?7:e}function M3(t,e){return G5(b5.count(M5(t)-1,t),e,2)}function E3(t){var e=t.getDay();return e>=4||0===e?w5(t):w5.ceil(t)}function T3(t,e){return t=E3(t),G5(w5.count(M5(t),t)+(4===M5(t).getDay()),e,2)}function C3(t){return t.getDay()}function A3(t,e){return G5(x5.count(M5(t)-1,t),e,2)}function k3(t,e){return G5(t.getFullYear()%100,e,2)}function L3(t,e){return G5((t=E3(t)).getFullYear()%100,e,2)}function P3(t,e){return G5(t.getFullYear()%1e4,e,4)}function N3(t,e){var n=t.getDay();return G5((t=n>=4||0===n?w5(t):w5.ceil(t)).getFullYear()%1e4,e,4)}function I3(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+G5(e/60|0,"0",2)+G5(e%60,"0",2)}function O3(t,e){return G5(t.getUTCDate(),e,2)}function R3(t,e){return G5(t.getUTCHours(),e,2)}function z3(t,e){return G5(t.getUTCHours()%12||12,e,2)}function D3(t,e){return G5(1+C5.count(I5(t),t),e,3)}function B3(t,e){return G5(t.getUTCMilliseconds(),e,3)}function H3(t,e){return B3(t,e)+"000"}function F3(t,e){return G5(t.getUTCMonth()+1,e,2)}function V3(t,e){return G5(t.getUTCMinutes(),e,2)}function U3(t,e){return G5(t.getUTCSeconds(),e,2)}function j3(t){var e=t.getUTCDay();return 0===e?7:e}function G3(t,e){return G5(k5.count(I5(t)-1,t),e,2)}function W3(t){var e=t.getUTCDay();return e>=4||0===e?P5(t):P5.ceil(t)}function q3(t,e){return t=W3(t),G5(P5.count(I5(t),t)+(4===I5(t).getUTCDay()),e,2)}function Y3(t){return t.getUTCDay()}function X3(t,e){return G5(L5.count(I5(t)-1,t),e,2)}function $3(t,e){return G5(t.getUTCFullYear()%100,e,2)}function K3(t,e){return G5((t=W3(t)).getUTCFullYear()%100,e,2)}function Z3(t,e){return G5(t.getUTCFullYear()%1e4,e,4)}function J3(t,e){var n=t.getUTCDay();return G5((t=n>=4||0===n?P5(t):P5.ceil(t)).getUTCFullYear()%1e4,e,4)}function Q3(){return"+0000"}function t4(){return"%"}function e4(t){return+t}function n4(t){return Math.floor(+t/1e3)}!(function i4(t){D5=(function e(t){var e=t.dateTime,n=t.date,i=t.time,r=t.periods,o=t.days,a=t.shortDays,s=t.months,l=t.shortMonths,c=q5(r),u=Y5(r),h=q5(o),d=Y5(o),p=q5(a),f=Y5(a),m=q5(s),g=Y5(s),_=q5(l),y=Y5(l),v={a:function b(t){return a[t.getDay()]},A:function x(t){return o[t.getDay()]},b:function w(t){return l[t.getMonth()]},B:function S(t){return s[t.getMonth()]},c:null,d:f3,e:f3,f:v3,g:L3,G:N3,H:m3,I:g3,j:_3,L:y3,m:b3,M:x3,p:function M(t){return r[+(t.getHours()>=12)]},q:function E(t){return 1+~~(t.getMonth()/3)},Q:e4,s:n4,S:w3,u:S3,U:M3,V:T3,w:C3,W:A3,x:null,X:null,y:k3,Y:P3,Z:I3,"%":t4},T={a:function C(t){return a[t.getUTCDay()]},A:function A(t){return o[t.getUTCDay()]},b:function k(t){return l[t.getUTCMonth()]},B:function L(t){return s[t.getUTCMonth()]},c:null,d:O3,e:O3,f:H3,g:K3,G:J3,H:R3,I:z3,j:D3,L:B3,m:F3,M:V3,p:function P(t){return r[+(t.getUTCHours()>=12)]},q:function N(t){return 1+~~(t.getUTCMonth()/3)},Q:e4,s:n4,S:U3,u:j3,U:G3,V:q3,w:Y3,W:X3,x:null,X:null,y:$3,Y:Z3,Z:Q3,"%":t4},I={a:function O(t,e,n){var i=p.exec(e.slice(n));return i?(t.w=f[i[0].toLowerCase()],n+i[0].length):-1},A:function R(t,e,n){var i=h.exec(e.slice(n));return i?(t.w=d[i[0].toLowerCase()],n+i[0].length):-1},b:function z(t,e,n){var i=_.exec(e.slice(n));return i?(t.m=y[i[0].toLowerCase()],n+i[0].length):-1},B:function D(t,e,n){var i=m.exec(e.slice(n));return i?(t.m=g[i[0].toLowerCase()],n+i[0].length):-1},c:function B(t,n,i){return G(t,e,n,i)},d:r3,e:r3,f:u3,g:t3,G:Q5,H:a3,I:a3,j:o3,L:c3,m:i3,M:s3,p:function H(t,e,n){var i=c.exec(e.slice(n));return i?(t.p=u[i[0].toLowerCase()],n+i[0].length):-1},q:n3,Q:d3,s:p3,S:l3,u:$5,U:K5,V:Z5,w:X5,W:J5,x:function F(t,e,i){return G(t,n,e,i)},X:function V(t,e,n){return G(t,i,e,n)},y:t3,Y:Q5,Z:e3,"%":h3};function U(t,e){return function(n){var i,r,o,a=[],s=-1,l=0,c=t.length;for(n instanceof Date||(n=new Date(+n));++s<c;)37===t.charCodeAt(s)&&(a.push(t.slice(l,s)),null!=(r=F5[i=t.charAt(++s)])?i=t.charAt(++s):r="e"===i?" ":"0",(o=e[i])&&(i=o(n,r)),a.push(i),l=s+1);return a.push(t.slice(l,s)),a.join("")}}function j(t,e){return function(n){var i,r,o=z5(1900,void 0,1);if(G(o,t,n+="",0)!=n.length)return null;if("Q"in o)return new Date(o.Q);if("s"in o)return new Date(1e3*o.s+("L"in o?o.L:0));if(e&&!("Z"in o)&&(o.Z=0),"p"in o&&(o.H=o.H%12+12*o.p),void 0===o.m&&(o.m="q"in o?o.q:0),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=R5(z5(o.y,0,1))).getUTCDay(),i=r>4||0===r?L5.ceil(i):L5(i),i=C5.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=O5(z5(o.y,0,1))).getDay(),i=r>4||0===r?x5.ceil(i):x5(i),i=y5.offset(i,7*(o.V-1)),o.y=i.getFullYear(),o.m=i.getMonth(),o.d=i.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),r="Z"in o?R5(z5(o.y,0,1)).getUTCDay():O5(z5(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(r+5)%7:o.w+7*o.U-(r+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,R5(o)):O5(o)}}function G(t,e,n,i){for(var r,o,a=0,s=e.length,l=n.length;a<s;){if(i>=l)return-1;if(37===(r=e.charCodeAt(a++))){if(r=e.charAt(a++),!(o=I[r in F5?e.charAt(a++):r])||(i=o(t,n,i))<0)return-1}else if(r!=n.charCodeAt(i++))return-1}return i}return v.x=U(n,v),v.X=U(i,v),v.c=U(e,v),T.x=U(n,T),T.X=U(i,T),T.c=U(e,T),{format:function(t){var e=U(t+="",v);return e.toString=function(){return t},e},parse:function(t){var e=j(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=U(t+="",T);return e.toString=function(){return t},e},utcParse:function(t){var e=j(t+="",!0);return e.toString=function(){return t},e}}})(t),B5=D5.format,H5=D5.utcFormat})({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var r4=31536e6;function o4(t){return new Date(t)}function a4(t){return t instanceof Date?+t:+new Date(+t)}function s4(t,e,n,i,r,o,a,s,l){var c=N2(A2,m2),u=c.invert,h=c.domain,d=l(".%L"),p=l(":%S"),f=l("%I:%M"),m=l("%I %p"),g=l("%a %d"),_=l("%b %d"),y=l("%B"),v=l("%Y"),b=[[a,1,1e3],[a,5,5e3],[a,15,15e3],[a,30,3e4],[o,1,6e4],[o,5,3e5],[o,15,9e5],[o,30,18e5],[r,1,36e5],[r,3,108e5],[r,6,216e5],[r,12,432e5],[i,1,864e5],[i,2,1728e5],[n,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,r4]];function x(s){return(a(s)<s?d:o(s)<s?p:r(s)<s?f:i(s)<s?m:e(s)<s?n(s)<s?g:_:t(s)<s?y:v)(s)}function w(e,n,i,r){if(null==e&&(e=10),"number"==typeof e){var o=Math.abs(i-n)/e,a=X1((function(t){return t[2]})).right(b,o);a===b.length?(r=n0(n/r4,i/r4,e),e=t):a?(r=(a=b[o/b[a-1][2]<b[a][2]/o?a-1:a])[1],e=a[0]):(r=Math.max(n0(n,i,e),1),e=s)}return null==r?e:e.every(r)}return c.invert=function(t){return new Date(u(t))},c.domain=function(t){return arguments.length?h(u0.call(t,a4)):h().map(o4)},c.ticks=function(t,e){var n,i=h(),r=i[0],o=i[i.length-1],a=o<r;return a&&(n=r,r=o,o=n),n=(n=w(t,r,o,e))?n.range(r,o+1):[],a?n.reverse():n},c.tickFormat=function(t,e){return null==e?x:l(e)},c.nice=function(t,e){var n=h();return(t=w(t,n[0],n[n.length-1],e))?h(K2(n,t)):c},c.copy=function(){return P2(c,s4(t,e,n,i,r,o,a,s,l))},c}function l4(t){return t.match(/.{6}/g).map((function(t){return"#"+t}))}var c4=l4("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),u4=l4("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"),h4=l4("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"),d4=l4("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"),p4=M2(a2(300,.5,0),a2(-240,.5,1)),f4=M2(a2(-100,.75,.35),a2(80,1.5,.8)),m4=M2(a2(260,.75,.35),a2(80,1.5,.8)),g4=a2();function _4(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}var y4=_4(l4("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),v4=_4(l4("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),b4=_4(l4("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),x4=_4(l4("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),w4="http://www.w3.org/1999/xhtml",S4={svg:"http://www.w3.org/2000/svg",xhtml:w4,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function M4(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),S4.hasOwnProperty(e)?{space:S4[e],local:t}:t}function E4(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===w4&&e.documentElement.namespaceURI===w4?e.createElement(t):e.createElementNS(n,t)}}function T4(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function C4(t){var e=M4(t);return(e.local?T4:E4)(e)}function A4(){}function k4(t){return null==t?A4:function(){return this.querySelector(t)}}function L4(){return[]}function P4(t){return null==t?L4:function(){return this.querySelectorAll(t)}}var N4=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var I4=document.documentElement;if(!I4.matches){var O4=I4.webkitMatchesSelector||I4.msMatchesSelector||I4.mozMatchesSelector||I4.oMatchesSelector;N4=function(t){return function(){return O4.call(this,t)}}}}var R4=N4;function z4(t){return new Array(t.length)}function D4(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function B4(t,e,n,i,r,o){for(var a,s=0,l=e.length,c=o.length;s<c;++s)(a=e[s])?(a.__data__=o[s],i[s]=a):n[s]=new D4(t,o[s]);for(;s<l;++s)(a=e[s])&&(r[s]=a)}function H4(t,e,n,i,r,o,a){var s,l,c,u={},h=e.length,d=o.length,p=new Array(h);for(s=0;s<h;++s)(l=e[s])&&(p[s]=c="$"+a.call(l,l.__data__,s,e),c in u?r[s]=l:u[c]=l);for(s=0;s<d;++s)(l=u[c="$"+a.call(t,o[s],s,o)])?(i[s]=l,l.__data__=o[s],u[c]=null):n[s]=new D4(t,o[s]);for(s=0;s<h;++s)(l=e[s])&&u[p[s]]===l&&(r[s]=l)}function F4(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function V4(t){return function(){this.removeAttribute(t)}}function U4(t){return function(){this.removeAttributeNS(t.space,t.local)}}function j4(t,e){return function(){this.setAttribute(t,e)}}function G4(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function W4(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function q4(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Y4(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function X4(t){return function(){this.style.removeProperty(t)}}function $4(t,e,n){return function(){this.style.setProperty(t,e,n)}}function K4(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function Z4(t,e){return t.style.getPropertyValue(e)||Y4(t).getComputedStyle(t,null).getPropertyValue(e)}function J4(t){return function(){delete this[t]}}function Q4(t,e){return function(){this[t]=e}}function t6(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function e6(t){return t.trim().split(/^|\s+/)}function n6(t){return t.classList||new i6(t)}function i6(t){this._node=t,this._names=e6(t.getAttribute("class")||"")}function r6(t,e){for(var n=n6(t),i=-1,r=e.length;++i<r;)n.add(e[i])}function o6(t,e){for(var n=n6(t),i=-1,r=e.length;++i<r;)n.remove(e[i])}function a6(t){return function(){r6(this,t)}}function s6(t){return function(){o6(this,t)}}function l6(t,e){return function(){(e.apply(this,arguments)?r6:o6)(this,t)}}function c6(){this.textContent=""}function u6(t){return function(){this.textContent=t}}function h6(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function d6(){this.innerHTML=""}function p6(t){return function(){this.innerHTML=t}}function f6(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function m6(){this.nextSibling&&this.parentNode.appendChild(this)}function g6(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function _6(){return null}function y6(){var t=this.parentNode;t&&t.removeChild(this)}function v6(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function b6(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}D4.prototype={constructor:D4,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},i6.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var x6={},w6=null;function S6(t,e,n){return t=M6(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function M6(t,e,n){return function(i){var r=w6;w6=i;try{t.call(this,this.__data__,e,n)}finally{w6=r}}}function E6(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function T6(t){return function(){var e=this.__on;if(e){for(var n,i=0,r=-1,o=e.length;i<o;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.capture);++r?e.length=r:delete this.__on}}}function C6(t,e,n){var i=x6.hasOwnProperty(t.type)?S6:M6;return function(r,o,a){var s,l=this.__on,c=i(e,o,a);if(l)for(var u=0,h=l.length;u<h;++u)if((s=l[u]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=e);this.addEventListener(t.type,c,n),s={type:t.type,name:t.name,value:e,listener:c,capture:n},l?l.push(s):this.__on=[s]}}function A6(t,e,n){var i=Y4(t),r=i.CustomEvent;"function"==typeof r?r=new r(e,n):(r=i.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function k6(t,e){return function(){return A6(this,t,e)}}function L6(t,e){return function(){return A6(this,t,e.apply(this,arguments))}}"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(x6={mouseenter:"mouseover",mouseleave:"mouseout"}));var P6=[null];function N6(t,e){this._groups=t,this._parents=e}function I6(){return new N6([[document.documentElement]],P6)}function O6(t){return"string"==typeof t?new N6([[document.querySelector(t)]],[document.documentElement]):new N6([[t]],P6)}N6.prototype=I6.prototype={constructor:N6,select:function R6(t){"function"!=typeof t&&(t=k4(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a,s=e[r],l=s.length,c=i[r]=new Array(l),u=0;u<l;++u)(o=s[u])&&(a=t.call(o,o.__data__,u,s))&&("__data__"in o&&(a.__data__=o.__data__),c[u]=a);return new N6(i,this._parents)},selectAll:function z6(t){"function"!=typeof t&&(t=P4(t));for(var e=this._groups,n=e.length,i=[],r=[],o=0;o<n;++o)for(var a,s=e[o],l=s.length,c=0;c<l;++c)(a=s[c])&&(i.push(t.call(a,a.__data__,c,s)),r.push(a));return new N6(i,r)},filter:function D6(t){"function"!=typeof t&&(t=R4(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a=e[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new N6(i,this._parents)},data:function B6(t,e){if(!t)return f=new Array(this.size()),u=-1,this.each((function(t){f[++u]=t})),f;var n=e?H4:B4,i=this._parents,r=this._groups;"function"!=typeof t&&(t=(function o(t){return function(){return t}})(t));for(var a=r.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var h=i[u],d=r[u],p=d.length,f=t.call(h,h&&h.__data__,u,i),m=f.length,g=l[u]=new Array(m),_=s[u]=new Array(m);n(h,d,g,_,c[u]=new Array(p),f,e);for(var y,v,b=0,x=0;b<m;++b)if(y=g[b]){for(b>=x&&(x=b+1);!(v=_[x])&&++x<m;);y._next=v||null}}return(s=new N6(s,i))._enter=l,s._exit=c,s},enter:function H6(){return new N6(this._enter||this._groups.map(z4),this._parents)},exit:function F6(){return new N6(this._exit||this._groups.map(z4),this._parents)},merge:function V6(t){for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new N6(o,this._parents)},order:function U6(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,r=t[e],o=r.length-1,a=r[o];--o>=0;)(i=r[o])&&(a&&a!==i.nextSibling&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function j6(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=F4);for(var n=this._groups,i=n.length,r=new Array(i),o=0;o<i;++o){for(var a,s=n[o],l=s.length,c=r[o]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(e)}return new N6(r,this._parents).order()},call:function G6(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function W6(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t},node:function q6(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],r=0,o=i.length;r<o;++r){var a=i[r];if(a)return a}return null},size:function Y6(){var t=0;return this.each((function(){++t})),t},empty:function X6(){return!this.node()},each:function $6(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var r,o=e[n],a=0,s=o.length;a<s;++a)(r=o[a])&&t.call(r,r.__data__,a,o);return this},attr:function K6(t,e){var n=M4(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?U4:V4:"function"==typeof e?n.local?q4:W4:n.local?G4:j4)(n,e))},style:function Z6(t,e,n){return arguments.length>1?this.each((null==e?X4:"function"==typeof e?K4:$4)(t,e,null==n?"":n)):Z4(this.node(),t)},property:function J6(t,e){return arguments.length>1?this.each((null==e?J4:"function"==typeof e?t6:Q4)(t,e)):this.node()[t]},classed:function Q6(t,e){var n=e6(t+"");if(arguments.length<2){for(var i=n6(this.node()),r=-1,o=n.length;++r<o;)if(!i.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?l6:e?a6:s6)(n,e))},text:function t9(t){return arguments.length?this.each(null==t?c6:("function"==typeof t?h6:u6)(t)):this.node().textContent},html:function e9(t){return arguments.length?this.each(null==t?d6:("function"==typeof t?f6:p6)(t)):this.node().innerHTML},raise:function n9(){return this.each(m6)},lower:function i9(){return this.each(g6)},append:function r9(t){var e="function"==typeof t?t:C4(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function o9(t,e){var n="function"==typeof t?t:C4(t),i=null==e?_6:"function"==typeof e?e:k4(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function a9(){return this.each(y6)},clone:function s9(t){return this.select(t?b6:v6)},datum:function l9(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function c9(t,e,n){var i,r,o=E6(t+""),a=o.length;if(!(arguments.length<2)){for(s=e?C6:T6,null==n&&(n=!1),i=0;i<a;++i)this.each(s(o[i],e,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(i=0,l=s[c];i<a;++i)if((r=o[i]).type===l.type&&r.name===l.name)return l.value},dispatch:function u9(t,e){return this.each(("function"==typeof e?L6:k6)(t,e))}};var h9=0;function d9(){return new p9}function p9(){this._="@"+(++h9).toString(36)}function f9(){for(var t,e=w6;t=e.sourceEvent;)e=t;return e}function m9(t,e){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var i=n.createSVGPoint();return i.x=e.clientX,i.y=e.clientY,[(i=i.matrixTransform(t.getScreenCTM().inverse())).x,i.y]}var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}p9.prototype=d9.prototype={constructor:p9,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var g9=Math.PI,_9=2*g9,y9=1e-6,v9=_9-y9;function b9(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function x9(){return new b9}function w9(t){return function e(){return t}}b9.prototype=x9.prototype={constructor:b9,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,r,o){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+r)+","+(this._y1=+o)},arcTo:function(t,e,n,i,r){var o=this._x1,a=this._y1,s=(n=+n)-(t=+t),l=(i=+i)-(e=+e),c=o-t,u=a-e,h=c*c+u*u;if((r=+r)<0)throw new Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(h>y9)if(Math.abs(u*s-l*c)>y9&&r){var d=n-o,p=i-a,f=s*s+l*l,m=d*d+p*p,g=Math.sqrt(f),_=Math.sqrt(h),y=r*Math.tan((g9-Math.acos((f+h-m)/(2*g*_)))/2),v=y/_,b=y/g;Math.abs(v-1)>y9&&(this._+="L"+(t+v*c)+","+(e+v*u)),this._+="A"+r+","+r+",0,0,"+ +(u*d>c*p)+","+(this._x1=t+b*s)+","+(this._y1=e+b*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,i,r,o){t=+t,e=+e,o=!!o;var a=(n=+n)*Math.cos(i),s=n*Math.sin(i),l=t+a,c=e+s,u=1^o,h=o?i-r:r-i;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>y9||Math.abs(this._y1-c)>y9)&&(this._+="L"+l+","+c),n&&(h<0&&(h=h%_9+_9),h>v9?this._+="A"+n+","+n+",0,1,"+u+","+(t-a)+","+(e-s)+"A"+n+","+n+",0,1,"+u+","+(this._x1=l)+","+(this._y1=c):h>y9&&(this._+="A"+n+","+n+",0,"+ +(h>=g9)+","+u+","+(this._x1=t+n*Math.cos(r))+","+(this._y1=e+n*Math.sin(r))))},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};var S9=Math.abs,M9=Math.atan2,E9=Math.cos,T9=Math.max,C9=Math.min,A9=Math.sin,k9=Math.sqrt,L9=1e-12,P9=Math.PI,N9=P9/2,I9=2*P9;function O9(t){return t>1?0:t<-1?P9:Math.acos(t)}function R9(t){return t>=1?N9:t<=-1?-N9:Math.asin(t)}function z9(t){return t.innerRadius}function D9(t){return t.outerRadius}function B9(t){return t.startAngle}function H9(t){return t.endAngle}function F9(t){return t&&t.padAngle}function V9(t,e,n,i,r,o,a,s){var l=n-t,c=i-e,u=a-r,h=s-o,d=(u*(e-o)-h*(t-r))/(h*l-u*c);return[t+d*l,e+d*c]}function U9(t,e,n,i,r,o,a){var s=t-n,l=e-i,c=(a?o:-o)/k9(s*s+l*l),u=c*l,h=-c*s,d=t+u,p=e+h,f=n+u,m=i+h,g=(d+f)/2,_=(p+m)/2,y=f-d,v=m-p,b=y*y+v*v,x=r-o,w=d*m-f*p,S=(v<0?-1:1)*k9(T9(0,x*x*b-w*w)),M=(w*v-y*S)/b,E=(-w*y-v*S)/b,T=(w*v+y*S)/b,C=(-w*y+v*S)/b,A=M-g,k=E-_,L=T-g,P=C-_;return A*A+k*k>L*L+P*P&&(M=T,E=C),{cx:M,cy:E,x01:-u,y01:-h,x11:M*(r/x-1),y11:E*(r/x-1)}}function j9(t){this._context=t}function G9(t){return new j9(t)}function W9(t){return t[0]}function q9(t){return t[1]}function Y9(){var t=W9,e=q9,n=w9(!0),i=null,r=G9,o=null;function a(a){var s,l,c,u=a.length,h=!1;for(null==i&&(o=r(c=x9())),s=0;s<=u;++s)!(s<u&&n(l=a[s],s,a))===h&&((h=!h)?o.lineStart():o.lineEnd()),h&&o.point(+t(l,s,a),+e(l,s,a));if(c)return o=null,c+""||null}return a.x=function(e){return arguments.length?(t="function"==typeof e?e:w9(+e),a):t},a.y=function(t){return arguments.length?(e="function"==typeof t?t:w9(+t),a):e},a.defined=function(t){return arguments.length?(n="function"==typeof t?t:w9(!!t),a):n},a.curve=function(t){return arguments.length?(r=t,null!=i&&(o=r(i)),a):r},a.context=function(t){return arguments.length?(null==t?i=o=null:o=r(i=t),a):i},a}function X9(){var t=W9,e=null,n=w9(0),i=q9,r=w9(!0),o=null,a=G9,s=null;function l(l){var c,u,h,d,p,f=l.length,m=!1,g=new Array(f),_=new Array(f);for(null==o&&(s=a(p=x9())),c=0;c<=f;++c){if(!(c<f&&r(d=l[c],c,l))===m)if(m=!m)u=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),h=c-1;h>=u;--h)s.point(g[h],_[h]);s.lineEnd(),s.areaEnd()}m&&(g[c]=+t(d,c,l),_[c]=+n(d,c,l),s.point(e?+e(d,c,l):g[c],i?+i(d,c,l):_[c]))}if(p)return s=null,p+""||null}function c(){return Y9().defined(r).curve(a).context(o)}return l.x=function(n){return arguments.length?(t="function"==typeof n?n:w9(+n),e=null,l):t},l.x0=function(e){return arguments.length?(t="function"==typeof e?e:w9(+e),l):t},l.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:w9(+t),l):e},l.y=function(t){return arguments.length?(n="function"==typeof t?t:w9(+t),i=null,l):n},l.y0=function(t){return arguments.length?(n="function"==typeof t?t:w9(+t),l):n},l.y1=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:w9(+t),l):i},l.lineX0=l.lineY0=function(){return c().x(t).y(n)},l.lineY1=function(){return c().x(t).y(i)},l.lineX1=function(){return c().x(e).y(n)},l.defined=function(t){return arguments.length?(r="function"==typeof t?t:w9(!!t),l):r},l.curve=function(t){return arguments.length?(a=t,null!=o&&(s=a(o)),l):a},l.context=function(t){return arguments.length?(null==t?o=s=null:s=a(o=t),l):o},l}function $9(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function K9(t){return t}j9.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var Z9=Q9(G9);function J9(t){this._curve=t}function Q9(t){function e(e){return new J9(t(e))}return e._curve=t,e}function t8(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(Q9(t)):e()._curve},t}function e8(){return t8(Y9().curve(Z9))}function n8(){var t=X9().curve(Z9),e=t.curve,n=t.lineX0,i=t.lineX1,r=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return t8(n())},delete t.lineX0,t.lineEndAngle=function(){return t8(i())},delete t.lineX1,t.lineInnerRadius=function(){return t8(r())},delete t.lineY0,t.lineOuterRadius=function(){return t8(o())},delete t.lineY1,t.curve=function(t){return arguments.length?e(Q9(t)):e()._curve},t}function i8(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}J9.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var r8=Array.prototype.slice;function o8(t){return t.source}function a8(t){return t.target}function s8(t){var e=o8,n=a8,i=W9,r=q9,o=null;function a(){var a,s=r8.call(arguments),l=e.apply(this,s),c=n.apply(this,s);if(o||(o=a=x9()),t(o,+i.apply(this,(s[0]=l,s)),+r.apply(this,s),+i.apply(this,(s[0]=c,s)),+r.apply(this,s)),a)return o=null,a+""||null}return a.source=function(t){return arguments.length?(e=t,a):e},a.target=function(t){return arguments.length?(n=t,a):n},a.x=function(t){return arguments.length?(i="function"==typeof t?t:w9(+t),a):i},a.y=function(t){return arguments.length?(r="function"==typeof t?t:w9(+t),a):r},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a}function l8(t,e,n,i,r){t.moveTo(e,n),t.bezierCurveTo(e=(e+i)/2,n,e,r,i,r)}function c8(t,e,n,i,r){t.moveTo(e,n),t.bezierCurveTo(e,n=(n+r)/2,i,n,i,r)}function u8(t,e,n,i,r){var o=i8(e,n),a=i8(e,n=(n+r)/2),s=i8(i,n),l=i8(i,r);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],s[0],s[1],l[0],l[1])}var h8={draw:function(t,e){var n=Math.sqrt(e/P9);t.moveTo(n,0),t.arc(0,0,n,0,I9)}},d8={draw:function(t,e){var n=Math.sqrt(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},p8=Math.sqrt(1/3),f8=2*p8,m8={draw:function(t,e){var n=Math.sqrt(e/f8),i=n*p8;t.moveTo(0,-n),t.lineTo(i,0),t.lineTo(0,n),t.lineTo(-i,0),t.closePath()}},g8=Math.sin(P9/10)/Math.sin(7*P9/10),_8=Math.sin(I9/10)*g8,y8=-Math.cos(I9/10)*g8,v8={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),i=_8*n,r=y8*n;t.moveTo(0,-n),t.lineTo(i,r);for(var o=1;o<5;++o){var a=I9*o/5,s=Math.cos(a),l=Math.sin(a);t.lineTo(l*n,-s*n),t.lineTo(s*i-l*r,l*i+s*r)}t.closePath()}},b8={draw:function(t,e){var n=Math.sqrt(e),i=-n/2;t.rect(i,i,n,n)}},x8=Math.sqrt(3),w8={draw:function(t,e){var n=-Math.sqrt(e/(3*x8));t.moveTo(0,2*n),t.lineTo(-x8*n,-n),t.lineTo(x8*n,-n),t.closePath()}},S8=-.5,M8=Math.sqrt(3)/2,E8=1/Math.sqrt(12),T8=3*(E8/2+1),C8={draw:function(t,e){var n=Math.sqrt(e/T8),i=n/2,r=n*E8,o=i,a=n*E8+n,s=-o,l=a;t.moveTo(i,r),t.lineTo(o,a),t.lineTo(s,l),t.lineTo(S8*i-M8*r,M8*i+S8*r),t.lineTo(S8*o-M8*a,M8*o+S8*a),t.lineTo(S8*s-M8*l,M8*s+S8*l),t.lineTo(S8*i+M8*r,S8*r-M8*i),t.lineTo(S8*o+M8*a,S8*a-M8*o),t.lineTo(S8*s+M8*l,S8*l-M8*s),t.closePath()}},A8=[h8,d8,m8,b8,v8,w8,C8];function k8(){}function L8(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function P8(t){this._context=t}function N8(t){this._context=t}function I8(t){this._context=t}function O8(t,e){this._basis=new P8(t),this._beta=e}P8.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:L8(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:L8(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},N8.prototype={areaStart:k8,areaEnd:k8,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:L8(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},I8.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:L8(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},O8.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var i,r=t[0],o=e[0],a=t[n]-r,s=e[n]-o,l=-1;++l<=n;)this._basis.point(this._beta*t[l]+(1-this._beta)*(r+(i=l/n)*a),this._beta*e[l]+(1-this._beta)*(o+i*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var R8=(function t(e){function n(t){return 1===e?new P8(t):new O8(t,e)}return n.beta=function(e){return t(+e)},n})(.85);function z8(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function D8(t,e){this._context=t,this._k=(1-e)/6}D8.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:z8(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:z8(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var B8=(function t(e){function n(t){return new D8(t,e)}return n.tension=function(e){return t(+e)},n})(0);function H8(t,e){this._context=t,this._k=(1-e)/6}H8.prototype={areaStart:k8,areaEnd:k8,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:z8(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var F8=(function t(e){function n(t){return new H8(t,e)}return n.tension=function(e){return t(+e)},n})(0);function V8(t,e){this._context=t,this._k=(1-e)/6}V8.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:z8(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var U8=(function t(e){function n(t){return new V8(t,e)}return n.tension=function(e){return t(+e)},n})(0);function j8(t,e,n){var i=t._x1,r=t._y1,o=t._x2,a=t._y2;if(t._l01_a>L9){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,r=(r*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>L9){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*c+t._x1*t._l23_2a-e*t._l12_2a)/u,a=(a*c+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(i,r,o,a,t._x2,t._y2)}function G8(t,e){this._context=t,this._alpha=e}G8.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:j8(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var W8=(function t(e){function n(t){return e?new G8(t,e):new D8(t,0)}return n.alpha=function(e){return t(+e)},n})(.5);function q8(t,e){this._context=t,this._alpha=e}q8.prototype={areaStart:k8,areaEnd:k8,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:j8(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Y8=(function t(e){function n(t){return e?new q8(t,e):new H8(t,0)}return n.alpha=function(e){return t(+e)},n})(.5);function X8(t,e){this._context=t,this._alpha=e}X8.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:j8(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var $8=(function t(e){function n(t){return e?new X8(t,e):new V8(t,0)}return n.alpha=function(e){return t(+e)},n})(.5);function K8(t){this._context=t}function Z8(t){return t<0?-1:1}function J8(t,e,n){var i=t._x1-t._x0,r=e-t._x1,o=(t._y1-t._y0)/(i||r<0&&-0),a=(n-t._y1)/(r||i<0&&-0),s=(o*r+a*i)/(i+r);return(Z8(o)+Z8(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function Q8(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function t7(t,e,n){var i=t._x0,r=t._x1,o=t._y1,a=(r-i)/3;t._context.bezierCurveTo(i+a,t._y0+a*e,r-a,o-a*n,r,o)}function e7(t){this._context=t}function n7(t){this._context=new i7(t)}function i7(t){this._context=t}function r7(t){this._context=t}function o7(t){var e,n,i=t.length-1,r=new Array(i),o=new Array(i),a=new Array(i);for(r[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<i-1;++e)r[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(r[i-1]=2,o[i-1]=7,a[i-1]=8*t[i-1]+t[i],e=1;e<i;++e)o[e]-=n=r[e]/o[e-1],a[e]-=n*a[e-1];for(r[i-1]=a[i-1]/o[i-1],e=i-2;e>=0;--e)r[e]=(a[e]-r[e+1])/o[e];for(o[i-1]=(t[i]+r[i-1])/2,e=0;e<i-1;++e)o[e]=2*t[e+1]-r[e+1];return[r,o]}function a7(t,e){this._context=t,this._t=e}function s7(t,e){if((r=t.length)>1)for(var n,i,r,o=1,a=t[e[0]],s=a.length;o<r;++o)for(i=a,a=t[e[o]],n=0;n<s;++n)a[n][1]+=a[n][0]=isNaN(i[n][1])?i[n][0]:i[n][1]}function l7(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function c7(t,e){return t[e]}function u7(t){var e=t.map(h7);return l7(t).sort((function(t,n){return e[t]-e[n]}))}function h7(t){for(var e,n=0,i=-1,r=t.length;++i<r;)(e=+t[i][1])&&(n+=e);return n}K8.prototype={areaStart:k8,areaEnd:k8,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},e7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:t7(this,this._t0,Q8(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,t7(this,Q8(this,n=J8(this,t,e)),n);break;default:t7(this,this._t0,n=J8(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(n7.prototype=Object.create(e7.prototype)).point=function(t,e){e7.prototype.point.call(this,e,t)},i7.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,i,r,o){this._context.bezierCurveTo(e,t,i,n,o,r)}},r7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var i=o7(t),r=o7(e),o=0,a=1;a<n;++o,++a)this._context.bezierCurveTo(i[0][o],r[0][o],i[1][o],r[1][o],t[a],e[a]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},a7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}};var d7=new Date,p7=new Date;function f7(t,e,n,i){function r(e){return t(e=new Date(+e)),e}return r.floor=r,r.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},r.round=function(t){var e=r(t),n=r.ceil(t);return t-e<n-t?e:n},r.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},r.range=function(n,i,o){var a,s=[];if(n=r.ceil(n),o=null==o?1:Math.floor(o),!(n<i&&o>0))return s;do{s.push(a=new Date(+n)),e(n,o),t(n)}while(a<n&&n<i);return s},r.filter=function(n){return f7((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,i){if(t>=t)if(i<0)for(;++i<=0;)for(;e(t,-1),!n(t););else for(;--i>=0;)for(;e(t,1),!n(t););}))},n&&(r.count=function(e,i){return d7.setTime(+e),p7.setTime(+i),t(d7),t(p7),Math.floor(n(d7,p7))},r.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?r.filter(i?function(e){return i(e)%t==0}:function(e){return r.count(0,e)%t==0}):r:null}),r}var m7=f7((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));m7.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?f7((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):m7:null};var g7=m7.range,_7=1e3,y7=6e4,v7=36e5,b7=864e5,x7=6048e5,w7=f7((function(t){t.setTime(Math.floor(t/_7)*_7)}),(function(t,e){t.setTime(+t+e*_7)}),(function(t,e){return(e-t)/_7}),(function(t){return t.getUTCSeconds()})),S7=w7.range,M7=f7((function(t){t.setTime(Math.floor(t/y7)*y7)}),(function(t,e){t.setTime(+t+e*y7)}),(function(t,e){return(e-t)/y7}),(function(t){return t.getMinutes()})),E7=M7.range,T7=f7((function(t){var e=t.getTimezoneOffset()*y7%v7;e<0&&(e+=v7),t.setTime(Math.floor((+t-e)/v7)*v7+e)}),(function(t,e){t.setTime(+t+e*v7)}),(function(t,e){return(e-t)/v7}),(function(t){return t.getHours()})),C7=T7.range,A7=f7((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*y7)/b7}),(function(t){return t.getDate()-1})),k7=A7.range;function L7(t){return f7((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*y7)/x7}))}var P7=L7(0),N7=L7(1),I7=L7(2),O7=L7(3),R7=L7(4),z7=L7(5),D7=L7(6),B7=P7.range,H7=N7.range,F7=I7.range,V7=O7.range,U7=R7.range,j7=z7.range,G7=D7.range,W7=f7((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),q7=W7.range,Y7=f7((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));Y7.every=function(t){return isFinite(t=Math.floor(t))&&t>0?f7((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var X7=Y7.range,$7=f7((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*y7)}),(function(t,e){return(e-t)/y7}),(function(t){return t.getUTCMinutes()})),K7=$7.range,Z7=f7((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*v7)}),(function(t,e){return(e-t)/v7}),(function(t){return t.getUTCHours()})),J7=Z7.range,Q7=f7((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/b7}),(function(t){return t.getUTCDate()-1})),ttt=Q7.range;function ett(t){return f7((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/x7}))}var ntt=ett(0),itt=ett(1),rtt=ett(2),ott=ett(3),att=ett(4),stt=ett(5),ltt=ett(6),ctt=ntt.range,utt=itt.range,htt=rtt.range,dtt=ott.range,ptt=att.range,ftt=stt.range,mtt=ltt.range,gtt=f7((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),_tt=gtt.range,ytt=f7((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));ytt.every=function(t){return isFinite(t=Math.floor(t))&&t>0?f7((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var vtt=ytt.range,btt=new Date,xtt=new Date;function wtt(t,e,n,i){function r(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return r.floor=function(e){return t(e=new Date(+e)),e},r.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},r.round=function(t){var e=r(t),n=r.ceil(t);return t-e<n-t?e:n},r.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},r.range=function(n,i,o){var a,s=[];if(n=r.ceil(n),o=null==o?1:Math.floor(o),!(n<i&&o>0))return s;do{s.push(a=new Date(+n)),e(n,o),t(n)}while(a<n&&n<i);return s},r.filter=function(n){return wtt((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,i){if(t>=t)if(i<0)for(;++i<=0;)for(;e(t,-1),!n(t););else for(;--i>=0;)for(;e(t,1),!n(t););}))},n&&(r.count=function(e,i){return btt.setTime(+e),xtt.setTime(+i),t(btt),t(xtt),Math.floor(n(btt,xtt))},r.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?r.filter(i?function(e){return i(e)%t==0}:function(e){return r.count(0,e)%t==0}):r:null}),r}var Stt=864e5,Mtt=6048e5,Ett=wtt((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/Stt}),(function(t){return t.getDate()-1}));function Ttt(t){return wtt((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/Mtt}))}var Ctt=Ttt(0),Att=Ttt(1);Ttt(2),Ttt(3);var ktt=Ttt(4);Ttt(5),Ttt(6);var Ltt=wtt((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));Ltt.every=function(t){return isFinite(t=Math.floor(t))&&t>0?wtt((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var Ptt=wtt((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/Stt}),(function(t){return t.getUTCDate()-1}));function Ntt(t){return wtt((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/Mtt}))}var Itt=Ntt(0),Ott=Ntt(1);Ntt(2),Ntt(3);var Rtt=Ntt(4);Ntt(5),Ntt(6);var ztt=wtt((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));function Dtt(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Btt(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Htt(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function Ftt(t){var e=t.dateTime,n=t.date,i=t.time,r=t.periods,o=t.days,a=t.shortDays,s=t.months,l=t.shortMonths,c=Jtt(r),u=Qtt(r),h=Jtt(o),d=Qtt(o),p=Jtt(a),f=Qtt(a),m=Jtt(s),g=Qtt(s),_=Jtt(l),y=Qtt(l),v={a:function b(t){return a[t.getDay()]},A:function x(t){return o[t.getDay()]},b:function w(t){return l[t.getMonth()]},B:function S(t){return s[t.getMonth()]},c:null,d:bet,e:bet,f:Tet,H:xet,I:wet,j:Met,L:Eet,m:Cet,M:Aet,p:function M(t){return r[+(t.getHours()>=12)]},Q:nnt,s:int,S:ket,u:Let,U:Pet,V:Net,w:Iet,W:Oet,x:null,X:null,y:Ret,Y:zet,Z:Det,"%":ent},E={a:function T(t){return a[t.getUTCDay()]},A:function C(t){return o[t.getUTCDay()]},b:function A(t){return l[t.getUTCMonth()]},B:function k(t){return s[t.getUTCMonth()]},c:null,d:Bet,e:Bet,f:jet,H:Het,I:Fet,j:Vet,L:Uet,m:Get,M:Wet,p:function L(t){return r[+(t.getUTCHours()>=12)]},Q:nnt,s:int,S:qet,u:Yet,U:Xet,V:$et,w:Ket,W:Zet,x:null,X:null,y:Jet,Y:Qet,Z:tnt,"%":ent},P={a:function N(t,e,n){var i=p.exec(e.slice(n));return i?(t.w=f[i[0].toLowerCase()],n+i[0].length):-1},A:function I(t,e,n){var i=h.exec(e.slice(n));return i?(t.w=d[i[0].toLowerCase()],n+i[0].length):-1},b:function O(t,e,n){var i=_.exec(e.slice(n));return i?(t.m=y[i[0].toLowerCase()],n+i[0].length):-1},B:function R(t,e,n){var i=m.exec(e.slice(n));return i?(t.m=g[i[0].toLowerCase()],n+i[0].length):-1},c:function z(t,n,i){return U(t,e,n,i)},d:uet,e:uet,f:get,H:det,I:det,j:het,L:met,m:cet,M:pet,p:function D(t,e,n){var i=c.exec(e.slice(n));return i?(t.p=u[i[0].toLowerCase()],n+i[0].length):-1},Q:yet,s:vet,S:fet,u:eet,U:net,V:iet,w:tet,W:ret,x:function B(t,e,i){return U(t,n,e,i)},X:function H(t,e,n){return U(t,i,e,n)},y:aet,Y:oet,Z:set,"%":_et};function F(t,e){return function(n){var i,r,o,a=[],s=-1,l=0,c=t.length;for(n instanceof Date||(n=new Date(+n));++s<c;)37===t.charCodeAt(s)&&(a.push(t.slice(l,s)),null!=(r=qtt[i=t.charAt(++s)])?i=t.charAt(++s):r="e"===i?" ":"0",(o=e[i])&&(i=o(n,r)),a.push(i),l=s+1);return a.push(t.slice(l,s)),a.join("")}}function V(t,e){return function(n){var i,r,o=Htt(1900);if(U(o,t,n+="",0)!=n.length)return null;if("Q"in o)return new Date(o.Q);if("p"in o&&(o.H=o.H%12+12*o.p),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=Btt(Htt(o.y))).getUTCDay(),i=r>4||0===r?Ott.ceil(i):Ott(i),i=Ptt.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=e(Htt(o.y))).getDay(),i=r>4||0===r?Att.ceil(i):Att(i),i=Ett.offset(i,7*(o.V-1)),o.y=i.getFullYear(),o.m=i.getMonth(),o.d=i.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),r="Z"in o?Btt(Htt(o.y)).getUTCDay():e(Htt(o.y)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(r+5)%7:o.w+7*o.U-(r+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,Btt(o)):e(o)}}function U(t,e,n,i){for(var r,o,a=0,s=e.length,l=n.length;a<s;){if(i>=l)return-1;if(37===(r=e.charCodeAt(a++))){if(r=e.charAt(a++),!(o=P[r in qtt?e.charAt(a++):r])||(i=o(t,n,i))<0)return-1}else if(r!=n.charCodeAt(i++))return-1}return i}return v.x=F(n,v),v.X=F(i,v),v.c=F(e,v),E.x=F(n,E),E.X=F(i,E),E.c=F(e,E),{format:function(t){var e=F(t+="",v);return e.toString=function(){return t},e},parse:function(t){var e=V(t+="",Dtt);return e.toString=function(){return t},e},utcFormat:function(t){var e=F(t+="",E);return e.toString=function(){return t},e},utcParse:function(t){var e=V(t,Btt);return e.toString=function(){return t},e}}}ztt.every=function(t){return isFinite(t=Math.floor(t))&&t>0?wtt((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var Vtt,Utt,jtt,Gtt,Wtt,qtt={"-":"",_:" ",0:"0"},Ytt=/^\s*\d+/,Xtt=/^%/,$tt=/[\\^$*+?|[\]().{}]/g;function Ktt(t,e,n){var i=t<0?"-":"",r=(i?-t:t)+"",o=r.length;return i+(o<n?new Array(n-o+1).join(e)+r:r)}function Ztt(t){return t.replace($tt,"\\$&")}function Jtt(t){return new RegExp("^(?:"+t.map(Ztt).join("|")+")","i")}function Qtt(t){for(var e={},n=-1,i=t.length;++n<i;)e[t[n].toLowerCase()]=n;return e}function tet(t,e,n){var i=Ytt.exec(e.slice(n,n+1));return i?(t.w=+i[0],n+i[0].length):-1}function eet(t,e,n){var i=Ytt.exec(e.slice(n,n+1));return i?(t.u=+i[0],n+i[0].length):-1}function net(t,e,n){var i=Ytt.exec(e.slice(n,n+2));return i?(t.U=+i[0],n+i[0].length):-1}function iet(t,e,n){var i=Ytt.exec(e.slice(n,n+2));return i?(t.V=+i[0],n+i[0].length):-1}function ret(t,e,n){var i=Ytt.exec(e.slice(n,n+2));return i?(t.W=+i[0],n+i[0].length):-1}function oet(t,e,n){var i=Ytt.exec(e.slice(n,n+4));return i?(t.y=+i[0],n+i[0].length):-1}function aet(t,e,n){var i=Ytt.exec(e.slice(n,n+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function set(t,e,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function cet(t,e,n){var i=Ytt.exec(e.slice(n,n+2));return i?(t.m=i[0]-1,n+i[0].length):-1}function uet(t,e,n){var i=Ytt.exec(e.slice(n,n+2));return i?(t.d=+i[0],n+i[0].length):-1}function het(t,e,n){var i=Ytt.exec(e.slice(n,n+3));return i?(t.m=0,t.d=+i[0],n+i[0].length):-1}function det(t,e,n){var i=Ytt.exec(e.slice(n,n+2));return i?(t.H=+i[0],n+i[0].length):-1}function pet(t,e,n){var i=Ytt.exec(e.slice(n,n+2));return i?(t.M=+i[0],n+i[0].length):-1}function fet(t,e,n){var i=Ytt.exec(e.slice(n,n+2));return i?(t.S=+i[0],n+i[0].length):-1}function met(t,e,n){var i=Ytt.exec(e.slice(n,n+3));return i?(t.L=+i[0],n+i[0].length):-1}function get(t,e,n){var i=Ytt.exec(e.slice(n,n+6));return i?(t.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function _et(t,e,n){var i=Xtt.exec(e.slice(n,n+1));return i?n+i[0].length:-1}function yet(t,e,n){var i=Ytt.exec(e.slice(n));return i?(t.Q=+i[0],n+i[0].length):-1}function vet(t,e,n){var i=Ytt.exec(e.slice(n));return i?(t.Q=1e3*+i[0],n+i[0].length):-1}function bet(t,e){return Ktt(t.getDate(),e,2)}function xet(t,e){return Ktt(t.getHours(),e,2)}function wet(t,e){return Ktt(t.getHours()%12||12,e,2)}function Met(t,e){return Ktt(1+Ett.count(Ltt(t),t),e,3)}function Eet(t,e){return Ktt(t.getMilliseconds(),e,3)}function Tet(t,e){return Eet(t,e)+"000"}function Cet(t,e){return Ktt(t.getMonth()+1,e,2)}function Aet(t,e){return Ktt(t.getMinutes(),e,2)}function ket(t,e){return Ktt(t.getSeconds(),e,2)}function Let(t){var e=t.getDay();return 0===e?7:e}function Pet(t,e){return Ktt(Ctt.count(Ltt(t),t),e,2)}function Net(t,e){var n=t.getDay();return t=n>=4||0===n?ktt(t):ktt.ceil(t),Ktt(ktt.count(Ltt(t),t)+(4===Ltt(t).getDay()),e,2)}function Iet(t){return t.getDay()}function Oet(t,e){return Ktt(Att.count(Ltt(t),t),e,2)}function Ret(t,e){return Ktt(t.getFullYear()%100,e,2)}function zet(t,e){return Ktt(t.getFullYear()%1e4,e,4)}function Det(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Ktt(e/60|0,"0",2)+Ktt(e%60,"0",2)}function Bet(t,e){return Ktt(t.getUTCDate(),e,2)}function Het(t,e){return Ktt(t.getUTCHours(),e,2)}function Fet(t,e){return Ktt(t.getUTCHours()%12||12,e,2)}function Vet(t,e){return Ktt(1+Ptt.count(ztt(t),t),e,3)}function Uet(t,e){return Ktt(t.getUTCMilliseconds(),e,3)}function jet(t,e){return Uet(t,e)+"000"}function Get(t,e){return Ktt(t.getUTCMonth()+1,e,2)}function Wet(t,e){return Ktt(t.getUTCMinutes(),e,2)}function qet(t,e){return Ktt(t.getUTCSeconds(),e,2)}function Yet(t){var e=t.getUTCDay();return 0===e?7:e}function Xet(t,e){return Ktt(Itt.count(ztt(t),t),e,2)}function $et(t,e){var n=t.getUTCDay();return t=n>=4||0===n?Rtt(t):Rtt.ceil(t),Ktt(Rtt.count(ztt(t),t)+(4===ztt(t).getUTCDay()),e,2)}function Ket(t){return t.getUTCDay()}function Zet(t,e){return Ktt(Ott.count(ztt(t),t),e,2)}function Jet(t,e){return Ktt(t.getUTCFullYear()%100,e,2)}function Qet(t,e){return Ktt(t.getUTCFullYear()%1e4,e,4)}function tnt(){return"+0000"}function ent(){return"%"}function nnt(t){return+t}function int(t){return Math.floor(+t/1e3)}function rnt(t){return Vtt=Ftt(t),Utt=Vtt.format,jtt=Vtt.parse,Gtt=Vtt.utcFormat,Wtt=Vtt.utcParse,Vtt}rnt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var ont,ant,snt="%Y-%m-%dT%H:%M:%S.%LZ",lnt=Date.prototype.toISOString?function cnt(t){return t.toISOString()}:Gtt(snt),unt=+new Date("2000-01-01T00:00:00.000Z")?function hnt(t){var e=new Date(t);return isNaN(e)?null:e}:Wtt(snt),dnt=0,pnt=0,fnt=0,mnt=0,gnt=0,_nt=0,ynt="object"==typeof performance&&performance.now?performance:Date,vnt="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function bnt(){return gnt||(vnt(xnt),gnt=ynt.now()+_nt)}function xnt(){gnt=0}function wnt(){this._call=this._time=this._next=null}function Snt(t,e,n){var i=new wnt;return i.restart(t,e,n),i}function Mnt(){bnt(),++dnt;for(var t,e=ont;e;)(t=gnt-e._time)>=0&&e._call.call(null,t),e=e._next;--dnt}function Ent(){gnt=(mnt=ynt.now())+_nt,dnt=pnt=0;try{Mnt()}finally{dnt=0,(function t(){for(var t,e,n=ont,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:ont=e);ant=t,Cnt(i)})(),gnt=0}}function Tnt(){var t=ynt.now(),e=t-mnt;e>1e3&&(_nt-=e,mnt=t)}function Cnt(t){dnt||(pnt&&(pnt=clearTimeout(pnt)),t-gnt>24?(t<1/0&&(pnt=setTimeout(Ent,t-ynt.now()-_nt)),fnt&&(fnt=clearInterval(fnt))):(fnt||(mnt=ynt.now(),fnt=setInterval(Tnt,1e3)),dnt=1,vnt(Ent)))}wnt.prototype=Snt.prototype={constructor:wnt,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?bnt():+n)+(null==e?0:+e),this._next||ant===this||(ant?ant._next=this:ont=this,ant=this),this._call=t,this._time=n,Cnt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Cnt())}};var Ant="http://www.w3.org/1999/xhtml",knt={svg:"http://www.w3.org/2000/svg",xhtml:Ant,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Lnt(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),knt.hasOwnProperty(e)?{space:knt[e],local:t}:t}function Pnt(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===Ant&&e.documentElement.namespaceURI===Ant?e.createElement(t):e.createElementNS(n,t)}}function Nnt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Int(t){var e=Lnt(t);return(e.local?Nnt:Pnt)(e)}function Ont(){}function Rnt(t){return null==t?Ont:function(){return this.querySelector(t)}}function znt(){return[]}function Dnt(t){return null==t?znt:function(){return this.querySelectorAll(t)}}function Bnt(t){return function(){return this.matches(t)}}function Hnt(t){return new Array(t.length)}function Fnt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Vnt(t,e,n,i,r,o){for(var a,s=0,l=e.length,c=o.length;s<c;++s)(a=e[s])?(a.__data__=o[s],i[s]=a):n[s]=new Fnt(t,o[s]);for(;s<l;++s)(a=e[s])&&(r[s]=a)}function Unt(t,e,n,i,r,o,a){var s,l,c,u={},h=e.length,d=o.length,p=new Array(h);for(s=0;s<h;++s)(l=e[s])&&(p[s]=c="$"+a.call(l,l.__data__,s,e),c in u?r[s]=l:u[c]=l);for(s=0;s<d;++s)(l=u[c="$"+a.call(t,o[s],s,o)])?(i[s]=l,l.__data__=o[s],u[c]=null):n[s]=new Fnt(t,o[s]);for(s=0;s<h;++s)(l=e[s])&&u[p[s]]===l&&(r[s]=l)}function jnt(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Gnt(t){return function(){this.removeAttribute(t)}}function Wnt(t){return function(){this.removeAttributeNS(t.space,t.local)}}function qnt(t,e){return function(){this.setAttribute(t,e)}}function Ynt(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Xnt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function $nt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Knt(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Znt(t){return function(){this.style.removeProperty(t)}}function Jnt(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Qnt(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function tit(t,e){return t.style.getPropertyValue(e)||Knt(t).getComputedStyle(t,null).getPropertyValue(e)}function eit(t){return function(){delete this[t]}}function nit(t,e){return function(){this[t]=e}}function iit(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function rit(t){return t.trim().split(/^|\s+/)}function oit(t){return t.classList||new ait(t)}function ait(t){this._node=t,this._names=rit(t.getAttribute("class")||"")}function sit(t,e){for(var n=oit(t),i=-1,r=e.length;++i<r;)n.add(e[i])}function lit(t,e){for(var n=oit(t),i=-1,r=e.length;++i<r;)n.remove(e[i])}function cit(t){return function(){sit(this,t)}}function uit(t){return function(){lit(this,t)}}function hit(t,e){return function(){(e.apply(this,arguments)?sit:lit)(this,t)}}function dit(){this.textContent=""}function pit(t){return function(){this.textContent=t}}function fit(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function mit(){this.innerHTML=""}function git(t){return function(){this.innerHTML=t}}function _it(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function yit(){this.nextSibling&&this.parentNode.appendChild(this)}function vit(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function bit(){return null}function xit(){var t=this.parentNode;t&&t.removeChild(this)}function wit(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Sit(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}Fnt.prototype={constructor:Fnt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},ait.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Mit={};function Eit(t,e,n){return t=Tit(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function Tit(t,e,n){return function(i){try{t.call(this,this.__data__,e,n)}finally{}}}function Cit(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function Ait(t){return function(){var e=this.__on;if(e){for(var n,i=0,r=-1,o=e.length;i<o;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.capture);++r?e.length=r:delete this.__on}}}function kit(t,e,n){var i=Mit.hasOwnProperty(t.type)?Eit:Tit;return function(r,o,a){var s,l=this.__on,c=i(e,o,a);if(l)for(var u=0,h=l.length;u<h;++u)if((s=l[u]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=e);this.addEventListener(t.type,c,n),s={type:t.type,name:t.name,value:e,listener:c,capture:n},l?l.push(s):this.__on=[s]}}function Lit(t,e,n){var i=Knt(t),r=i.CustomEvent;"function"==typeof r?r=new r(e,n):(r=i.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function Pit(t,e){return function(){return Lit(this,t,e)}}function Nit(t,e){return function(){return Lit(this,t,e.apply(this,arguments))}}"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(Mit={mouseenter:"mouseover",mouseleave:"mouseout"}));var Iit=[null];function Oit(t,e){this._groups=t,this._parents=e}function Rit(){return new Oit([[document.documentElement]],Iit)}Oit.prototype=Rit.prototype={constructor:Oit,select:function zit(t){"function"!=typeof t&&(t=Rnt(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a,s=e[r],l=s.length,c=i[r]=new Array(l),u=0;u<l;++u)(o=s[u])&&(a=t.call(o,o.__data__,u,s))&&("__data__"in o&&(a.__data__=o.__data__),c[u]=a);return new Oit(i,this._parents)},selectAll:function Dit(t){"function"!=typeof t&&(t=Dnt(t));for(var e=this._groups,n=e.length,i=[],r=[],o=0;o<n;++o)for(var a,s=e[o],l=s.length,c=0;c<l;++c)(a=s[c])&&(i.push(t.call(a,a.__data__,c,s)),r.push(a));return new Oit(i,r)},filter:function Bit(t){"function"!=typeof t&&(t=Bnt(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a=e[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new Oit(i,this._parents)},data:function Hit(t,e){if(!t)return f=new Array(this.size()),u=-1,this.each((function(t){f[++u]=t})),f;var n=e?Unt:Vnt,i=this._parents,r=this._groups;"function"!=typeof t&&(t=(function o(t){return function(){return t}})(t));for(var a=r.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var h=i[u],d=r[u],p=d.length,f=t.call(h,h&&h.__data__,u,i),m=f.length,g=l[u]=new Array(m),_=s[u]=new Array(m);n(h,d,g,_,c[u]=new Array(p),f,e);for(var y,v,b=0,x=0;b<m;++b)if(y=g[b]){for(b>=x&&(x=b+1);!(v=_[x])&&++x<m;);y._next=v||null}}return(s=new Oit(s,i))._enter=l,s._exit=c,s},enter:function Fit(){return new Oit(this._enter||this._groups.map(Hnt),this._parents)},exit:function Vit(){return new Oit(this._exit||this._groups.map(Hnt),this._parents)},join:function Uit(t,e,n){var i=this.enter(),r=this,o=this.exit();return i="function"==typeof t?t(i):i.append(t+""),null!=e&&(r=e(r)),null==n?o.remove():n(o),i&&r?i.merge(r).order():r},merge:function jit(t){for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new Oit(o,this._parents)},order:function Git(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,r=t[e],o=r.length-1,a=r[o];--o>=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function Wit(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=jnt);for(var n=this._groups,i=n.length,r=new Array(i),o=0;o<i;++o){for(var a,s=n[o],l=s.length,c=r[o]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(e)}return new Oit(r,this._parents).order()},call:function qit(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function Yit(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t},node:function Xit(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],r=0,o=i.length;r<o;++r){var a=i[r];if(a)return a}return null},size:function $it(){var t=0;return this.each((function(){++t})),t},empty:function Kit(){return!this.node()},each:function Zit(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var r,o=e[n],a=0,s=o.length;a<s;++a)(r=o[a])&&t.call(r,r.__data__,a,o);return this},attr:function Jit(t,e){var n=Lnt(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?Wnt:Gnt:"function"==typeof e?n.local?$nt:Xnt:n.local?Ynt:qnt)(n,e))},style:function Qit(t,e,n){return arguments.length>1?this.each((null==e?Znt:"function"==typeof e?Qnt:Jnt)(t,e,null==n?"":n)):tit(this.node(),t)},property:function trt(t,e){return arguments.length>1?this.each((null==e?eit:"function"==typeof e?iit:nit)(t,e)):this.node()[t]},classed:function ert(t,e){var n=rit(t+"");if(arguments.length<2){for(var i=oit(this.node()),r=-1,o=n.length;++r<o;)if(!i.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?hit:e?cit:uit)(n,e))},text:function nrt(t){return arguments.length?this.each(null==t?dit:("function"==typeof t?fit:pit)(t)):this.node().textContent},html:function irt(t){return arguments.length?this.each(null==t?mit:("function"==typeof t?_it:git)(t)):this.node().innerHTML},raise:function rrt(){return this.each(yit)},lower:function ort(){return this.each(vit)},append:function art(t){var e="function"==typeof t?t:Int(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function srt(t,e){var n="function"==typeof t?t:Int(t),i=null==e?bit:"function"==typeof e?e:Rnt(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function lrt(){return this.each(xit)},clone:function crt(t){return this.select(t?Sit:wit)},datum:function urt(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function hrt(t,e,n){var i,r,o=Cit(t+""),a=o.length;if(!(arguments.length<2)){for(s=e?kit:Ait,null==n&&(n=!1),i=0;i<a;++i)this.each(s(o[i],e,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(i=0,l=s[c];i<a;++i)if((r=o[i]).type===l.type&&r.name===l.name)return l.value},dispatch:function drt(t,e){return this.each(("function"==typeof e?Nit:Pit)(t,e))}};var prt={value:function(){}};function frt(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new mrt(i)}function mrt(t){this._=t}function grt(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function _rt(t,e){for(var n,i=0,r=t.length;i<r;++i)if((n=t[i]).name===e)return n.value}function yrt(t,e,n){for(var i=0,r=t.length;i<r;++i)if(t[i].name===e){t[i]=prt,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}mrt.prototype=frt.prototype={constructor:mrt,on:function(t,e){var n,i=this._,r=grt(t+"",i),o=-1,a=r.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o<a;)if(n=(t=r[o]).type)i[n]=yrt(i[n],t.name,e);else if(null==e)for(n in i)i[n]=yrt(i[n],t.name,null);return this}for(;++o<a;)if((n=(t=r[o]).type)&&(n=_rt(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new mrt(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,r=new Array(n),o=0;o<n;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(i=this._[t]).length;o<n;++o)i[o].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)}};var vrt,brt,xrt=0,wrt=0,Srt=0,Mrt=0,Ert=0,Trt=0,Crt="object"==typeof performance&&performance.now?performance:Date,Art="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function krt(){return Ert||(Art(Lrt),Ert=Crt.now()+Trt)}function Lrt(){Ert=0}function Prt(){this._call=this._time=this._next=null}function Nrt(t,e,n){var i=new Prt;return i.restart(t,e,n),i}function Irt(){Ert=(Mrt=Crt.now())+Trt,xrt=wrt=0;try{!(function t(){krt(),++xrt;for(var t,e=vrt;e;)(t=Ert-e._time)>=0&&e._call.call(null,t),e=e._next;--xrt})()}finally{xrt=0,(function e(){for(var t,e,n=vrt,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:vrt=e);brt=t,Rrt(i)})(),Ert=0}}function Ort(){var t=Crt.now(),e=t-Mrt;e>1e3&&(Trt-=e,Mrt=t)}function Rrt(t){xrt||(wrt&&(wrt=clearTimeout(wrt)),t-Ert>24?(t<1/0&&(wrt=setTimeout(Irt,t-Crt.now()-Trt)),Srt&&(Srt=clearInterval(Srt))):(Srt||(Mrt=Crt.now(),Srt=setInterval(Ort,1e3)),xrt=1,Art(Irt)))}function zrt(t,e,n){var i=new Prt;return i.restart((function(n){i.stop(),t(n+e)}),e=null==e?0:+e,n),i}Prt.prototype=Nrt.prototype={constructor:Prt,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?krt():+n)+(null==e?0:+e),this._next||brt===this||(brt?brt._next=this:vrt=this,brt=this),this._call=t,this._time=n,Rrt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Rrt())}};var Drt=frt("start","end","interrupt"),Brt=[];function Hrt(t,e,n,i,r,o){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!(function s(t,e,n){var i,r=t.__transition;function o(l){var c,u,h,d;if(1!==n.state)return s();for(c in r)if((d=r[c]).name===n.name){if(3===d.state)return zrt(o);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[c]):+c<e&&(d.state=6,d.timer.stop(),delete r[c])}if(zrt((function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(l))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,i=new Array(h=n.tween.length),c=0,u=-1;c<h;++c)(d=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(i[++u]=d);i.length=u+1}}function a(e){for(var r=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(s),n.state=5,1),o=-1,a=i.length;++o<a;)i[o].call(null,r);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),s())}function s(){for(var i in n.state=6,n.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=n,n.timer=Nrt((function l(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}),0,n.time)})(t,n,{name:e,index:i,group:r,on:Drt,tween:Brt,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function Frt(t,e){var n=Urt(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function Vrt(t,e){var n=Urt(t,e);if(n.state>2)throw new Error("too late; already started");return n}function Urt(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function jrt(t,e){var n,i,r,o=t.__transition,a=!0;if(o){for(r in e=null==e?null:e+"",o)(n=o[r]).name===e?(i=n.state>2&&n.state<5,n.state=6,n.timer.stop(),i&&n.on.call("interrupt",t,t.__data__,n.index,n.group),delete o[r]):a=!1;a&&delete t.__transition}}function Grt(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Wrt(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function qrt(){}var Yrt=.7,Xrt=1/Yrt,$rt="\\s*([+-]?\\d+)\\s*",Krt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Zrt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Jrt=/^#([0-9a-f]{3,8})$/,Qrt=new RegExp("^rgb\\("+[$rt,$rt,$rt]+"\\)$"),tot=new RegExp("^rgb\\("+[Zrt,Zrt,Zrt]+"\\)$"),eot=new RegExp("^rgba\\("+[$rt,$rt,$rt,Krt]+"\\)$"),not=new RegExp("^rgba\\("+[Zrt,Zrt,Zrt,Krt]+"\\)$"),iot=new RegExp("^hsl\\("+[Krt,Zrt,Zrt]+"\\)$"),rot=new RegExp("^hsla\\("+[Krt,Zrt,Zrt,Krt]+"\\)$"),oot={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function aot(){return this.rgb().formatHex()}function sot(){return this.rgb().formatRgb()}function lot(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Jrt.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?cot(e):3===n?new pot(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?uot(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?uot(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Qrt.exec(t))?new pot(e[1],e[2],e[3],1):(e=tot.exec(t))?new pot(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=eot.exec(t))?uot(e[1],e[2],e[3],e[4]):(e=not.exec(t))?uot(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=iot.exec(t))?_ot(e[1],e[2]/100,e[3]/100,1):(e=rot.exec(t))?_ot(e[1],e[2]/100,e[3]/100,e[4]):oot.hasOwnProperty(t)?cot(oot[t]):"transparent"===t?new pot(NaN,NaN,NaN,0):null}function cot(t){return new pot(t>>16&255,t>>8&255,255&t,1)}function uot(t,e,n,i){return i<=0&&(t=e=n=NaN),new pot(t,e,n,i)}function hot(t){return t instanceof qrt||(t=lot(t)),t?new pot((t=t.rgb()).r,t.g,t.b,t.opacity):new pot}function dot(t,e,n,i){return 1===arguments.length?hot(t):new pot(t,e,n,null==i?1:i)}function pot(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function fot(){return"#"+got(this.r)+got(this.g)+got(this.b)}function mot(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function got(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function _ot(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new vot(t,e,n,i)}function yot(t){if(t instanceof vot)return new vot(t.h,t.s,t.l,t.opacity);if(t instanceof qrt||(t=lot(t)),!t)return new vot;if(t instanceof vot)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),o=Math.max(e,n,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=e===o?(n-i)/s+6*(n<i):n===o?(i-e)/s+2:(e-n)/s+4,s/=l<.5?o+r:2-o-r,a*=60):s=l>0&&l<1?0:a,new vot(a,s,l,t.opacity)}function vot(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function bot(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function xot(t){return function(){return t}}function wot(t,e){var n=e-t;return n?(function i(t,e){return function(n){return t+n*e}})(t,n):xot(isNaN(t)?e:t)}Grt(qrt,lot,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:aot,formatHex:aot,formatHsl:function Sot(){return yot(this).formatHsl()},formatRgb:sot,toString:sot}),Grt(pot,dot,Wrt(qrt,{brighter:function(t){return t=null==t?Xrt:Math.pow(Xrt,t),new pot(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?Yrt:Math.pow(Yrt,t),new pot(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:fot,formatHex:fot,formatRgb:mot,toString:mot})),Grt(vot,(function Mot(t,e,n,i){return 1===arguments.length?yot(t):new vot(t,e,n,null==i?1:i)}),Wrt(qrt,{brighter:function(t){return t=null==t?Xrt:Math.pow(Xrt,t),new vot(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?Yrt:Math.pow(Yrt,t),new vot(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new pot(bot(t>=240?t-240:t+120,r,i),bot(t,r,i),bot(t<120?t+240:t-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var Eot=(function t(e){var n=(function i(t){return 1==(t=+t)?wot:function(e,n){return n-e?(function i(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}})(e,n,t):xot(isNaN(e)?n:e)}})(e);function r(t,e){var i=n((t=dot(t)).r,(e=dot(e)).r),r=n(t.g,e.g),o=n(t.b,e.b),a=wot(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=r(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r})(1);function Tot(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var Cot=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Aot=new RegExp(Cot.source,"g");function kot(t,e){var n,i,r,o=Cot.lastIndex=Aot.lastIndex=0,a=-1,s=[],l=[];for(t+="",e+="";(n=Cot.exec(t))&&(i=Aot.exec(e));)(r=i.index)>o&&(r=e.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:Tot(n,i)})),o=Aot.lastIndex;return o<e.length&&(r=e.slice(o),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?(function c(t){return function(e){return t(e)+""}})(l[0].x):(function u(t){return function(){return t}})(e):(e=l.length,function(t){for(var n,i=0;i<e;++i)s[(n=l[i]).i]=n.x(t);return s.join("")})}var Lot,Pot,Not,Iot,Oot=180/Math.PI,Rot={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function zot(t,e,n,i,r,o){var a,s,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*n+e*i)&&(n-=t*l,i-=e*l),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,l/=s),t*i<e*n&&(t=-t,e=-e,l=-l,a=-a),{translateX:r,translateY:o,rotate:Math.atan2(e,t)*Oot,skewX:Math.atan(l)*Oot,scaleX:a,scaleY:s}}function Dot(t,e,n,i){function r(t){return t.length?t.pop()+" ":""}return function(o,a){var s=[],l=[];return o=t(o),a=t(a),(function c(t,i,r,o,a,s){if(t!==r||i!==o){var l=a.push("translate(",null,e,null,n);s.push({i:l-4,x:Tot(t,r)},{i:l-2,x:Tot(i,o)})}else(r||o)&&a.push("translate("+r+e+o+n)})(o.translateX,o.translateY,a.translateX,a.translateY,s,l),(function u(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:Tot(t,e)})):e&&n.push(r(n)+"rotate("+e+i)})(o.rotate,a.rotate,s,l),(function h(t,e,n,o){t!==e?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:Tot(t,e)}):e&&n.push(r(n)+"skewX("+e+i)})(o.skewX,a.skewX,s,l),(function d(t,e,n,i,o,a){if(t!==n||e!==i){var s=o.push(r(o)+"scale(",null,",",null,")");a.push({i:s-4,x:Tot(t,n)},{i:s-2,x:Tot(e,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")})(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(t){for(var e,n=-1,i=l.length;++n<i;)s[(e=l[n]).i]=e.x(t);return s.join("")}}}var Bot=Dot((function Hot(t){return"none"===t?Rot:(Lot||(Lot=document.createElement("DIV"),Pot=document.documentElement,Not=document.defaultView),Lot.style.transform=t,t=Not.getComputedStyle(Pot.appendChild(Lot),null).getPropertyValue("transform"),Pot.removeChild(Lot),zot(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),Fot=Dot((function Vot(t){return null==t?Rot:(Iot||(Iot=document.createElementNS("http://www.w3.org/2000/svg","g")),Iot.setAttribute("transform",t),(t=Iot.transform.baseVal.consolidate())?zot((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Rot)}),", ",")",")");function Uot(t,e){var n,i;return function(){var r=Vrt(this,t),o=r.tween;if(o!==n)for(var a=0,s=(i=n=o).length;a<s;++a)if(i[a].name===e){(i=i.slice()).splice(a,1);break}r.tween=i}}function jot(t,e,n){var i,r;if("function"!=typeof n)throw new Error;return function(){var o=Vrt(this,t),a=o.tween;if(a!==i){r=(i=a).slice();for(var s={name:e,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===e){r[l]=s;break}l===c&&r.push(s)}o.tween=r}}function Got(t,e,n){var i=t._id;return t.each((function(){var t=Vrt(this,i);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return Urt(t,i).value[e]}}function Wot(t,e){var n;return("number"==typeof e?Tot:e instanceof lot?Eot:(n=lot(e))?(e=n,Eot):kot)(t,e)}function qot(t){return function(){this.removeAttribute(t)}}function Yot(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Xot(t,e,n){var i,r;return function(){var o=this.getAttribute(t);return o===n?null:o===i?r:r=e(i=o,n)}}function $ot(t,e,n){var i,r;return function(){var o=this.getAttributeNS(t.space,t.local);return o===n?null:o===i?r:r=e(i=o,n)}}function Kot(t,e,n){var i,r,o;return function(){var a,s=n(this);if(null!=s)return(a=this.getAttribute(t))===s?null:a===i&&s===r?o:o=e(i=a,r=s);this.removeAttribute(t)}}function Zot(t,e,n){var i,r,o;return function(){var a,s=n(this);if(null!=s)return(a=this.getAttributeNS(t.space,t.local))===s?null:a===i&&s===r?o:o=e(i=a,r=s);this.removeAttributeNS(t.space,t.local)}}function Jot(t,e){function n(){var n=this,i=e.apply(n,arguments);return i&&function(e){n.setAttributeNS(t.space,t.local,i(e))}}return n._value=e,n}function Qot(t,e){function n(){var n=this,i=e.apply(n,arguments);return i&&function(e){n.setAttribute(t,i(e))}}return n._value=e,n}function tat(t,e){return function(){Frt(this,t).delay=+e.apply(this,arguments)}}function eat(t,e){return e=+e,function(){Frt(this,t).delay=e}}function nat(t,e){return function(){Vrt(this,t).duration=+e.apply(this,arguments)}}function iat(t,e){return e=+e,function(){Vrt(this,t).duration=e}}function rat(t,e){if("function"!=typeof e)throw new Error;return function(){Vrt(this,t).ease=e}}function oat(t,e,n){var i,r,o=(function a(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))})(e)?Frt:Vrt;return function(){var a=o(this,t),s=a.on;s!==i&&(r=(i=s).copy()).on(e,n),a.on=r}}var aat=Rit.prototype.constructor;function sat(t,e,n){function i(){var i=this,r=e.apply(i,arguments);return r&&function(e){i.style.setProperty(t,r(e),n)}}return i._value=e,i}var lat=0;function cat(t,e,n,i){this._groups=t,this._parents=e,this._name=n,this._id=i}function uat(t){return Rit().transition(t)}function hat(){return++lat}var dat=Rit.prototype;cat.prototype=uat.prototype={constructor:cat,select:function pat(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=Rnt(t));for(var i=this._groups,r=i.length,o=new Array(r),a=0;a<r;++a)for(var s,l,c=i[a],u=c.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=c[d])&&(l=t.call(s,s.__data__,d,c))&&("__data__"in s&&(l.__data__=s.__data__),h[d]=l,Hrt(h[d],e,n,d,h,Urt(s,n)));return new cat(o,this._parents,e,n)},selectAll:function fat(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=Dnt(t));for(var i=this._groups,r=i.length,o=[],a=[],s=0;s<r;++s)for(var l,c=i[s],u=c.length,h=0;h<u;++h)if(l=c[h]){for(var d,p=t.call(l,l.__data__,h,c),f=Urt(l,n),m=0,g=p.length;m<g;++m)(d=p[m])&&Hrt(d,e,n,m,p,f);o.push(p),a.push(l)}return new cat(o,a,e,n)},filter:function mat(t){"function"!=typeof t&&(t=Bnt(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a=e[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new cat(i,this._parents,this._name,this._id)},merge:function gat(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new cat(o,this._parents,this._name,this._id)},selection:function _at(){return new aat(this._groups,this._parents)},transition:function yat(){for(var t=this._name,e=this._id,n=hat(),i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)if(a=s[c]){var u=Urt(a,e);Hrt(a,t,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new cat(i,this._parents,t,n)},call:dat.call,nodes:dat.nodes,node:dat.node,size:dat.size,empty:dat.empty,each:dat.each,on:function vat(t,e){var n=this._id;return arguments.length<2?Urt(this.node(),n).on.on(t):this.each(oat(n,t,e))},attr:function bat(t,e){var n=Lnt(t),i="transform"===n?Fot:Wot;return this.attrTween(t,"function"==typeof e?(n.local?Zot:Kot)(n,i,Got(this,"attr."+t,e)):null==e?(n.local?Yot:qot)(n):(n.local?$ot:Xot)(n,i,e+""))},attrTween:function xat(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var i=Lnt(t);return this.tween(n,(i.local?Jot:Qot)(i,e))},style:function wat(t,e,n){var i="transform"==(t+="")?Bot:Wot;return null==e?this.styleTween(t,(function o(t,e){var n,i,r;return function(){var o=tit(this,t),a=(this.style.removeProperty(t),tit(this,t));return o===a?null:o===n&&a===i?r:r=e(n=o,i=a)}})(t,i)).on("end.style."+t,(function r(t){return function(){this.style.removeProperty(t)}})(t)):this.styleTween(t,"function"==typeof e?(function a(t,e,n){var i,r,o;return function(){var a=tit(this,t),s=n(this);return null==s&&(this.style.removeProperty(t),s=tit(this,t)),a===s?null:a===i&&s===r?o:o=e(i=a,r=s)}})(t,i,Got(this,"style."+t,e)):(function s(t,e,n){var i,r;return function(){var o=tit(this,t);return o===n?null:o===i?r:r=e(i=o,n)}})(t,i,e+""),n)},styleTween:function Sat(t,e,n){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;return this.tween(i,sat(t,e,null==n?"":n))},text:function Mat(t){return this.tween("text","function"==typeof t?(function e(t){return function(){var e=t(this);this.textContent=null==e?"":e}})(Got(this,"text",t)):(function n(t){return function(){this.textContent=t}})(null==t?"":t+""))},remove:function Eat(){return this.on("end.remove",(function t(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}})(this._id))},tween:function Tat(t,e){var n=this._id;if(t+="",arguments.length<2){for(var i,r=Urt(this.node(),n).tween,o=0,a=r.length;o<a;++o)if((i=r[o]).name===t)return i.value;return null}return this.each((null==e?Uot:jot)(n,t,e))},delay:function Cat(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?tat:eat)(e,t)):Urt(this.node(),e).delay},duration:function Aat(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?nat:iat)(e,t)):Urt(this.node(),e).duration},ease:function kat(t){var e=this._id;return arguments.length?this.each(rat(e,t)):Urt(this.node(),e).ease}};var Lat={time:null,delay:0,duration:250,ease:Ef};function Pat(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))return Lat.time=krt(),Lat;return n}Rit.prototype.interrupt=function Nat(t){return this.each((function(){jrt(this,t)}))},Rit.prototype.transition=function Iat(t){var e,n;t instanceof cat?(e=t._id,t=t._name):(e=hat(),(n=Lat).time=krt(),t=null==t?null:t+"");for(var i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)(a=s[c])&&Hrt(a,t,e,c,s,n||Pat(a,e));return new cat(i,this._parents,t,e)};var Oat=[null];function Rat(t){return function(){return t}}function zat(t){return t[0]}function Dat(t){return t[1]}function Bat(){this._=null}function Hat(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Fat(t,e){var n=e,i=e.R,r=n.U;r?r.L===n?r.L=i:r.R=i:t._=i,i.U=r,n.U=i,n.R=i.L,n.R&&(n.R.U=n),i.L=n}function Vat(t,e){var n=e,i=e.L,r=n.U;r?r.L===n?r.L=i:r.R=i:t._=i,i.U=r,n.U=i,n.L=i.R,n.L&&(n.L.U=n),i.R=n}function Uat(t){for(;t.L;)t=t.L;return t}function jat(t,e,n,i){var r=[null,null],o=pst.push(r)-1;return r.left=t,r.right=e,n&&Wat(r,t,e,n),i&&Wat(r,e,t,i),hst[t.index].halfedges.push(o),hst[e.index].halfedges.push(o),r}function Gat(t,e,n){var i=[e,n];return i.left=t,i}function Wat(t,e,n,i){t[0]||t[1]?t.left===n?t[1]=i:t[0]=i:(t[0]=i,t.left=e,t.right=n)}function qat(t,e,n,i,r){var o,a=t[0],s=t[1],l=a[0],c=a[1],u=0,h=1,d=s[0]-l,p=s[1]-c;if(o=e-l,d||!(o>0)){if(o/=d,d<0){if(o<u)return;o<h&&(h=o)}else if(d>0){if(o>h)return;o>u&&(u=o)}if(o=i-l,d||!(o<0)){if(o/=d,d<0){if(o>h)return;o>u&&(u=o)}else if(d>0){if(o<u)return;o<h&&(h=o)}if(o=n-c,p||!(o>0)){if(o/=p,p<0){if(o<u)return;o<h&&(h=o)}else if(p>0){if(o>h)return;o>u&&(u=o)}if(o=r-c,p||!(o<0)){if(o/=p,p<0){if(o>h)return;o>u&&(u=o)}else if(p>0){if(o<u)return;o<h&&(h=o)}return!(u>0||h<1)||(u>0&&(t[0]=[l+u*d,c+u*p]),h<1&&(t[1]=[l+h*d,c+h*p]),!0)}}}}}function Yat(t,e,n,i,r){var o=t[1];if(o)return!0;var a,s,l=t[0],c=t.left,u=t.right,h=c[0],d=c[1],p=u[0],f=u[1],m=(h+p)/2;if(f===d){if(m<e||m>=i)return;if(h>p){if(l){if(l[1]>=r)return}else l=[m,n];o=[m,r]}else{if(l){if(l[1]<n)return}else l=[m,r];o=[m,n]}}else if(s=(d+f)/2-(a=(h-p)/(f-d))*m,a<-1||a>1)if(h>p){if(l){if(l[1]>=r)return}else l=[(n-s)/a,n];o=[(r-s)/a,r]}else{if(l){if(l[1]<n)return}else l=[(r-s)/a,r];o=[(n-s)/a,n]}else if(d<f){if(l){if(l[0]>=i)return}else l=[e,a*e+s];o=[i,a*i+s]}else{if(l){if(l[0]<e)return}else l=[i,a*i+s];o=[e,a*e+s]}return t[0]=l,t[1]=o,!0}function Xat(t,e){var n=t.site,i=e.left,r=e.right;return n===r&&(r=i,i=n),r?Math.atan2(r[1]-i[1],r[0]-i[0]):(n===i?(i=e[1],r=e[0]):(i=e[0],r=e[1]),Math.atan2(i[0]-r[0],r[1]-i[1]))}function $at(t,e){return e[+(e.left!==t.site)]}function Kat(t,e){return e[+(e.left===t.site)]}Bat.prototype={constructor:Bat,insert:function(t,e){var n,i,r;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;n=t}else this._?(t=Uat(this._),e.P=null,e.N=t,t.P=t.L=e,n=t):(e.P=e.N=null,this._=e,n=null);for(e.L=e.R=null,e.U=n,e.C=!0,t=e;n&&n.C;)n===(i=n.U).L?(r=i.R)&&r.C?(n.C=r.C=!1,i.C=!0,t=i):(t===n.R&&(Fat(this,n),n=(t=n).U),n.C=!1,i.C=!0,Vat(this,i)):(r=i.L)&&r.C?(n.C=r.C=!1,i.C=!0,t=i):(t===n.L&&(Vat(this,n),n=(t=n).U),n.C=!1,i.C=!0,Fat(this,i)),n=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,n,i,r=t.U,o=t.L,a=t.R;if(n=o?a?Uat(a):o:a,r?r.L===t?r.L=n:r.R=n:this._=n,o&&a?(i=n.C,n.C=t.C,n.L=o,o.U=n,n!==a?(r=n.U,n.U=t.U,r.L=t=n.R,n.R=a,a.U=n):(n.U=r,r=n,t=n.R)):(i=t.C,t=n),t&&(t.U=r),!i)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===r.L){if((e=r.R).C&&(e.C=!1,r.C=!0,Fat(this,r),e=r.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,Vat(this,e),e=r.R),e.C=r.C,r.C=e.R.C=!1,Fat(this,r),t=this._;break}}else if((e=r.L).C&&(e.C=!1,r.C=!0,Vat(this,r),e=r.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,Fat(this,e),e=r.L),e.C=r.C,r.C=e.L.C=!1,Vat(this,r),t=this._;break}e.C=!0,t=r,r=r.U}while(!t.C);t&&(t.C=!1)}}};var Zat,Jat=[];function Qat(){Hat(this),this.x=this.y=this.arc=this.site=this.cy=null}function tst(t){var e=t.P,n=t.N;if(e&&n){var i=e.site,r=t.site,o=n.site;if(i!==o){var a=r[0],s=r[1],l=i[0]-a,c=i[1]-s,u=o[0]-a,h=o[1]-s,d=2*(l*h-c*u);if(!(d>=-mst)){var p=l*l+c*c,f=u*u+h*h,m=(h*p-c*f)/d,g=(l*f-u*p)/d,_=Jat.pop()||new Qat;_.arc=t,_.site=r,_.x=m+a,_.y=(_.cy=g+s)+Math.sqrt(m*m+g*g),t.circle=_;for(var y=null,v=dst._;v;)if(_.y<v.y||_.y===v.y&&_.x<=v.x){if(!v.L){y=v.P;break}v=v.L}else{if(!v.R){y=v;break}v=v.R}dst.insert(y,_),y||(Zat=_)}}}}function est(t){var e=t.circle;e&&(e.P||(Zat=e.N),dst.remove(e),Jat.push(e),Hat(e),t.circle=null)}var nst=[];function ist(){Hat(this),this.edge=this.site=this.circle=null}function rst(t){var e=nst.pop()||new ist;return e.site=t,e}function ost(t){est(t),ust.remove(t),nst.push(t),Hat(t)}function ast(t){var e=t.circle,n=e.x,i=e.cy,r=[n,i],o=t.P,a=t.N,s=[t];ost(t);for(var l=o;l.circle&&Math.abs(n-l.circle.x)<fst&&Math.abs(i-l.circle.cy)<fst;)o=l.P,s.unshift(l),ost(l),l=o;s.unshift(l),est(l);for(var c=a;c.circle&&Math.abs(n-c.circle.x)<fst&&Math.abs(i-c.circle.cy)<fst;)a=c.N,s.push(c),ost(c),c=a;s.push(c),est(c);var u,h=s.length;for(u=1;u<h;++u)Wat((c=s[u]).edge,(l=s[u-1]).site,c.site,r);(c=s[h-1]).edge=jat((l=s[0]).site,c.site,null,r),tst(l),tst(c)}function sst(t){for(var e,n,i,r,o=t[0],a=t[1],s=ust._;s;)if((i=lst(s,a)-o)>fst)s=s.L;else{if(!((r=o-cst(s,a))>fst)){i>-fst?(e=s.P,n=s):r>-fst?(e=s,n=s.N):e=n=s;break}if(!s.R){e=s;break}s=s.R}!(function l(t){hst[t.index]={site:t,halfedges:[]}})(t);var c=rst(t);if(ust.insert(e,c),e||n){if(e===n)return est(e),n=rst(e.site),ust.insert(c,n),c.edge=n.edge=jat(e.site,c.site),tst(e),void tst(n);if(n){est(e),est(n);var u=e.site,h=u[0],d=u[1],p=t[0]-h,f=t[1]-d,m=n.site,g=m[0]-h,_=m[1]-d,y=2*(p*_-f*g),v=p*p+f*f,b=g*g+_*_,x=[(_*v-f*b)/y+h,(p*b-g*v)/y+d];Wat(n.edge,u,m,x),c.edge=jat(u,t,null,x),n.edge=jat(t,m,null,x),tst(e),tst(n)}else c.edge=jat(e.site,c.site)}}function lst(t,e){var n=t.site,i=n[0],r=n[1],o=r-e;if(!o)return i;var a=t.P;if(!a)return-1/0;var s=(n=a.site)[0],l=n[1],c=l-e;if(!c)return s;var u=s-i,h=1/o-1/c,d=u/c;return h?(-d+Math.sqrt(d*d-2*h*(u*u/(-2*c)-l+c/2+r-o/2)))/h+i:(i+s)/2}function cst(t,e){var n=t.N;if(n)return lst(n,e);var i=t.site;return i[1]===e?i[0]:1/0}var ust,hst,dst,pst,fst=1e-6,mst=1e-12;function gst(t,e,n){return(t[0]-n[0])*(e[1]-t[1])-(t[0]-e[0])*(n[1]-t[1])}function _st(t,e){return e[1]-t[1]||e[0]-t[0]}function yst(t,e){var n,i,r,o=t.sort(_st).pop();for(pst=[],hst=new Array(t.length),ust=new Bat,dst=new Bat;;)if(r=Zat,o&&(!r||o[1]<r.y||o[1]===r.y&&o[0]<r.x))o[0]===n&&o[1]===i||(sst(o),n=o[0],i=o[1]),o=t.pop();else{if(!r)break;ast(r.arc)}if((function a(){for(var t,e,n,i,r=0,o=hst.length;r<o;++r)if((t=hst[r])&&(i=(e=t.halfedges).length)){var a=new Array(i),s=new Array(i);for(n=0;n<i;++n)a[n]=n,s[n]=Xat(t,pst[e[n]]);for(a.sort((function(t,e){return s[e]-s[t]})),n=0;n<i;++n)s[n]=e[a[n]];for(n=0;n<i;++n)e[n]=s[n]}})(),e){var s=+e[0][0],l=+e[0][1],c=+e[1][0],u=+e[1][1];!(function h(t,e,n,i){for(var r,o=pst.length;o--;)Yat(r=pst[o],t,e,n,i)&&qat(r,t,e,n,i)&&(Math.abs(r[0][0]-r[1][0])>fst||Math.abs(r[0][1]-r[1][1])>fst)||delete pst[o]})(s,l,c,u),(function d(t,e,n,i){var r,o,a,s,l,c,u,h,d,p,f,m,g=hst.length,_=!0;for(r=0;r<g;++r)if(o=hst[r]){for(a=o.site,s=(l=o.halfedges).length;s--;)pst[l[s]]||l.splice(s,1);for(s=0,c=l.length;s<c;)f=(p=Kat(o,pst[l[s]]))[0],m=p[1],h=(u=$at(o,pst[l[++s%c]]))[0],d=u[1],(Math.abs(f-h)>fst||Math.abs(m-d)>fst)&&(l.splice(s,0,pst.push(Gat(a,p,Math.abs(f-t)<fst&&i-m>fst?[t,Math.abs(h-t)<fst?d:i]:Math.abs(m-i)<fst&&n-f>fst?[Math.abs(d-i)<fst?h:n,i]:Math.abs(f-n)<fst&&m-e>fst?[n,Math.abs(h-n)<fst?d:e]:Math.abs(m-e)<fst&&f-t>fst?[Math.abs(d-e)<fst?h:t,e]:null))-1),++c);c&&(_=!1)}if(_){var y,v,b,x=1/0;for(r=0,_=null;r<g;++r)(o=hst[r])&&(b=(y=(a=o.site)[0]-t)*y+(v=a[1]-e)*v)<x&&(x=b,_=o);if(_){var w=[t,e],S=[t,i],M=[n,i],E=[n,e];_.halfedges.push(pst.push(Gat(a=_.site,w,S))-1,pst.push(Gat(a,S,M))-1,pst.push(Gat(a,M,E))-1,pst.push(Gat(a,E,w))-1)}}for(r=0;r<g;++r)(o=hst[r])&&(o.halfedges.length||delete hst[r])})(s,l,c,u)}this.edges=pst,this.cells=hst,ust=dst=pst=hst=null}yst.prototype={constructor:yst,polygons:function(){var t=this.edges;return this.cells.map((function(e){var n=e.halfedges.map((function(n){return $at(e,t[n])}));return n.data=e.site.data,n}))},triangles:function(){var t=[],e=this.edges;return this.cells.forEach((function(n,i){if(o=(r=n.halfedges).length)for(var r,o,a,s=n.site,l=-1,c=e[r[o-1]],u=c.left===s?c.right:c.left;++l<o;)a=u,u=(c=e[r[l]]).left===s?c.right:c.left,a&&u&&i<a.index&&i<u.index&&gst(s,a,u)<0&&t.push([s.data,a.data,u.data])})),t},links:function(){return this.edges.filter((function(t){return t.right})).map((function(t){return{source:t.left.data,target:t.right.data}}))},find:function(t,e,n){for(var i,r,o=this,a=o._found||0,s=o.cells.length;!(r=o.cells[a]);)if(++a>=s)return null;var l=t-r.site[0],c=e-r.site[1],u=l*l+c*c;do{r=o.cells[i=a],a=null,r.halfedges.forEach((function(n){var i=o.edges[n],s=i.left;if(s!==r.site&&s||(s=i.right)){var l=t-s[0],c=e-s[1],h=l*l+c*c;h<u&&(u=h,a=s.index)}}))}while(null!==a);return o._found=i,null==n||u<=n*n?r.site:null}};var vst={value:function(){}};function bst(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new xst(i)}function xst(t){this._=t}function wst(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function Sst(t,e){for(var n,i=0,r=t.length;i<r;++i)if((n=t[i]).name===e)return n.value}function Mst(t,e,n){for(var i=0,r=t.length;i<r;++i)if(t[i].name===e){t[i]=vst,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}xst.prototype=bst.prototype={constructor:xst,on:function(t,e){var n,i=this._,r=wst(t+"",i),o=-1,a=r.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o<a;)if(n=(t=r[o]).type)i[n]=Mst(i[n],t.name,e);else if(null==e)for(n in i)i[n]=Mst(i[n],t.name,null);return this}for(;++o<a;)if((n=(t=r[o]).type)&&(n=Sst(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new xst(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,r=new Array(n),o=0;o<n;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(i=this._[t]).length;o<n;++o)i[o].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)}};var Est="http://www.w3.org/1999/xhtml",Tst={svg:"http://www.w3.org/2000/svg",xhtml:Est,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Cst(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),Tst.hasOwnProperty(e)?{space:Tst[e],local:t}:t}function Ast(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===Est&&e.documentElement.namespaceURI===Est?e.createElement(t):e.createElementNS(n,t)}}function kst(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Lst(t){var e=Cst(t);return(e.local?kst:Ast)(e)}function Pst(){}function Nst(t){return null==t?Pst:function(){return this.querySelector(t)}}function Ist(){return[]}function Ost(t){return null==t?Ist:function(){return this.querySelectorAll(t)}}function Rst(t){return function(){return this.matches(t)}}function zst(t){return new Array(t.length)}function Dst(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Bst(t,e,n,i,r,o){for(var a,s=0,l=e.length,c=o.length;s<c;++s)(a=e[s])?(a.__data__=o[s],i[s]=a):n[s]=new Dst(t,o[s]);for(;s<l;++s)(a=e[s])&&(r[s]=a)}function Hst(t,e,n,i,r,o,a){var s,l,c,u={},h=e.length,d=o.length,p=new Array(h);for(s=0;s<h;++s)(l=e[s])&&(p[s]=c="$"+a.call(l,l.__data__,s,e),c in u?r[s]=l:u[c]=l);for(s=0;s<d;++s)(l=u[c="$"+a.call(t,o[s],s,o)])?(i[s]=l,l.__data__=o[s],u[c]=null):n[s]=new Dst(t,o[s]);for(s=0;s<h;++s)(l=e[s])&&u[p[s]]===l&&(r[s]=l)}function Fst(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Vst(t){return function(){this.removeAttribute(t)}}function Ust(t){return function(){this.removeAttributeNS(t.space,t.local)}}function jst(t,e){return function(){this.setAttribute(t,e)}}function Gst(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Wst(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function qst(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Yst(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Xst(t){return function(){this.style.removeProperty(t)}}function $st(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Kst(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function Zst(t,e){return t.style.getPropertyValue(e)||Yst(t).getComputedStyle(t,null).getPropertyValue(e)}function Jst(t){return function(){delete this[t]}}function Qst(t,e){return function(){this[t]=e}}function tlt(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function elt(t){return t.trim().split(/^|\s+/)}function nlt(t){return t.classList||new ilt(t)}function ilt(t){this._node=t,this._names=elt(t.getAttribute("class")||"")}function rlt(t,e){for(var n=nlt(t),i=-1,r=e.length;++i<r;)n.add(e[i])}function olt(t,e){for(var n=nlt(t),i=-1,r=e.length;++i<r;)n.remove(e[i])}function alt(t){return function(){rlt(this,t)}}function slt(t){return function(){olt(this,t)}}function llt(t,e){return function(){(e.apply(this,arguments)?rlt:olt)(this,t)}}function clt(){this.textContent=""}function ult(t){return function(){this.textContent=t}}function hlt(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function dlt(){this.innerHTML=""}function plt(t){return function(){this.innerHTML=t}}function flt(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function mlt(){this.nextSibling&&this.parentNode.appendChild(this)}function glt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function _lt(){return null}function ylt(){var t=this.parentNode;t&&t.removeChild(this)}function vlt(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function blt(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}Dst.prototype={constructor:Dst,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},ilt.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var xlt={},wlt=null;function Slt(t,e,n){return t=Mlt(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function Mlt(t,e,n){return function(i){var r=wlt;wlt=i;try{t.call(this,this.__data__,e,n)}finally{wlt=r}}}function Elt(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function Tlt(t){return function(){var e=this.__on;if(e){for(var n,i=0,r=-1,o=e.length;i<o;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.capture);++r?e.length=r:delete this.__on}}}function Clt(t,e,n){var i=xlt.hasOwnProperty(t.type)?Slt:Mlt;return function(r,o,a){var s,l=this.__on,c=i(e,o,a);if(l)for(var u=0,h=l.length;u<h;++u)if((s=l[u]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=e);this.addEventListener(t.type,c,n),s={type:t.type,name:t.name,value:e,listener:c,capture:n},l?l.push(s):this.__on=[s]}}function Alt(t,e,n){var i=Yst(t),r=i.CustomEvent;"function"==typeof r?r=new r(e,n):(r=i.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function klt(t,e){return function(){return Alt(this,t,e)}}function Llt(t,e){return function(){return Alt(this,t,e.apply(this,arguments))}}"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(xlt={mouseenter:"mouseover",mouseleave:"mouseout"}));var Plt=[null];function Nlt(t,e){this._groups=t,this._parents=e}function Ilt(){return new Nlt([[document.documentElement]],Plt)}function Olt(t){return"string"==typeof t?new Nlt([[document.querySelector(t)]],[document.documentElement]):new Nlt([[t]],Plt)}function Rlt(){for(var t,e=wlt;t=e.sourceEvent;)e=t;return e}function zlt(t,e){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var i=n.createSVGPoint();return i.x=e.clientX,i.y=e.clientY,[(i=i.matrixTransform(t.getScreenCTM().inverse())).x,i.y]}var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}function Dlt(t){var e=Rlt();return e.changedTouches&&(e=e.changedTouches[0]),zlt(t,e)}function Blt(t,e,n){arguments.length<3&&(n=e,e=Rlt().changedTouches);for(var i,r=0,o=e?e.length:0;r<o;++r)if((i=e[r]).identifier===n)return zlt(t,i);return null}function Hlt(){wlt.preventDefault(),wlt.stopImmediatePropagation()}function Flt(t){var e=t.document.documentElement,n=Olt(t).on("dragstart.drag",Hlt,!0);"onselectstart"in e?n.on("selectstart.drag",Hlt,!0):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Vlt(t,e){var n=t.document.documentElement,i=Olt(t).on("dragstart.drag",null);e&&(i.on("click.drag",Hlt,!0),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in n?i.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function Ult(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function jlt(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function Glt(){}Nlt.prototype=Ilt.prototype={constructor:Nlt,select:function Wlt(t){"function"!=typeof t&&(t=Nst(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a,s=e[r],l=s.length,c=i[r]=new Array(l),u=0;u<l;++u)(o=s[u])&&(a=t.call(o,o.__data__,u,s))&&("__data__"in o&&(a.__data__=o.__data__),c[u]=a);return new Nlt(i,this._parents)},selectAll:function qlt(t){"function"!=typeof t&&(t=Ost(t));for(var e=this._groups,n=e.length,i=[],r=[],o=0;o<n;++o)for(var a,s=e[o],l=s.length,c=0;c<l;++c)(a=s[c])&&(i.push(t.call(a,a.__data__,c,s)),r.push(a));return new Nlt(i,r)},filter:function Ylt(t){"function"!=typeof t&&(t=Rst(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a=e[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new Nlt(i,this._parents)},data:function Xlt(t,e){if(!t)return f=new Array(this.size()),u=-1,this.each((function(t){f[++u]=t})),f;var n=e?Hst:Bst,i=this._parents,r=this._groups;"function"!=typeof t&&(t=(function o(t){return function(){return t}})(t));for(var a=r.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var h=i[u],d=r[u],p=d.length,f=t.call(h,h&&h.__data__,u,i),m=f.length,g=l[u]=new Array(m),_=s[u]=new Array(m);n(h,d,g,_,c[u]=new Array(p),f,e);for(var y,v,b=0,x=0;b<m;++b)if(y=g[b]){for(b>=x&&(x=b+1);!(v=_[x])&&++x<m;);y._next=v||null}}return(s=new Nlt(s,i))._enter=l,s._exit=c,s},enter:function $lt(){return new Nlt(this._enter||this._groups.map(zst),this._parents)},exit:function Klt(){return new Nlt(this._exit||this._groups.map(zst),this._parents)},join:function Zlt(t,e,n){var i=this.enter(),r=this,o=this.exit();return i="function"==typeof t?t(i):i.append(t+""),null!=e&&(r=e(r)),null==n?o.remove():n(o),i&&r?i.merge(r).order():r},merge:function Jlt(t){for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new Nlt(o,this._parents)},order:function Qlt(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,r=t[e],o=r.length-1,a=r[o];--o>=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function tct(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=Fst);for(var n=this._groups,i=n.length,r=new Array(i),o=0;o<i;++o){for(var a,s=n[o],l=s.length,c=r[o]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(e)}return new Nlt(r,this._parents).order()},call:function ect(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function nct(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t},node:function ict(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],r=0,o=i.length;r<o;++r){var a=i[r];if(a)return a}return null},size:function rct(){var t=0;return this.each((function(){++t})),t},empty:function oct(){return!this.node()},each:function act(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var r,o=e[n],a=0,s=o.length;a<s;++a)(r=o[a])&&t.call(r,r.__data__,a,o);return this},attr:function sct(t,e){var n=Cst(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?Ust:Vst:"function"==typeof e?n.local?qst:Wst:n.local?Gst:jst)(n,e))},style:function lct(t,e,n){return arguments.length>1?this.each((null==e?Xst:"function"==typeof e?Kst:$st)(t,e,null==n?"":n)):Zst(this.node(),t)},property:function cct(t,e){return arguments.length>1?this.each((null==e?Jst:"function"==typeof e?tlt:Qst)(t,e)):this.node()[t]},classed:function uct(t,e){var n=elt(t+"");if(arguments.length<2){for(var i=nlt(this.node()),r=-1,o=n.length;++r<o;)if(!i.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?llt:e?alt:slt)(n,e))},text:function hct(t){return arguments.length?this.each(null==t?clt:("function"==typeof t?hlt:ult)(t)):this.node().textContent},html:function dct(t){return arguments.length?this.each(null==t?dlt:("function"==typeof t?flt:plt)(t)):this.node().innerHTML},raise:function pct(){return this.each(mlt)},lower:function fct(){return this.each(glt)},append:function mct(t){var e="function"==typeof t?t:Lst(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function gct(t,e){var n="function"==typeof t?t:Lst(t),i=null==e?_lt:"function"==typeof e?e:Nst(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function _ct(){return this.each(ylt)},clone:function yct(t){return this.select(t?blt:vlt)},datum:function vct(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function bct(t,e,n){var i,r,o=Elt(t+""),a=o.length;if(!(arguments.length<2)){for(s=e?Clt:Tlt,null==n&&(n=!1),i=0;i<a;++i)this.each(s(o[i],e,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(i=0,l=s[c];i<a;++i)if((r=o[i]).type===l.type&&r.name===l.name)return l.value},dispatch:function xct(t,e){return this.each(("function"==typeof e?Llt:klt)(t,e))}};var wct=.7,Sct=1/wct,Mct="\\s*([+-]?\\d+)\\s*",Ect="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Tct="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Cct=/^#([0-9a-f]{3,8})$/,Act=new RegExp("^rgb\\("+[Mct,Mct,Mct]+"\\)$"),kct=new RegExp("^rgb\\("+[Tct,Tct,Tct]+"\\)$"),Lct=new RegExp("^rgba\\("+[Mct,Mct,Mct,Ect]+"\\)$"),Pct=new RegExp("^rgba\\("+[Tct,Tct,Tct,Ect]+"\\)$"),Nct=new RegExp("^hsl\\("+[Ect,Tct,Tct]+"\\)$"),Ict=new RegExp("^hsla\\("+[Ect,Tct,Tct,Ect]+"\\)$"),Oct={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Rct(){return this.rgb().formatHex()}function zct(){return this.rgb().formatRgb()}function Dct(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Cct.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Bct(e):3===n?new Uct(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Hct(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Hct(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Act.exec(t))?new Uct(e[1],e[2],e[3],1):(e=kct.exec(t))?new Uct(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Lct.exec(t))?Hct(e[1],e[2],e[3],e[4]):(e=Pct.exec(t))?Hct(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Nct.exec(t))?qct(e[1],e[2]/100,e[3]/100,1):(e=Ict.exec(t))?qct(e[1],e[2]/100,e[3]/100,e[4]):Oct.hasOwnProperty(t)?Bct(Oct[t]):"transparent"===t?new Uct(NaN,NaN,NaN,0):null}function Bct(t){return new Uct(t>>16&255,t>>8&255,255&t,1)}function Hct(t,e,n,i){return i<=0&&(t=e=n=NaN),new Uct(t,e,n,i)}function Fct(t){return t instanceof Glt||(t=Dct(t)),t?new Uct((t=t.rgb()).r,t.g,t.b,t.opacity):new Uct}function Vct(t,e,n,i){return 1===arguments.length?Fct(t):new Uct(t,e,n,null==i?1:i)}function Uct(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function jct(){return"#"+Wct(this.r)+Wct(this.g)+Wct(this.b)}function Gct(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function Wct(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function qct(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Xct(t,e,n,i)}function Yct(t){if(t instanceof Xct)return new Xct(t.h,t.s,t.l,t.opacity);if(t instanceof Glt||(t=Dct(t)),!t)return new Xct;if(t instanceof Xct)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),o=Math.max(e,n,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=e===o?(n-i)/s+6*(n<i):n===o?(i-e)/s+2:(e-n)/s+4,s/=l<.5?o+r:2-o-r,a*=60):s=l>0&&l<1?0:a,new Xct(a,s,l,t.opacity)}function Xct(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function $ct(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function Kct(t){return function(){return t}}function Zct(t,e){var n=e-t;return n?(function i(t,e){return function(n){return t+n*e}})(t,n):Kct(isNaN(t)?e:t)}Ult(Glt,Dct,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Rct,formatHex:Rct,formatHsl:function Jct(){return Yct(this).formatHsl()},formatRgb:zct,toString:zct}),Ult(Uct,Vct,jlt(Glt,{brighter:function(t){return t=null==t?Sct:Math.pow(Sct,t),new Uct(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?wct:Math.pow(wct,t),new Uct(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:jct,formatHex:jct,formatRgb:Gct,toString:Gct})),Ult(Xct,(function Qct(t,e,n,i){return 1===arguments.length?Yct(t):new Xct(t,e,n,null==i?1:i)}),jlt(Glt,{brighter:function(t){return t=null==t?Sct:Math.pow(Sct,t),new Xct(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?wct:Math.pow(wct,t),new Xct(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new Uct($ct(t>=240?t-240:t+120,r,i),$ct(t,r,i),$ct(t<120?t+240:t-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var tut=(function t(e){var n=(function i(t){return 1==(t=+t)?Zct:function(e,n){return n-e?(function i(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}})(e,n,t):Kct(isNaN(e)?n:e)}})(e);function r(t,e){var i=n((t=Vct(t)).r,(e=Vct(e)).r),r=n(t.g,e.g),o=n(t.b,e.b),a=Zct(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=r(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r})(1);function eut(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var nut=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,iut=new RegExp(nut.source,"g");function rut(t,e){var n,i,r,o=nut.lastIndex=iut.lastIndex=0,a=-1,s=[],l=[];for(t+="",e+="";(n=nut.exec(t))&&(i=iut.exec(e));)(r=i.index)>o&&(r=e.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:eut(n,i)})),o=iut.lastIndex;return o<e.length&&(r=e.slice(o),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?(function c(t){return function(e){return t(e)+""}})(l[0].x):(function u(t){return function(){return t}})(e):(e=l.length,function(t){for(var n,i=0;i<e;++i)s[(n=l[i]).i]=n.x(t);return s.join("")})}var out,aut,sut,lut,cut=180/Math.PI,uut={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function hut(t,e,n,i,r,o){var a,s,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*n+e*i)&&(n-=t*l,i-=e*l),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,l/=s),t*i<e*n&&(t=-t,e=-e,l=-l,a=-a),{translateX:r,translateY:o,rotate:Math.atan2(e,t)*cut,skewX:Math.atan(l)*cut,scaleX:a,scaleY:s}}function dut(t,e,n,i){function r(t){return t.length?t.pop()+" ":""}return function(o,a){var s=[],l=[];return o=t(o),a=t(a),(function c(t,i,r,o,a,s){if(t!==r||i!==o){var l=a.push("translate(",null,e,null,n);s.push({i:l-4,x:eut(t,r)},{i:l-2,x:eut(i,o)})}else(r||o)&&a.push("translate("+r+e+o+n)})(o.translateX,o.translateY,a.translateX,a.translateY,s,l),(function u(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:eut(t,e)})):e&&n.push(r(n)+"rotate("+e+i)})(o.rotate,a.rotate,s,l),(function h(t,e,n,o){t!==e?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:eut(t,e)}):e&&n.push(r(n)+"skewX("+e+i)})(o.skewX,a.skewX,s,l),(function d(t,e,n,i,o,a){if(t!==n||e!==i){var s=o.push(r(o)+"scale(",null,",",null,")");a.push({i:s-4,x:eut(t,n)},{i:s-2,x:eut(e,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")})(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(t){for(var e,n=-1,i=l.length;++n<i;)s[(e=l[n]).i]=e.x(t);return s.join("")}}}var put=dut((function fut(t){return"none"===t?uut:(out||(out=document.createElement("DIV"),aut=document.documentElement,sut=document.defaultView),out.style.transform=t,t=sut.getComputedStyle(aut.appendChild(out),null).getPropertyValue("transform"),aut.removeChild(out),hut(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),mut=dut((function gut(t){return null==t?uut:(lut||(lut=document.createElementNS("http://www.w3.org/2000/svg","g")),lut.setAttribute("transform",t),(t=lut.transform.baseVal.consolidate())?hut((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):uut)}),", ",")",")"),_ut=Math.SQRT2;function yut(t){return((t=Math.exp(t))+1/t)/2}function vut(t,e){var n,i,r=t[0],o=t[1],a=t[2],s=e[2],l=e[0]-r,c=e[1]-o,u=l*l+c*c;if(u<1e-12)i=Math.log(s/a)/_ut,n=function(t){return[r+t*l,o+t*c,a*Math.exp(_ut*t*i)]};else{var h=Math.sqrt(u),d=(s*s-a*a+4*u)/(2*a*2*h),p=(s*s-a*a-4*u)/(2*s*2*h),f=Math.log(Math.sqrt(d*d+1)-d),m=Math.log(Math.sqrt(p*p+1)-p);i=(m-f)/_ut,n=function(t){var e=t*i,n=yut(f),s=a/(2*h)*(n*(function u(t){return((t=Math.exp(2*t))-1)/(t+1)})(_ut*e+f)-(function d(t){return((t=Math.exp(t))-1/t)/2})(f));return[r+s*l,o+s*c,a*n/yut(_ut*e+f)]}}return n.duration=1e3*i,n}var but,xut,wut=0,Sut=0,Mut=0,Eut=0,Tut=0,Cut=0,Aut="object"==typeof performance&&performance.now?performance:Date,kut="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Lut(){return Tut||(kut(Put),Tut=Aut.now()+Cut)}function Put(){Tut=0}function Nut(){this._call=this._time=this._next=null}function Iut(t,e,n){var i=new Nut;return i.restart(t,e,n),i}function Out(){Tut=(Eut=Aut.now())+Cut,wut=Sut=0;try{!(function t(){Lut(),++wut;for(var t,e=but;e;)(t=Tut-e._time)>=0&&e._call.call(null,t),e=e._next;--wut})()}finally{wut=0,(function e(){for(var t,e,n=but,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:but=e);xut=t,zut(i)})(),Tut=0}}function Rut(){var t=Aut.now(),e=t-Eut;e>1e3&&(Cut-=e,Eut=t)}function zut(t){wut||(Sut&&(Sut=clearTimeout(Sut)),t-Tut>24?(t<1/0&&(Sut=setTimeout(Out,t-Aut.now()-Cut)),Mut&&(Mut=clearInterval(Mut))):(Mut||(Eut=Aut.now(),Mut=setInterval(Rut,1e3)),wut=1,kut(Out)))}function Dut(t,e,n){var i=new Nut;return i.restart((function(n){i.stop(),t(n+e)}),e=null==e?0:+e,n),i}Nut.prototype=Iut.prototype={constructor:Nut,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?Lut():+n)+(null==e?0:+e),this._next||xut===this||(xut?xut._next=this:but=this,xut=this),this._call=t,this._time=n,zut()},stop:function(){this._call&&(this._call=null,this._time=1/0,zut())}};var But=bst("start","end","cancel","interrupt"),Hut=[];function Fut(t,e,n,i,r,o){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!(function s(t,e,n){var i,r=t.__transition;function o(l){var c,u,h,d;if(1!==n.state)return s();for(c in r)if((d=r[c]).name===n.name){if(3===d.state)return Dut(o);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[c]):+c<e&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[c])}if(Dut((function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(l))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,i=new Array(h=n.tween.length),c=0,u=-1;c<h;++c)(d=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(i[++u]=d);i.length=u+1}}function a(e){for(var r=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(s),n.state=5,1),o=-1,a=i.length;++o<a;)i[o].call(t,r);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),s())}function s(){for(var i in n.state=6,n.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=n,n.timer=Iut((function l(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}),0,n.time)})(t,n,{name:e,index:i,group:r,on:But,tween:Hut,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function Vut(t,e){var n=jut(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function Uut(t,e){var n=jut(t,e);if(n.state>3)throw new Error("too late; already running");return n}function jut(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Gut(t,e){var n,i,r,o=t.__transition,a=!0;if(o){for(r in e=null==e?null:e+"",o)(n=o[r]).name===e?(i=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(i?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete o[r]):a=!1;a&&delete t.__transition}}function Wut(t,e){var n,i;return function(){var r=Uut(this,t),o=r.tween;if(o!==n)for(var a=0,s=(i=n=o).length;a<s;++a)if(i[a].name===e){(i=i.slice()).splice(a,1);break}r.tween=i}}function qut(t,e,n){var i,r;if("function"!=typeof n)throw new Error;return function(){var o=Uut(this,t),a=o.tween;if(a!==i){r=(i=a).slice();for(var s={name:e,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===e){r[l]=s;break}l===c&&r.push(s)}o.tween=r}}function Yut(t,e,n){var i=t._id;return t.each((function(){var t=Uut(this,i);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return jut(t,i).value[e]}}function Xut(t,e){var n;return("number"==typeof e?eut:e instanceof Dct?tut:(n=Dct(e))?(e=n,tut):rut)(t,e)}function $ut(t){return function(){this.removeAttribute(t)}}function Kut(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Zut(t,e,n){var i,r,o=n+"";return function(){var a=this.getAttribute(t);return a===o?null:a===i?r:r=e(i=a,n)}}function Jut(t,e,n){var i,r,o=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===i?r:r=e(i=a,n)}}function Qut(t,e,n){var i,r,o;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(t))===(s=l+"")?null:a===i&&s===r?o:(r=s,o=e(i=a,l));this.removeAttribute(t)}}function tht(t,e,n){var i,r,o;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(s=l+"")?null:a===i&&s===r?o:(r=s,o=e(i=a,l));this.removeAttributeNS(t.space,t.local)}}function eht(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function nht(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function iht(t,e){var n,i;function r(){var r=e.apply(this,arguments);return r!==i&&(n=(i=r)&&nht(t,r)),n}return r._value=e,r}function rht(t,e){var n,i;function r(){var r=e.apply(this,arguments);return r!==i&&(n=(i=r)&&eht(t,r)),n}return r._value=e,r}function oht(t,e){return function(){Vut(this,t).delay=+e.apply(this,arguments)}}function aht(t,e){return e=+e,function(){Vut(this,t).delay=e}}function sht(t,e){return function(){Uut(this,t).duration=+e.apply(this,arguments)}}function lht(t,e){return e=+e,function(){Uut(this,t).duration=e}}function cht(t,e){if("function"!=typeof e)throw new Error;return function(){Uut(this,t).ease=e}}function uht(t,e,n){var i,r,o=(function a(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))})(e)?Vut:Uut;return function(){var a=o(this,t),s=a.on;s!==i&&(r=(i=s).copy()).on(e,n),a.on=r}}var hht=Ilt.prototype.constructor;function dht(t){return function(){this.style.removeProperty(t)}}function pht(t,e,n){return function(i){this.style.setProperty(t,e.call(this,i),n)}}function fht(t,e,n){var i,r;function o(){var o=e.apply(this,arguments);return o!==r&&(i=(r=o)&&pht(t,o,n)),i}return o._value=e,o}function mht(t){return function(e){this.textContent=t.call(this,e)}}function ght(t){var e,n;function i(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&mht(i)),e}return i._value=t,i}var _ht=0;function yht(t,e,n,i){this._groups=t,this._parents=e,this._name=n,this._id=i}function vht(){return++_ht}var bht=Ilt.prototype;yht.prototype={constructor:yht,select:function xht(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=Nst(t));for(var i=this._groups,r=i.length,o=new Array(r),a=0;a<r;++a)for(var s,l,c=i[a],u=c.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=c[d])&&(l=t.call(s,s.__data__,d,c))&&("__data__"in s&&(l.__data__=s.__data__),h[d]=l,Fut(h[d],e,n,d,h,jut(s,n)));return new yht(o,this._parents,e,n)},selectAll:function wht(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=Ost(t));for(var i=this._groups,r=i.length,o=[],a=[],s=0;s<r;++s)for(var l,c=i[s],u=c.length,h=0;h<u;++h)if(l=c[h]){for(var d,p=t.call(l,l.__data__,h,c),f=jut(l,n),m=0,g=p.length;m<g;++m)(d=p[m])&&Fut(d,e,n,m,p,f);o.push(p),a.push(l)}return new yht(o,a,e,n)},filter:function Sht(t){"function"!=typeof t&&(t=Rst(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o,a=e[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new yht(i,this._parents,this._name,this._id)},merge:function Mht(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,i=e.length,r=Math.min(i,n.length),o=new Array(i),a=0;a<r;++a)for(var s,l=e[a],c=n[a],u=l.length,h=o[a]=new Array(u),d=0;d<u;++d)(s=l[d]||c[d])&&(h[d]=s);for(;a<i;++a)o[a]=e[a];return new yht(o,this._parents,this._name,this._id)},selection:function Eht(){return new hht(this._groups,this._parents)},transition:function Tht(){for(var t=this._name,e=this._id,n=vht(),i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)if(a=s[c]){var u=jut(a,e);Fut(a,t,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new yht(i,this._parents,t,n)},call:bht.call,nodes:bht.nodes,node:bht.node,size:bht.size,empty:bht.empty,each:bht.each,on:function Cht(t,e){var n=this._id;return arguments.length<2?jut(this.node(),n).on.on(t):this.each(uht(n,t,e))},attr:function Aht(t,e){var n=Cst(t),i="transform"===n?mut:Xut;return this.attrTween(t,"function"==typeof e?(n.local?tht:Qut)(n,i,Yut(this,"attr."+t,e)):null==e?(n.local?Kut:$ut)(n):(n.local?Jut:Zut)(n,i,e))},attrTween:function kht(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var i=Cst(t);return this.tween(n,(i.local?iht:rht)(i,e))},style:function Lht(t,e,n){var i="transform"==(t+="")?put:Xut;return null==e?this.styleTween(t,(function r(t,e){var n,i,r;return function(){var o=Zst(this,t),a=(this.style.removeProperty(t),Zst(this,t));return o===a?null:o===n&&a===i?r:r=e(n=o,i=a)}})(t,i)).on("end.style."+t,dht(t)):"function"==typeof e?this.styleTween(t,(function a(t,e,n){var i,r,o;return function(){var a=Zst(this,t),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(t),l=s=Zst(this,t)),a===l?null:a===i&&l===r?o:(r=l,o=e(i=a,s))}})(t,i,Yut(this,"style."+t,e))).each((function o(t,e){var n,i,r,o,a="style."+e,s="end."+a;return function(){var l=Uut(this,t),c=l.on,u=null==l.value[a]?o||(o=dht(e)):void 0;c===n&&r===u||(i=(n=c).copy()).on(s,r=u),l.on=i}})(this._id,t)):this.styleTween(t,(function s(t,e,n){var i,r,o=n+"";return function(){var a=Zst(this,t);return a===o?null:a===i?r:r=e(i=a,n)}})(t,i,e),n).on("end.style."+t,null)},styleTween:function Pht(t,e,n){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;return this.tween(i,fht(t,e,null==n?"":n))},text:function Nht(t){return this.tween("text","function"==typeof t?(function e(t){return function(){var e=t(this);this.textContent=null==e?"":e}})(Yut(this,"text",t)):(function n(t){return function(){this.textContent=t}})(null==t?"":t+""))},textTween:function Iht(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,ght(t))},remove:function Oht(){return this.on("end.remove",(function t(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}})(this._id))},tween:function Rht(t,e){var n=this._id;if(t+="",arguments.length<2){for(var i,r=jut(this.node(),n).tween,o=0,a=r.length;o<a;++o)if((i=r[o]).name===t)return i.value;return null}return this.each((null==e?Wut:qut)(n,t,e))},delay:function zht(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?oht:aht)(e,t)):jut(this.node(),e).delay},duration:function Dht(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?sht:lht)(e,t)):jut(this.node(),e).duration},ease:function Bht(t){var e=this._id;return arguments.length?this.each(cht(e,t)):jut(this.node(),e).ease},end:function Hht(){var t,e,n=this,i=n._id,r=n.size();return new Promise((function(o,a){var s={value:a},l={value:function(){0==--r&&o()}};n.each((function(){var n=Uut(this,i),r=n.on;r!==t&&((e=(t=r).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),n.on=e}))}))}};var Fht={time:null,delay:0,duration:250,ease:Ef};function Vht(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))return Fht.time=Lut(),Fht;return n}function Uht(t){return function(){return t}}function jht(t,e,n){this.target=t,this.type=e,this.transform=n}function Ght(t,e,n){this.k=t,this.x=e,this.y=n}Ilt.prototype.interrupt=function Wht(t){return this.each((function(){Gut(this,t)}))},Ilt.prototype.transition=function qht(t){var e,n;t instanceof yht?(e=t._id,t=t._name):(e=vht(),(n=Fht).time=Lut(),t=null==t?null:t+"");for(var i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)(a=s[c])&&Fut(a,t,e,c,s,n||Vht(a,e));return new yht(i,this._parents,t,e)},Ght.prototype={constructor:Ght,scale:function(t){return 1===t?this:new Ght(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new Ght(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Yht=new Ght(1,0,0);function Xht(t){return t.__zoom||Yht}function $ht(){wlt.stopImmediatePropagation()}function Kht(){wlt.preventDefault(),wlt.stopImmediatePropagation()}function Zht(){return!wlt.button}function Jht(){var t,e,n=this;return n instanceof SVGElement?(t=(n=n.ownerSVGElement||n).width.baseVal.value,e=n.height.baseVal.value):(t=n.clientWidth,e=n.clientHeight),[[0,0],[t,e]]}function Qht(){return this.__zoom||Yht}function tdt(){return-wlt.deltaY*(wlt.deltaMode?120:1)/500}function edt(){return"ontouchstart"in this}function ndt(t,e,n){var i=t.invertX(e[0][0])-n[0][0],r=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(r>i?(i+r)/2:Math.min(0,i)||Math.max(0,r),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}Xht.prototype=Ght.prototype;var idt=xe(Object.freeze({__proto__:null,version:"4.13.0",bisect:uR,bisectRight:uR,bisectLeft:hR,ascending:sR,bisector:lR,cross:function rdt(t,e,n){var i,r,o,a,s=t.length,l=e.length,c=new Array(s*l);for(null==n&&(n=dR),i=o=0;i<s;++i)for(a=t[i],r=0;r<l;++r,++o)c[o]=n(a,e[r]);return c},descending:function odt(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},deviation:mR,extent:gR,histogram:function adt(){var t=xR,e=gR,n=AR;function i(i){var r,o,a=i.length,s=new Array(a);for(r=0;r<a;++r)s[r]=t(i[r],r,i);var l=e(s),c=l[0],u=l[1],h=n(s,c,u);Array.isArray(h)||(h=CR(c,u,h),h=wR(Math.ceil(c/h)*h,Math.floor(u/h)*h,h));for(var d=h.length;h[0]<=c;)h.shift(),--d;for(;h[d-1]>u;)h.pop(),--d;var p,f=new Array(d+1);for(r=0;r<=d;++r)(p=f[r]=[]).x0=r>0?h[r-1]:c,p.x1=r<d?h[r]:u;for(r=0;r<a;++r)c<=(o=s[r])&&o<=u&&f[uR(h,o,0,d)].push(i[r]);return f}return i.value=function(e){return arguments.length?(t="function"==typeof e?e:bR(e),i):t},i.domain=function(t){return arguments.length?(e="function"==typeof t?t:bR([t[0],t[1]]),i):e},i.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?bR(yR.call(t)):bR(t),i):n},i},thresholdFreedmanDiaconis:function sdt(t,e,n){return t=vR.call(t,pR).sort(sR),Math.ceil((n-e)/(2*(kR(t,.75)-kR(t,.25))*Math.pow(t.length,-1/3)))},thresholdScott:function ldt(t,e,n){return Math.ceil((n-e)/(3.5*mR(t)*Math.pow(t.length,-1/3)))},thresholdSturges:AR,max:function cdt(t,e){var n,i,r=t.length,o=-1;if(null==e){for(;++o<r;)if(null!=(n=t[o])&&n>=n)for(i=n;++o<r;)null!=(n=t[o])&&n>i&&(i=n)}else for(;++o<r;)if(null!=(n=e(t[o],o,t))&&n>=n)for(i=n;++o<r;)null!=(n=e(t[o],o,t))&&n>i&&(i=n);return i},mean:function udt(t,e){var n,i=t.length,r=i,o=-1,a=0;if(null==e)for(;++o<i;)isNaN(n=pR(t[o]))?--r:a+=n;else for(;++o<i;)isNaN(n=pR(e(t[o],o,t)))?--r:a+=n;if(r)return a/r},median:function hdt(t,e){var n,i=t.length,r=-1,o=[];if(null==e)for(;++r<i;)isNaN(n=pR(t[r]))||o.push(n);else for(;++r<i;)isNaN(n=pR(e(t[r],r,t)))||o.push(n);return kR(o.sort(sR),.5)},merge:function ddt(t){for(var e,n,i,r=t.length,o=-1,a=0;++o<r;)a+=t[o].length;for(n=new Array(a);--r>=0;)for(e=(i=t[r]).length;--e>=0;)n[--a]=i[e];return n},min:LR,pairs:function pdt(t,e){null==e&&(e=dR);for(var n=0,i=t.length-1,r=t[0],o=new Array(i<0?0:i);n<i;)o[n]=e(r,r=t[++n]);return o},permute:function fdt(t,e){for(var n=e.length,i=new Array(n);n--;)i[n]=t[e[n]];return i},quantile:kR,range:wR,scan:function mdt(t,e){if(n=t.length){var n,i,r=0,o=0,a=t[o];for(null==e&&(e=sR);++r<n;)(e(i=t[r],a)<0||0!==e(a,a))&&(a=i,o=r);return 0===e(a,a)?o:void 0}},shuffle:function gdt(t,e,n){for(var i,r,o=(null==n?t.length:n)-(e=null==e?0:+e);o;)r=Math.random()*o--|0,i=t[o+e],t[o+e]=t[r+e],t[r+e]=i;return t},sum:function _dt(t,e){var n,i=t.length,r=-1,o=0;if(null==e)for(;++r<i;)(n=+t[r])&&(o+=n);else for(;++r<i;)(n=+e(t[r],r,t))&&(o+=n);return o},ticks:function ydt(t,e,n){var i,r,o,a,s=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((i=e<t)&&(r=t,t=e,e=r),0===(a=TR(t,e,n))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),e=Math.floor(e/a),o=new Array(r=Math.ceil(e-t+1));++s<r;)o[s]=(t+s)*a;else for(t=Math.floor(t*a),e=Math.ceil(e*a),o=new Array(r=Math.ceil(t-e+1));++s<r;)o[s]=(t-s)/a;return i&&o.reverse(),o},tickIncrement:TR,tickStep:CR,transpose:PR,variance:fR,zip:function vdt(){return PR(arguments)},axisTop:function bdt(t){return VR(1,t)},axisRight:function xdt(t){return VR(2,t)},axisBottom:function wdt(t){return VR(3,t)},axisLeft:function Sdt(t){return VR(4,t)},brush:function Mdt(){return IF(wF)},brushX:function Edt(){return IF(bF)},brushY:function Tdt(){return IF(xF)},brushSelection:function Cdt(t){var e=t.__brush;return e?e.dim.output(e.selection):null},chord:function Adt(){var t=0,e=null,n=null,i=null;function r(r){var o,a,s,l,c,u,h=r.length,d=[],p=RF(h),f=[],m=[],g=m.groups=new Array(h),_=new Array(h*h);for(o=0,c=-1;++c<h;){for(a=0,u=-1;++u<h;)a+=r[c][u];d.push(a),f.push(RF(h)),o+=a}for(e&&p.sort((function(t,n){return e(d[t],d[n])})),n&&f.forEach((function(t,e){t.sort((function(t,i){return n(r[e][t],r[e][i])}))})),l=(o=UF(0,VF-t*h)/o)?t:VF/h,a=0,c=-1;++c<h;){for(s=a,u=-1;++u<h;){var y=p[c],v=f[y][u],b=r[y][v],x=a,w=a+=b*o;_[v*h+y]={index:y,subindex:v,startAngle:x,endAngle:w,value:b}}g[y]={index:y,startAngle:s,endAngle:a,value:d[y]},a+=l}for(c=-1;++c<h;)for(u=c-1;++u<h;){var S=_[u*h+c],M=_[c*h+u];(S.value||M.value)&&m.push(S.value<M.value?{source:M,target:S}:{source:S,target:M})}return i?m.sort(i):m}return r.padAngle=function(e){return arguments.length?(t=UF(0,e),r):t},r.sortGroups=function(t){return arguments.length?(e=t,r):e},r.sortSubgroups=function(t){return arguments.length?(n=t,r):n},r.sortChords=function(t){return arguments.length?(null==t?i=null:(i=jF(t))._=t,r):i&&i._},r},ribbon:function kdt(){var t=JF,e=QF,n=tV,i=eV,r=nV,o=null;function a(){var a,s=GF.call(arguments),l=t.apply(this,s),c=e.apply(this,s),u=+n.apply(this,(s[0]=l,s)),h=i.apply(this,s)-FF,d=r.apply(this,s)-FF,p=u*DF(h),f=u*BF(h),m=+n.apply(this,(s[0]=c,s)),g=i.apply(this,s)-FF,_=r.apply(this,s)-FF;if(o||(o=a=ZF()),o.moveTo(p,f),o.arc(0,0,u,h,d),h===g&&d===_||(o.quadraticCurveTo(0,0,m*DF(g),m*BF(g)),o.arc(0,0,m,g,_)),o.quadraticCurveTo(0,0,p,f),o.closePath(),a)return o=null,a+""||null}return a.radius=function(t){return arguments.length?(n="function"==typeof t?t:WF(+t),a):n},a.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:WF(+t),a):i},a.endAngle=function(t){return arguments.length?(r="function"==typeof t?t:WF(+t),a):r},a.source=function(e){return arguments.length?(t=e,a):t},a.target=function(t){return arguments.length?(e=t,a):e},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a},nest:function Ldt(){var t,e,n,i=[],r=[];function o(n,r,a,s){if(r>=i.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var l,c,u,h=-1,d=n.length,p=i[r++],f=oV(),m=a();++h<d;)(u=f.get(l=p(c=n[h])+""))?u.push(c):f.set(l,[c]);return f.each((function(t,e){s(m,e,o(t,r,a,s))})),m}function a(t,n){if(++n>i.length)return t;var o,s=r[n-1];return null!=e&&n>=i.length?o=t.entries():(o=[],t.each((function(t,e){o.push({key:e,values:a(t,n)})}))),null!=s?o.sort((function(t,e){return s(t.key,e.key)})):o}return n={object:function(t){return o(t,0,aV,sV)},map:function(t){return o(t,0,lV,cV)},entries:function(t){return a(o(t,0,lV,cV),0)},key:function(t){return i.push(t),n},sortKeys:function(t){return r[i.length-1]=t,n},sortValues:function(e){return t=e,n},rollup:function(t){return e=t,n}}},set:dV,map:oV,keys:function Pdt(t){var e=[];for(var n in t)e.push(n);return e},values:function Ndt(t){var e=[];for(var n in t)e.push(t[n]);return e},entries:function Idt(t){var e=[];for(var n in t)e.push({key:n,value:t[n]});return e},color:LV,rgb:OV,hsl:BV,lab:$V,hcl:nU,cubehelix:lU,dispatch:hU,drag:function Odt(){var t,e,n,i,r=Fj,o=Vj,a=Uj,s=jj,l={},c=_U("start","drag","end"),u=0,h=0;function d(t){t.on("mousedown.drag",p).filter(s).on("touchstart.drag",g).on("touchmove.drag",_).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(){if(!i&&r.apply(this,arguments)){var a=v("mouse",o.apply(this,arguments),Nj,this,arguments);a&&(kj(_j.view).on("mousemove.drag",f,!0).on("mouseup.drag",m,!0),zj(_j.view),Oj(),n=!1,t=_j.clientX,e=_j.clientY,a("start"))}}function f(){if(Rj(),!n){var i=_j.clientX-t,r=_j.clientY-e;n=i*i+r*r>h}l.mouse("drag")}function m(){kj(_j.view).on("mousemove.drag mouseup.drag",null),Dj(_j.view,n),Rj(),l.mouse("end")}function g(){if(r.apply(this,arguments)){var t,e,n=_j.changedTouches,i=o.apply(this,arguments),a=n.length;for(t=0;t<a;++t)(e=v(n[t].identifier,i,Ij,this,arguments))&&(Oj(),e("start"))}}function _(){var t,e,n=_j.changedTouches,i=n.length;for(t=0;t<i;++t)(e=l[n[t].identifier])&&(Rj(),e("drag"))}function y(){var t,e,n=_j.changedTouches,r=n.length;for(i&&clearTimeout(i),i=setTimeout((function(){i=null}),500),t=0;t<r;++t)(e=l[n[t].identifier])&&(Oj(),e("end"))}function v(t,e,n,i,r){var o,s,h,p=n(e,t),f=c.copy();if(Sj(new Hj(d,"beforestart",o,t,u,p[0],p[1],0,0,f),(function(){return null!=(_j.subject=o=a.apply(i,r))&&(s=o.x-p[0]||0,h=o.y-p[1]||0,!0)})))return function a(c){var m,g=p;switch(c){case"start":l[t]=a,m=u++;break;case"end":delete l[t],--u;case"drag":p=n(e,t),m=u}Sj(new Hj(d,c,o,t,m,p[0]+s,p[1]+h,p[0]-g[0],p[1]-g[1],f),f.apply,f,[c,i,r])}}return d.filter=function(t){return arguments.length?(r="function"==typeof t?t:Bj(!!t),d):r},d.container=function(t){return arguments.length?(o="function"==typeof t?t:Bj(t),d):o},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:Bj(t),d):a},d.touchable=function(t){return arguments.length?(s="function"==typeof t?t:Bj(!!t),d):s},d.on=function(){var t=c.on.apply(c,arguments);return t===c?d:t},d.clickDistance=function(t){return arguments.length?(h=(t=+t)*t,d):Math.sqrt(h)},d},dragDisable:zj,dragEnable:Dj,dsvFormat:MG,csvParse:TG,csvParseRows:CG,csvFormat:AG,csvFormatRows:kG,tsvParse:PG,tsvParseRows:NG,tsvFormat:IG,tsvFormatRows:OG,easeLinear:function Rdt(t){return+t},easeQuad:RG,easeQuadIn:function zdt(t){return t*t},easeQuadOut:function Ddt(t){return t*(2-t)},easeQuadInOut:RG,easeCubic:zG,easeCubicIn:function Bdt(t){return t*t*t},easeCubicOut:function Hdt(t){return--t*t*t+1},easeCubicInOut:zG,easePoly:HG,easePolyIn:DG,easePolyOut:BG,easePolyInOut:HG,easeSin:UG,easeSinIn:function Fdt(t){return 1-Math.cos(t*VG)},easeSinOut:function Vdt(t){return Math.sin(t*VG)},easeSinInOut:UG,easeExp:jG,easeExpIn:function Udt(t){return Math.pow(2,10*t-10)},easeExpOut:function jdt(t){return 1-Math.pow(2,-10*t)},easeExpInOut:jG,easeCircle:GG,easeCircleIn:function Gdt(t){return 1-Math.sqrt(1-t*t)},easeCircleOut:function Wdt(t){return Math.sqrt(1- --t*t)},easeCircleInOut:GG,easeBounce:qG,easeBounceIn:function qdt(t){return 1-qG(1-t)},easeBounceOut:qG,easeBounceInOut:function Ydt(t){return((t*=2)<=1?1-qG(1-t):qG(t-1)+1)/2},easeBack:KG,easeBackIn:XG,easeBackOut:$G,easeBackInOut:KG,easeElastic:QG,easeElasticIn:JG,easeElasticOut:QG,easeElasticInOut:tW,forceCenter:function Xdt(t,e){var n;function i(){var i,r,o=n.length,a=0,s=0;for(i=0;i<o;++i)a+=(r=n[i]).x,s+=r.y;for(a=a/o-t,s=s/o-e,i=0;i<o;++i)(r=n[i]).x-=a,r.y-=s}return null==t&&(t=0),null==e&&(e=0),i.initialize=function(t){n=t},i.x=function(e){return arguments.length?(t=+e,i):t},i.y=function(t){return arguments.length?(e=+t,i):e},i},forceCollide:function $dt(t){var e,n,i=1,r=1;function o(){for(var t,o,s,l,c,u,h,d=e.length,p=0;p<r;++p)for(o=sW(e,hW,dW).visitAfter(a),t=0;t<d;++t)h=(u=n[(s=e[t]).index])*u,l=s.x+s.vx,c=s.y+s.vy,o.visit(f);function f(t,e,n,r,o){var a=t.data,d=t.r,p=u+d;if(!a)return e>l+p||r<l-p||n>c+p||o<c-p;if(a.index>s.index){var f=l-a.x-a.vx,m=c-a.y-a.vy,g=f*f+m*m;g<p*p&&(0===f&&(g+=(f=nW())*f),0===m&&(g+=(m=nW())*m),g=(p-(g=Math.sqrt(g)))/g*i,s.vx+=(f*=g)*(p=(d*=d)/(h+d)),s.vy+=(m*=g)*p,a.vx-=f*(p=1-p),a.vy-=m*p)}}}function a(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function s(){if(e){var i,r,o=e.length;for(n=new Array(o),i=0;i<o;++i)n[(r=e[i]).index]=+t(r,i,e)}}return"function"!=typeof t&&(t=eW(null==t?1:+t)),o.initialize=function(t){e=t,s()},o.iterations=function(t){return arguments.length?(r=+t,o):r},o.strength=function(t){return arguments.length?(i=+t,o):i},o.radius=function(e){return arguments.length?(t="function"==typeof e?e:eW(+e),s(),o):t},o},forceLink:function Kdt(t){var e,n,i,r,o,a=NW,s=function l(t){return 1/Math.min(r[t.source.index],r[t.target.index])},c=eW(30),u=1;function h(i){for(var r=0,a=t.length;r<u;++r)for(var s,l,c,h,d,p,f,m=0;m<a;++m)h=(c=(s=t[m]).target).x+c.vx-(l=s.source).x-l.vx||nW(),d=c.y+c.vy-l.y-l.vy||nW(),d*=p=((p=Math.sqrt(h*h+d*d))-n[m])/p*i*e[m],c.vx-=(h*=p)*(f=o[m]),c.vy-=d*f,l.vx+=h*(f=1-f),l.vy+=d*f}function d(){if(i){var s,l,c=i.length,u=t.length,h=kW(i,a);for(s=0,r=new Array(c);s<u;++s)(l=t[s]).index=s,"object"!=typeof l.source&&(l.source=IW(h,l.source)),"object"!=typeof l.target&&(l.target=IW(h,l.target)),r[l.source.index]=(r[l.source.index]||0)+1,r[l.target.index]=(r[l.target.index]||0)+1;for(s=0,o=new Array(u);s<u;++s)o[s]=r[(l=t[s]).source.index]/(r[l.source.index]+r[l.target.index]);e=new Array(u),p(),n=new Array(u),f()}}function p(){if(i)for(var n=0,r=t.length;n<r;++n)e[n]=+s(t[n],n,t)}function f(){if(i)for(var e=0,r=t.length;e<r;++e)n[e]=+c(t[e],e,t)}return null==t&&(t=[]),h.initialize=function(t){i=t,d()},h.links=function(e){return arguments.length?(t=e,d(),h):t},h.id=function(t){return arguments.length?(a=t,h):a},h.iterations=function(t){return arguments.length?(u=+t,h):u},h.strength=function(t){return arguments.length?(s="function"==typeof t?t:eW(+t),p(),h):s},h.distance=function(t){return arguments.length?(c="function"==typeof t?t:eW(+t),f(),h):c},h},forceManyBody:function Zdt(){var t,e,n,i,r=eW(-30),o=1,a=1/0,s=.81;function l(i){var r,o=t.length,a=sW(t,iq,rq).visitAfter(u);for(n=i,r=0;r<o;++r)e=t[r],a.visit(h)}function c(){if(t){var e,n,o=t.length;for(i=new Array(o),e=0;e<o;++e)i[(n=t[e]).index]=+r(n,e,t)}}function u(t){var e,n,r,o,a,s=0,l=0;if(t.length){for(r=o=a=0;a<4;++a)(e=t[a])&&(n=Math.abs(e.value))&&(s+=e.value,l+=n,r+=n*e.x,o+=n*e.y);t.x=r/l,t.y=o/l}else{(e=t).x=e.data.x,e.y=e.data.y;do{s+=i[e.data.index]}while(e=e.next)}t.value=s}function h(t,r,l,c){if(!t.value)return!0;var u=t.x-e.x,h=t.y-e.y,d=c-r,p=u*u+h*h;if(d*d/s<p)return p<a&&(0===u&&(p+=(u=nW())*u),0===h&&(p+=(h=nW())*h),p<o&&(p=Math.sqrt(o*p)),e.vx+=u*t.value*n/p,e.vy+=h*t.value*n/p),!0;if(!(t.length||p>=a)){(t.data!==e||t.next)&&(0===u&&(p+=(u=nW())*u),0===h&&(p+=(h=nW())*h),p<o&&(p=Math.sqrt(o*p)));do{t.data!==e&&(e.vx+=u*(d=i[t.data.index]*n/p),e.vy+=h*d)}while(t=t.next)}}return l.initialize=function(e){t=e,c()},l.strength=function(t){return arguments.length?(r="function"==typeof t?t:eW(+t),c(),l):r},l.distanceMin=function(t){return arguments.length?(o=t*t,l):Math.sqrt(o)},l.distanceMax=function(t){return arguments.length?(a=t*t,l):Math.sqrt(a)},l.theta=function(t){return arguments.length?(s=t*t,l):Math.sqrt(s)},l},forceRadial:function Jdt(t,e,n){var i,r,o,a=eW(.1);function s(t){for(var a=0,s=i.length;a<s;++a){var l=i[a],c=l.x-e||1e-6,u=l.y-n||1e-6,h=Math.sqrt(c*c+u*u),d=(o[a]-h)*r[a]*t/h;l.vx+=c*d,l.vy+=u*d}}function l(){if(i){var e,n=i.length;for(r=new Array(n),o=new Array(n),e=0;e<n;++e)o[e]=+t(i[e],e,i),r[e]=isNaN(o[e])?0:+a(i[e],e,i)}}return"function"!=typeof t&&(t=eW(+t)),null==e&&(e=0),null==n&&(n=0),s.initialize=function(t){i=t,l()},s.strength=function(t){return arguments.length?(a="function"==typeof t?t:eW(+t),l(),s):a},s.radius=function(e){return arguments.length?(t="function"==typeof e?e:eW(+e),l(),s):t},s.x=function(t){return arguments.length?(e=+t,s):e},s.y=function(t){return arguments.length?(n=+t,s):n},s},forceSimulation:function Qdt(t){var e,n=1,i=.001,r=1-Math.pow(i,1/300),o=0,a=.6,s=kW(),l=QW(u),c=RW("tick","end");function u(){h(),c.call("tick",e),n<i&&(l.stop(),c.call("end",e))}function h(){var e,i,l=t.length;for(n+=(o-n)*r,s.each((function(t){t(n)})),e=0;e<l;++e)null==(i=t[e]).fx?i.x+=i.vx*=a:(i.x=i.fx,i.vx=0),null==i.fy?i.y+=i.vy*=a:(i.y=i.fy,i.vy=0)}function d(){for(var e,n=0,i=t.length;n<i;++n){if((e=t[n]).index=n,isNaN(e.x)||isNaN(e.y)){var r=10*Math.sqrt(n),o=n*aq;e.x=r*Math.cos(o),e.y=r*Math.sin(o)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function p(e){return e.initialize&&e.initialize(t),e}return null==t&&(t=[]),d(),e={tick:h,restart:function(){return l.restart(u),e},stop:function(){return l.stop(),e},nodes:function(n){return arguments.length?(t=n,d(),s.each(p),e):t},alpha:function(t){return arguments.length?(n=+t,e):n},alphaMin:function(t){return arguments.length?(i=+t,e):i},alphaDecay:function(t){return arguments.length?(r=+t,e):+r},alphaTarget:function(t){return arguments.length?(o=+t,e):o},velocityDecay:function(t){return arguments.length?(a=1-t,e):1-a},force:function(t,n){return arguments.length>1?(null==n?s.remove(t):s.set(t,p(n)),e):s.get(t)},find:function(e,n,i){var r,o,a,s,l,c=0,u=t.length;for(null==i?i=1/0:i*=i,c=0;c<u;++c)(a=(r=e-(s=t[c]).x)*r+(o=n-s.y)*o)<i&&(l=s,i=a);return l},on:function(t,n){return arguments.length>1?(c.on(t,n),e):c.on(t)}}},forceX:function tpt(t){var e,n,i,r=eW(.1);function o(t){for(var r,o=0,a=e.length;o<a;++o)(r=e[o]).vx+=(i[o]-r.x)*n[o]*t}function a(){if(e){var o,a=e.length;for(n=new Array(a),i=new Array(a),o=0;o<a;++o)n[o]=isNaN(i[o]=+t(e[o],o,e))?0:+r(e[o],o,e)}}return"function"!=typeof t&&(t=eW(null==t?0:+t)),o.initialize=function(t){e=t,a()},o.strength=function(t){return arguments.length?(r="function"==typeof t?t:eW(+t),a(),o):r},o.x=function(e){return arguments.length?(t="function"==typeof e?e:eW(+e),a(),o):t},o},forceY:function ept(t){var e,n,i,r=eW(.1);function o(t){for(var r,o=0,a=e.length;o<a;++o)(r=e[o]).vy+=(i[o]-r.y)*n[o]*t}function a(){if(e){var o,a=e.length;for(n=new Array(a),i=new Array(a),o=0;o<a;++o)n[o]=isNaN(i[o]=+t(e[o],o,e))?0:+r(e[o],o,e)}}return"function"!=typeof t&&(t=eW(null==t?0:+t)),o.initialize=function(t){e=t,a()},o.strength=function(t){return arguments.length?(r="function"==typeof t?t:eW(+t),a(),o):r},o.y=function(e){return arguments.length?(t="function"==typeof e?e:eW(+e),a(),o):t},o},formatDefaultLocale:wq,get format(){return yq},get formatPrefix(){return vq},formatLocale:xq,formatSpecifier:fq,precisionFixed:function npt(t){return Math.max(0,-lq(Math.abs(t)))},precisionPrefix:function ipt(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(lq(e)/3)))-lq(Math.abs(t)))},precisionRound:function rpt(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,lq(e)-lq(t))+1},geoArea:function opt(t){return lY.reset(),eY(t,cY),2*lY},geoBounds:function apt(t){var e,n,i,r,o,a,s;if(MY=SY=-(xY=wY=1/0),kY=[],eY(t,XY),n=kY.length){for(kY.sort(iX),e=1,o=[i=kY[0]];e<n;++e)rX(i,(r=kY[e])[0])||rX(i,r[1])?(nX(i[0],r[1])>nX(i[0],i[1])&&(i[1]=r[1]),nX(r[0],i[1])>nX(i[0],i[1])&&(i[0]=r[0])):o.push(i=r);for(a=-1/0,e=0,i=o[n=o.length-1];e<=n;i=r,++e)(s=nX(i[1],(r=o[e])[0]))>a&&(a=s,xY=r[0],SY=i[1])}return kY=LY=null,xY===1/0||wY===1/0?[[NaN,NaN],[NaN,NaN]]:[[xY,wY],[SY,MY]]},geoCentroid:function spt(t){PY=NY=IY=OY=RY=zY=DY=BY=HY=FY=VY=0,eY(t,oX);var e=HY,n=FY,i=VY,r=e*e+n*n+i*i;return r<1e-12&&(e=zY,n=DY,i=BY,NY<Cq&&(e=IY,n=OY,i=RY),(r=e*e+n*n+i*i)<1e-12)?[NaN,NaN]:[zq(n,e)*Nq,Yq(i/Gq(r))*Nq]},geoCircle:function lpt(){var t,e,n=gX([0,0]),i=gX(90),r=gX(6),o={point:function a(n,i){t.push(n=e(n,i)),n[0]*=Nq,n[1]*=Nq}};function s(){var a=n.apply(this,arguments),s=i.apply(this,arguments)*Iq,l=r.apply(this,arguments)*Iq;return t=[],e=vX(-a[0]*Iq,-a[1]*Iq,0).invert,MX(o,s,l,1),a={type:"Polygon",coordinates:[t]},t=e=null,a}return s.center=function(t){return arguments.length?(n="function"==typeof t?t:gX([+t[0],+t[1]]),s):n},s.radius=function(t){return arguments.length?(i="function"==typeof t?t:gX(+t),s):i},s.precision=function(t){return arguments.length?(r="function"==typeof t?t:gX(+t),s):r},s},geoClipAntimeridian:FX,geoClipCircle:jX,geoClipExtent:function cpt(){var t,e,n,i=0,r=0,o=960,a=500;return n={stream:function(n){return t&&e===n?t:t=qX(i,r,o,a)(e=n)},extent:function(s){return arguments.length?(i=+s[0][0],r=+s[0][1],o=+s[1][0],a=+s[1][1],t=e=null,n):[[i,r],[o,a]]}}},geoClipRectangle:qX,geoContains:function upt(t,e){return(t&&a$.hasOwnProperty(t.type)?a$[t.type]:l$)(t,e)},geoDistance:o$,geoGraticule:g$,geoGraticule10:function hpt(){return g$()()},geoInterpolate:function dpt(t,e){var n=t[0]*Iq,i=t[1]*Iq,r=e[0]*Iq,o=e[1]*Iq,a=Dq(i),s=Uq(i),l=Dq(o),c=Uq(o),u=a*Dq(n),h=a*Uq(n),d=l*Dq(r),p=l*Uq(r),f=2*Yq(Gq(Xq(o-i)+a*l*Xq(r-n))),m=Uq(f),g=f?function(t){var e=Uq(t*=f)/m,n=Uq(f-t)/m,i=n*u+e*d,r=n*h+e*p,o=n*s+e*c;return[zq(r,i)*Nq,zq(o,Gq(i*i+r*r))*Nq]}:function(){return[n*Nq,i*Nq]};return g.distance=f,g},geoLength:n$,geoPath:function ppt(t,e){var n,i,r=4.5;function o(t){return t&&("function"==typeof r&&i.pointRadius(+r.apply(this,arguments)),eY(t,n(i))),i.result()}return o.area=function(t){return eY(t,n(M$)),M$.result()},o.measure=function(t){return eY(t,n(hK)),hK.result()},o.bounds=function(t){return eY(t,n(D$)),D$.result()},o.centroid=function(t){return eY(t,n(X$)),X$.result()},o.projection=function(e){return arguments.length?(n=null==e?(t=null,_$):(t=e).stream,o):t},o.context=function(t){return arguments.length?(i=null==t?(e=null,new fK):new rK(e=t),"function"!=typeof r&&i.pointRadius(r),o):e},o.pointRadius=function(t){return arguments.length?(r="function"==typeof t?t:(i.pointRadius(+t),+t),o):r},o.projection(t).context(e)},geoAlbers:PK,geoAlbersUsa:function fpt(){var t,e,n,i,r,o,a=PK(),s=LK().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=LK().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(t,e){o=[t,e]}};function u(t){var e=t[0],a=t[1];return o=null,n.point(e,a),o||(i.point(e,a),o)||(r.point(e,a),o)}function h(){return t=e=null,u}return u.invert=function(t){var e=a.scale(),n=a.translate(),i=(t[0]-n[0])/e,r=(t[1]-n[1])/e;return(r>=.12&&r<.234&&i>=-.425&&i<-.214?s:r>=.166&&r<.234&&i>=-.214&&i<-.115?l:a).invert(t)},u.stream=function(n){return t&&e===n?t:t=(function i(t){var e=t.length;return{point:function(n,i){for(var r=-1;++r<e;)t[r].point(n,i)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}})([a.stream(e=n),s.stream(n),l.stream(n)])},u.precision=function(t){return arguments.length?(a.precision(t),s.precision(t),l.precision(t),h()):a.precision()},u.scale=function(t){return arguments.length?(a.scale(t),s.scale(.35*t),l.scale(t),u.translate(a.translate())):a.scale()},u.translate=function(t){if(!arguments.length)return a.translate();var e=a.scale(),o=+t[0],u=+t[1];return n=a.translate(t).clipExtent([[o-.455*e,u-.238*e],[o+.455*e,u+.238*e]]).stream(c),i=s.translate([o-.307*e,u+.201*e]).clipExtent([[o-.425*e+Cq,u+.12*e+Cq],[o-.214*e-Cq,u+.234*e-Cq]]).stream(c),r=l.translate([o-.205*e,u+.212*e]).clipExtent([[o-.214*e+Cq,u+.166*e+Cq],[o-.115*e-Cq,u+.234*e-Cq]]).stream(c),h()},u.fitExtent=function(t,e){return vK(u,t,e)},u.fitSize=function(t,e){return bK(u,t,e)},u.fitWidth=function(t,e){return xK(u,t,e)},u.fitHeight=function(t,e){return wK(u,t,e)},u.scale(1070)},geoAzimuthalEqualArea:function mpt(){return TK(OK).scale(124.75).clipAngle(179.999)},geoAzimuthalEqualAreaRaw:OK,geoAzimuthalEquidistant:function gpt(){return TK(RK).scale(79.4188).clipAngle(179.999)},geoAzimuthalEquidistantRaw:RK,geoConicConformal:function _pt(){return AK(HK).scale(109.5).parallels([30,30])},geoConicConformalRaw:HK,geoConicEqualArea:LK,geoConicEqualAreaRaw:kK,geoConicEquidistant:function ypt(){return AK(VK).scale(131.154).center([0,13.9389])},geoConicEquidistantRaw:VK,geoEquirectangular:function vpt(){return TK(FK).scale(152.63)},geoEquirectangularRaw:FK,geoGnomonic:function bpt(){return TK(UK).scale(144.049).clipAngle(60)},geoGnomonicRaw:UK,geoIdentity:function xpt(){var t,e,n,i,r,o,a=1,s=0,l=0,c=1,u=1,h=_$,d=null,p=_$;function f(){return i=r=null,o}return o={stream:function(t){return i&&r===t?i:i=h(p(r=t))},postclip:function(i){return arguments.length?(p=i,d=t=e=n=null,f()):p},clipExtent:function(i){return arguments.length?(p=null==i?(d=t=e=n=null,_$):qX(d=+i[0][0],t=+i[0][1],e=+i[1][0],n=+i[1][1]),f()):null==d?null:[[d,t],[e,n]]},scale:function(t){return arguments.length?(h=jK((a=+t)*c,a*u,s,l),f()):a},translate:function(t){return arguments.length?(h=jK(a*c,a*u,s=+t[0],l=+t[1]),f()):[s,l]},reflectX:function(t){return arguments.length?(h=jK(a*(c=t?-1:1),a*u,s,l),f()):c<0},reflectY:function(t){return arguments.length?(h=jK(a*c,a*(u=t?-1:1),s,l),f()):u<0},fitExtent:function(t,e){return vK(o,t,e)},fitSize:function(t,e){return bK(o,t,e)},fitWidth:function(t,e){return xK(o,t,e)},fitHeight:function(t,e){return wK(o,t,e)}}},geoProjection:TK,geoProjectionMutator:CK,geoMercator:function wpt(){return DK(zK).scale(961/Pq)},geoMercatorRaw:zK,geoNaturalEarth1:function Spt(){return TK(GK).scale(175.295)},geoNaturalEarth1Raw:GK,geoOrthographic:function Mpt(){return TK(WK).scale(249.5).clipAngle(90.000001)},geoOrthographicRaw:WK,geoStereographic:function Ept(){return TK(qK).scale(250).clipAngle(142)},geoStereographicRaw:qK,geoTransverseMercator:function Tpt(){var t=DK(YK),e=t.center,n=t.rotate;return t.center=function(t){return arguments.length?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return arguments.length?n([t[0],t[1],t.length>2?t[2]+90:90]):[(t=n())[0],t[1],t[2]-90]},n([0,0,90]).scale(159.155)},geoTransverseMercatorRaw:YK,geoRotation:SX,geoStream:eY,geoTransform:function Cpt(t){return{stream:gK(t)}},cluster:function Apt(){var t=XK,e=1,n=1,i=!1;function r(r){var o,a=0;r.eachAfter((function(e){var n=e.children;n?(e.x=(function i(t){return t.reduce($K,0)/t.length})(n),e.y=(function r(t){return 1+t.reduce(KK,0)})(n)):(e.x=o?a+=t(e,o):0,e.y=0,o=e)}));var s=(function l(t){for(var e;e=t.children;)t=e[0];return t})(r),c=(function u(t){for(var e;e=t.children;)t=e[e.length-1];return t})(r),h=s.x-t(s,c)/2,d=c.x+t(c,s)/2;return r.eachAfter(i?function(t){t.x=(t.x-r.x)*e,t.y=(r.y-t.y)*n}:function(t){t.x=(t.x-h)/(d-h)*e,t.y=(1-(r.y?t.y/r.y:1))*n})}return r.separation=function(e){return arguments.length?(t=e,r):t},r.size=function(t){return arguments.length?(i=!1,e=+t[0],n=+t[1],r):i?null:[e,n]},r.nodeSize=function(t){return arguments.length?(i=!0,e=+t[0],n=+t[1],r):i?[e,n]:null},r},hierarchy:JK,pack:function kpt(){var t=null,e=1,n=1,i=PZ;function r(r){return r.x=e/2,r.y=n/2,t?r.eachBefore(OZ(t)).eachAfter(RZ(i,.5)).eachBefore(zZ(1)):r.eachBefore(OZ(IZ)).eachAfter(RZ(PZ,1)).eachAfter(RZ(i,r.r/Math.min(e,n))).eachBefore(zZ(Math.min(e,n)/(2*r.r))),r}return r.radius=function(e){return arguments.length?(t=kZ(e),r):t},r.size=function(t){return arguments.length?(e=+t[0],n=+t[1],r):[e,n]},r.padding=function(t){return arguments.length?(i="function"==typeof t?t:NZ(+t),r):i},r},packSiblings:function Lpt(t){return AZ(t),t},packEnclose:gZ,partition:function Ppt(){var t=1,e=1,n=0,i=!1;function r(r){var o=r.height+1;return r.x0=r.y0=n,r.x1=t,r.y1=e/o,r.eachBefore((function a(t,e){return function(i){i.children&&BZ(i,i.x0,t*(i.depth+1)/e,i.x1,t*(i.depth+2)/e);var r=i.x0,o=i.y0,a=i.x1-n,s=i.y1-n;a<r&&(r=a=(r+a)/2),s<o&&(o=s=(o+s)/2),i.x0=r,i.y0=o,i.x1=a,i.y1=s}})(e,o)),i&&r.eachBefore(DZ),r}return r.round=function(t){return arguments.length?(i=!!t,r):i},r.size=function(n){return arguments.length?(t=+n[0],e=+n[1],r):[t,e]},r.padding=function(t){return arguments.length?(n=+t,r):n},r},stratify:function Npt(){var t=VZ,e=UZ;function n(n){var i,r,o,a,s,l,c,u=n.length,h=new Array(u),d={};for(r=0;r<u;++r)s=h[r]=new nZ(i=n[r]),null!=(l=t(i,r,n))&&(l+="")&&(d[c="$"+(s.id=l)]=c in d?FZ:s);for(r=0;r<u;++r)if(s=h[r],null!=(l=e(n[r],r,n))&&(l+="")){if(!(a=d["$"+l]))throw new Error("missing: "+l);if(a===FZ)throw new Error("ambiguous: "+l);a.children?a.children.push(s):a.children=[s],s.parent=a}else{if(o)throw new Error("multiple roots");o=s}if(!o)throw new Error("no root");if(o.parent=HZ,o.eachBefore((function(t){t.depth=t.parent.depth+1,--u})).eachBefore(eZ),o.parent=null,u>0)throw new Error("cycle");return o}return n.id=function(e){return arguments.length?(t=LZ(e),n):t},n.parentId=function(t){return arguments.length?(e=LZ(t),n):e},n},tree:function Ipt(){var t=jZ,e=1,n=1,i=null;function r(r){var l=(function c(t){for(var e,n,i,r,o,a=new XZ(t,0),s=[a];e=s.pop();)if(i=e._.children)for(e.children=new Array(o=i.length),r=o-1;r>=0;--r)s.push(n=e.children[r]=new XZ(i[r],r)),n.parent=e;return(a.parent=new XZ(null,0)).children=[a],a})(r);if(l.eachAfter(o),l.parent.m=-l.z,l.eachBefore(a),i)r.eachBefore(s);else{var u=r,h=r,d=r;r.eachBefore((function(t){t.x<u.x&&(u=t),t.x>h.x&&(h=t),t.depth>d.depth&&(d=t)}));var p=u===h?1:t(u,h)/2,f=p-u.x,m=e/(h.x+p+f),g=n/(d.depth||1);r.eachBefore((function(t){t.x=(t.x+f)*m,t.y=t.depth*g}))}return r}function o(e){var n=e.children,i=e.parent.children,r=e.i?i[e.i-1]:null;if(n){!(function o(t){for(var e,n=0,i=0,r=t.children,o=r.length;--o>=0;)(e=r[o]).z+=n,e.m+=n,n+=e.s+(i+=e.c)})(e);var a=(n[0].z+n[n.length-1].z)/2;r?(e.z=r.z+t(e._,r._),e.m=e.z-a):e.z=a}else r&&(e.z=r.z+t(e._,r._));e.parent.A=(function s(e,n,i){if(n){for(var r,o=e,a=e,s=n,l=o.parent.children[0],c=o.m,u=a.m,h=s.m,d=l.m;s=WZ(s),o=GZ(o),s&&o;)l=GZ(l),(a=WZ(a)).a=e,(r=s.z+h-o.z-c+t(s._,o._))>0&&(qZ(YZ(s,e,i),e,r),c+=r,u+=r),h+=s.m,c+=o.m,d+=l.m,u+=a.m;s&&!WZ(a)&&(a.t=s,a.m+=h-u),o&&!GZ(l)&&(l.t=o,l.m+=c-d,i=e)}return i})(e,r,e.parent.A||i[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*n}return r.separation=function(e){return arguments.length?(t=e,r):t},r.size=function(t){return arguments.length?(i=!1,e=+t[0],n=+t[1],r):i?null:[e,n]},r.nodeSize=function(t){return arguments.length?(i=!0,e=+t[0],n=+t[1],r):i?[e,n]:null},r},treemap:function Opt(){var t=JZ,e=!1,n=1,i=1,r=[0],o=PZ,a=PZ,s=PZ,l=PZ,c=PZ;function u(t){return t.x0=t.y0=0,t.x1=n,t.y1=i,t.eachBefore(h),r=[0],e&&t.eachBefore(DZ),t}function h(e){var n=r[e.depth],i=e.x0+n,u=e.y0+n,h=e.x1-n,d=e.y1-n;h<i&&(i=h=(i+h)/2),d<u&&(u=d=(u+d)/2),e.x0=i,e.y0=u,e.x1=h,e.y1=d,e.children&&(n=r[e.depth+1]=o(e)/2,i+=c(e)-n,u+=a(e)-n,(h-=s(e)-n)<i&&(i=h=(i+h)/2),(d-=l(e)-n)<u&&(u=d=(u+d)/2),t(e,i,u,h,d))}return u.round=function(t){return arguments.length?(e=!!t,u):e},u.size=function(t){return arguments.length?(n=+t[0],i=+t[1],u):[n,i]},u.tile=function(e){return arguments.length?(t=LZ(e),u):t},u.padding=function(t){return arguments.length?u.paddingInner(t).paddingOuter(t):u.paddingInner()},u.paddingInner=function(t){return arguments.length?(o="function"==typeof t?t:NZ(+t),u):o},u.paddingOuter=function(t){return arguments.length?u.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):u.paddingTop()},u.paddingTop=function(t){return arguments.length?(a="function"==typeof t?t:NZ(+t),u):a},u.paddingRight=function(t){return arguments.length?(s="function"==typeof t?t:NZ(+t),u):s},u.paddingBottom=function(t){return arguments.length?(l="function"==typeof t?t:NZ(+t),u):l},u.paddingLeft=function(t){return arguments.length?(c="function"==typeof t?t:NZ(+t),u):c},u},treemapBinary:function Rpt(t,e,n,i,r){var o,a,s=t.children,l=s.length,c=new Array(l+1);for(c[0]=a=o=0;o<l;++o)c[o+1]=a+=s[o].value;!(function t(e,n,i,r,o,a,l){if(e>=n-1){var u=s[e];return u.x0=r,u.y0=o,u.x1=a,void(u.y1=l)}for(var h=c[e],d=i/2+h,p=e+1,f=n-1;p<f;){var m=p+f>>>1;c[m]<d?p=m+1:f=m}d-c[p-1]<c[p]-d&&e+1<p&&--p;var g=c[p]-h,_=i-g;if(a-r>l-o){var y=(r*_+a*g)/i;t(e,p,g,r,o,y,l),t(p,n,_,y,o,a,l)}else{var v=(o*_+l*g)/i;t(e,p,g,r,o,a,v),t(p,n,_,r,v,a,l)}})(0,l,t.value,e,n,i,r)},treemapDice:BZ,treemapSlice:$Z,treemapSliceDice:function zpt(t,e,n,i,r){(1&t.depth?$Z:BZ)(t,e,n,i,r)},treemapSquarify:JZ,treemapResquarify:QZ,interpolate:xQ,interpolateArray:fQ,interpolateBasis:rQ,interpolateBasisClosed:oQ,interpolateDate:mQ,interpolateNumber:gQ,interpolateObject:_Q,interpolateRound:function Dpt(t,e){return e-=t=+t,function(n){return Math.round(t+e*n)}},interpolateString:bQ,interpolateTransformCss:LQ,interpolateTransformSvg:NQ,interpolateZoom:function Bpt(t,e){var n,i,r=t[0],o=t[1],a=t[2],s=e[2],l=e[0]-r,c=e[1]-o,u=l*l+c*c;if(u<1e-12)i=Math.log(s/a)/OQ,n=function(t){return[r+t*l,o+t*c,a*Math.exp(OQ*t*i)]};else{var h=Math.sqrt(u),d=(s*s-a*a+4*u)/(2*a*2*h),p=(s*s-a*a-4*u)/(2*s*2*h),f=Math.log(Math.sqrt(d*d+1)-d),m=Math.log(Math.sqrt(p*p+1)-p);i=(m-f)/OQ,n=function(t){var e=t*i,n=RQ(f),s=a/(2*h)*(n*(function u(t){return((t=Math.exp(2*t))-1)/(t+1)})(OQ*e+f)-(function d(t){return((t=Math.exp(t))-1/t)/2})(f));return[r+s*l,o+s*c,a*n/RQ(OQ*e+f)]}}return n.duration=1e3*i,n},interpolateRgb:uQ,interpolateRgbBasis:dQ,interpolateRgbBasisClosed:pQ,interpolateHsl:DQ,interpolateHslLong:BQ,interpolateLab:function Hpt(t,e){var n=cQ((t=VJ(t)).l,(e=VJ(e)).l),i=cQ(t.a,e.a),r=cQ(t.b,e.b),o=cQ(t.opacity,e.opacity);return function(e){return t.l=n(e),t.a=i(e),t.b=r(e),t.opacity=o(e),t+""}},interpolateHcl:FQ,interpolateHclLong:VQ,interpolateCubehelix:jQ,interpolateCubehelixLong:GQ,quantize:function Fpt(t,e){for(var n=new Array(e),i=0;i<e;++i)n[i]=t(i/(e-1));return n},path:KQ,polygonArea:function Vpt(t){for(var e,n=-1,i=t.length,r=t[i-1],o=0;++n<i;)o+=(e=r)[1]*(r=t[n])[0]-e[0]*r[1];return o/2},polygonCentroid:function Upt(t){for(var e,n,i=-1,r=t.length,o=0,a=0,s=t[r-1],l=0;++i<r;)l+=n=(e=s)[0]*(s=t[i])[1]-s[0]*e[1],o+=(e[0]+s[0])*n,a+=(e[1]+s[1])*n;return[o/(l*=3),a/l]},polygonHull:function jpt(t){if((n=t.length)<3)return null;var e,n,i=new Array(n),r=new Array(n);for(e=0;e<n;++e)i[e]=[+t[e][0],+t[e][1],e];for(i.sort(JQ),e=0;e<n;++e)r[e]=[i[e][0],-i[e][1]];var o=QQ(i),a=QQ(r),s=a[0]===o[0],l=a[a.length-1]===o[o.length-1],c=[];for(e=o.length-1;e>=0;--e)c.push(t[i[o[e]][2]]);for(e=+s;e<a.length-l;++e)c.push(t[i[a[e]][2]]);return c},polygonContains:function Gpt(t,e){for(var n,i,r=t.length,o=t[r-1],a=e[0],s=e[1],l=o[0],c=o[1],u=!1,h=0;h<r;++h)n=(o=t[h])[0],(i=o[1])>s!=c>s&&a<(l-n)*(s-i)/(c-i)+n&&(u=!u),l=n,c=i;return u},polygonLength:function Wpt(t){for(var e,n,i=-1,r=t.length,o=t[r-1],a=o[0],s=o[1],l=0;++i<r;)e=a,n=s,e-=a=(o=t[i])[0],n-=s=o[1],l+=Math.sqrt(e*e+n*n);return l},quadtree:r1,queue:k1,randomUniform:P1,randomNormal:N1,randomLogNormal:I1,randomBates:R1,randomIrwinHall:O1,randomExponential:z1,request:D1,html:H1,json:F1,text:V1,xml:U1,csv:W1,tsv:q1,scaleBand:f0,scalePoint:function qpt(){return m0(f0().paddingInner(1))},scaleIdentity:function t(){var e=[0,1];function n(t){return+t}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=u0.call(t,T2),n):e.slice()},n.copy=function(){return t().domain(e)},$2(n)},scaleLinear:function t(){var e=N2(A2,m2);return e.copy=function(){return P2(e,t())},$2(e)},scaleLog:function t(){var e=N2(Z2,J2).domain([1,10]),n=e.domain,i=10,r=e5(10),o=t5(10);function a(){return r=e5(i),o=t5(i),n()[0]<0&&(r=n5(r),o=n5(o)),e}return e.base=function(t){return arguments.length?(i=+t,a()):i},e.domain=function(t){return arguments.length?(n(t),a()):n()},e.ticks=function(t){var e,a=n(),s=a[0],l=a[a.length-1];(e=l<s)&&(d=s,s=l,l=d);var c,u,h,d=r(s),p=r(l),f=null==t?10:+t,m=[];if(!(i%1)&&p-d<f){if(d=Math.round(d)-1,p=Math.round(p)+1,s>0){for(;d<p;++d)for(u=1,c=o(d);u<i;++u)if(!((h=c*u)<s)){if(h>l)break;m.push(h)}}else for(;d<p;++d)for(u=i-1,c=o(d);u>=1;--u)if(!((h=c*u)<s)){if(h>l)break;m.push(h)}}else m=t0(d,p,Math.min(p-d,f)).map(o);return e?m.reverse():m},e.tickFormat=function(t,n){if(null==n&&(n=10===i?".0e":","),"function"!=typeof n&&(n=W2(n)),t===1/0)return n;null==t&&(t=10);var a=Math.max(1,i*t/e.ticks().length);return function(t){var e=t/o(Math.round(r(t)));return e*i<i-.5&&(e*=i),e<=a?n(t):""}},e.nice=function(){return n(K2(n(),{floor:function(t){return o(Math.floor(r(t)))},ceil:function(t){return o(Math.ceil(r(t)))}}))},e.copy=function(){return P2(e,t().base(i))},e},scaleOrdinal:p0,scaleImplicit:d0,scalePow:r5,scaleSqrt:function Ypt(){return r5().exponent(.5)},scaleQuantile:function t(){var e=[],n=[],i=[];function r(){var t=0,r=Math.max(1,n.length);for(i=new Array(r-1);++t<r;)i[t-1]=i0(e,t/r);return o}function o(t){if(!isNaN(t=+t))return n[$1(i,t)]}return o.invertExtent=function(t){var r=n.indexOf(t);return r<0?[NaN,NaN]:[r>0?i[r-1]:e[0],r<i.length?i[r]:e[e.length-1]]},o.domain=function(t){if(!arguments.length)return e.slice();e=[];for(var n,i=0,o=t.length;i<o;++i)null==(n=t[i])||isNaN(n=+n)||e.push(n);return e.sort(Y1),r()},o.range=function(t){return arguments.length?(n=h0.call(t),r()):n.slice()},o.quantiles=function(){return i.slice()},o.copy=function(){return t().domain(e).range(n)},o},scaleQuantize:function t(){var e=0,n=1,i=1,r=[.5],o=[0,1];function a(t){if(t<=t)return o[$1(r,t,0,i)]}function s(){var t=-1;for(r=new Array(i);++t<i;)r[t]=((t+1)*n-(t-i)*e)/(i+1);return a}return a.domain=function(t){return arguments.length?(e=+t[0],n=+t[1],s()):[e,n]},a.range=function(t){return arguments.length?(i=(o=h0.call(t)).length-1,s()):o.slice()},a.invertExtent=function(t){var a=o.indexOf(t);return a<0?[NaN,NaN]:a<1?[e,r[0]]:a>=i?[r[i-1],n]:[r[a-1],r[a]]},a.copy=function(){return t().domain([e,n]).range(o)},$2(a)},scaleThreshold:function t(){var e=[.5],n=[0,1],i=1;function r(t){if(t<=t)return n[$1(e,t,0,i)]}return r.domain=function(t){return arguments.length?(e=h0.call(t),i=Math.min(e.length,n.length-1),r):e.slice()},r.range=function(t){return arguments.length?(n=h0.call(t),i=Math.min(e.length,n.length-1),r):n.slice()},r.invertExtent=function(t){var i=n.indexOf(t);return[e[i-1],e[i]]},r.copy=function(){return t().domain(e).range(n)},r},scaleTime:function Xpt(){return s4(M5,S5,b5,y5,_5,g5,m5,c5,B5).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},scaleUtc:function $pt(){return s4(I5,N5,k5,C5,T5,E5,m5,c5,H5).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},schemeCategory10:c4,schemeCategory20b:u4,schemeCategory20c:h4,schemeCategory20:d4,interpolateCubehelixDefault:p4,interpolateRainbow:function Kpt(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return g4.h=360*t-100,g4.s=1.5-1.5*e,g4.l=.8-.9*e,g4+""},interpolateWarm:f4,interpolateCool:m4,interpolateViridis:y4,interpolateMagma:v4,interpolateInferno:b4,interpolatePlasma:x4,scaleSequential:function t(e){var n=0,i=1,r=!1;function o(t){var o=(t-n)/(i-n);return e(r?Math.max(0,Math.min(1,o)):o)}return o.domain=function(t){return arguments.length?(n=+t[0],i=+t[1],o):[n,i]},o.clamp=function(t){return arguments.length?(r=!!t,o):r},o.interpolator=function(t){return arguments.length?(e=t,o):e},o.copy=function(){return t(e).domain([n,i]).clamp(r)},$2(o)},create:function Zpt(t){return O6(C4(t).call(document.documentElement))},creator:C4,local:d9,matcher:R4,mouse:function Jpt(t){var e=f9();return e.changedTouches&&(e=e.changedTouches[0]),m9(t,e)},namespace:M4,namespaces:S4,clientPoint:m9,select:O6,selectAll:function Qpt(t){return"string"==typeof t?new N6([document.querySelectorAll(t)],[document.documentElement]):new N6([null==t?[]:t],P6)},selection:I6,selector:k4,selectorAll:P4,style:Z4,touch:function tft(t,e,n){arguments.length<3&&(n=e,e=f9().changedTouches);for(var i,r=0,o=e?e.length:0;r<o;++r)if((i=e[r]).identifier===n)return m9(t,i);return null},touches:function eft(t,e){null==e&&(e=f9().touches);for(var n=0,i=e?e.length:0,r=new Array(i);n<i;++n)r[n]=m9(t,e[n]);return r},window:Y4,get event(){return w6},customEvent:function nft(t,e,n,i){var r=w6;t.sourceEvent=w6,w6=t;try{return e.apply(n,i)}finally{w6=r}},arc:function ift(){var t=z9,e=D9,n=w9(0),i=null,r=B9,o=H9,a=F9,s=null;function l(){var l,c,u=+t.apply(this,arguments),h=+e.apply(this,arguments),d=r.apply(this,arguments)-N9,p=o.apply(this,arguments)-N9,f=S9(p-d),m=p>d;if(s||(s=l=x9()),h<u&&(c=h,h=u,u=c),h>L9)if(f>I9-L9)s.moveTo(h*E9(d),h*A9(d)),s.arc(0,0,h,d,p,!m),u>L9&&(s.moveTo(u*E9(p),u*A9(p)),s.arc(0,0,u,p,d,m));else{var g,_,y=d,v=p,b=d,x=p,w=f,S=f,M=a.apply(this,arguments)/2,E=M>L9&&(i?+i.apply(this,arguments):k9(u*u+h*h)),T=C9(S9(h-u)/2,+n.apply(this,arguments)),C=T,A=T;if(E>L9){var k=R9(E/u*A9(M)),L=R9(E/h*A9(M));(w-=2*k)>L9?(b+=k*=m?1:-1,x-=k):(w=0,b=x=(d+p)/2),(S-=2*L)>L9?(y+=L*=m?1:-1,v-=L):(S=0,y=v=(d+p)/2)}var P=h*E9(y),N=h*A9(y),I=u*E9(x),O=u*A9(x);if(T>L9){var R=h*E9(v),z=h*A9(v),D=u*E9(b),B=u*A9(b);if(f<P9){var H=w>L9?V9(P,N,D,B,R,z,I,O):[I,O],F=P-H[0],V=N-H[1],U=R-H[0],j=z-H[1],G=1/A9(O9((F*U+V*j)/(k9(F*F+V*V)*k9(U*U+j*j)))/2),W=k9(H[0]*H[0]+H[1]*H[1]);C=C9(T,(u-W)/(G-1)),A=C9(T,(h-W)/(G+1))}}S>L9?A>L9?(g=U9(D,B,P,N,h,A,m),_=U9(R,z,I,O,h,A,m),s.moveTo(g.cx+g.x01,g.cy+g.y01),A<T?s.arc(g.cx,g.cy,A,M9(g.y01,g.x01),M9(_.y01,_.x01),!m):(s.arc(g.cx,g.cy,A,M9(g.y01,g.x01),M9(g.y11,g.x11),!m),s.arc(0,0,h,M9(g.cy+g.y11,g.cx+g.x11),M9(_.cy+_.y11,_.cx+_.x11),!m),s.arc(_.cx,_.cy,A,M9(_.y11,_.x11),M9(_.y01,_.x01),!m))):(s.moveTo(P,N),s.arc(0,0,h,y,v,!m)):s.moveTo(P,N),u>L9&&w>L9?C>L9?(g=U9(I,O,R,z,u,-C,m),_=U9(P,N,D,B,u,-C,m),s.lineTo(g.cx+g.x01,g.cy+g.y01),C<T?s.arc(g.cx,g.cy,C,M9(g.y01,g.x01),M9(_.y01,_.x01),!m):(s.arc(g.cx,g.cy,C,M9(g.y01,g.x01),M9(g.y11,g.x11),!m),s.arc(0,0,u,M9(g.cy+g.y11,g.cx+g.x11),M9(_.cy+_.y11,_.cx+_.x11),m),s.arc(_.cx,_.cy,C,M9(_.y11,_.x11),M9(_.y01,_.x01),!m))):s.arc(0,0,u,x,b,m):s.lineTo(I,O)}else s.moveTo(0,0);if(s.closePath(),l)return s=null,l+""||null}return l.centroid=function(){var n=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,i=(+r.apply(this,arguments)+ +o.apply(this,arguments))/2-P9/2;return[E9(i)*n,A9(i)*n]},l.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:w9(+e),l):t},l.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:w9(+t),l):e},l.cornerRadius=function(t){return arguments.length?(n="function"==typeof t?t:w9(+t),l):n},l.padRadius=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:w9(+t),l):i},l.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:w9(+t),l):r},l.endAngle=function(t){return arguments.length?(o="function"==typeof t?t:w9(+t),l):o},l.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:w9(+t),l):a},l.context=function(t){return arguments.length?(s=null==t?null:t,l):s},l},area:X9,line:Y9,pie:function rft(){var t=K9,e=$9,n=null,i=w9(0),r=w9(I9),o=w9(0);function a(a){var s,l,c,u,h,d=a.length,p=0,f=new Array(d),m=new Array(d),g=+i.apply(this,arguments),_=Math.min(I9,Math.max(-I9,r.apply(this,arguments)-g)),y=Math.min(Math.abs(_)/d,o.apply(this,arguments)),v=y*(_<0?-1:1);for(s=0;s<d;++s)(h=m[f[s]=s]=+t(a[s],s,a))>0&&(p+=h);for(null!=e?f.sort((function(t,n){return e(m[t],m[n])})):null!=n&&f.sort((function(t,e){return n(a[t],a[e])})),s=0,c=p?(_-d*v)/p:0;s<d;++s,g=u)m[l=f[s]]={data:a[l],index:s,value:h=m[l],startAngle:g,endAngle:u=g+(h>0?h*c:0)+v,padAngle:y};return m}return a.value=function(e){return arguments.length?(t="function"==typeof e?e:w9(+e),a):t},a.sortValues=function(t){return arguments.length?(e=t,n=null,a):e},a.sort=function(t){return arguments.length?(n=t,e=null,a):n},a.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:w9(+t),a):i},a.endAngle=function(t){return arguments.length?(r="function"==typeof t?t:w9(+t),a):r},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:w9(+t),a):o},a},areaRadial:n8,radialArea:n8,lineRadial:e8,radialLine:e8,pointRadial:i8,linkHorizontal:function oft(){return s8(l8)},linkVertical:function aft(){return s8(c8)},linkRadial:function sft(){var t=s8(u8);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},symbol:function lft(){var t=w9(h8),e=w9(64),n=null;function i(){var i;if(n||(n=i=x9()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),i)return n=null,i+""||null}return i.type=function(e){return arguments.length?(t="function"==typeof e?e:w9(e),i):t},i.size=function(t){return arguments.length?(e="function"==typeof t?t:w9(+t),i):e},i.context=function(t){return arguments.length?(n=null==t?null:t,i):n},i},symbols:A8,symbolCircle:h8,symbolCross:d8,symbolDiamond:m8,symbolSquare:b8,symbolStar:v8,symbolTriangle:w8,symbolWye:C8,curveBasisClosed:function cft(t){return new N8(t)},curveBasisOpen:function uft(t){return new I8(t)},curveBasis:function hft(t){return new P8(t)},curveBundle:R8,curveCardinalClosed:F8,curveCardinalOpen:U8,curveCardinal:B8,curveCatmullRomClosed:Y8,curveCatmullRomOpen:$8,curveCatmullRom:W8,curveLinearClosed:function dft(t){return new K8(t)},curveLinear:G9,curveMonotoneX:function pft(t){return new e7(t)},curveMonotoneY:function fft(t){return new n7(t)},curveNatural:function mft(t){return new r7(t)},curveStep:function gft(t){return new a7(t,.5)},curveStepAfter:function _ft(t){return new a7(t,1)},curveStepBefore:function yft(t){return new a7(t,0)},stack:function vft(){var t=w9([]),e=l7,n=s7,i=c7;function r(r){var o,a,s=t.apply(this,arguments),l=r.length,c=s.length,u=new Array(c);for(o=0;o<c;++o){for(var h,d=s[o],p=u[o]=new Array(l),f=0;f<l;++f)p[f]=h=[0,+i(r[f],d,f,r)],h.data=r[f];p.key=d}for(o=0,a=e(u);o<c;++o)u[a[o]].index=o;return n(u,a),u}return r.keys=function(e){return arguments.length?(t="function"==typeof e?e:w9(r8.call(e)),r):t},r.value=function(t){return arguments.length?(i="function"==typeof t?t:w9(+t),r):i},r.order=function(t){return arguments.length?(e=null==t?l7:"function"==typeof t?t:w9(r8.call(t)),r):e},r.offset=function(t){return arguments.length?(n=null==t?s7:t,r):n},r},stackOffsetExpand:function bft(t,e){if((i=t.length)>0){for(var n,i,r,o=0,a=t[0].length;o<a;++o){for(r=n=0;n<i;++n)r+=t[n][o][1]||0;if(r)for(n=0;n<i;++n)t[n][o][1]/=r}s7(t,e)}},stackOffsetDiverging:function xft(t,e){if((s=t.length)>1)for(var n,i,r,o,a,s,l=0,c=t[e[0]].length;l<c;++l)for(o=a=0,n=0;n<s;++n)(r=(i=t[e[n]][l])[1]-i[0])>=0?(i[0]=o,i[1]=o+=r):r<0?(i[1]=a,i[0]=a+=r):i[0]=o},stackOffsetNone:s7,stackOffsetSilhouette:function wft(t,e){if((n=t.length)>0){for(var n,i=0,r=t[e[0]],o=r.length;i<o;++i){for(var a=0,s=0;a<n;++a)s+=t[a][i][1]||0;r[i][1]+=r[i][0]=-s/2}s7(t,e)}},stackOffsetWiggle:function Sft(t,e){if((r=t.length)>0&&(i=(n=t[e[0]]).length)>0){for(var n,i,r,o=0,a=1;a<i;++a){for(var s=0,l=0,c=0;s<r;++s){for(var u=t[e[s]],h=u[a][1]||0,d=(h-(u[a-1][1]||0))/2,p=0;p<s;++p){var f=t[e[p]];d+=(f[a][1]||0)-(f[a-1][1]||0)}l+=h,c+=d*h}n[a-1][1]+=n[a-1][0]=o,l&&(o-=c/l)}n[a-1][1]+=n[a-1][0]=o,s7(t,e)}},stackOrderAscending:u7,stackOrderDescending:function Mft(t){return u7(t).reverse()},stackOrderInsideOut:function Eft(t){var e,n,i=t.length,r=t.map(h7),o=l7(t).sort((function(t,e){return r[e]-r[t]})),a=0,s=0,l=[],c=[];for(e=0;e<i;++e)n=o[e],a<s?(a+=r[n],l.push(n)):(s+=r[n],c.push(n));return c.reverse().concat(l)},stackOrderNone:l7,stackOrderReverse:function Tft(t){return l7(t).reverse()},timeInterval:f7,timeMillisecond:m7,timeMilliseconds:g7,utcMillisecond:m7,utcMilliseconds:g7,timeSecond:w7,timeSeconds:S7,utcSecond:w7,utcSeconds:S7,timeMinute:M7,timeMinutes:E7,timeHour:T7,timeHours:C7,timeDay:A7,timeDays:k7,timeWeek:P7,timeWeeks:B7,timeSunday:P7,timeSundays:B7,timeMonday:N7,timeMondays:H7,timeTuesday:I7,timeTuesdays:F7,timeWednesday:O7,timeWednesdays:V7,timeThursday:R7,timeThursdays:U7,timeFriday:z7,timeFridays:j7,timeSaturday:D7,timeSaturdays:G7,timeMonth:W7,timeMonths:q7,timeYear:Y7,timeYears:X7,utcMinute:$7,utcMinutes:K7,utcHour:Z7,utcHours:J7,utcDay:Q7,utcDays:ttt,utcWeek:ntt,utcWeeks:ctt,utcSunday:ntt,utcSundays:ctt,utcMonday:itt,utcMondays:utt,utcTuesday:rtt,utcTuesdays:htt,utcWednesday:ott,utcWednesdays:dtt,utcThursday:att,utcThursdays:ptt,utcFriday:stt,utcFridays:ftt,utcSaturday:ltt,utcSaturdays:mtt,utcMonth:gtt,utcMonths:_tt,utcYear:ytt,utcYears:vtt,timeFormatDefaultLocale:rnt,get timeFormat(){return Utt},get timeParse(){return jtt},get utcFormat(){return Gtt},get utcParse(){return Wtt},timeFormatLocale:Ftt,isoFormat:lnt,isoParse:unt,now:bnt,timer:Snt,timerFlush:Mnt,timeout:function Cft(t,e,n){var i=new wnt;return i.restart((function(n){i.stop(),t(n+e)}),e=null==e?0:+e,n),i},interval:function Aft(t,e,n){var i=new wnt,r=e;return null==e?(i.restart(t,e,n),i):(e=+e,n=null==n?bnt():+n,i.restart((function o(a){a+=r,i.restart(o,r+=e,n),t(a)}),e,n),i)},transition:uat,active:function kft(t,e){var n,i,r=t.__transition;if(r)for(i in e=null==e?null:e+"",r)if((n=r[i]).state>1&&n.name===e)return new cat([[t]],Oat,e,+i);return null},interrupt:jrt,voronoi:function Lft(){var t=zat,e=Dat,n=null;function i(i){return new yst(i.map((function(n,r){var o=[Math.round(t(n,r,i)/fst)*fst,Math.round(e(n,r,i)/fst)*fst];return o.index=r,o.data=n,o})),n)}return i.polygons=function(t){return i(t).polygons()},i.links=function(t){return i(t).links()},i.triangles=function(t){return i(t).triangles()},i.x=function(e){return arguments.length?(t="function"==typeof e?e:Rat(+e),i):t},i.y=function(t){return arguments.length?(e="function"==typeof t?t:Rat(+t),i):e},i.extent=function(t){return arguments.length?(n=null==t?null:[[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]],i):n&&[[n[0][0],n[0][1]],[n[1][0],n[1][1]]]},i.size=function(t){return arguments.length?(n=null==t?null:[[0,0],[+t[0],+t[1]]],i):n&&[n[1][0]-n[0][0],n[1][1]-n[0][1]]},i},zoom:function Pft(){var t,e,n=Zht,i=Jht,r=ndt,o=tdt,a=edt,s=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],c=250,u=vut,h=[],d=bst("start","zoom","end"),p=500,f=0;function m(t){t.property("__zoom",Qht).on("wheel.zoom",w).on("mousedown.zoom",S).on("dblclick.zoom",M).filter(a).on("touchstart.zoom",E).on("touchmove.zoom",T).on("touchend.zoom touchcancel.zoom",C).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(t,e){return(e=Math.max(s[0],Math.min(s[1],e)))===t.k?t:new Ght(e,t.x,t.y)}function _(t,e,n){var i=e[0]-n[0]*t.k,r=e[1]-n[1]*t.k;return i===t.x&&r===t.y?t:new Ght(t.k,i,r)}function y(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function v(t,e,n){t.on("start.zoom",(function(){b(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){b(this,arguments).end()})).tween("zoom",(function(){var t=this,r=arguments,o=b(t,r),a=i.apply(t,r),s=n||y(a),l=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),c=t.__zoom,h="function"==typeof e?e.apply(t,r):e,d=u(c.invert(s).concat(l/c.k),h.invert(s).concat(l/h.k));return function(t){if(1===t)t=h;else{var e=d(t),n=l/e[2];t=new Ght(n,s[0]-e[0]*n,s[1]-e[1]*n)}o.zoom(null,t)}}))}function b(t,e){for(var n,i=0,r=h.length;i<r;++i)if((n=h[i]).that===t)return n;return new x(t,e)}function x(t,e){this.that=t,this.args=e,this.index=-1,this.active=0,this.extent=i.apply(t,e)}function w(){if(n.apply(this,arguments)){var t=b(this,arguments),e=this.__zoom,i=Math.max(s[0],Math.min(s[1],e.k*Math.pow(2,o.apply(this,arguments)))),a=Dlt(this);if(t.wheel)t.mouse[0][0]===a[0]&&t.mouse[0][1]===a[1]||(t.mouse[1]=e.invert(t.mouse[0]=a)),clearTimeout(t.wheel);else{if(e.k===i)return;t.mouse=[a,e.invert(a)],Gut(this),t.start()}Kht(),t.wheel=setTimeout(c,150),t.zoom("mouse",r(_(g(e,i),t.mouse[0],t.mouse[1]),t.extent,l))}function c(){t.wheel=null,t.end()}}function S(){if(!e&&n.apply(this,arguments)){var t=b(this,arguments),i=Olt(wlt.view).on("mousemove.zoom",c,!0).on("mouseup.zoom",u,!0),o=Dlt(this),a=wlt.clientX,s=wlt.clientY;Flt(wlt.view),$ht(),t.mouse=[o,this.__zoom.invert(o)],Gut(this),t.start()}function c(){if(Kht(),!t.moved){var e=wlt.clientX-a,n=wlt.clientY-s;t.moved=e*e+n*n>f}t.zoom("mouse",r(_(t.that.__zoom,t.mouse[0]=Dlt(t.that),t.mouse[1]),t.extent,l))}function u(){i.on("mousemove.zoom mouseup.zoom",null),Vlt(wlt.view,t.moved),Kht(),t.end()}}function M(){if(n.apply(this,arguments)){var t=this.__zoom,e=Dlt(this),o=t.invert(e),a=t.k*(wlt.shiftKey?.5:2),s=r(_(g(t,a),e,o),i.apply(this,arguments),l);Kht(),c>0?Olt(this).transition().duration(c).call(v,s,e):Olt(this).call(m.transform,s)}}function E(){if(n.apply(this,arguments)){var e,i,r,o,a=b(this,arguments),s=wlt.changedTouches,l=s.length;for($ht(),i=0;i<l;++i)o=[o=Blt(this,s,(r=s[i]).identifier),this.__zoom.invert(o),r.identifier],a.touch0?a.touch1||(a.touch1=o):(a.touch0=o,e=!0);if(t&&(t=clearTimeout(t),!a.touch1))return a.end(),void((o=Olt(this).on("dblclick.zoom"))&&o.apply(this,arguments));e&&(t=setTimeout((function(){t=null}),p),Gut(this),a.start())}}function T(){var e,n,i,o,a=b(this,arguments),s=wlt.changedTouches,c=s.length;for(Kht(),t&&(t=clearTimeout(t)),e=0;e<c;++e)i=Blt(this,s,(n=s[e]).identifier),a.touch0&&a.touch0[2]===n.identifier?a.touch0[0]=i:a.touch1&&a.touch1[2]===n.identifier&&(a.touch1[0]=i);if(n=a.that.__zoom,a.touch1){var u=a.touch0[0],h=a.touch0[1],d=a.touch1[0],p=a.touch1[1],f=(f=d[0]-u[0])*f+(f=d[1]-u[1])*f,m=(m=p[0]-h[0])*m+(m=p[1]-h[1])*m;n=g(n,Math.sqrt(f/m)),i=[(u[0]+d[0])/2,(u[1]+d[1])/2],o=[(h[0]+p[0])/2,(h[1]+p[1])/2]}else{if(!a.touch0)return;i=a.touch0[0],o=a.touch0[1]}a.zoom("touch",r(_(n,i,o),a.extent,l))}function C(){var t,n,i=b(this,arguments),r=wlt.changedTouches,o=r.length;for($ht(),e&&clearTimeout(e),e=setTimeout((function(){e=null}),p),t=0;t<o;++t)n=r[t],i.touch0&&i.touch0[2]===n.identifier?delete i.touch0:i.touch1&&i.touch1[2]===n.identifier&&delete i.touch1;i.touch1&&!i.touch0&&(i.touch0=i.touch1,delete i.touch1),i.touch0?i.touch0[1]=this.__zoom.invert(i.touch0[0]):i.end()}return m.transform=function(t,e){var n=t.selection?t.selection():t;n.property("__zoom",Qht),t!==n?v(t,e):n.interrupt().each((function(){b(this,arguments).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},m.scaleBy=function(t,e){m.scaleTo(t,(function(){var t=this.__zoom.k,n="function"==typeof e?e.apply(this,arguments):e;return t*n}))},m.scaleTo=function(t,e){m.transform(t,(function(){var t=i.apply(this,arguments),n=this.__zoom,o=y(t),a=n.invert(o),s="function"==typeof e?e.apply(this,arguments):e;return r(_(g(n,s),o,a),t,l)}))},m.translateBy=function(t,e,n){m.transform(t,(function(){return r(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),i.apply(this,arguments),l)}))},m.translateTo=function(t,e,n){m.transform(t,(function(){var t=i.apply(this,arguments),o=this.__zoom,a=y(t);return r(Yht.translate(a[0],a[1]).scale(o.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,l)}))},x.prototype={start:function(){return 1==++this.active&&(this.index=h.push(this)-1,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(h.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){!(function e(t,n,i,r){var o=wlt;t.sourceEvent=wlt,wlt=t;try{n.apply(i,r)}finally{wlt=o}})(new jht(m,t,this.that.__zoom),d.apply,d,[t,this.that,this.args])}},m.wheelDelta=function(t){return arguments.length?(o="function"==typeof t?t:Uht(+t),m):o},m.filter=function(t){return arguments.length?(n="function"==typeof t?t:Uht(!!t),m):n},m.touchable=function(t){return arguments.length?(a="function"==typeof t?t:Uht(!!t),m):a},m.extent=function(t){return arguments.length?(i="function"==typeof t?t:Uht([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),m):i},m.scaleExtent=function(t){return arguments.length?(s[0]=+t[0],s[1]=+t[1],m):[s[0],s[1]]},m.translateExtent=function(t){return arguments.length?(l[0][0]=+t[0][0],l[1][0]=+t[1][0],l[0][1]=+t[0][1],l[1][1]=+t[1][1],m):[[l[0][0],l[0][1]],[l[1][0],l[1][1]]]},m.constrain=function(t){return arguments.length?(r=t,m):r},m.duration=function(t){return arguments.length?(c=+t,m):c},m.interpolate=function(t){return arguments.length?(u=t,m):u},m.on=function(){var t=d.on.apply(d,arguments);return t===d?m:t},m.clickDistance=function(t){return arguments.length?(f=(t=+t)*t,m):Math.sqrt(f)},m},zoomTransform:Xht,zoomIdentity:Yht}));be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     *
     * @fileoverview manually add d3-selection-multi to d3 default bundle. Most of this code is
     * copied from d3-selection-multi@1.0.0.
     * See https://github.com/d3/d3-selection-multi/issues/11 for why we have to do this
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=idt,i=idt;function r(t,e){return t.each((function(){var t=e.apply(this,arguments),i=n.select(this);for(var r in t)i.attr(r,t[r])}))}function o(t,e){for(var n in e)t.attr(n,e[n]);return t}function a(t,e,i){return t.each((function(){var t=e.apply(this,arguments),r=n.select(this);for(var o in t)r.style(o,t[o],i)}))}function s(t,e,n){for(var i in e)t.style(i,e[i],n);return t}function l(t,e){return t.each((function(){var t=e.apply(this,arguments),i=n.select(this);for(var r in t)i.property(r,t[r])}))}function c(t,e){for(var n in e)t.property(n,e[n]);return t}function u(t,e){return t.each((function(){var i=e.apply(this,arguments),r=n.select(this).transition(t);for(var o in i)r.attr(o,i[o])}))}function h(t,e){for(var n in e)t.attr(n,e[n]);return t}function d(t,e,i){return t.each((function(){var r=e.apply(this,arguments),o=n.select(this).transition(t);for(var a in r)o.style(a,r[a],i)}))}function p(t,e,n){for(var i in e)t.style(i,e[i],n);return t}n.selection.prototype.attrs=function f(t){return("function"==typeof t?r:o)(this,t)},n.selection.prototype.styles=function m(t,e){return("function"==typeof t?a:s)(this,t,null==e?"":e)},n.selection.prototype.properties=function g(t){return("function"==typeof t?l:c)(this,t)},i.transition.prototype.attrs=function _(t){return("function"==typeof t?u:h)(this,t)},i.transition.prototype.styles=function y(t,e){return("function"==typeof t?d:p)(this,t,null==e?"":e)}}));var Nft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.coerceExternalD3=function n(t){if(null==t.attrs){if(null==t.nodes){var e=[];return t.each((function(){e.push(this)})),idt.selectAll(e)}return idt.selectAll(t.nodes())}return t}})),Ift=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.makeEnum=function n(t){return t.reduce((function(t,e){return t[e]=e,t}),{})}})),Oft=xe(ym),Rft=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n={linear:Oft.easeLinear,quad:Oft.easeQuad,quadIn:Oft.easeQuadIn,quadOut:Oft.easeQuadOut,quadInOut:Oft.easeQuadInOut,cubic:Oft.easeCubic,cubicIn:Oft.easeCubicIn,cubicOut:Oft.easeCubicOut,cubicInOut:Oft.easeCubicInOut,poly:Oft.easePoly,polyIn:Oft.easePolyIn,polyOut:Oft.easePolyOut,polyInOut:Oft.easePolyInOut,sin:Oft.easeSin,sinIn:Oft.easeSinIn,sinOut:Oft.easeSinOut,sinInOut:Oft.easeSinInOut,exp:Oft.easeExp,expIn:Oft.easeExpIn,expOut:Oft.easeExpOut,expInOut:Oft.easeExpInOut,circle:Oft.easeCircle,circleIn:Oft.easeCircleIn,circleOut:Oft.easeCircleOut,circleInOut:Oft.easeCircleInOut,bounce:Oft.easeBounce,bounceIn:Oft.easeBounceIn,bounceOut:Oft.easeBounceOut,bounceInOut:Oft.easeBounceInOut,back:Oft.easeBack,backIn:Oft.easeBackIn,backOut:Oft.easeBackOut,backInOut:Oft.easeBackInOut,elastic:Oft.easeElastic,elasticIn:Oft.easeElasticIn,elasticOut:Oft.easeElasticOut,elasticInOut:Oft.easeElasticInOut};e.EaseName=Ift.makeEnum(["linear","quad","quadIn","quadOut","quadInOut","cubic","cubicIn","cubicOut","cubicInOut","poly","polyIn","polyOut","polyInOut","sin","sinIn","sinOut","sinInOut","exp","expIn","expOut","expInOut","circle","circleIn","circleOut","circleInOut","bounce","bounceIn","bounceOut","bounceInOut","back","backIn","backOut","backInOut","elastic","elasticIn","elasticOut","elasticInOut"]);var i=(function(){function t(){this._startDelay=t._DEFAULT_START_DELAY_MILLISECONDS,this._stepDuration=t._DEFAULT_STEP_DURATION_MILLISECONDS,this._stepDelay=t._DEFAULT_ITERATIVE_DELAY_MILLISECONDS,this._maxTotalDuration=t._DEFAULT_MAX_TOTAL_DURATION_MILLISECONDS,this._easingMode=t._DEFAULT_EASING_MODE}return t.prototype.totalTime=function(t){var e=this._getAdjustedIterativeDelay(t);return this.startDelay()+e*Math.max(t-1,0)+this.stepDuration()},t.prototype.animate=function(t,e){var n=this,i=(t=Nft.coerceExternalD3(t)).size(),r=this._getAdjustedIterativeDelay(i);return t.transition().ease(this._getEaseFactory()).duration(this.stepDuration()).delay((function(t,e){return n.startDelay()+r*e})).attrs(e)},t.prototype.startDelay=function(t){return null==t?this._startDelay:(this._startDelay=t,this)},t.prototype.stepDuration=function(t){return null==t?Math.min(this._stepDuration,this._maxTotalDuration):(this._stepDuration=t,this)},t.prototype.stepDelay=function(t){return null==t?this._stepDelay:(this._stepDelay=t,this)},t.prototype.maxTotalDuration=function(t){return null==t?this._maxTotalDuration:(this._maxTotalDuration=t,this)},t.prototype.easingMode=function(t){return null==t?this._easingMode:(this._easingMode=t,this)},t.prototype._getEaseFactory=function(){var t=this.easingMode();if("string"==typeof t){var e=n[t];return null==e?n.linear:e}return t},t.prototype._getAdjustedIterativeDelay=function(t){var e=this.maxTotalDuration()-this.stepDuration(),n=(e=Math.max(e,0))/Math.max(t-1,1);return Math.min(this.stepDelay(),n)},t._DEFAULT_START_DELAY_MILLISECONDS=0,t._DEFAULT_STEP_DURATION_MILLISECONDS=300,t._DEFAULT_ITERATIVE_DELAY_MILLISECONDS=15,t._DEFAULT_MAX_TOTAL_DURATION_MILLISECONDS=1/0,t._DEFAULT_EASING_MODE="expOut",t})();e.Easing=i})),zft=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){}return t.prototype.totalTime=function(t){return 0},t.prototype.animate=function(t,e){return(t=Nft.coerceExternalD3(t)).attrs(e)},t})();e.Null=n})),Dft=xe(YO),Bft=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),Dft.__exportStar(Rft,e),Dft.__exportStar(zft,e)})),Hft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(t){this.cache={},this.compute=t}return t.prototype.get=function(t){return this.cache.hasOwnProperty(t)||(this.cache[t]=this.compute(t)),this.cache[t]},t.prototype.clear=function(){return this.cache={},this},t})();e.Cache=n})),Fft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){}return t.arrayEq=function(t,e){if(null==t||null==e)return t===e;if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0},t.objEq=function(e,n){if(null==e||null==n)return e===n;var i=Object.keys(e).sort(),r=Object.keys(n).sort(),o=i.map((function(t){return e[t]})),a=r.map((function(t){return n[t]}));return t.arrayEq(i,r)&&t.arrayEq(o,a)},t.strictEq=function(t,e){return t===e},t.defaults=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(null==t)throw new TypeError("Cannot convert undefined or null to object");var i=Object(t);return e.forEach((function(t){if(null!=t)for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(i[e]=t[e])})),i},t})();e.Methods=n})),Vft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){}return t.combineWhitespace=function(t){return t.replace(/[ \t]+/g," ")},t.isNotEmptyString=function(t){return t&&""!==t.trim()},t.trimStart=function(e,n){if(!e)return e;var i=e.split(""),r=n?function(e){return e.split(n).some(t.isNotEmptyString)}:t.isNotEmptyString;return i.reduce((function(t,e){return r(t+e)?t+e:t}),"")},t.trimEnd=function(e,n){if(!e)return e;var i=e.split("");return i.reverse(),(i=t.trimStart(i.join(""),n).split("")).reverse(),i.join("")},t})();e.StringMethods=n})),Uft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){this.WordDividerRegExp=new RegExp("\\W"),this.WhitespaceRegExp=new RegExp("\\s")}return t.prototype.tokenize=function(t){var e=this;return t.split("").reduce((function(t,n){return t.slice(0,-1).concat(e.shouldCreateNewToken(t[t.length-1],n))}),[""])},t.prototype.shouldCreateNewToken=function(t,e){if(!t)return[e];var n=t[t.length-1];return this.WhitespaceRegExp.test(n)&&this.WhitespaceRegExp.test(e)?[t+e]:this.WhitespaceRegExp.test(n)||this.WhitespaceRegExp.test(e)?[t,e]:this.WordDividerRegExp.test(n)?n===e?[t+e]:[t,e]:[t+e]},t})();e.Tokenizer=n})),jft=be((function(t,e){function n(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),n(Hft),n(Fft),n(Vft),n(Uft)})),Gft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n={textRotation:0,textShear:0,xAlign:"left",yAlign:"top"},i=(function(){function t(t,e,n){this._measurer=t,this._penFactory=e,this._wrapper=n}return t.prototype.measurer=function(t){return this._measurer=t,this},t.prototype.wrapper=function(t){return this._wrapper=t,this},t.prototype.penFactory=function(t){return this._penFactory=t,this},t.prototype.write=function(e,i,r,o,a){if(void 0===o&&(o={}),o=jft.Methods.defaults({},n,o),-1===t.SupportedRotation.indexOf(o.textRotation))throw new Error("unsupported rotation - "+o.textRotation+". Supported rotations are "+t.SupportedRotation.join(", "));if(null!=o.textShear&&o.textShear<-80||o.textShear>80)throw new Error("unsupported shear angle - "+o.textShear+". Must be between -80 and 80");var s=Math.abs(Math.abs(o.textRotation)-90)>45,l=s?i:r,c=s?r:i,u=o.textShear,h=u*Math.PI/180,d=this._measurer.measure().height,p=d*Math.tan(h),f=l/Math.cos(h)-Math.abs(p),m=c*Math.cos(h),g=jft.StringMethods.combineWhitespace(e),_=(this._wrapper?this._wrapper.wrap(g,this._measurer,f,m).wrappedText:g).split("\n"),y=t.XOffsetFactor[o.xAlign]*f*Math.sin(h)-t.YOffsetFactor[o.yAlign]*(m-_.length*d),v=[0,0],b=o.textRotation+u;switch(o.textRotation){case 90:v=[i+y,0];break;case-90:v=[-y,r];break;case 180:v=[i,r+y];break;default:v=[0,-y]}var x=this._penFactory.createPen(e,{translate:v,rotate:b},a);this.writeLines(_,x,f,d,p,o.xAlign),null!=x.destroy&&x.destroy()},t.prototype.writeLines=function(t,e,n,i,r,o){t.forEach((function(t,a){e.write(t,n,o,r>0?(a+1)*r:a*r,(a+1)*i)}))},t})();i.XOffsetFactor={center:.5,left:0,right:1},i.YOffsetFactor={bottom:1,center:.5,top:0},i.SupportedRotation=[-90,0,180,90],e.Writer=i})),Wft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),(function n(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])})(Gft)})),qft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){}return t.append=function(e,n){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];var o=t.create.apply(t,[n].concat(i));return e.appendChild(o),o},t.create=function(e){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];var r=document.createElement(e);return t.addClasses.apply(t,[r].concat(n)),r},t.addClasses=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];e=e.filter((function(t){return null!=t})),null!=t.classList?e.forEach((function(e){t.classList.add(e)})):t.setAttribute("class",e.join(" "))},t.getDimensions=function(t){if(t.getBoundingClientRect)try{var e=t.getBoundingClientRect();return{width:e.width,height:e.height}}catch(t){}return{height:0,width:0}},t})();e.HtmlUtils=n;var i=(function(){function t(t,e,i){void 0===i&&(i=!1);var r=this;this.element=t,this.className=e,this.addTitle=i,this.createRuler=function(){return function(t){var e=n.append(r.element,"span","text-tmp",r.className);e.textContent=t;var i=n.getDimensions(e);return r.element.removeChild(e),i}},this.createPen=function(t,e,i){null==i&&(i=r.element);var o=n.append(i,"div","text-block",r.className);return o.style.position="relative",o.style.transform="translate(0, -1em) translate("+e.translate[0]+"px, "+e.translate[1]+"px) rotate("+e.rotate+"deg)",o.style.transformOrigin="0 1.2em",r.addTitle&&o.setAttribute("title",t),r.createHtmlLinePen(o)}}return t.prototype.setAddTitle=function(t){this.addTitle=t},t.prototype.createHtmlLinePen=function(t){return{write:function(e,i,r,o,a){var s=n.append(t,"div","text-line");s.textContent=e,s.style.width=i+"px",s.style.textAlign=r,s.style.position="absolute",s.style.whiteSpace="nowrap",s.style.top=a+"px",s.style.left=o+"px"}}},t})();e.HtmlContext=i})),Yft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){}return t.append=function(e,n){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];var o=t.create.apply(t,[n].concat(i));return e.appendChild(o),o},t.create=function(e){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];var r=document.createElementNS(t.SVG_NS,e);return qft.HtmlUtils.addClasses.apply(qft.HtmlUtils,[r].concat(n)),r},t.getDimensions=function(t){if(t.getBBox)try{var e=t.getBBox();return{width:e.width,height:e.height}}catch(t){}return{height:0,width:0}},t})();n.SVG_NS="http://www.w3.org/2000/svg",e.SvgUtils=n;var i=(function(){function t(t,e,i){void 0===i&&(i=!1);var r=this;this.element=t,this.className=e,this.addTitleElement=i,this.createRuler=function(){var t=r.getTextElements(r.element),e=t.parentElement,i=t.containerElement,o=t.textElement;return function(t){e.appendChild(i),o.textContent=t;var r=n.getDimensions(o);return e.removeChild(i),r}},this.createPen=function(t,e,i){null==i&&(i=r.element);var o=n.append(i,"g","text-container",r.className);r.addTitleElement&&(n.append(o,"title").textContent=t,o.setAttribute("title",t));var a=n.append(o,"g","text-area");return a.setAttribute("transform","translate("+e.translate[0]+","+e.translate[1]+")rotate("+e.rotate+")"),r.createSvgLinePen(a)}}return t.prototype.setAddTitleElement=function(t){this.addTitleElement=t},t.prototype.createSvgLinePen=function(e){return{write:function(i,r,o,a,s){a+=r*Wft.Writer.XOffsetFactor[o];var l=n.append(e,"text","text-line");l.textContent=i,l.setAttribute("text-anchor",t.AnchorMap[o]),l.setAttribute("transform","translate("+a+","+s+")"),l.setAttribute("y","-0.25em")}}},t.prototype.getTextElements=function(t){if("text"===t.tagName)return null==(e=t.parentElement)&&(e=t.parentNode),e.removeChild(t),{containerElement:t,parentElement:e,textElement:t};var e,i=t.querySelector("text");if(null!=i)return null==(e=i.parentElement)&&(e=i.parentNode),e.removeChild(i),{containerElement:i,parentElement:e,textElement:i};var r=n.create("text",this.className);return{containerElement:r,parentElement:t,textElement:r}},t})();i.AnchorMap={center:"middle",left:"start",right:"end"},e.SvgContext=i})),Xft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(t,e,n){void 0===e&&(e=10),void 0===n&&(n={});var i=this;this.ctx=t,this.lineHeight=e,this.style=n,this.createRuler=function(){return function(t){return i.ctx.font=i.style.font,{width:i.ctx.measureText(t).width,height:i.lineHeight}}},this.createPen=function(t,e,n){return null==n&&(n=i.ctx),n.save(),n.translate(e.translate[0],e.translate[1]),n.rotate(e.rotate*Math.PI/180),i.createCanvasPen(n)},void 0===this.style.fill&&(this.style.fill="#444")}return t.prototype.createCanvasPen=function(t){var e=this;return{destroy:function(){t.restore()},write:function(n,i,r,o,a){o+=i*Wft.Writer.XOffsetFactor[r],t.textAlign=r,null!=e.style.font&&(t.font=e.style.font),null!=e.style.fill&&(t.fillStyle=e.style.fill,t.fillText(n,o,a)),null!=e.style.stroke&&(t.strokeStyle=e.style.fill,t.strokeText(n,o,a))}}},t})();e.CanvasContext=n})),$ft=be((function(t,e){function n(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),n(Yft),n(Xft),n(qft)})),Kft=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(t){this.ruler=null!=t.createRuler?t.createRuler():t}return t.prototype.measure=function(e){return void 0===e&&(e=t.HEIGHT_TEXT),this.ruler(e)},t})();n.HEIGHT_TEXT="bdpql",e.AbstractMeasurer=n})),Zft=be((function(t,e){var n=ve&&ve.__extends||(function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}})();Object.defineProperty(e,"__esModule",{value:!0});var i=(function(t){function e(e,n){void 0===n&&(n=!1);var i=t.call(this,e)||this;return i.useGuards=n,i}return n(e,t),e.prototype._addGuards=function(t){return Kft.AbstractMeasurer.HEIGHT_TEXT+t+Kft.AbstractMeasurer.HEIGHT_TEXT},e.prototype._measureLine=function(e,n){void 0===n&&(n=!1);var i=this.useGuards||n||/^[\t ]$/.test(e),r=i?this._addGuards(e):e,o=t.prototype.measure.call(this,r);return o.width-=i?2*this.getGuardWidth():0,o},e.prototype.measure=function(t){var e=this;if(void 0===t&&(t=Kft.AbstractMeasurer.HEIGHT_TEXT),""===t.trim())return{width:0,height:0};var n=t.trim().split("\n").map((function(t){return e._measureLine(t)}));return{height:n.reduce((function(t,e){return t+e.height}),0),width:n.reduce((function(t,e){return Math.max(t,e.width)}),0)}},e.prototype.getGuardWidth=function(){return null==this.guardWidth&&(this.guardWidth=t.prototype.measure.call(this).width),this.guardWidth},e})(Kft.AbstractMeasurer);e.Measurer=i})),Jft=be((function(t,e){var n=ve&&ve.__extends||(function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}})();Object.defineProperty(e,"__esModule",{value:!0});var i=(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype._measureCharacter=function(e){return t.prototype._measureLine.call(this,e)},e.prototype._measureLine=function(t){var e=this,n=t.split("").map((function(t){return e._measureCharacter(t)}));return{height:n.reduce((function(t,e){return Math.max(t,e.height)}),0),width:n.reduce((function(t,e){return t+e.width}),0)}},e})(Zft.Measurer);e.CharacterMeasurer=i})),Qft=be((function(t,e){var n=ve&&ve.__extends||(function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}})();Object.defineProperty(e,"__esModule",{value:!0});var i=(function(t){function e(e,n){var i=t.call(this,e,n)||this;return i.cache=new jft.Cache((function(t){return i._measureCharacterNotFromCache(t)})),i}return n(e,t),e.prototype._measureCharacterNotFromCache=function(e){return t.prototype._measureCharacter.call(this,e)},e.prototype._measureCharacter=function(t){return this.cache.get(t)},e.prototype.reset=function(){this.cache.clear()},e})(Jft.CharacterMeasurer);e.CacheCharacterMeasurer=i})),tmt=be((function(t,e){var n=ve&&ve.__extends||(function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}})();Object.defineProperty(e,"__esModule",{value:!0});var i=(function(t){function e(e){var n=t.call(this,e)||this;return n.dimCache=new jft.Cache((function(t){return n._measureNotFromCache(t)})),n}return n(e,t),e.prototype._measureNotFromCache=function(e){return t.prototype.measure.call(this,e)},e.prototype.measure=function(t){return void 0===t&&(t=Kft.AbstractMeasurer.HEIGHT_TEXT),this.dimCache.get(t)},e.prototype.reset=function(){this.dimCache.clear(),t.prototype.reset.call(this)},e})(Qft.CacheCharacterMeasurer);e.CacheMeasurer=i})),emt=be((function(t,e){function n(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),n(Kft),n(Qft),n(tmt),n(Jft),n(Zft)})),nmt=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){this.maxLines(1/0),this.textTrimming("ellipsis"),this.allowBreakingWords(!1),this._tokenizer=new jft.Tokenizer,this._breakingCharacter="-"}return t.prototype.maxLines=function(t){return null==t?this._maxLines:(this._maxLines=t,this)},t.prototype.textTrimming=function(t){if(null==t)return this._textTrimming;if("ellipsis"!==t&&"none"!==t)throw new Error(t+" - unsupported text trimming option.");return this._textTrimming=t,this},t.prototype.allowBreakingWords=function(t){return null==t?this._allowBreakingWords:(this._allowBreakingWords=t,this)},t.prototype.wrap=function(t,e,n,i){var r=this;void 0===i&&(i=1/0);var o={noBrokeWords:0,noLines:0,originalText:t,truncatedText:"",wrappedText:""},a={availableLines:Math.min(Math.floor(i/e.measure().height),this._maxLines),availableWidth:n,canFitText:!0,currentLine:"",wrapping:o},s=t.split("\n");return s.reduce((function(t,n,i){return r.breakLineToFitWidth(t,n,i!==s.length-1,e)}),a).wrapping},t.prototype.breakLineToFitWidth=function(t,e,n,i){var r=this;t.canFitText||""===t.wrapping.truncatedText||(t.wrapping.truncatedText+="\n"),t=this._tokenizer.tokenize(e).reduce((function(t,e){return r.wrapNextToken(e,t,i)}),t);var o=jft.StringMethods.trimEnd(t.currentLine);return t.wrapping.noLines+=+(""!==o),t.wrapping.noLines===t.availableLines&&"none"!==this._textTrimming&&n?t.canFitText=!1:t.wrapping.wrappedText+=o,t.currentLine="\n",t},t.prototype.canFitToken=function(t,e,n){var i=this,r=t.split("").map((function(e,n){return n!==t.length-1?e+i._breakingCharacter:e}));return n.measure(t).width<=e||r.every((function(t){return n.measure(t).width<=e}))},t.prototype.addEllipsis=function(t,e,n){if("none"===this._textTrimming)return{remainingToken:"",wrappedToken:t};var i=t.substring(0).trim(),r=n.measure(i).width,o=n.measure("...").width,a=t.length>0&&"\n"===t[0]?"\n":"";if(e<=o){var s=Math.floor(e/(o/3));return{remainingToken:t,wrappedToken:a+"...".substr(0,s)}}for(;r+o>e;)i=jft.StringMethods.trimEnd(i.substr(0,i.length-1)),r=n.measure(i).width;return{remainingToken:jft.StringMethods.trimEnd(t.substring(i.length),"-").trim(),wrappedToken:a+i+"..."}},t.prototype.wrapNextToken=function(t,e,n){if(!e.canFitText||e.availableLines===e.wrapping.noLines||!this.canFitToken(t,e.availableWidth,n))return this.finishWrapping(t,e,n);for(var i=t;i;){var r=this.breakTokenToFitInWidth(i,e.currentLine,e.availableWidth,n);if(e.currentLine=r.line,null!=(i=r.remainingToken)){if(e.wrapping.noBrokeWords+=+r.breakWord,++e.wrapping.noLines,e.availableLines===e.wrapping.noLines){var o=this.addEllipsis(e.currentLine,e.availableWidth,n);return e.wrapping.wrappedText+=o.wrappedToken,e.wrapping.truncatedText+=o.remainingToken+i,e.currentLine="\n",e}e.wrapping.wrappedText+=jft.StringMethods.trimEnd(e.currentLine),e.currentLine="\n"}}return e},t.prototype.finishWrapping=function(t,e,n){if(e.canFitText&&e.availableLines!==e.wrapping.noLines&&"none"!==this._textTrimming){var i=this.addEllipsis(e.currentLine+t,e.availableWidth,n);e.wrapping.wrappedText+=i.wrappedToken,e.wrapping.truncatedText+=i.remainingToken,e.wrapping.noBrokeWords+=+(i.remainingToken.length<t.length),e.wrapping.noLines+=+(i.wrappedToken.length>0),e.currentLine=""}else e.wrapping.truncatedText+=t;return e.canFitText=!1,e},t.prototype.breakTokenToFitInWidth=function(t,e,n,i,r){if(void 0===r&&(r=this._breakingCharacter),i.measure(e+t).width<=n)return{breakWord:!1,line:e+t,remainingToken:null};if(""===t.trim())return{breakWord:!1,line:e,remainingToken:""};if(!this._allowBreakingWords&&""!==e.trim())return{breakWord:!1,line:e,remainingToken:t};for(var o=0;o<t.length&&i.measure(e+t.substring(0,o+1)+r).width<=n;)++o;var a="";return o>0&&(a=r),{breakWord:o>0,line:e+t.substring(0,o)+a,remainingToken:t.substring(o)}},t})();e.Wrapper=n})),imt=be((function(t,e){var n=ve&&ve.__extends||(function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}})();Object.defineProperty(e,"__esModule",{value:!0});var i=(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.wrap=function(n,i,r,o){var a=this;if(void 0===o&&(o=1/0),n.split("\n").length>1)throw new Error("SingleLineWrapper is designed to work only on single line");var s=function(e){return t.prototype.wrap.call(a,n,i,e,o)},l=s(r);if(l.noLines<2)return l;for(var c=0,u=r,h=0;h<e.NO_WRAP_ITERATIONS&&u>c;++h){var d=(u+c)/2,p=s(d);this.areSameResults(l,p)?(u=d,l=p):c=d}return l},e.prototype.areSameResults=function(t,e){return t.noLines===e.noLines&&t.truncatedText===e.truncatedText},e})(nmt.Wrapper);i.NO_WRAP_ITERATIONS=5,e.SingleLineWrapper=i})),rmt=be((function(t,e){function n(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),n(imt),n(nmt)})),omt=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(t){this.context=t,this.measurer=new emt.CacheMeasurer(this.context),this.wrapper=new rmt.Wrapper,this.writer=new Wft.Writer(this.measurer,this.context,this.wrapper)}return t.svg=function(e,n,i){return new t(new $ft.SvgContext(e,n,i))},t.canvas=function(e,n,i){return new t(new $ft.CanvasContext(e,n,i))},t.html=function(e,n,i){return new t(new $ft.HtmlContext(e,n,i))},t.prototype.write=function(t,e,n,i,r){this.writer.write(t,e,n,i,r)},t.prototype.clearMeasurerCache=function(){this.measurer.reset()},t})();e.Typesetter=n})),amt=be((function(t,e){function n(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),n($ft),n(emt),n(omt),n(jft),n(rmt),n(Wft)})),smt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=window.Array;e.add=function i(t,e){if(t.length!==e.length)throw new Error("attempted to add arrays of unequal length");return t.map((function(n,i){return t[i]+e[i]}))},e.uniq=function r(t){var e=idt.set(),n=[];return t.forEach((function(t){e.has(String(t))||(e.add(String(t)),n.push(t))})),n},e.flatten=function o(t){return n.prototype.concat.apply([],t)},e.createFilledArray=function a(t,e){for(var n=[],i=0;i<e;i++)n[i]="function"==typeof t?t(i):t;return n}})),lmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=window.Math;function i(t){var e=idt.rgb(t),i=function(t){return(t/=255)<=.03928?t/12.92:n.pow((t+.055)/1.055,2.4)};return.2126*i(e.r)+.7152*i(e.g)+.0722*i(e.b)}e.contrast=function r(t,e){var n=i(t)+.05,r=i(e)+.05;return n>r?n/r:r/n},e.lightenColor=function o(t,e){return idt.color(t).brighter(e).rgb().toString()},e.colorTest=function a(t,e){t.classed(e,!0);var n=t.style("background-color");if("transparent"===n)return null;var i=/\((.+)\)/.exec(n);if(!i)return null;var r=i[1].split(",").map((function(t){var e=+t,n=e.toString(16);return e<16?"0"+n:n}));if(4===r.length&&"00"===r[3])return null;var o="#"+r.join("");return t.classed(e,!1),o}})),cmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=window.Math;function i(t){var e;try{e=t.node().getBBox()}catch(t){e={x:0,y:0,width:0,height:0}}return e}e.contains=function r(t,e){for(var n=e;null!=n&&n!==t;)n=n.parentNode;return n===t},e.elementBBox=i,e.entityBounds=function o(t){if(t instanceof SVGElement)return i(idt.select(t));if(t instanceof HTMLElement){var e=t.getBoundingClientRect();return{x:e.left,y:e.top,width:e.width,height:e.height}}return{x:0,y:0,width:0,height:0}},e.SCREEN_REFRESH_RATE_MILLISECONDS=1e3/60,e.requestAnimationFramePolyfill=function a(t){null!=window.requestAnimationFrame?window.requestAnimationFrame(t):setTimeout(t,e.SCREEN_REFRESH_RATE_MILLISECONDS)},e.elementWidth=function s(t){var e=t instanceof idt.selection?t.node():t,n=window.getComputedStyle(e);return m(n,"width")+m(n,"padding-left")+m(n,"padding-right")+m(n,"border-left-width")+m(n,"border-right-width")},e.elementHeight=function l(t){var e=t instanceof idt.selection?t.node():t,n=window.getComputedStyle(e);return m(n,"height")+m(n,"padding-top")+m(n,"padding-bottom")+m(n,"border-top-width")+m(n,"border-bottom-width")};var c="(?:[-+]?[0-9]*\\.?[0-9]+)",u="(?:(?:\\s+,?\\s*)|(?:,\\s*))",h=new RegExp("translate\\s*\\(\\s*("+c+")(?:"+u+"("+c+"))?\\s*\\)"),d=new RegExp("rotate\\s*\\(\\s*("+c+")\\s*\\)"),p=new RegExp("scale\\s*\\(\\s*("+c+")(?:"+u+"("+c+"))?\\s*\\)");function f(t){if("number"==typeof t)return{min:t,max:t};if(t instanceof Object&&"min"in t&&"max"in t)return t;throw new Error("input '"+t+"' can't be parsed as an Range")}function m(t,e){var n=t.getPropertyValue(e);return parseFloat(n)||0}e.getTranslateValues=function g(t){var e=h.exec(t.attr("transform"));if(null!=e){var n=e[2];return[+e[1],+(void 0===n?0:n)]}return[0,0]},e.getRotate=function _(t){var e=d.exec(t.attr("transform"));return null!=e?+e[1]:0},e.getScaleValues=function y(t){var e=p.exec(t.attr("transform"));if(null!=e){var n=e[1],i=e[2];return[+n,null==i?+n:+i]}return[0,0]},e.clientRectsOverlap=function v(t,e){return!(n.floor(t.right)<=n.ceil(e.left)||n.ceil(t.left)>=n.floor(e.right)||n.floor(t.bottom)<=n.ceil(e.top)||n.ceil(t.top)>=n.floor(e.bottom))},e.expandRect=function b(t,e){return{left:t.left-e,top:t.top-e,right:t.right+e,bottom:t.bottom+e,width:t.width+2*e,height:t.height+2*e}},e.clientRectInside=function x(t,e){return n.floor(e.left)<=n.ceil(t.left)&&n.floor(e.top)<=n.ceil(t.top)&&n.floor(t.right)<=n.ceil(e.right)&&n.floor(t.bottom)<=n.ceil(e.bottom)},e.intersectsBBox=function w(t,e,n,i){void 0===i&&(i=.5);var r=f(t),o=f(e);return n.x+n.width>=r.min-i&&n.x<=r.max+i&&n.y+n.height>=o.min-i&&n.y<=o.max+i},e.getHtmlElementAncestors=function S(t){for(var e=[];t&&t instanceof HTMLElement;)e.push(t),t=t.parentElement;return e},e.getElementTransform=function M(t){var e=window.getComputedStyle(t,null);return(function n(t){if(null==t||"none"===t)return null;var e=t.match(E);if(null==e||e.length<2)return null;var n=e[1].split(T).map((function(t){return parseFloat(t)}));return 6!=n.length?null:n})(e.getPropertyValue("-webkit-transform")||e.getPropertyValue("-moz-transform")||e.getPropertyValue("-ms-transform")||e.getPropertyValue("-o-transform")||e.getPropertyValue("transform"))};var E=/^matrix\(([^)]+)\)$/,T=/[, ]+/})),umt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=window.Math,i=[1,0,0,1,0,0];function r(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}function o(t,e){return[t[0],t[1],t[2],t[3],t[0]*e[0]+t[2]*e[1]+t[4],t[1]*e[0]+t[3]*e[1]+t[5]]}function a(t){var e=t[0]*t[3]-t[1]*t[2];if(0===e)throw new Error("singular matrix");var n=1/e;return[n*t[3],n*-t[1],n*-t[2],n*t[0],n*(-t[3]*t[4]+t[2]*t[5]),n*(t[1]*t[4]+-t[0]*t[5])]}e.inRange=function s(t,e,i){return n.min(e,i)<=t&&t<=n.max(e,i)},e.clamp=function l(t,e,i){return n.min(n.max(e,t),i)},e.max=function c(t,e,n){var i="function"==typeof e?e:null,r=null==i?e:n,o=null==i?idt.max(t):idt.max(t,i);return void 0!==o?o:r},e.min=function u(t,e,n){var i="function"==typeof e?e:null,r=null==i?e:n,o=null==i?idt.min(t):idt.min(t,i);return void 0!==o?o:r},e.isNaN=function h(t){return t!=t},e.isValidNumber=function d(t){return"number"==typeof t&&t-t<1},e.range=function p(t,e,i){if(void 0===i&&(i=1),0===i)throw new Error("step cannot be 0");for(var r=n.max(n.ceil((e-t)/i),0),o=[],a=0;a<r;++a)o[a]=t+i*a;return o},e.distanceSquared=function f(t,e){return n.pow(e.y-t.y,2)+n.pow(e.x-t.x,2)},e.degreesToRadians=function m(t){return t/360*n.PI*2},e.within=function g(t,e){return e.topLeft.x<=t.x&&e.bottomRight.x>=t.x&&e.topLeft.y<=t.y&&e.bottomRight.y>=t.y},e.boundsIntersects=function _(t,e,n,i,r,o,a,s){return t<=r+a&&r<=t+n&&e<=o+s&&o<=e+i},e.getCumulativeTransform=function y(t){for(var e=cmt.getHtmlElementAncestors(t),n=i,s=null,l=0,c=e;l<c.length;l++){var u=c[l],h=cmt.getElementTransform(u);if(null!=h){var d=u.clientWidth/2,p=u.clientHeight/2;n=o(n,[d,p]),n=o(n=r(n,a(h)),[-d,-p])}var f=u.scrollLeft,m=u.scrollTop;null!==s&&u!==s||(f-=u.offsetLeft+u.clientLeft,m-=u.offsetTop+u.clientTop,s=u.offsetParent),n=o(n,[f,m])}return n},e.multiplyMatrix=r,e.premultiplyTranslate=function v(t,e){return[e[0],e[1],e[2],e[3],e[4]+t[0],e[5]+t[1]]},e.multiplyTranslate=o,e.invertMatrix=a,e.applyTransform=function b(t,e){return{x:t[0]*e.x+t[2]*e.y+t[4],y:t[1]*e.x+t[3]*e.y+t[5]}}})),hmt=be((function(t,e){
/**
     * Copyright 2017-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){}return t.prototype.split=function(t,e){for(var n=Math.ceil(t.length/2),i=0;i<n;i++)e[0].insert(t[i]);for(i=n;i<t.length;i++)e[1].insert(t[i])},t})();e.SplitStrategyTrivial=n;var i=(function(){function t(){}return t.prototype.split=function(t,e){for(t=t.slice(),this.chooseFirstSplit(t,e);t.length>0;)this.addNext(t,e)},t.prototype.chooseFirstSplit=function(t,e){for(var n=0,i=0,r=t.length-1,o=t.length-1,a=1;a<t.length-1;a++){var s=t[a];s.bounds.xl>t[r].bounds.xl?r=a:s.bounds.xh<t[n].bounds.xh&&(n=a),s.bounds.yl>t[o].bounds.yl?o=a:s.bounds.yh<t[i].bounds.yh&&(i=a)}var l=Math.abs(t[n].bounds.xh-t[r].bounds.xl)>Math.abs(t[i].bounds.yh-t[o].bounds.yl)?[n,r]:[i,o],c=l[0],u=l[1];c===u&&(c=0,u=t.length-1),e[0].insert(t.splice(Math.max(c,u),1)[0]),e[1].insert(t.splice(Math.min(c,u),1)[0])},t.prototype.addNext=function(t,e){for(var n=null,i=null,r=null,o=0;o<t.length;o++){var a=t[o],s=e[0].unionAreaDifference(a.bounds),l=e[1].unionAreaDifference(a.bounds);(s<i||null==n)&&(n=o,i=s,r=e[0]),l<i&&(n=o,i=l,r=e[1])}r.insert(t.splice(n,1)[0])},t})();e.SplitStrategyLinear=i})),dmt=be((function(t,e){
/**
     * Copyright 2017-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n,i=new hmt.SplitStrategyLinear;function r(t,e,i){var r=1/0,o=1/0;return function(a){var s=e(a.bounds,t),l=i(a.bounds,t);return null!=a.value?s<r?(r=s,o=l,n.PASS_AND_OVERWRITE):s===r?n.PASS:n.FAIL:s>o?n.FAIL:(o=Math.max(l,o),n.PASS)}}function o(t,e){return function(n,i){return e(i.bounds,t)-e(n.bounds,t)}}!(function(t){t[t.PASS=0]="PASS",t[t.FAIL=1]="FAIL",t[t.PASS_AND_OVERWRITE=2]="PASS_AND_OVERWRITE"})(n=e.QueryPredicateResult||(e.QueryPredicateResult={})),e.createMinimizingNodePredicate=r,e.createNodeSort=o;var a=(function(){function t(t,e){void 0===t&&(t=5),void 0===e&&(e=i),this.maxNodeChildren=t,this.splitStrategy=e,this.root=new s(!0),this.size=0}return t.prototype.getRoot=function(){return this.root},t.prototype.clear=function(){this.root=new s(!0),this.size=0},t.prototype.insert=function(t,e){for(var n=this.root;!n.leaf;)n=n.subtree(t);var i=s.valueNode(t,e);for(n.insert(i),this.size+=1;n.overflow(this.maxNodeChildren);)null==(n=n.split(this.splitStrategy)).parent&&(this.root=n);return i},t.prototype.locate=function(t){return this.query((function(e){return e.contains(t)}))},t.prototype.locateNearest=function(t){var e=r(t,l.distanceSquaredToNearEdge,l.distanceSquaredToFarEdge);return this.queryNodes(e).map((function(t){return t.value}))},t.prototype.locateNearestX=function(t){var e=r(t,l.absoluteDistanceToNearEdgeX,l.absoluteDistanceToFarEdgeX),n=this.queryNodes(e);return n.sort(o(t,l.absoluteDistanceToNearEdgeY)),n.map((function(t){return t.value}))},t.prototype.locateNearestY=function(t){var e=r(t,l.absoluteDistanceToNearEdgeY,l.absoluteDistanceToFarEdgeY),n=this.queryNodes(e);return n.sort(o(t,l.absoluteDistanceToNearEdgeX)),n.map((function(t){return t.value}))},t.prototype.intersect=function(t){return this.query((function(e){return l.isBoundsOverlapBounds(e,t)}))},t.prototype.intersectX=function(t){return this.query((function(e){return l.isBoundsOverlapX(e,t)}))},t.prototype.intersectY=function(t){return this.query((function(e){return l.isBoundsOverlapY(e,t)}))},t.prototype.query=function(t){var e=[];if(null!=this.root.bounds&&!t(this.root.bounds))return e;for(var n=[this.root];n.length>0;)for(var i=n.shift(),r=0;r<i.entries.length;r++){var o=i.entries[r];t(o.bounds)&&(i.leaf?e.push(o.value):n.push(o))}return e},t.prototype.queryNodes=function(t){var e=[];if(null!=this.root.bounds&&t(this.root)===n.FAIL)return e;for(var i=[this.root];i.length>0;)for(var r=i.shift(),o=0;o<r.entries.length;o++){var a=r.entries[o],s=t(a);s===n.PASS_AND_OVERWRITE&&(e=[]),s!==n.PASS&&s!==n.PASS_AND_OVERWRITE||(r.leaf?e.push(a):i.push(a))}return e},t})();e.RTree=a;var s=(function(){function t(t){this.leaf=t,this.bounds=null,this.entries=[],this.parent=null,this.value=null}return t.valueNode=function(e,n){var i=new t(!0);return i.bounds=e,i.value=n,i},t.prototype.overflow=function(t){return this.entries.length>t},t.prototype.insert=function(t){this.entries.push(t),t.parent=this;for(var e=this;null!=e;)e.bounds=l.unionAll([e.bounds,t.bounds]),e=e.parent;return this},t.prototype.remove=function(t){var e=this.entries.indexOf(t);if(e>=0){this.entries.splice(e,1);for(var n=this;null!=n;)n.bounds=l.unionAll(n.entries.map((function(t){return t.bounds}))),n=n.parent}return this},t.prototype.subtree=function(t){for(var e=1/0,n=null,i=0;i<this.entries.length;i++){var r=this.entries[i],o=r.unionAreaDifference(t);(o<e||o===e&&null!=n&&r.entries.length<n.entries.length)&&(n=r)}return n},t.prototype.split=function(e){null!=this.parent&&this.parent.remove(this);var n=[new t(this.leaf),new t(this.leaf)];e.split(this.entries,n);var i=null!=this.parent?this.parent:new t(!1);return i.insert(n[0]),i.insert(n[1]),i.leaf=!1,i},t.prototype.unionAreaDifference=function(t){return Math.abs(l.union(this.bounds,t).area()-this.bounds.area())},t.prototype.maxDepth=function(){return this.leaf?1:1+this.entries.map((function(t){return t.maxDepth()})).reduce((function(t,e){return Math.max(t,e)}))},t})();e.RTreeNode=s;var l=(function(){function t(t,e,n,i){this.xl=t,this.yl=e,this.xh=n,this.yh=i,this.width=this.xh-this.xl,this.height=this.yh-this.yl}return t.xywh=function(e,n,i,r){return new t(e,n,e+i,n+r)},t.entityBounds=function(e){return new t(e.x,e.y,e.x+e.width,e.y+e.height)},t.bounds=function(e){return t.pointPair(e.topLeft,e.bottomRight)},t.pointPair=function(e,n){return new t(Math.min(e.x,n.x),Math.min(e.y,n.y),Math.max(e.x,n.x),Math.max(e.y,n.y))},t.points=function(e){if(e.length<2)throw new Error("need at least 2 points to create bounds");var n=e.map((function(t){return t.x})),i=e.map((function(t){return t.y}));return new t(n.reduce((function(t,e){return Math.min(t,e)})),i.reduce((function(t,e){return Math.min(t,e)})),n.reduce((function(t,e){return Math.max(t,e)})),i.reduce((function(t,e){return Math.max(t,e)})))},t.union=function(e,n){return new t(Math.min(e.xl,n.xl),Math.min(e.yl,n.yl),Math.max(e.xh,n.xh),Math.max(e.yh,n.yh))},t.unionAll=function(e){return 0===(e=e.filter((function(t){return null!=t}))).length?null:e.reduce((function(e,n){return t.union(e,n)}))},t.isBoundsOverlapBounds=function(e,n){return t.isBoundsOverlapX(e,n)&&t.isBoundsOverlapY(e,n)},t.isBoundsOverlapX=function(t,e){return!(t.xh<e.xl||t.xl>e.xh)},t.isBoundsOverlapY=function(t,e){return!(t.yh<e.yl||t.yl>e.yh)},t.absoluteDistanceToNearEdgeX=function(t,e){var n=t.width/2;return Math.max(Math.abs(e.x-(t.xl+n))-n,0)},t.absoluteDistanceToNearEdgeY=function(t,e){var n=t.height/2;return Math.max(Math.abs(e.y-(t.yl+n))-n,0)},t.absoluteDistanceToFarEdgeX=function(e,n){var i=t.absoluteDistanceToNearEdgeX(e,n);return 0===i?0:i+e.width},t.absoluteDistanceToFarEdgeY=function(e,n){var i=t.absoluteDistanceToNearEdgeY(e,n);return 0===i?0:i+e.height},t.distanceSquaredToNearEdge=function(e,n){var i=t.absoluteDistanceToNearEdgeX(e,n),r=t.absoluteDistanceToNearEdgeY(e,n);return i*i+r*r},t.distanceSquaredToFarEdge=function(e,n){var i=t.absoluteDistanceToFarEdgeX(e,n),r=t.absoluteDistanceToFarEdgeY(e,n);return i*i+r*r},t.prototype.area=function(){return null==this.areaCached&&(this.areaCached=(this.xh-this.xl)*(this.yh-this.yl)),this.areaCached},t.prototype.contains=function(t){return this.xl<=t.x&&this.xh>=t.x&&this.yl<=t.y&&this.yh>=t.y},t})();e.RTreeBounds=l})),pmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.IStackingOrder=Ift.makeEnum(["topdown","bottomup"]);var n=window.Math;e.stack=function i(t,n,r,o){void 0===o&&(o="bottomup");var a=idt.map(),s=idt.map(),l=new Smt.Map;"topdown"===o&&(t=t.slice()).reverse();for(var c=0,u=t;c<u.length;c++){for(var h=u[c],d=new Smt.Map,p=h.data(),f=p.length,m=0;m<f;m++){var g=p[m],_=n(g,m,h),y=e.normalizeKey(_),v=+r(g,m,h),b=void 0,x=v>=0?a:s;x.has(y)?(b=x.get(y),x.set(y,b+v)):(b=0,x.set(y,v)),d.set(y,{offset:b,value:v,axisValue:_,originalDatum:g,originalDataset:h,originalIndex:m})}l.set(h,d)}return l},e.stackedExtents=function r(t){var e=new Smt.Map,n=new Smt.Map;return t.forEach((function(t){t.forEach((function(t,i){var r=t.offset+t.value,o=Smt.Math.max([r,t.offset],t.offset),a=Smt.Math.min([r,t.offset],t.offset),s=t.axisValue;e.has(i)?e.get(i).extent<o&&e.set(i,{extent:o,axisValue:s,stackedDatum:t}):e.set(i,{extent:o,axisValue:s,stackedDatum:t}),n.has(i)?n.get(i).extent>a&&n.set(i,{extent:a,axisValue:s,stackedDatum:t}):n.set(i,{extent:a,axisValue:s,stackedDatum:t})}))})),{maximumExtents:e,minimumExtents:n}},e.stackedExtent=function o(t,i,r){var o=[];t.forEach((function(t,n){for(var a=n.data(),s=a.length,l=0;l<s;l++){var c=a[l];if(null==r||r(c,l,n)){var u=t.get(e.normalizeKey(i(c,l,n)));o.push(u.value+u.offset)}}}));var a=Smt.Math.max(o,0),s=Smt.Math.min(o,0);return[n.min(s,0),n.max(0,a)]},e.normalizeKey=we.memoize((function(t){return String(t)}))})),fmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.SHOW_WARNINGS=!0,e.ADD_TITLE_ELEMENTS=!0})),mmt=be((function(t,e){function n(t){fmt.SHOW_WARNINGS&&console.warn(t)}function i(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return 0===e?(t(n),-1):window.setTimeout(t,e,n)}
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.warn=n,e.setTimeout=i,e.debounce=function r(t,e,n){var r=null,o=[],a=function(){e.apply(n,o)};return function(){o=Array.prototype.slice.call(arguments),clearTimeout(r),r=i(a,t)}},e.deprecated=function o(t,e,i){void 0===i&&(i=""),n("Method "+t+" has been deprecated in version "+e+". Please refer to the release notes. "+i)}})),gmt=be((function(t,e){
/**
     * Copyright 2017-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(t,e,n){this.entryIndex=t,this.exitIndex=t,this.minIndex=t,this.maxIndex=t,this.bucketValue=e,this.minValue=n,this.maxValue=n}return t.prototype.isInBucket=function(t){return t==this.bucketValue},t.prototype.addToBucket=function(t,e){t<this.minValue&&(this.minValue=t,this.minIndex=e),t>this.maxValue&&(this.maxValue=t,this.maxIndex=e),this.exitIndex=e},t.prototype.getUniqueIndices=function(){var t=[this.entryIndex,this.maxIndex,this.minIndex,this.exitIndex];return t.filter((function(e,n){return 0==n||e!=t[n-1]}))},t})();e.Bucket=n})),_mt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){"function"==typeof window.Set?this._es6Set=new window.Set:this._values=[],this.size=0}return t.prototype.add=function(t){return null!=this._es6Set?(this._es6Set.add(t),this.size=this._es6Set.size,this):(this.has(t)||(this._values.push(t),this.size=this._values.length),this)},t.prototype.delete=function(t){if(null!=this._es6Set){var e=this._es6Set.delete(t);return this.size=this._es6Set.size,e}var n=this._values.indexOf(t);return-1!==n&&(this._values.splice(n,1),this.size=this._values.length,!0)},t.prototype.has=function(t){return null!=this._es6Set?this._es6Set.has(t):-1!==this._values.indexOf(t)},t.prototype.forEach=function(t,e){var n=this;null==this._es6Set?this._values.forEach((function(i){t.call(e,i,i,n)})):this._es6Set.forEach((function(i,r){return t.call(e,i,r,n)}),e)},t})();e.Set=n})),ymt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Dft.__extends(e,t),e.prototype.callCallbacks=function(){for(var t=this,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return this.forEach((function(n){n.apply(t,e)})),this},e})(_mt.Set);e.CallbackSet=n})),vmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){this._entities=[],this._rtree=new dmt.RTree}return t.prototype.addAll=function(t,e,n){if(this._entities=this._entities.concat(t),void 0!==n)for(var i=dmt.RTreeBounds.bounds(n),r=0;r<t.length;r++){var o=dmt.RTreeBounds.entityBounds(e(a=t[r]));dmt.RTreeBounds.isBoundsOverlapBounds(i,o)&&this._rtree.insert(o,a)}else for(r=0;r<t.length;r++){var a;o=dmt.RTreeBounds.entityBounds(e(a=t[r])),this._rtree.insert(o,a)}},t.prototype.entityNearest=function(t){return this._rtree.locateNearest(t).pop()},t.prototype.entityNearestX=function(t){return this._rtree.locateNearestX(t).pop()},t.prototype.entityNearestY=function(t){return this._rtree.locateNearestY(t).pop()},t.prototype.entitiesInBounds=function(t){return this._rtree.intersect(dmt.RTreeBounds.entityBounds(t))},t.prototype.entitiesInXBounds=function(t){return this._rtree.intersectX(dmt.RTreeBounds.entityBounds(t))},t.prototype.entitiesInYBounds=function(t){return this._rtree.intersectY(dmt.RTreeBounds.entityBounds(t))},t.prototype.entities=function(){return this._entities},t})();e.EntityStore=n})),bmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){"function"==typeof window.Map?this._es6Map=new window.Map:this._keyValuePairs=[]}return t.prototype.set=function(t,e){if(umt.isNaN(t))throw new Error("NaN may not be used as a key to the Map");if(null!=this._es6Map)return this._es6Map.set(t,e),this;for(var n=0;n<this._keyValuePairs.length;n++)if(this._keyValuePairs[n].key===t)return this._keyValuePairs[n].value=e,this;return this._keyValuePairs.push({key:t,value:e}),this},t.prototype.get=function(t){if(null!=this._es6Map)return this._es6Map.get(t);for(var e=0;e<this._keyValuePairs.length;e++)if(this._keyValuePairs[e].key===t)return this._keyValuePairs[e].value},t.prototype.has=function(t){if(null!=this._es6Map)return this._es6Map.has(t);for(var e=0;e<this._keyValuePairs.length;e++)if(this._keyValuePairs[e].key===t)return!0;return!1},t.prototype.forEach=function(t,e){var n=this;null==this._es6Map?this._keyValuePairs.forEach((function(i){t.call(e,i.value,i.key,n)})):this._es6Map.forEach((function(i,r){return t.call(e,i,r,n)}),e)},t.prototype.delete=function(t){if(null!=this._es6Map)return this._es6Map.delete(t);for(var e=0;e<this._keyValuePairs.length;e++)if(this._keyValuePairs[e].key===t)return this._keyValuePairs.splice(e,1),!0;return!1},t})();e.Map=n})),xmt=be((function(t,e){
/**
     * Copyright 2017-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.assign=function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n={},i=0,r=t;i<r.length;i++)for(var o=r[i],a=Object.keys(o),s=0,l=a;s<l.length;s++){var c=l[s];n[c]=o[c]}return n}})),wmt=be((function(t,e){
/**
     * Copyright 2017-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n="__Plottable_ClientTranslator";e.getTranslator=function i(t){var e=t.root().rootElement().node(),i=e[n];return null==i&&(i=new r(e),e[n]=i),i};var r=(function(){function t(t){this._rootElement=t}return t.prototype.computePosition=function(t,e){var n={x:t,y:e},i=Smt.Math.getCumulativeTransform(this._rootElement);return null==i?n:Smt.Math.applyTransform(i,n)},t.isEventInside=function(t,e){return Smt.DOM.contains(t.root().rootElement().node(),e.target)},t})();e.Translator=r})),Smt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.Array=smt,e.Color=lmt,e.DOM=cmt,e.Math=umt,e.RTree=dmt,e.Stacking=pmt,e.Window=mmt,Dft.__exportStar(gmt,e),Dft.__exportStar(ymt,e),Dft.__exportStar(Nft,e),Dft.__exportStar(vmt,e),Dft.__exportStar(bmt,e),Dft.__exportStar(xmt,e),Dft.__exportStar(_mt,e),Dft.__exportStar(wmt,e)})),Mmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){}return t.prototype.render=function(){Emt.flush()},t})();e.Immediate=n;var i=(function(){function t(){}return t.prototype.render=function(){Smt.DOM.requestAnimationFramePolyfill(Emt.flush)},t})();e.AnimationFrame=i;var r=(function(){function t(){this._timeoutMsec=Smt.DOM.SCREEN_REFRESH_RATE_MILLISECONDS}return t.prototype.render=function(){setTimeout(Emt.flush,this._timeoutMsec)},t})();e.Timeout=r})),Emt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=new Smt.Set,i=new Smt.Set,r=!1,o=!1;e.Policy=Ift.makeEnum(["immediate","animationFrame","timeout"]);var a=new Mmt.AnimationFrame;function s(t){i.add(t),n.add(t),l()}function l(){r||(r=!0,a.render())}e.renderPolicy=function c(t){if(null==t)return a;switch(t){case e.Policy.immediate:a=new Mmt.Immediate;break;case e.Policy.animationFrame:a=new Mmt.AnimationFrame;break;case e.Policy.timeout:a=new Mmt.Timeout;break;default:Smt.Window.warn("Unrecognized renderPolicy: "+t)}},e.registerToRender=function u(t){o&&Smt.Window.warn("Registered to render while other components are flushing: request may be ignored"),n.add(t),l()},e.registerToComputeLayoutAndRender=s,e.registerToComputeLayout=function h(t){s(t)},e.flush=function d(){if(r){i.forEach((function(t){return t.computeLayout()})),n.forEach((function(t){return t.render()})),o=!0;var t=new Smt.Set;n.forEach((function(e){try{e.renderImmediately()}catch(n){window.setTimeout((function(){throw n}),0),t.add(e)}})),i=new Smt.Set,n=t,r=!1,o=!1}}})),Tmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.XAlignment=Ift.makeEnum(["left","center","right"]),e.YAlignment=Ift.makeEnum(["top","center","bottom"]);var n=(function(){function t(){this._overflowHidden=!1,this._origin={x:0,y:0},this._xAlignment="left",this._yAlignment="top",this._isSetup=!1,this._isAnchored=!1,this._cssClasses=new Smt.Set,this._destroyed=!1,this._onAnchorCallbacks=new Smt.CallbackSet,this._onDetachCallbacks=new Smt.CallbackSet,this._cssClasses.add("component")}return t.prototype.anchor=function(t){if(t=Nft.coerceExternalD3(t),this._destroyed)throw new Error("Can't reuse destroy()-ed Components!");return this.isRoot()&&(this._rootElement=t,this._rootElement.classed("plottable",!0)),null!=this._element?t.node().appendChild(this._element.node()):(this._element=t.append("div"),this._setup()),this._isAnchored=!0,this._onAnchorCallbacks.callCallbacks(this),this},t.prototype.onAnchor=function(t){return this._isAnchored&&t(this),this._onAnchorCallbacks.add(t),this},t.prototype.offAnchor=function(t){return this._onAnchorCallbacks.delete(t),this},t.prototype._setup=function(){var t=this;this._isSetup||(this._cssClasses.forEach((function(e){t._element.classed(e,!0)})),this._cssClasses=new Smt.Set,this._backgroundContainer=this._element.append("svg").classed("background-container",!0),this._content=this._element.append("svg").classed("content",!0),this._foregroundContainer=this._element.append("svg").classed("foreground-container",!0),this._content.classed(this._overflowHidden?"component-overflow-hidden":"component-overflow-visible",!0),this._isSetup=!0)},t.prototype.requestedSpace=function(t,e){return{minWidth:0,minHeight:0}},t.prototype.computeLayout=function(e,n,i){if(null==e||null==n||null==i){if(null==this._element)throw new Error("anchor() must be called before computeLayout()");if(null==this._rootElement)throw new Error("null arguments cannot be passed to computeLayout() on a non-root, unanchored node");e={x:0,y:0};var r=this._rootElement.node();n=Smt.DOM.elementWidth(r),i=Smt.DOM.elementHeight(r)}var o=this._sizeFromOffer(n,i),a=o.height,s=o.width;return this.setBounds(s,a,e.x+(n-s)*t._xAlignToProportion[this._xAlignment],e.y+(i-a)*t._yAlignToProportion[this._yAlignment]),this},t.prototype.setBounds=function(t,e,n,i){return void 0===n&&(n=0),void 0===i&&(i=0),this._width=t,this._height=e,this._origin={x:n,y:i},null!=this._element&&this._element.styles({left:n+"px",height:e+"px",top:i+"px",width:t+"px"}),null!=this._resizeHandler&&this._resizeHandler({width:t,height:e}),this},t.prototype._sizeFromOffer=function(t,e){var n=this.requestedSpace(t,e);return{width:this.fixedWidth()?Math.min(t,n.minWidth):t,height:this.fixedHeight()?Math.min(e,n.minHeight):e}},t.prototype.render=function(){return this._isAnchored&&this._isSetup&&this.width()>=0&&this.height()>=0&&Emt.registerToRender(this),this},t.prototype.renderLowPriority=function(){return this.render()},t.prototype._scheduleComputeLayout=function(){this._isAnchored&&this._isSetup&&Emt.registerToComputeLayoutAndRender(this)},t.prototype.onResize=function(t){return this._resizeHandler=t,this},t.prototype.renderImmediately=function(){return this},t.prototype.redraw=function(){return this._isAnchored&&this._isSetup&&(this.isRoot()?this._scheduleComputeLayout():this.parent().redraw()),this},t.prototype.invalidateCache=function(){},t.prototype.renderTo=function(t){if(this.detach(),null!=t){var e=void 0;if(!(e="string"==typeof t||we.isElement(t)?idt.select(t):Nft.coerceExternalD3(t)).node()||null==e.node().nodeName)throw new Error("Plottable requires a valid Element to renderTo");if("svg"===e.node().nodeName)throw new Error("Plottable 3.x and later can only renderTo an HTML component; pass a div instead!");this.anchor(e)}if(null==this._element)throw new Error("If a Component has never been rendered before, then renderTo must be given a node to render to, or a d3.Selection, or a selector string");return Emt.registerToComputeLayoutAndRender(this),Emt.flush(),this},t.prototype.xAlignment=function(e){if(null==e)return this._xAlignment;if(e=e.toLowerCase(),null==t._xAlignToProportion[e])throw new Error("Unsupported alignment: "+e);return this._xAlignment=e,this.redraw(),this},t.prototype.yAlignment=function(e){if(null==e)return this._yAlignment;if(e=e.toLowerCase(),null==t._yAlignToProportion[e])throw new Error("Unsupported alignment: "+e);return this._yAlignment=e,this.redraw(),this},t.prototype.hasClass=function(t){return null!=t&&(null==this._element?this._cssClasses.has(t):this._element.classed(t))},t.prototype.addClass=function(t){return null==t||(null==this._element?this._cssClasses.add(t):this._element.classed(t,!0)),this},t.prototype.removeClass=function(t){return null==t||(null==this._element?this._cssClasses.delete(t):this._element.classed(t,!1)),this},t.prototype.fixedWidth=function(){return!1},t.prototype.fixedHeight=function(){return!1},t.prototype.detach=function(){return this.parent(null),this._isAnchored&&this._element.remove(),this._isAnchored=!1,this._onDetachCallbacks.callCallbacks(this),this},t.prototype.onDetach=function(t){return this._onDetachCallbacks.add(t),this},t.prototype.offDetach=function(t){return this._onDetachCallbacks.delete(t),this},t.prototype.parent=function(t){if(void 0===t)return this._parent;if(null!==t&&!t.has(this))throw new Error("Passed invalid parent");return this._parent=t,this},t.prototype.bounds=function(){var t=this.origin();return{topLeft:t,bottomRight:{x:t.x+this.width(),y:t.y+this.height()}}},t.prototype.destroy=function(){this._destroyed=!0,this.detach()},t.prototype.width=function(){return this._width},t.prototype.height=function(){return this._height},t.prototype.origin=function(){return{x:this._origin.x,y:this._origin.y}},t.prototype.originToRoot=function(){for(var t=this.origin(),e=this.parent();null!=e;){var n=e.origin();t.x+=n.x,t.y+=n.y,e=e.parent()}return t},t.prototype.root=function(){for(var t=this;!t.isRoot();)t=t.parent();return t},t.prototype.isRoot=function(){return null==this.parent()},t.prototype.foreground=function(){return this._foregroundContainer},t.prototype.content=function(){return this._content},t.prototype.element=function(){return this._element},t.prototype.rootElement=function(){return this.root()._rootElement},t.prototype.background=function(){return this._backgroundContainer},t._xAlignToProportion={left:0,center:.5,right:1},t._yAlignToProportion={top:0,center:.5,bottom:1},t})();e.Component=n})),Cmt=be((function(t,e){function n(t){return void 0===t&&(t=3),i(t),function(e){return e.toFixed(t)}}function i(t){if(t<0||t>20)throw new RangeError("Formatter precision must be between 0 and 20");if(t!==Math.floor(t))throw new RangeError("Formatter precision must be an integer")}
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.currency=function r(t,e,i){void 0===t&&(t=2),void 0===e&&(e="$"),void 0===i&&(i=!0);var r=n(t);return function(t){var n=r(Math.abs(t));return""!==n&&(i?n=e+n:n+=e,t<0&&(n="-"+n)),n}},e.fixed=n,e.general=function o(t){return void 0===t&&(t=3),i(t),function(e){if("number"==typeof e){var n=Math.pow(10,t);return String(Math.round(e*n)/n)}return String(e)}},e.identity=function a(){return function(t){return String(t)}},e.percentage=function s(t){void 0===t&&(t=0);var e=n(t);return function(t){var n=100*t,i=t.toString(),r=Math.pow(10,i.length-(i.indexOf(".")+1));return n=parseInt((n*r).toString(),10)/r,e(n)+"%"}},e.siSuffix=function l(t){return void 0===t&&(t=3),i(t),function(e){return idt.format("."+t+"s")(e)}},e.shortScale=function c(t){void 0===t&&(t=3),i(t);var e="KMBTQ",n=idt.format("."+t+"e"),r=idt.format("."+t+"f"),o=Math.pow(10,3*(e.length+1)),a=Math.pow(10,-t);return function(t){var i=Math.abs(t);if((i<a||i>=o)&&0!==i)return n(t);for(var s=-1;i>=Math.pow(1e3,s+2)&&s<e.length-1;)s++;var l="";return l=-1===s?r(t):r(t/Math.pow(1e3,s+1))+e[s],(t>0&&"1000"===l.substr(0,4)||t<0&&"-1000"===l.substr(0,5))&&(s<e.length-1?(s++,l=r(t/Math.pow(1e3,s+1))+e[s]):l=n(t)),l}},e.multiTime=function u(){var t=[{specifier:".%L",predicate:function(t){return 0!==t.getMilliseconds()}},{specifier:":%S",predicate:function(t){return 0!==t.getSeconds()}},{specifier:"%I:%M",predicate:function(t){return 0!==t.getMinutes()}},{specifier:"%I %p",predicate:function(t){return 0!==t.getHours()}},{specifier:"%a %d",predicate:function(t){return 0!==t.getDay()&&1!==t.getDate()}},{specifier:"%b %d",predicate:function(t){return 1!==t.getDate()}},{specifier:"%b",predicate:function(t){return 0!==t.getMonth()}}];return function(e){var n=t.filter((function(t){return t.predicate(e)}));return idt.timeFormat(n.length>0?n[0].specifier:"%Y")(e)}},e.time=function h(t,e){return void 0===e&&(e=!1),e?idt.utcFormat(t):idt.timeFormat(t)}})),Amt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.AxisOrientation=Ift.makeEnum(["bottom","left","right","top"]);var n=(function(t){function e(e,n){var i=t.call(this)||this;if(i._endTickLength=5,i._innerTickLength=5,i._tickLabelPadding=10,i._margin=15,i._showEndTickLabels=!1,i._annotationsEnabled=!1,i._annotationTierCount=1,null==e||null==n)throw new Error("Axis requires a scale and orientation");return i._scale=e,i.orientation(n),i._setDefaultAlignment(),i.addClass("axis"),i.isHorizontal()?i.addClass("x-axis"):i.addClass("y-axis"),i.formatter(Cmt.identity()),i._rescaleCallback=function(t){return i._rescale()},i._scale.onUpdate(i._rescaleCallback),i._annotatedTicks=[],i._annotationFormatter=Cmt.identity(),i}return Dft.__extends(e,t),e.prototype.destroy=function(){t.prototype.destroy.call(this),this._scale.offUpdate(this._rescaleCallback)},e.prototype.tickLabelDataOnElement=function(t){if(null!=t){for(var n;null!=t&&t.classList&&void 0===n;)t.classList.contains(e.TICK_LABEL_CLASS)?n=t:t=t.parentNode;return void 0===t?void 0:idt.select(t).datum()}},e.prototype._computeWidth=function(){return this._maxLabelTickLength()},e.prototype._computeHeight=function(){return this._maxLabelTickLength()},e.prototype.requestedSpace=function(t,n){var i=0,r=0;return this.isHorizontal()?(r=this._computeHeight()+this._margin,this.annotationsEnabled()&&(r+=(this._annotationMeasurer.measure().height+2*e._ANNOTATION_LABEL_PADDING)*this.annotationTierCount())):(i=this._computeWidth()+this._margin,this.annotationsEnabled()&&(i+=(this._annotationMeasurer.measure().height+2*e._ANNOTATION_LABEL_PADDING)*this.annotationTierCount())),{minWidth:i,minHeight:r}},e.prototype.fixedHeight=function(){return this.isHorizontal()},e.prototype.fixedWidth=function(){return!this.isHorizontal()},e.prototype._rescale=function(){this.render()},e.prototype.computeLayout=function(e,n,i){return t.prototype.computeLayout.call(this,e,n,i),this.isHorizontal()?this._scale.range([0,this.width()]):this._scale.range([this.height(),0]),this},e.prototype._sizeFromOffer=function(t,e){var n=this.requestedSpace(t,e);return this.isHorizontal()?{width:t,height:n.minHeight}:{height:e,width:n.minWidth}},e.prototype._setup=function(){t.prototype._setup.call(this),this._tickMarkContainer=this.content().append("g").classed(e.TICK_MARK_CLASS+"-container",!0),this._tickLabelContainer=this.content().append("g").classed(e.TICK_LABEL_CLASS+"-container",!0),this._baseline=this.content().append("line").classed("baseline",!0),this._annotationContainer=this.content().append("g").classed("annotation-container",!0),this._annotationContainer.append("g").classed("annotation-line-container",!0),this._annotationContainer.append("g").classed("annotation-circle-container",!0),this._annotationContainer.append("g").classed("annotation-rect-container",!0);var n=this._annotationContainer.append("g").classed("annotation-label-container",!0),i=new amt.SvgContext(n.node());this._annotationMeasurer=new amt.CacheMeasurer(i),this._annotationWriter=new amt.Writer(this._annotationMeasurer,i)},e.prototype._getTickValues=function(){return[]},e.prototype.renderImmediately=function(){var t=this._getTickValues(),n=this._tickMarkContainer.selectAll("."+e.TICK_MARK_CLASS).data(t),i=n.enter().append("line").classed(e.TICK_MARK_CLASS,!0).merge(n);return i.attrs(this._generateTickMarkAttrHash()),idt.select(i.nodes()[0]).classed(e.END_TICK_MARK_CLASS,!0).attrs(this._generateTickMarkAttrHash(!0)),idt.select(i.nodes()[t.length-1]).classed(e.END_TICK_MARK_CLASS,!0).attrs(this._generateTickMarkAttrHash(!0)),n.exit().remove(),this._baseline.attrs(this._generateBaselineAttrHash()),this.annotationsEnabled()?this._drawAnnotations():this._removeAnnotations(),this},e.prototype.annotatedTicks=function(t){return null==t?this._annotatedTicks:(this._annotatedTicks=t,this.render(),this)},e.prototype.annotationFormatter=function(t){return null==t?this._annotationFormatter:(this._annotationFormatter=t,this.render(),this)},e.prototype.annotationsEnabled=function(t){return null==t?this._annotationsEnabled:(this._annotationsEnabled=t,this.redraw(),this)},e.prototype.annotationTierCount=function(t){if(null==t)return this._annotationTierCount;if(t<0)throw new Error("annotationTierCount cannot be negative");return this._annotationTierCount=t,this.redraw(),this},e.prototype._drawAnnotations=function(){var t=this,n=e._ANNOTATION_LABEL_PADDING,i=new Smt.Map,r=this._annotatedTicksToRender();r.forEach((function(e){var r=t._annotationMeasurer.measure(t.annotationFormatter()(e));i.set(e,{width:r.width+2*n,height:r.height+2*n})}));var o=this._annotationMeasurer.measure().height+2*n,a=this._annotationToTier(i),s=new Smt.Set,l=this.isHorizontal()?this.height():this.width(),c=this._coreSize(),u=Math.min(this.annotationTierCount(),Math.floor((l-c)/o));a.forEach((function(t,e){(-1===t||t>=u)&&s.add(e)}));var h,d=function(t,e,n){var i=t.selectAll("."+n).data(r),o=i.enter().append(e).classed(n,!0).merge(i);return i.exit().remove(),o},p=function(e){switch(t.orientation()){case"bottom":case"right":return a.get(e)*o+c;case"top":case"left":return l-c-a.get(e)*o}},f=function(e){return t._scale.scale(e)},m=function(t){return s.has(t)?"hidden":"visible"};switch(this.orientation()){case"bottom":case"right":h=0;break;case"top":h=this.height();break;case"left":h=this.width()}var g=this.isHorizontal();d(this._annotationContainer.select(".annotation-line-container"),"line",e.ANNOTATION_LINE_CLASS).attrs({x1:g?f:h,x2:g?f:p,y1:g?h:f,y2:g?p:f,visibility:m}),d(this._annotationContainer.select(".annotation-circle-container"),"circle",e.ANNOTATION_CIRCLE_CLASS).attrs({cx:g?f:h,cy:g?h:f,r:3});var _=function(e){switch(t.orientation()){case"bottom":case"right":return p(e);case"top":case"left":return p(e)-i.get(e).height}};d(this._annotationContainer.select(".annotation-rect-container"),"rect",e.ANNOTATION_RECT_CLASS).attrs({x:g?f:_,y:g?_:f,width:g?function(t){return i.get(t).width}:function(t){return i.get(t).height},height:g?function(t){return i.get(t).height}:function(t){return i.get(t).width},visibility:m});var y=this._annotationWriter,v=this.annotationFormatter(),b=d(this._annotationContainer.select(".annotation-label-container"),"g",e.ANNOTATION_LABEL_CLASS);b.selectAll(".text-container").remove(),b.attrs({transform:function(t){return"translate("+(g?f(t):_(t))+","+(g?_(t):f(t))+")"},visibility:m}).each((function(t){y.write(v(t),g?i.get(t).width:i.get(t).height,g?i.get(t).height:i.get(t).width,{xAlign:"center",yAlign:"center",textRotation:g?0:90},idt.select(this).node())}))},e.prototype._annotatedTicksToRender=function(){var t=this,e=this._scale.range();return Smt.Array.uniq(this.annotatedTicks().filter((function(n){return null!=n&&Smt.Math.inRange(t._scale.scale(n),e[0],e[1])})))},e.prototype._coreSize=function(){var t=this.isHorizontal()?this.height():this.width(),e=this.isHorizontal()?this._computeHeight():this._computeWidth();return Math.min(e,t)},e.prototype._annotationTierHeight=function(){return this._annotationMeasurer.measure().height+2*e._ANNOTATION_LABEL_PADDING},e.prototype._annotationToTier=function(t){var e=this,n=[[]],i=new Smt.Map,r=this.isHorizontal()?this.width():this.height();return this._annotatedTicksToRender().forEach((function(o){var a=e._scale.scale(o),s=t.get(o).width;if(a<0||a+s>r)i.set(o,-1);else{for(var l=0;n[l].some((function(n){var i=e._scale.scale(n),r=t.get(n).width;return a+s>=i&&a<=i+r}));)l++,n.length===l&&n.push([]);n[l].push(o),i.set(o,l)}})),i},e.prototype._removeAnnotations=function(){this._annotationContainer.selectAll(".annotation-line").remove(),this._annotationContainer.selectAll(".annotation-circle").remove(),this._annotationContainer.selectAll(".annotation-rect").remove(),this._annotationContainer.selectAll(".annotation-label").remove()},e.prototype._generateBaselineAttrHash=function(){var t={x1:0,y1:0,x2:0,y2:0};switch(this._orientation){case"bottom":t.x2=this.width();break;case"top":t.x2=this.width(),t.y1=this.height(),t.y2=this.height();break;case"left":t.x1=this.width(),t.x2=this.width(),t.y2=this.height();break;case"right":t.y2=this.height()}return t},e.prototype._generateTickMarkAttrHash=function(t){var e=this;void 0===t&&(t=!1);var n={x1:0,y1:0,x2:0,y2:0},i=function(t){return e._scale.scale(t)};this.isHorizontal()?(n.x1=i,n.x2=i):(n.y1=i,n.y2=i);var r=t?this._endTickLength:this._innerTickLength;switch(this._orientation){case"bottom":n.y2=r;break;case"top":n.y1=this.height(),n.y2=this.height()-r;break;case"left":n.x1=this.width(),n.x2=this.width()-r;break;case"right":n.x2=r}return n},e.prototype._setDefaultAlignment=function(){switch(this._orientation){case"bottom":this.yAlignment("top");break;case"top":this.yAlignment("bottom");break;case"left":this.xAlignment("right");break;case"right":this.xAlignment("left")}},e.prototype.isHorizontal=function(){return"top"===this._orientation||"bottom"===this._orientation},e.prototype.getScale=function(){return this._scale},e.prototype.formatter=function(t){return null==t?this._formatter:(this._formatter=t,this.redraw(),this)},e.prototype.innerTickLength=function(t){if(null==t)return this._innerTickLength;if(t<0)throw new Error("inner tick length must be positive");return this._innerTickLength=t,this.redraw(),this},e.prototype.endTickLength=function(t){if(null==t)return this._endTickLength;if(t<0)throw new Error("end tick length must be positive");return this._endTickLength=t,this.redraw(),this},e.prototype._maxLabelTickLength=function(){return this.showEndTickLabels()?Math.max(this.innerTickLength(),this.endTickLength()):this.innerTickLength()},e.prototype.tickLabelPadding=function(t){if(null==t)return this._tickLabelPadding;if(t<0)throw new Error("tick label padding must be positive");return this._tickLabelPadding=t,this.redraw(),this},e.prototype.margin=function(t){if(null==t)return this._margin;if(t<0)throw new Error("margin size must be positive");return this._margin=t,this.redraw(),this},e.prototype.orientation=function(t){if(null==t)return this._orientation;var e=t.toLowerCase();if("top"!==e&&"bottom"!==e&&"left"!==e&&"right"!==e)throw new Error("unsupported orientation");return this._orientation=e,this.redraw(),this},e.prototype.showEndTickLabels=function(t){return null==t?this._showEndTickLabels:(this._showEndTickLabels=t,this.render(),this)},e.prototype._showAllTickMarks=function(){this._tickMarkContainer.selectAll("."+e.TICK_MARK_CLASS).each((function(){idt.select(this).style("visibility","inherit")}))},e.prototype._showAllTickLabels=function(){this._tickLabelContainer.selectAll("."+e.TICK_LABEL_CLASS).each((function(){idt.select(this).style("visibility","inherit")}))},e.prototype._hideOverflowingTickLabels=function(){var t=this.element().node().getBoundingClientRect(),n=this._tickLabelContainer.selectAll("."+e.TICK_LABEL_CLASS);n.empty()||n.each((function(e,n){Smt.DOM.clientRectInside(this.getBoundingClientRect(),t)||idt.select(this).style("visibility","hidden")}))},e.prototype._hideTickMarksWithoutLabel=function(){var t=this._tickMarkContainer.selectAll("."+e.TICK_MARK_CLASS),n=this._tickLabelContainer.selectAll("."+e.TICK_LABEL_CLASS).filter((function(t,e){var n=idt.select(this).style("visibility");return"inherit"===n||"visible"===n})).data();t.each((function(t,e){-1===n.indexOf(t)&&idt.select(this).style("visibility","hidden")}))},e.prototype.invalidateCache=function(){t.prototype.invalidateCache.call(this),this._annotationMeasurer.reset()},e.END_TICK_MARK_CLASS="end-tick-mark",e.TICK_MARK_CLASS="tick-mark",e.TICK_LABEL_CLASS="tick-label",e.ANNOTATION_LINE_CLASS="annotation-line",e.ANNOTATION_RECT_CLASS="annotation-rect",e.ANNOTATION_CIRCLE_CLASS="annotation-circle",e.ANNOTATION_LABEL_CLASS="annotation-label",e._ANNOTATION_LABEL_PADDING=4,e})(Tmt.Component);e.Axis=n})),kmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e,n){void 0===n&&(n="bottom");var i=t.call(this,e,n)||this;return i._tickLabelAngle=0,i._tickLabelShearAngle=0,i.addClass("category-axis"),i}return Dft.__extends(e,t),Object.defineProperty(e.prototype,"_wrapper",{get:function(){var t=new amt.Wrapper;return null!=this._tickLabelMaxLines&&t.maxLines(this._tickLabelMaxLines),t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_writer",{get:function(){return new amt.Writer(this._measurer,this._typesetterContext,this._wrapper)},enumerable:!0,configurable:!0}),e.prototype._setup=function(){t.prototype._setup.call(this),this._typesetterContext=new amt.SvgContext(this._tickLabelContainer.node()),this._measurer=new amt.CacheMeasurer(this._typesetterContext)},e.prototype._rescale=function(){return this.redraw()},e.prototype.requestedSpace=function(t,e){var n=this.isHorizontal()?0:this._tickSpaceRequired()+this.margin(),i=this.isHorizontal()?this._tickSpaceRequired()+this.margin():0;if(0===this._scale.domain().length)return{minWidth:0,minHeight:0};if(this.annotationsEnabled()){var r=this._annotationTierHeight()*this.annotationTierCount();this.isHorizontal()?i+=r:n+=r}var o=this._measureTickLabels(t,e);return{minWidth:o.usedWidth+n,minHeight:o.usedHeight+i}},e.prototype._coreSize=function(){var t=this.isHorizontal()?this.height():this.width(),e=this.isHorizontal()?this.requestedSpace(this.width(),this.height()).minHeight:this.requestedSpace(this.width(),this.height()).minWidth,n=this.margin()+this._annotationTierHeight();return Math.min(e-n,t)},e.prototype._getTickValues=function(){return this.getDownsampleInfo().domain},e.prototype._sizeFromOffer=function(t,e){return Tmt.Component.prototype._sizeFromOffer.call(this,t,e)},e.prototype.getDownsampleInfo=function(t,n){void 0===t&&(t=this._scale),void 0===n&&(n=t.invertRange());var i=0===this._tickLabelAngle?1:1/Math.cos(this._tickLabelShearAngle/180*Math.PI),r=Math.ceil(e._MINIMUM_WIDTH_PER_LABEL_PX*i/t.stepWidth());return{domain:n.filter((function(t,e){return e%r==0})),stepWidth:r*t.stepWidth()}},e.prototype.tickLabelAngle=function(t){if(null==t)return this._tickLabelAngle;if(0!==t&&90!==t&&-90!==t)throw new Error("Angle "+t+" not supported; only 0, 90, and -90 are valid values");return this._tickLabelAngle=t,this.redraw(),this},e.prototype.tickLabelShearAngle=function(t){if(null==t)return this._tickLabelShearAngle;if(t<-80||t>80)throw new Error("Angle "+t+" not supported; Must be between [-80, 80]");return this._tickLabelShearAngle=t,this.redraw(),this},e.prototype.tickLabelMaxWidth=function(t){return 0===arguments.length?this._tickLabelMaxWidth:(this._tickLabelMaxWidth=t,this.redraw(),this)},e.prototype.tickLabelMaxLines=function(t){return 0===arguments.length?this._tickLabelMaxLines:(this._tickLabelMaxLines=t,this.redraw(),this)},e.prototype._tickSpaceRequired=function(){return this._maxLabelTickLength()+this.tickLabelPadding()},e.prototype._drawTicks=function(t,e){var n,i,r=this;switch(this.tickLabelAngle()){case 0:n={left:"right",right:"left",top:"center",bottom:"center"},i={left:"center",right:"center",top:"bottom",bottom:"top"};break;case 90:n={left:"center",right:"center",top:"right",bottom:"left"},i={left:"top",right:"bottom",top:"center",bottom:"center"};break;case-90:n={left:"center",right:"center",top:"left",bottom:"right"},i={left:"bottom",right:"top",top:"center",bottom:"center"}}e.each((function(e){var o=idt.select(this),a=r.isHorizontal()?t:r.width()-r._tickSpaceRequired(),s=r.isHorizontal()?r.height()-r._tickSpaceRequired():t,l={xAlign:n[r.orientation()],yAlign:i[r.orientation()],textRotation:r.tickLabelAngle(),textShear:r.tickLabelShearAngle()};if(null!=r._tickLabelMaxWidth){if("left"===r.orientation()&&a>r._tickLabelMaxWidth){var c=a-r._tickLabelMaxWidth,u=o.attr("transform")+" translate("+c+", 0)";o.attr("transform",u)}a=Math.min(a,r._tickLabelMaxWidth)}r._writer.write(r.formatter()(e),a,s,l,o.node())}))},e.prototype._measureTickLabels=function(t,e){var n=this,i=this._scale.cloneWithoutProviders().range([0,this.isHorizontal()?t:e]),r=this.getDownsampleInfo(i),o=r.domain,a=r.stepWidth,s=t-this._tickSpaceRequired();this.isHorizontal()&&(s=a,0!==this._tickLabelAngle&&(s=e-this._tickSpaceRequired()),s=Math.max(s,0));var l=a;this.isHorizontal()&&(l=e-this._tickSpaceRequired(),0!==this._tickLabelAngle&&(l=t-this._tickSpaceRequired()),l=Math.max(l,0)),null!=this._tickLabelMaxWidth&&(s=Math.min(s,this._tickLabelMaxWidth));var c,u=o.map((function(t){return n._wrapper.wrap(n.formatter()(t),n._measurer,s,l)})),h=this.isHorizontal()&&0===this._tickLabelAngle?idt.sum:Smt.Math.max,d=this.isHorizontal()&&0===this._tickLabelAngle?Smt.Math.max:idt.sum,p=h(u,(function(t){return n._measurer.measure(t.wrappedText).width}),0),f=d(u,(function(t){return n._measurer.measure(t.wrappedText).height}),0);return 0!==this._tickLabelAngle&&(p=(c=[f,p])[0],f=c[1]),{usedWidth:p,usedHeight:f}},e.prototype.renderImmediately=function(){var e=this;t.prototype.renderImmediately.call(this);var n=this._scale,i=this.getDownsampleInfo(n),r=i.domain,o=i.stepWidth,a=o;this.isHorizontal()&&null!=this._tickLabelMaxWidth&&(a=Math.min(a,this._tickLabelMaxWidth));var s=this._tickLabelContainer.selectAll("."+Amt.Axis.TICK_LABEL_CLASS).data(r),l=s.enter().append("g").classed(Amt.Axis.TICK_LABEL_CLASS,!0).merge(s);s.exit().remove(),l.attr("transform",(function(t,i){var r=n.scale(t)-a/2;return"translate("+(e.isHorizontal()?r:0)+","+(e.isHorizontal()?0:r)+")"})),l.text(""),this._drawTicks(o,l);var c="right"===this.orientation()?this._tickSpaceRequired():0,u="bottom"===this.orientation()?this._tickSpaceRequired():0;return this._tickLabelContainer.attr("transform","translate("+c+","+u+")"),this._showAllTickMarks(),this._showAllTickLabels(),this._hideTickMarksWithoutLabel(),this},e.prototype.computeLayout=function(e,n,i){return t.prototype.computeLayout.call(this,e,n,i),this.isHorizontal()||this._scale.range([0,this.height()]),this},e.prototype.invalidateCache=function(){t.prototype.invalidateCache.call(this),this._measurer.reset()},e._MINIMUM_WIDTH_PER_LABEL_PX=15,e})(Amt.Axis);e.Category=n})),Lmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e,n){var i=t.call(this,e,n)||this;return i._tickLabelPositioning="center",i._usesTextWidthApproximation=!1,i.formatter(Cmt.general()),i}return Dft.__extends(e,t),e.prototype._setup=function(){t.prototype._setup.call(this);var e=new amt.SvgContext(this._tickLabelContainer.node(),Amt.Axis.TICK_LABEL_CLASS);this._measurer=new amt.CacheMeasurer(e),this._wrapper=(new amt.Wrapper).maxLines(1)},e.prototype._computeWidth=function(){var t=this._usesTextWidthApproximation?this._computeApproximateTextWidth():this._computeExactTextWidth();return"center"===this._tickLabelPositioning?this._maxLabelTickLength()+this.tickLabelPadding()+t:Math.max(this._maxLabelTickLength(),this.tickLabelPadding()+t)},e.prototype._computeExactTextWidth=function(){var t=this,e=this._getTickValues().map((function(e){var n=t.formatter()(e);return t._measurer.measure(n).width}));return Smt.Math.max(e,0)},e.prototype._computeApproximateTextWidth=function(){var t=this,e=this._getTickValues(),n=this._measurer.measure("M").width,i=e.map((function(e){return t.formatter()(e).length*n}));return Smt.Math.max(i,0)},e.prototype._computeHeight=function(){var t=this._measurer.measure().height;return"center"===this._tickLabelPositioning?this._maxLabelTickLength()+this.tickLabelPadding()+t:Math.max(this._maxLabelTickLength(),this.tickLabelPadding()+t)},e.prototype._getTickValues=function(){var t=this._scale,e=t.domain(),n=e[0]<=e[1]?e[0]:e[1],i=e[0]>=e[1]?e[0]:e[1];return t.ticks().filter((function(t){return t>=n&&t<=i}))},e.prototype._rescale=function(){if(this._isSetup){if(!this.isHorizontal()){var t=this._computeWidth();if(t>this.width()||t<this.width()-this.margin())return void this.redraw()}this.render()}},e.prototype.renderImmediately=function(){var e=this;t.prototype.renderImmediately.call(this);var n={x:0,y:0,dx:"0em",dy:"0.3em"},i=this._maxLabelTickLength(),r=this.tickLabelPadding(),o="middle",a=0,s=0,l=0,c=0;if(this.isHorizontal())switch(this._tickLabelPositioning){case"left":o="end",a=-r,c=r;break;case"center":c=i+r;break;case"right":o="start",a=r,c=r}else switch(this._tickLabelPositioning){case"top":n.dy="-0.3em",l=r,s=-r;break;case"center":l=i+r;break;case"bottom":n.dy="1em",l=r,s=r}var u=this._generateTickMarkAttrHash();switch(this.orientation()){case"bottom":n.x=u.x1,n.dy="0.95em",s=u.y1+c;break;case"top":n.x=u.x1,n.dy="-.25em",s=u.y1-c;break;case"left":o="end",a=u.x1-l,n.y=u.y1;break;case"right":o="start",a=u.x1+l,n.y=u.y1}var h=this._getTickValues(),d=this._tickLabelContainer.selectAll("."+Amt.Axis.TICK_LABEL_CLASS).data(h);return d.exit().remove(),d.enter().append("text").classed(Amt.Axis.TICK_LABEL_CLASS,!0).merge(d).style("text-anchor",o).style("visibility","inherit").attrs(n).text((function(t){return e.formatter()(t)})),this._tickLabelContainer.attr("transform","translate("+a+", "+s+")"),this._showAllTickMarks(),this.showEndTickLabels()||this._hideEndTickLabels(),this._hideOverflowingTickLabels(),this._hideOverlappingTickLabels(),"center"!==this._tickLabelPositioning&&this._hideTickMarksWithoutLabel(),this},e.prototype.tickLabelPosition=function(t){if(null==t)return this._tickLabelPositioning;var e=t.toLowerCase();if(this.isHorizontal()){if("left"!==e&&"center"!==e&&"right"!==e)throw new Error(e+" is not a valid tick label position for a horizontal NumericAxis")}else if("top"!==e&&"center"!==e&&"bottom"!==e)throw new Error(e+" is not a valid tick label position for a vertical NumericAxis");return this._tickLabelPositioning=e,this.redraw(),this},e.prototype.usesTextWidthApproximation=function(t){return null==t?this._usesTextWidthApproximation:(this._usesTextWidthApproximation=t,this)},e.prototype._hideEndTickLabels=function(){var t=this.element().node().getBoundingClientRect(),e=this._tickLabelContainer.selectAll("."+Amt.Axis.TICK_LABEL_CLASS);if(0!==e.size()){var n=e.nodes()[0];Smt.DOM.clientRectInside(n.getBoundingClientRect(),t)||idt.select(n).style("visibility","hidden");var i=e.nodes()[e.size()-1];Smt.DOM.clientRectInside(i.getBoundingClientRect(),t)||idt.select(i).style("visibility","hidden")}},e.prototype._hideOverlappingTickLabels=function(){for(var t=this._tickLabelContainer.selectAll("."+Amt.Axis.TICK_LABEL_CLASS).filter((function(t,e){var n=idt.select(this).style("visibility");return"inherit"===n||"visible"===n})),e=t.nodes().map((function(t){return t.getBoundingClientRect()})),n=1;!this._hasOverlapWithInterval(n,e)&&n<e.length;)n+=1;t.each((function(t,e){var i=idt.select(this);e%n!=0&&i.style("visibility","hidden")}))},e.prototype._hasOverlapWithInterval=function(t,e){for(var n="center"===this._tickLabelPositioning?this.tickLabelPadding():3*this.tickLabelPadding(),i=e.map((function(t){return Smt.DOM.expandRect(t,n)})),r=0;r<i.length-t;r+=t)if(Smt.DOM.clientRectsOverlap(i[r],i[r+t]))return!1;return!0},e.prototype.invalidateCache=function(){t.prototype.invalidateCache.call(this),this._measurer.reset()},e})(Amt.Axis);e.Numeric=n})),Pmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.intervalTickGenerator=function n(t){if(t<=0)throw new Error("interval must be positive number");return function(e){var n=e.domain(),i=Math.min(n[0],n[1]),r=Math.max(n[0],n[1]),o=Math.ceil(i/t)*t,a=Math.floor((r-o)/t)+1,s=i%t==0?[]:[i],l=Smt.Math.range(0,a).map((function(e){return o+e*t})),c=r%t==0?[]:[r];return s.concat(l).concat(c)}},e.integerTickGenerator=function i(){return function(t){var e=t.defaultTicks();return e.filter((function(t,n){return t%1==0||0===n||n===e.length-1}))}}})),Nmt=be((function(t,e){function n(t,e,n){return n-(n-t)*e}function i(t,e,n){return(t*e-n)/(e-1)}function r(t,e,n,i){var r=e>1,o=r?i:n;if(null==o)return e;var a=t.getTransformationDomain(),s=Math.abs(a[1]-a[0]);return(r?Math.min:Math.max)(e,o/s)}function o(t,e,r,o,s){if(e<=1)return{centerPoint:r,zoomAmount:e};if(null==o&&null==s)return{centerPoint:r,zoomAmount:e};var l=a(t),c=(function u(t){var e=t.getTransformationDomain();return e[1]<e[0]})(t);o=null==o?c?1/0:-1/0:o,s=null==s?c?-1/0:1/0:s;var h=t.getTransformationDomain(),d=h[0],p=h[1],f=t.scaleTransformation(s),m=t.scaleTransformation(p),g=n(m,e,r),_=t.scaleTransformation(o),y=t.scaleTransformation(d),v=n(y,e,r),b=Math.abs(f-_);if(Math.abs(g-v)>b){var x=(f-_)/(m-y);return 1!==x?{centerPoint:i(m,x,f),zoomAmount:x}:{centerPoint:r,zoomAmount:x}}return g>f!=l?{centerPoint:i(m,e,f),zoomAmount:e}:v<_!=l?{centerPoint:i(y,e,_),zoomAmount:e}:{centerPoint:r,zoomAmount:e}}function a(t){var e=t.range();return e[1]<e[0]}
/**
     * Copyright 2017-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.zoomOut=n,e.constrainedZoom=function s(t,e,n,i,a,l,c){return o(t,e=r(t,e,i,a),n,l,c)},e.constrainZoomExtents=r,e.constrainZoomValues=o,e.constrainedTranslation=function l(t,e,n,i){var r,o=t.getTransformationDomain(),s=o[0],l=o[1],c=a(t);if(e>0!==c){if(null!=(r=i)){var u=t.scaleTransformation(l),h=t.scaleTransformation(r);e=(c?Math.max:Math.min)(u+e,h)-u}}else if(null!=(r=n)){var d=t.scaleTransformation(s),p=t.scaleTransformation(r);e=(c?Math.min:Math.max)(d+e,p)-d}return e}})),Imt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){this._autoDomainAutomatically=!0,this._domainModificationInProgress=!1,this._updateId=0,this._callbacks=new Smt.CallbackSet,this._includedValuesProviders=new Smt.Set}return t.prototype.extentOfValues=function(t){return[]},t.prototype._getAllIncludedValues=function(t){var e=this;void 0===t&&(t=!1);var n=[];return this._includedValuesProviders.forEach((function(i){var r=i(e,t);n=n.concat(r)})),n},t.prototype._getExtent=function(){return[]},t.prototype.onUpdate=function(t){return this._callbacks.add(t),this},t.prototype.offUpdate=function(t){return this._callbacks.delete(t),this},t.prototype._dispatchUpdate=function(){this._updateId++,this._callbacks.callCallbacks(this)},t.prototype.autoDomain=function(){return this._autoDomainAutomatically=!0,this._setDomain(this._getExtent()),this},t.prototype.autoDomainIfAutomaticMode=function(){this._autoDomainAutomatically&&this.autoDomain()},t.prototype.scale=function(t){throw new Error("Subclasses should override scale")},t.prototype.ticks=function(){return this.domain()},t.prototype.domain=function(t){return null==t?this._getDomain():(this._autoDomainAutomatically=!1,this._setDomain(t),this)},t.prototype._getDomain=function(){throw new Error("Subclasses should override _getDomain")},t.prototype._setDomain=function(t){this._domainModificationInProgress||(this._domainModificationInProgress=!0,this._backingScaleDomain(t),this._dispatchUpdate(),this._domainModificationInProgress=!1)},t.prototype._backingScaleDomain=function(t){throw new Error("Subclasses should override _backingDomain")},t.prototype.range=function(t){return null==t?this._getRange():(this._setRange(t),this)},t.prototype._getRange=function(){throw new Error("Subclasses should override _getRange")},t.prototype._setRange=function(t){throw new Error("Subclasses should override _setRange")},t.prototype.addIncludedValuesProvider=function(t){return this._includedValuesProviders.add(t),this.autoDomainIfAutomaticMode(),this},t.prototype.removeIncludedValuesProvider=function(t){return this._includedValuesProviders.delete(t),this.autoDomainIfAutomaticMode(),this},t.prototype.updateId=function(){return this._updateId},t})();e.Scale=n})),Omt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=[0,1],i=(function(t){function e(){var i=t.call(this)||this;return i._range=[0,1],i._d3Scale=idt.scaleBand(),i._d3Scale.range(n),i._d3TransformationScale=idt.scaleLinear(),i._d3TransformationScale.domain(n),i._innerPadding=e._convertToPlottableInnerPadding(.3),i._outerPadding=e._convertToPlottableOuterPadding(.5,.3),i}return Dft.__extends(e,t),e.prototype.cloneWithoutProviders=function(){var t=(new e).domain(this.domain()).range(this.range()).innerPadding(this.innerPadding()).outerPadding(this.outerPadding());return t._d3TransformationScale.domain(this._d3TransformationScale.domain()),t},e.prototype.extentOfValues=function(t){return Smt.Array.uniq(t)},e.prototype._getExtent=function(){return Smt.Array.uniq(this._getAllIncludedValues())},e.prototype.domain=function(e){return t.prototype.domain.call(this,e)},e.prototype.invertRange=function(t){var e=this;void 0===t&&(t=this.range());var n=this._d3Scale.bandwidth(),i=this.invertedTransformation(t[0]),r=this.invertedTransformation(t[1]),o=this._d3Scale.domain(),a=o.map((function(t){return e._d3Scale(t)+n/2})),s=idt.bisect(a,i),l=idt.bisect(a,r);return o.slice(s,l)},e.prototype.range=function(e){return t.prototype.range.call(this,e)},e._convertToPlottableInnerPadding=function(t){return 1/(1-t)-1},e._convertToPlottableOuterPadding=function(t,e){return t/(1-e)},e.prototype._setBands=function(){var t=1-1/(1+this.innerPadding()),e=this.outerPadding()/(1+this.innerPadding());this._d3Scale.paddingInner(t),this._d3Scale.paddingOuter(e)},e.prototype.rangeBand=function(){return this._rescaleBand(this._d3Scale.bandwidth())},e.prototype.stepWidth=function(){return this._rescaleBand(this._d3Scale.bandwidth()*(1+this.innerPadding()))},e.prototype.ticks=function(){return this.domain()},e.prototype.innerPadding=function(t){return null==t?this._innerPadding:(this._innerPadding=t,this.range(this.range()),this._dispatchUpdate(),this)},e.prototype.outerPadding=function(t){return null==t?this._outerPadding:(this._outerPadding=t,this.range(this.range()),this._dispatchUpdate(),this)},e.prototype.scale=function(t){var e=this._d3Scale(t)+this._d3Scale.bandwidth()/2;return this._d3TransformationScale(e)},e.prototype.zoom=function(t,e){var n=this;this._d3TransformationScale.domain(this._d3TransformationScale.range().map((function(i){return n._d3TransformationScale.invert(Nmt.zoomOut(i,t,e))}))),this._dispatchUpdate()},e.prototype.pan=function(t){var e=this;this._d3TransformationScale.domain(this._d3TransformationScale.range().map((function(n){return e._d3TransformationScale.invert(n+t)}))),this._dispatchUpdate()},e.prototype.scaleTransformation=function(t){return this._d3TransformationScale(t)},e.prototype.invertedTransformation=function(t){return this._d3TransformationScale.invert(t)},e.prototype.getTransformationExtent=function(){return n},e.prototype.getTransformationDomain=function(){return this._d3TransformationScale.domain()},e.prototype.setTransformationDomain=function(t){this._d3TransformationScale.domain(t),this._dispatchUpdate()},e.prototype._getDomain=function(){return this._backingScaleDomain()},e.prototype._backingScaleDomain=function(t){return null==t?this._d3Scale.domain():(this._d3Scale.domain(t),this._setBands(),this)},e.prototype._getRange=function(){return this._range},e.prototype._setRange=function(t){this._range=t,this._d3TransformationScale.range(t),this._setBands()},e.prototype._rescaleBand=function(t){return Math.abs(this._d3TransformationScale(t)-this._d3TransformationScale(0))},e})(Imt.Scale);e.Category=i})),Rmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){this.count=0,this.tracker={}}return t.prototype.getIndex=function(t){if(null!=this.tracker[t])return this.tracker[t];var e=this.count;return this.tracker[t]=e,this.count+=1,e},t.prototype.clear=function(){this.count=0,this.tracker={}},t})(),i=(function(t){function e(i){var r,o=t.call(this)||this;switch(o._rangeLength=1,o._tracker=new n,i){case null:case void 0:null==e._plottableColorCache&&(e._plottableColorCache=e._getPlottableColors()),r=idt.scaleOrdinal().range(e._plottableColorCache);break;case"Category10":case"category10":case"10":r=idt.scaleOrdinal(idt.schemeCategory10);break;case"Category20":case"category20":case"20":r=idt.scaleOrdinal(idt.schemeCategory20);break;case"Category20b":case"category20b":case"20b":r=idt.scaleOrdinal(idt.schemeCategory20b);break;case"Category20c":case"category20c":case"20c":r=idt.scaleOrdinal(idt.schemeCategory20c);break;default:throw new Error("Unsupported ColorScale type")}return o._d3Scale=r,o._rangeLength=o._d3Scale.range().length,o}return Dft.__extends(e,t),e.prototype.extentOfValues=function(t){return Smt.Array.uniq(t)},e.prototype._getExtent=function(){return Smt.Array.uniq(this._getAllIncludedValues())},e.invalidateColorCache=function(){e._plottableColorCache=null},e._getPlottableColors=function(){for(var t=[],e=idt.select("body").append("plottable-color-tester"),n=Smt.Color.colorTest(e,""),i=0,r=Smt.Color.colorTest(e,"plottable-colors-0");null!=r&&i<this._MAXIMUM_COLORS_FROM_CSS&&(r!==n||r!==t[t.length-1]);)t.push(r),i++,r=Smt.Color.colorTest(e,"plottable-colors-"+i);return e.remove(),t},e.prototype.scale=function(t){var n=this._d3Scale(t),i=this._tracker.getIndex(t),r=Math.floor(i/this._rangeLength);if(0===r)return n;var o=Math.log(r*e._LOOP_LIGHTEN_FACTOR+1);return Smt.Color.lightenColor(n,o)},e.prototype._getDomain=function(){return this._backingScaleDomain()},e.prototype._backingScaleDomain=function(t){return null==t?this._d3Scale.domain():(this._d3Scale.domain(t),this._tracker.clear(),this)},e.prototype._getRange=function(){return this._d3Scale.range()},e.prototype._setRange=function(t){this._d3Scale.range(t),this._rangeLength=t.length},e._LOOP_LIGHTEN_FACTOR=1.6,e._MAXIMUM_COLORS_FROM_CSS=256,e})(Imt.Scale);e.Color=i})),zmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(n){void 0===n&&(n="linear");var i=t.call(this)||this;switch(n){case"linear":i._colorScale=idt.scaleLinear();break;case"log":i._colorScale=idt.scaleLog();break;case"sqrt":i._colorScale=idt.scaleSqrt();break;case"pow":i._colorScale=idt.scalePow()}if(null==i._colorScale)throw new Error("unknown QuantitativeScale scale type "+n);return i.range(e.REDS),i}return Dft.__extends(e,t),e.prototype.extentOfValues=function(t){var e=idt.extent(t);return null==e[0]||null==e[1]?[]:e},e.prototype._d3InterpolatedScale=function(){return this._colorScale.range([0,1]).interpolate(this._interpolateColors())},e.prototype._interpolateColors=function(){var t=this._colorRange;if(t.length<2)throw new Error("Color scale arrays must have at least two elements.");return function(e,n){return function(e){var n=(e=Math.max(0,Math.min(1,e)))*(t.length-1),i=Math.floor(n),r=Math.ceil(n),o=n-i;return idt.interpolateLab(t[i],t[r])(o)}}},e.prototype._resetScale=function(){this._d3Scale=this._d3InterpolatedScale(),this.autoDomainIfAutomaticMode(),this._dispatchUpdate()},e.prototype.autoDomain=function(){var t=this._getAllIncludedValues();return t.length>0&&this._setDomain([Smt.Math.min(t,0),Smt.Math.max(t,0)]),this},e.prototype.scale=function(t){return this._d3Scale(t)},e.prototype._getDomain=function(){return this._backingScaleDomain()},e.prototype._backingScaleDomain=function(t){return null==t?this._d3Scale.domain():(this._d3Scale.domain(t),this)},e.prototype._getRange=function(){return this._colorRange},e.prototype._setRange=function(t){this._colorRange=t,this._resetScale()},e.REDS=["#FFFFFF","#FFF6E1","#FEF4C0","#FED976","#FEB24C","#FD8D3C","#FC4E2A","#E31A1C","#B10026"],e.BLUES=["#FFFFFF","#CCFFFF","#A5FFFD","#85F7FB","#6ED3EF","#55A7E0","#417FD0","#2545D3","#0B02E1"],e.POSNEG=["#0B02E1","#2545D3","#417FD0","#55A7E0","#6ED3EF","#85F7FB","#A5FFFD","#CCFFFF","#FFFFFF","#FFF6E1","#FEF4C0","#FED976","#FEB24C","#FD8D3C","#FC4E2A","#E31A1C","#B10026"],e})(Imt.Scale);e.InterpolatedColor=n})),Dmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._tickGenerator=function(t){return t.defaultTicks()},e._padProportion=.05,e._snappingDomainEnabled=!0,e._paddingExceptionsProviders=new Smt.Set,e}return Dft.__extends(e,t),e.prototype.autoDomain=function(){return this._domainMin=null,this._domainMax=null,t.prototype.autoDomain.call(this),this},e.prototype.autoDomainIfAutomaticMode=function(){if(null==this._domainMin||null==this._domainMax){var e=this._getExtent();if(null!=this._domainMin){var n=e[1];return this._domainMin>=n&&(n=this._expandSingleValueDomain([this._domainMin,this._domainMin])[1]),void this._setDomain([this._domainMin,n])}if(null!=this._domainMax){var i=e[0];return this._domainMax<=i&&(i=this._expandSingleValueDomain([this._domainMax,this._domainMax])[0]),void this._setDomain([i,this._domainMax])}t.prototype.autoDomainIfAutomaticMode.call(this)}else this._setDomain([this._domainMin,this._domainMax])},e.prototype._getUnboundedExtent=function(t){void 0===t&&(t=!1);var e=this._getAllIncludedValues(t),n=this._defaultExtent();if(0!==e.length){var i=[Smt.Math.min(e,n[0]),Smt.Math.max(e,n[1])];n=this._padDomain(i)}return n},e.prototype._getExtent=function(){var t=this._getUnboundedExtent();return null!=this._domainMin&&(t[0]=this._domainMin),null!=this._domainMax&&(t[1]=this._domainMax),t},e.prototype.addPaddingExceptionsProvider=function(t){return this._paddingExceptionsProviders.add(t),this.autoDomainIfAutomaticMode(),this},e.prototype.removePaddingExceptionsProvider=function(t){return this._paddingExceptionsProviders.delete(t),this.autoDomainIfAutomaticMode(),this},e.prototype.padProportion=function(t){if(null==t)return this._padProportion;if(t<0)throw new Error("padProportion must be non-negative");return this._padProportion=t,this.autoDomainIfAutomaticMode(),this},e.prototype._padDomain=function(t){var e=this;if(t[0].valueOf()===t[1].valueOf())return this._expandSingleValueDomain(t);if(0===this._padProportion)return t;var n=this._padProportion/2,i=t[0],r=t[1],o=!1,a=!1;this._paddingExceptionsProviders.forEach((function(t){t(e).forEach((function(t){t.valueOf()===i.valueOf()&&(o=!0),t.valueOf()===r.valueOf()&&(a=!0)}))}));var s=this._backingScaleDomain();this._backingScaleDomain(t);var l=o?i:this.invert(this.scale(i)-(this.scale(r)-this.scale(i))*n),c=a?r:this.invert(this.scale(r)+(this.scale(r)-this.scale(i))*n);return this._backingScaleDomain(s),this._snappingDomainEnabled?this._niceDomain([l,c]):[l,c]},e.prototype.snappingDomainEnabled=function(t){return null==t?this._snappingDomainEnabled:(this._snappingDomainEnabled=t,this.autoDomainIfAutomaticMode(),this)},e.prototype._expandSingleValueDomain=function(t){return t},e.prototype.invert=function(t){throw new Error("Subclasses should override invert")},e.prototype.domain=function(e){return null!=e&&(this._domainMin=e[0],this._domainMax=e[1]),t.prototype.domain.call(this,e)},e.prototype.domainMin=function(t){return null==t?this.domain()[0]:(this._domainMin=t,this.autoDomainIfAutomaticMode(),this)},e.prototype.domainMax=function(t){return null==t?this.domain()[1]:(this._domainMax=t,this.autoDomainIfAutomaticMode(),this)},e.prototype.extentOfValues=function(t){var e=idt.extent(t.filter((function(t){return Smt.Math.isValidNumber(+t)})));return null==e[0]||null==e[1]?[]:e},e.prototype.zoom=function(t,e){var n=this;this.domain(this.range().map((function(i){return n.invert(Nmt.zoomOut(i,t,e))})))},e.prototype.pan=function(t){var e=this;this.domain(this.range().map((function(n){return e.invert(n+t)})))},e.prototype.scaleTransformation=function(t){throw new Error("Subclasses should override scaleTransformation")},e.prototype.invertedTransformation=function(t){throw new Error("Subclasses should override invertedTransformation")},e.prototype.getTransformationExtent=function(){throw new Error("Subclasses should override getTransformationExtent")},e.prototype.getTransformationDomain=function(){throw new Error("Subclasses should override getTransformationDomain")},e.prototype.setTransformationDomain=function(t){throw new Error("Subclasses should override setTransformationDomain")},e.prototype._setDomain=function(e){var n=function(t){return Smt.Math.isNaN(t)||t===1/0||t===-1/0};n(e[0])||n(e[1])?Smt.Window.warn("Warning: QuantitativeScales cannot take NaN or Infinity as a domain value. Ignoring."):t.prototype._setDomain.call(this,e)},e.prototype.defaultTicks=function(){throw new Error("Subclasses should override _getDefaultTicks")},e.prototype.ticks=function(){return this._tickGenerator(this)},e.prototype._niceDomain=function(t,e){throw new Error("Subclasses should override _niceDomain")},e.prototype._defaultExtent=function(){throw new Error("Subclasses should override _defaultExtent")},e.prototype.tickGenerator=function(t){return null==t?this._tickGenerator:(this._tickGenerator=t,this)},e._DEFAULT_NUM_TICKS=10,e})(Imt.Scale);e.QuantitativeScale=n})),Bmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._d3Scale=idt.scaleLinear(),e}return Dft.__extends(e,t),e.prototype._defaultExtent=function(){return[0,1]},e.prototype._expandSingleValueDomain=function(t){return t[0]===t[1]?[t[0]-1,t[1]+1]:t},e.prototype.scale=function(t){return this._d3Scale(t)},e.prototype.scaleTransformation=function(t){return this.scale(t)},e.prototype.invertedTransformation=function(t){return this.invert(t)},e.prototype.getTransformationExtent=function(){return this._getUnboundedExtent(!0)},e.prototype.getTransformationDomain=function(){return this.domain()},e.prototype.setTransformationDomain=function(t){this.domain(t)},e.prototype._getDomain=function(){return this._backingScaleDomain()},e.prototype._backingScaleDomain=function(t){return null==t?this._d3Scale.domain():(this._d3Scale.domain(t),this)},e.prototype._getRange=function(){return this._d3Scale.range()},e.prototype._setRange=function(t){this._d3Scale.range(t)},e.prototype.invert=function(t){return this._d3Scale.invert(t)},e.prototype.defaultTicks=function(){return this._d3Scale.ticks(e._DEFAULT_NUM_TICKS)},e.prototype._niceDomain=function(t,e){return this._d3Scale.copy().domain(t).nice(e).domain()},e})(Dmt.QuantitativeScale);e.Linear=n})),Hmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e){void 0===e&&(e=10);var n=t.call(this)||this;return n._d3Scale=idt.scaleLog().base(e),n._setDomain(n._defaultExtent()),n}return Dft.__extends(e,t),e.prototype._defaultExtent=function(){return[1,this._d3Scale.base()]},e.prototype._expandSingleValueDomain=function(t){return t[0]===t[1]?[t[0]/this._d3Scale.base(),t[1]*this._d3Scale.base()]:t},e.prototype.scale=function(t){return this._d3Scale(t)},e.prototype.scaleTransformation=function(t){return this.scale(t)},e.prototype.invertedTransformation=function(t){return this.invert(t)},e.prototype.getTransformationExtent=function(){return this._getUnboundedExtent(!0)},e.prototype.getTransformationDomain=function(){return this.domain()},e.prototype.setTransformationDomain=function(t){this.domain(t)},e.prototype._getDomain=function(){return this._backingScaleDomain()},e.prototype._backingScaleDomain=function(t){return null==t?this._d3Scale.domain():(this._d3Scale.domain(t),this)},e.prototype._getRange=function(){return this._d3Scale.range()},e.prototype._setRange=function(t){this._d3Scale.range(t)},e.prototype.invert=function(t){return this._d3Scale.invert(t)},e.prototype.defaultTicks=function(){return this._d3Scale.ticks(e._DEFAULT_NUM_TICKS)},e.prototype._niceDomain=function(t,e){return this._d3Scale.copy().domain(t).nice().domain()},e})(Dmt.QuantitativeScale);e.Log=n})),Fmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e){void 0===e&&(e=10);var n=t.call(this)||this;if(n._logTickGenerator=function(t){var e=function(t,e,n){return[t,e,n].sort((function(t,e){return t-e}))[1]},i=Smt.Math.min(n._untransformedDomain,0),r=Smt.Math.max(n._untransformedDomain,0),o=i,a=e(i,r,-n._pivot),s=e(i,r,n._pivot),l=r,c=n._logTicks(-a,-o).map((function(t){return-t})).reverse(),u=n._logTicks(s,l),h=Math.max(i,-n._pivot),d=Math.min(r,n._pivot),p=idt.scaleLinear().domain([h,d]).ticks(n._howManyTicks(h,d)),f=c.concat(p).concat(u);return f.length<=1&&(f=idt.scaleLinear().domain([i,r]).ticks(Umt.ModifiedLog._DEFAULT_NUM_TICKS)),f},n._d3Scale=idt.scaleLinear(),n._base=e,n._pivot=n._base,n._setDomain(n._defaultExtent()),n.tickGenerator(n._logTickGenerator),e<=1)throw new Error("ModifiedLogScale: The base must be > 1");return n}return Dft.__extends(e,t),e.prototype._adjustedLog=function(t){var e=t<0?-1:1;return(t*=e)<this._pivot&&(t+=(this._pivot-t)/this._pivot),(t=Math.log(t)/Math.log(this._base))*e},e.prototype._invertedAdjustedLog=function(t){var e=t<0?-1:1;return t*=e,(t=Math.pow(this._base,t))<this._pivot&&(t=this._pivot*(t-1)/(this._pivot-1)),t*e},e.prototype.scale=function(t){return this._d3Scale(this._adjustedLog(t))},e.prototype.invert=function(t){return this._invertedAdjustedLog(this._d3Scale.invert(t))},e.prototype.scaleTransformation=function(t){return this.scale(t)},e.prototype.invertedTransformation=function(t){return this.invert(t)},e.prototype.getTransformationExtent=function(){return this._getUnboundedExtent(!0)},e.prototype.getTransformationDomain=function(){return this.domain()},e.prototype.setTransformationDomain=function(t){this.domain(t)},e.prototype._getDomain=function(){return this._untransformedDomain},e.prototype._setDomain=function(e){this._untransformedDomain=e;var n=[this._adjustedLog(e[0]),this._adjustedLog(e[1])];t.prototype._setDomain.call(this,n)},e.prototype._backingScaleDomain=function(t){return null==t?this._d3Scale.domain():(this._d3Scale.domain(t),this)},e.prototype._logTicks=function(t,e){var n=this,i=this._howManyTicks(t,e);if(0===i)return[];var r=Math.floor(Math.log(t)/Math.log(this._base)),o=Math.ceil(Math.log(e)/Math.log(this._base)),a=idt.range(o,r,-Math.ceil((o-r)/i)),s=idt.range(this._base,1,-(this._base-1)).map(Math.floor),l=Smt.Array.uniq(s),c=a.map((function(t){return l.map((function(e){return Math.pow(n._base,t-1)*e}))}));return Smt.Array.flatten(c).filter((function(n){return t<=n&&n<=e})).sort((function(t,e){return t-e}))},e.prototype._howManyTicks=function(t,e){var n=this._adjustedLog(Smt.Math.min(this._untransformedDomain,0)),i=this._adjustedLog(Smt.Math.max(this._untransformedDomain,0)),r=this._adjustedLog(t),o=this._adjustedLog(e);return Math.ceil((o-r)/(i-n)*Umt.ModifiedLog._DEFAULT_NUM_TICKS)},e.prototype._niceDomain=function(t,e){return t},e.prototype._defaultExtent=function(){return[0,this._base]},e.prototype._expandSingleValueDomain=function(t){if(t[0]===t[1]){var e=t[0];return e>0?[e/this._base,e*this._base]:0===e?[-this._base,this._base]:[e*this._base,e/this._base]}return t},e.prototype._getRange=function(){return this._d3Scale.range()},e.prototype._setRange=function(t){this._d3Scale.range(t)},e.prototype.defaultTicks=function(){return this._d3Scale.ticks(Umt.ModifiedLog._DEFAULT_NUM_TICKS)},e})(Dmt.QuantitativeScale);e.ModifiedLog=n})),Vmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._d3Scale=idt.scaleTime(),e.autoDomain(),e}return Dft.__extends(e,t),e.prototype.tickInterval=function(t,n,i){void 0===n&&(n=1),void 0===i&&(i=!1);var r=idt.scaleTime(),o=e.timeIntervalToD3Time(t,i).every(n);return r.domain(this.domain()),r.range(this.range()),r.ticks(o)},e.prototype._setDomain=function(e){if(e[1]<e[0])throw new Error("Scale.Time domain values must be in chronological order");return t.prototype._setDomain.call(this,e)},e.prototype._defaultExtent=function(){return[new Date("1970-01-01"),new Date("1970-01-02")]},e.prototype._expandSingleValueDomain=function(t){var e=t[0].getTime(),n=t[1].getTime();if(e===n){var i=new Date(e);i.setDate(i.getDate()-1);var r=new Date(n);return r.setDate(r.getDate()+1),[i,r]}return t},e.prototype.scale=function(t){return this._d3Scale(t)},e.prototype.scaleTransformation=function(t){return this.scale(new Date(t))},e.prototype.invertedTransformation=function(t){return this.invert(t).getTime()},e.prototype.getTransformationExtent=function(){var t=this._getUnboundedExtent(!0);return[t[0].valueOf(),t[1].valueOf()]},e.prototype.getTransformationDomain=function(){var t=this.domain();return[t[0].valueOf(),t[1].valueOf()]},e.prototype.setTransformationDomain=function(t){var e=t[1];this.domain([new Date(t[0]),new Date(e)])},e.prototype._getDomain=function(){return this._backingScaleDomain()},e.prototype._backingScaleDomain=function(t){return null==t?this._d3Scale.domain():(this._d3Scale.domain(t),this)},e.prototype._getRange=function(){return this._d3Scale.range()},e.prototype._setRange=function(t){this._d3Scale.range(t)},e.prototype.invert=function(t){return this._d3Scale.invert(t)},e.prototype.defaultTicks=function(){return this._d3Scale.ticks(e._DEFAULT_NUM_TICKS)},e.prototype._niceDomain=function(t){return this._d3Scale.copy().domain(t).nice().domain()},e.timeIntervalToD3Time=function(t,e){switch(t){case jmt.TimeInterval.second:return e?idt.utcSecond:idt.timeSecond;case jmt.TimeInterval.minute:return e?idt.utcMinute:idt.timeMinute;case jmt.TimeInterval.hour:return e?idt.utcHour:idt.timeHour;case jmt.TimeInterval.day:return e?idt.utcDay:idt.timeDay;case jmt.TimeInterval.week:return e?idt.utcWeek:idt.timeWeek;case jmt.TimeInterval.month:return e?idt.utcMonth:idt.timeMonth;case jmt.TimeInterval.year:return e?idt.utcYear:idt.timeYear;default:throw Error("TimeInterval specified does not exist: "+t)}},e})(Dmt.QuantitativeScale);e.Time=n})),Umt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.TickGenerators=Pmt,Dft.__exportStar(Omt,e),Dft.__exportStar(Rmt,e),Dft.__exportStar(zmt,e),Dft.__exportStar(Bmt,e),Dft.__exportStar(Hmt,e),Dft.__exportStar(Fmt,e),Dft.__exportStar(Vmt,e);var n=Omt;e.isTransformable=function i(t){return t instanceof Dmt.QuantitativeScale||t instanceof n.Category}})),jmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.TimeInterval=Ift.makeEnum(["second","minute","hour","day","week","month","year"]),e.TimeAxisOrientation=Ift.makeEnum(["top","bottom"]),e.TierLabelPosition=Ift.makeEnum(["between","center"]);var n,i=(function(t){function i(e,n,r){var o=t.call(this,e,n)||this;return o._maxTimeIntervalPrecision=null,o._tierLabelPositions=[],o._useUTC=r,o.addClass("time-axis"),o.tickLabelPadding(5),o.axisConfigurations(i._DEFAULT_TIME_AXIS_CONFIGURATIONS(o._useUTC)),o.annotationFormatter(Cmt.time("%a %b %d, %Y",o._useUTC)),o}return Dft.__extends(i,t),i.prototype.tierLabelPositions=function(t){if(null==t)return this._tierLabelPositions;if(!t.every((function(t){return"between"===t.toLowerCase()||"center"===t.toLowerCase()})))throw new Error("Unsupported position for tier labels");return this._tierLabelPositions=t,this.redraw(),this},i.prototype.maxTimeIntervalPrecision=function(t){return null==t?this._maxTimeIntervalPrecision:(this._maxTimeIntervalPrecision=t,this.redraw(),this)},i.prototype.currentAxisConfiguration=function(){return this._possibleTimeAxisConfigurations[this._mostPreciseConfigIndex]},i.prototype.axisConfigurations=function(t){if(null==t)return this._possibleTimeAxisConfigurations;this._possibleTimeAxisConfigurations=t,this._numTiers=Smt.Math.max(this._possibleTimeAxisConfigurations.map((function(t){return t.length})),0),this._isAnchored&&this._setupDomElements();for(var e=this.tierLabelPositions(),n=[],i=0;i<this._numTiers;i++)n.push(e[i]||"between");return this.tierLabelPositions(n),this.redraw(),this},i.prototype._getMostPreciseConfigurationIndex=function(){var t=this,e=this._possibleTimeAxisConfigurations.length;return this._possibleTimeAxisConfigurations.forEach((function(n,i){i<e&&n.every((function(e){return t._checkTimeAxisTierConfiguration(e)}))&&(e=i)})),e===this._possibleTimeAxisConfigurations.length&&(Smt.Window.warn("zoomed out too far: could not find suitable interval to display labels"),--e),e},i.prototype.orientation=function(e){if(e&&("right"===e.toLowerCase()||"left"===e.toLowerCase()))throw new Error(e+" is not a supported orientation for TimeAxis - only horizontal orientations are supported");return t.prototype.orientation.call(this,e)},i.prototype._computeHeight=function(){var t=this._measurer.measure().height;this._tierHeights=[];for(var e=0;e<this._numTiers;e++)this._tierHeights.push(t+this.tickLabelPadding()+("between"===this._tierLabelPositions[e]?0:this._maxLabelTickLength()));return idt.sum(this._tierHeights)},i.prototype._getIntervalLength=function(t){var e=this._scale.domain()[0],n=Umt.Time.timeIntervalToD3Time(t.interval,this._useUTC).offset(e,t.step);return n>this._scale.domain()[1]?this.width():Math.abs(this._scale.scale(n)-this._scale.scale(e))},i.prototype._maxWidthForInterval=function(t){return this._measurer.measure(t.formatter(i._LONG_DATE)).width},i.prototype._checkTimeAxisTierConfiguration=function(t){if(null!=this._maxTimeIntervalPrecision){var e=i._SORTED_TIME_INTERVAL_INDEX[this._maxTimeIntervalPrecision],n=i._SORTED_TIME_INTERVAL_INDEX[t.interval];if(null!=e&&null!=n&&n<e)return!1}var r=this._maxWidthForInterval(t)+2*this.tickLabelPadding();return Math.min(this._getIntervalLength(t),this.width())>=r},i.prototype._sizeFromOffer=function(e,n){var i=t.prototype._sizeFromOffer.call(this,e,n),r=this._tierHeights.reduce((function(t,e,n,r){return t+e>i.height?t:t+e})),o=this.margin()+(this.annotationsEnabled()?this.annotationTierCount()*this._annotationTierHeight():0);return i.height=Math.min(i.height,r+o),i},i.prototype._setup=function(){t.prototype._setup.call(this),this._setupDomElements()},i.prototype._setupDomElements=function(){this.content().selectAll("."+i.TIME_AXIS_TIER_CLASS).remove(),this._tierLabelContainers=[],this._tierMarkContainers=[],this._tierBaselines=[],this._tickLabelContainer.remove(),this._baseline.remove();for(var t=0;t<this._numTiers;++t){var e=this.content().append("g").classed(i.TIME_AXIS_TIER_CLASS,!0);this._tierLabelContainers.push(e.append("g").classed(Amt.Axis.TICK_LABEL_CLASS+"-container",!0)),this._tierMarkContainers.push(e.append("g").classed(Amt.Axis.TICK_MARK_CLASS+"-container",!0)),this._tierBaselines.push(e.append("line").classed("baseline",!0))}var n=new amt.SvgContext(this._tierLabelContainers[0].node());this._measurer=new amt.CacheMeasurer(n)},i.prototype._getTickIntervalValues=function(t){return this._scale.tickInterval(t.interval,t.step,this._useUTC)},i.prototype._getTickValues=function(){var t=this;return this._possibleTimeAxisConfigurations[this._mostPreciseConfigIndex].reduce((function(e,n){return e.concat(t._getTickIntervalValues(n))}),[])},i.prototype._cleanTiers=function(){for(var t=0;t<this._tierLabelContainers.length;t++)this._tierLabelContainers[t].selectAll("."+Amt.Axis.TICK_LABEL_CLASS).remove(),this._tierMarkContainers[t].selectAll("."+Amt.Axis.TICK_MARK_CLASS).remove(),this._tierBaselines[t].style("visibility","hidden")},i.prototype._getTickValuesForConfiguration=function(t){var e=this._scale.tickInterval(t.interval,t.step,this._useUTC),n=this._scale.domain(),i=e.map((function(t){return t.valueOf()}));return-1===i.indexOf(n[0].valueOf())&&e.unshift(n[0]),-1===i.indexOf(n[1].valueOf())&&e.push(n[1]),e},i.prototype._renderTierLabels=function(t,e,n){var i=this,r=this._getTickValuesForConfiguration(e),o=[];"between"===this._tierLabelPositions[n]&&1===e.step?r.map((function(t,e){e+1>=r.length||o.push(new Date((r[e+1].valueOf()-r[e].valueOf())/2+r[e].valueOf()))})):o=r;var a=t.selectAll("."+Amt.Axis.TICK_LABEL_CLASS).data(o,(function(t){return String(t.valueOf())})),s=a.enter().append("g").classed(Amt.Axis.TICK_LABEL_CLASS,!0);s.append("text");var l,c="center"===this._tierLabelPositions[n]||1===e.step?0:this.tickLabelPadding();l="bottom"===this.orientation()?idt.sum(this._tierHeights.slice(0,n+1))-this.tickLabelPadding():"center"===this._tierLabelPositions[n]?this.height()-idt.sum(this._tierHeights.slice(0,n))-this.tickLabelPadding()-this._maxLabelTickLength():this.height()-idt.sum(this._tierHeights.slice(0,n))-this.tickLabelPadding();var u=a.merge(s),h=u.selectAll("text");h.size()>0&&h.attr("transform","translate("+c+","+l+")"),a.exit().remove(),u.attr("transform",(function(t){return"translate("+i._scale.scale(t)+",0)"}));var d="center"===this._tierLabelPositions[n]||1===e.step?"middle":"start";u.selectAll("text").text(e.formatter).style("text-anchor",d)},i.prototype._renderTickMarks=function(t,e){var n=this._tierMarkContainers[e].selectAll("."+Amt.Axis.TICK_MARK_CLASS).data(t),i=n.enter().append("line").classed(Amt.Axis.TICK_MARK_CLASS,!0).merge(n),r=this._generateTickMarkAttrHash(),o=this._tierHeights.slice(0,e).reduce((function(t,e){return t+e}),0);"bottom"===this.orientation()?(r.y1=o,r.y2=o+("center"===this._tierLabelPositions[e]?this.innerTickLength():this._tierHeights[e])):(r.y1=this.height()-o,r.y2=this.height()-(o+("center"===this._tierLabelPositions[e]?this.innerTickLength():this._tierHeights[e]))),i.attrs(r),"bottom"===this.orientation()?(r.y1=o,r.y2=o+("center"===this._tierLabelPositions[e]?this.endTickLength():this._tierHeights[e])):(r.y1=this.height()-o,r.y2=this.height()-(o+("center"===this._tierLabelPositions[e]?this.endTickLength():this._tierHeights[e]))),idt.select(i.nodes()[0]).attrs(r),idt.select(i.nodes()[i.size()-1]).attrs(r),idt.select(i.nodes()[0]).classed(Amt.Axis.END_TICK_MARK_CLASS,!0),idt.select(i.nodes()[i.size()-1]).classed(Amt.Axis.END_TICK_MARK_CLASS,!0),n.exit().remove()},i.prototype._renderLabellessTickMarks=function(t){var e=this._tickMarkContainer.selectAll("."+Amt.Axis.TICK_MARK_CLASS).data(t),n=e.enter().append("line").classed(Amt.Axis.TICK_MARK_CLASS,!0).merge(e),i=this._generateTickMarkAttrHash();i.y2="bottom"===this.orientation()?this.tickLabelPadding():this.height()-this.tickLabelPadding(),n.attrs(i),e.exit().remove()},i.prototype._generateLabellessTicks=function(){return this._mostPreciseConfigIndex<1?[]:this._getTickIntervalValues(this._possibleTimeAxisConfigurations[this._mostPreciseConfigIndex-1][0])},i.prototype.renderImmediately=function(){var t=this;this._mostPreciseConfigIndex=this._getMostPreciseConfigurationIndex();var e=this._possibleTimeAxisConfigurations[this._mostPreciseConfigIndex];this._cleanTiers(),e.forEach((function(e,n){return t._renderTierLabels(t._tierLabelContainers[n],e,n)}));for(var n=e.map((function(e,n){return t._getTickValuesForConfiguration(e)})),i=0,r=0;r<Math.max(e.length,1);++r){var o=this._generateBaselineAttrHash();o.y1+="bottom"===this.orientation()?i:-i,o.y2=o.y1,this._tierBaselines[r].attrs(o).style("visibility","inherit"),i+=this._tierHeights[r]}var a=[],s=this._scale.domain(),l=this._scale.scale(s[1])-this._scale.scale(s[0]);for(1.5*this._getIntervalLength(e[0])>=l&&(a=this._generateLabellessTicks()),this._renderLabellessTickMarks(a),this._hideOverflowingTiers(),r=0;r<e.length;++r)this._renderTickMarks(n[r],r),this._hideOverlappingAndCutOffLabels(r);return this.annotationsEnabled()?this._drawAnnotations():this._removeAnnotations(),this},i.prototype._hideOverflowingTiers=function(){var t=this,e=this.height(),n=0;this.content().selectAll("."+i.TIME_AXIS_TIER_CLASS).attr("visibility",(function(i,r){return(n+=t._tierHeights[r])<=e?"inherit":"hidden"}))},i.prototype._hideOverlappingAndCutOffLabels=function(t){var e,n=this,i=this.element().node().getBoundingClientRect(),r=this._tierMarkContainers[t].selectAll("."+Amt.Axis.TICK_MARK_CLASS).filter((function(t,e){var n=idt.select(this).style("visibility");return"visible"===n||"inherit"===n})).nodes().map((function(t){return t.getBoundingClientRect()}));this._tierLabelContainers[t].selectAll("."+Amt.Axis.TICK_LABEL_CLASS).filter((function(t,e){var n=idt.select(this).style("visibility");return"visible"===n||"inherit"===n})).each((function(t,o){var a,s=this.getBoundingClientRect(),l=idt.select(this),c=r[o],u=r[o+1],h=null!=e&&Smt.DOM.clientRectsOverlap(s,e),d=null!=c&&Smt.DOM.clientRectsOverlap(s,c),p=null!=u&&Smt.DOM.clientRectsOverlap(s,u);a=s,!(Math.floor(i.left)<=Math.ceil(a.left)&&Math.floor(i.top)<=Math.ceil(a.top)&&Math.floor(a.right)<=Math.ceil(i.left+n.width())&&Math.floor(a.bottom)<=Math.ceil(i.top+n.height()))||h||d||p?l.style("visibility","hidden"):(e=s,l.style("visibility","inherit"))}))},i.prototype.invalidateCache=function(){t.prototype.invalidateCache.call(this),this._measurer.reset()},i.TIME_AXIS_TIER_CLASS="time-axis-tier",i._SORTED_TIME_INTERVAL_INDEX=((n={})[e.TimeInterval.second]=0,n[e.TimeInterval.minute]=1,n[e.TimeInterval.hour]=2,n[e.TimeInterval.day]=3,n[e.TimeInterval.week]=4,n[e.TimeInterval.month]=5,n[e.TimeInterval.year]=6,n),i._DEFAULT_TIME_AXIS_CONFIGURATIONS=function(t){var n=function(e){return Cmt.time(e,t)};return[[{interval:e.TimeInterval.second,step:1,formatter:n("%I:%M:%S %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.second,step:5,formatter:n("%I:%M:%S %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.second,step:10,formatter:n("%I:%M:%S %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.second,step:15,formatter:n("%I:%M:%S %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.second,step:30,formatter:n("%I:%M:%S %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.minute,step:1,formatter:n("%I:%M %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.minute,step:5,formatter:n("%I:%M %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.minute,step:10,formatter:n("%I:%M %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.minute,step:15,formatter:n("%I:%M %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.minute,step:30,formatter:n("%I:%M %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.hour,step:1,formatter:n("%I %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.hour,step:3,formatter:n("%I %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.hour,step:6,formatter:n("%I %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.hour,step:12,formatter:n("%I %p")},{interval:e.TimeInterval.day,step:1,formatter:n("%B %e, %Y")}],[{interval:e.TimeInterval.day,step:1,formatter:n("%a %e")},{interval:e.TimeInterval.month,step:1,formatter:n("%B %Y")}],[{interval:e.TimeInterval.day,step:1,formatter:n("%e")},{interval:e.TimeInterval.month,step:1,formatter:n("%B %Y")}],[{interval:e.TimeInterval.month,step:1,formatter:n("%B")},{interval:e.TimeInterval.year,step:1,formatter:n("%Y")}],[{interval:e.TimeInterval.month,step:1,formatter:n("%b")},{interval:e.TimeInterval.year,step:1,formatter:n("%Y")}],[{interval:e.TimeInterval.month,step:3,formatter:n("%b")},{interval:e.TimeInterval.year,step:1,formatter:n("%Y")}],[{interval:e.TimeInterval.month,step:6,formatter:n("%b")},{interval:e.TimeInterval.year,step:1,formatter:n("%Y")}],[{interval:e.TimeInterval.year,step:1,formatter:n("%Y")}],[{interval:e.TimeInterval.year,step:1,formatter:n("%y")}],[{interval:e.TimeInterval.year,step:5,formatter:n("%Y")}],[{interval:e.TimeInterval.year,step:25,formatter:n("%Y")}],[{interval:e.TimeInterval.year,step:50,formatter:n("%Y")}],[{interval:e.TimeInterval.year,step:100,formatter:n("%Y")}],[{interval:e.TimeInterval.year,step:200,formatter:n("%Y")}],[{interval:e.TimeInterval.year,step:500,formatter:n("%Y")}],[{interval:e.TimeInterval.year,step:1e3,formatter:n("%Y")}]]},i._LONG_DATE=new Date(9999,8,29,12,59,9999),i})(Amt.Axis);e.Time=i})),Gmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),Dft.__exportStar(kmt,e),Dft.__exportStar(Lmt,e),Dft.__exportStar(jmt,e)})),Wmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){this._eventToProcessingFunction={},this._eventTarget=document,this._eventNameToCallbackSet={},this._connected=!1}return t.prototype._hasNoCallbacks=function(){for(var t=Object.keys(this._eventNameToCallbackSet),e=0;e<t.length;e++)if(0!==this._eventNameToCallbackSet[t[e]].size)return!1;return!0},t.prototype._connect=function(){var t=this;this._connected||(Object.keys(this._eventToProcessingFunction).forEach((function(e){t._eventTarget.addEventListener(e,t._eventToProcessingFunction[e],"wheel"===e?{passive:!1}:void 0)})),this._connected=!0)},t.prototype._disconnect=function(){var t=this;this._connected&&this._hasNoCallbacks()&&(Object.keys(this._eventToProcessingFunction).forEach((function(e){t._eventTarget.removeEventListener(e,t._eventToProcessingFunction[e])})),this._connected=!1)},t.prototype._addCallbackForEvent=function(t,e){null==this._eventNameToCallbackSet[t]&&(this._eventNameToCallbackSet[t]=new Smt.CallbackSet),this._eventNameToCallbackSet[t].add(e),this._connect()},t.prototype._removeCallbackForEvent=function(t,e){null!=this._eventNameToCallbackSet[t]&&this._eventNameToCallbackSet[t].delete(e),this._disconnect()},t.prototype._callCallbacksForEvent=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var i=this._eventNameToCallbackSet[t];null!=i&&i.callCallbacks.apply(i,e)},t})();e.Dispatcher=n})),qmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var n=t.call(this)||this;return n._eventToProcessingFunction[e._KEYDOWN_EVENT_NAME]=function(t){return n._processKeydown(t)},n._eventToProcessingFunction[e._KEYUP_EVENT_NAME]=function(t){return n._processKeyup(t)},n}return Dft.__extends(e,t),e.getDispatcher=function(){var t=document[e._DISPATCHER_KEY];return null==t&&(t=new e,document[e._DISPATCHER_KEY]=t),t},e.prototype._processKeydown=function(t){this._callCallbacksForEvent(e._KEYDOWN_EVENT_NAME,t.keyCode,t)},e.prototype._processKeyup=function(t){this._callCallbacksForEvent(e._KEYUP_EVENT_NAME,t.keyCode,t)},e.prototype.onKeyDown=function(t){return this._addCallbackForEvent(e._KEYDOWN_EVENT_NAME,t),this},e.prototype.offKeyDown=function(t){return this._removeCallbackForEvent(e._KEYDOWN_EVENT_NAME,t),this},e.prototype.onKeyUp=function(t){return this._addCallbackForEvent(e._KEYUP_EVENT_NAME,t),this},e.prototype.offKeyUp=function(t){return this._removeCallbackForEvent(e._KEYUP_EVENT_NAME,t),this},e._DISPATCHER_KEY="__Plottable_Dispatcher_Key",e._KEYDOWN_EVENT_NAME="keydown",e._KEYUP_EVENT_NAME="keyup",e})(Wmt.Dispatcher);e.Key=n})),Ymt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(n){var i=t.call(this)||this;i._lastMousePosition={x:-1,y:-1},i._translator=Smt.getTranslator(n);var r=function(t){return i._measureAndDispatch(n,t,e._MOUSEMOVE_EVENT_NAME,"page")};return i._eventToProcessingFunction[e._MOUSEOVER_EVENT_NAME]=r,i._eventToProcessingFunction[e._MOUSEMOVE_EVENT_NAME]=r,i._eventToProcessingFunction[e._MOUSEOUT_EVENT_NAME]=r,i._eventToProcessingFunction[e._MOUSEDOWN_EVENT_NAME]=function(t){return i._measureAndDispatch(n,t,e._MOUSEDOWN_EVENT_NAME)},i._eventToProcessingFunction[e._MOUSEUP_EVENT_NAME]=function(t){return i._measureAndDispatch(n,t,e._MOUSEUP_EVENT_NAME,"page")},i._eventToProcessingFunction[e._WHEEL_EVENT_NAME]=function(t){return i._measureAndDispatch(n,t,e._WHEEL_EVENT_NAME)},i._eventToProcessingFunction[e._DBLCLICK_EVENT_NAME]=function(t){return i._measureAndDispatch(n,t,e._DBLCLICK_EVENT_NAME)},i}return Dft.__extends(e,t),e.getDispatcher=function(t){var n=t.root().rootElement(),i=n[e._DISPATCHER_KEY];return null==i&&(i=new e(t),n[e._DISPATCHER_KEY]=i),i},e.prototype.onMouseMove=function(t){return this._addCallbackForEvent(e._MOUSEMOVE_EVENT_NAME,t),this},e.prototype.offMouseMove=function(t){return this._removeCallbackForEvent(e._MOUSEMOVE_EVENT_NAME,t),this},e.prototype.onMouseDown=function(t){return this._addCallbackForEvent(e._MOUSEDOWN_EVENT_NAME,t),this},e.prototype.offMouseDown=function(t){return this._removeCallbackForEvent(e._MOUSEDOWN_EVENT_NAME,t),this},e.prototype.onMouseUp=function(t){return this._addCallbackForEvent(e._MOUSEUP_EVENT_NAME,t),this},e.prototype.offMouseUp=function(t){return this._removeCallbackForEvent(e._MOUSEUP_EVENT_NAME,t),this},e.prototype.onWheel=function(t){return this._addCallbackForEvent(e._WHEEL_EVENT_NAME,t),this},e.prototype.offWheel=function(t){return this._removeCallbackForEvent(e._WHEEL_EVENT_NAME,t),this},e.prototype.onDblClick=function(t){return this._addCallbackForEvent(e._DBLCLICK_EVENT_NAME,t),this},e.prototype.offDblClick=function(t){return this._removeCallbackForEvent(e._DBLCLICK_EVENT_NAME,t),this},e.prototype._measureAndDispatch=function(t,e,n,i){if(void 0===i&&(i="element"),"page"!==i&&"element"!==i)throw new Error("Invalid scope '"+i+"', must be 'element' or 'page'");if("page"===i||this.eventInside(t,e)){var r=this._translator.computePosition(e.clientX,e.clientY);this._lastMousePosition=r,this._callCallbacksForEvent(n,this.lastMousePosition(),e)}},e.prototype.eventInside=function(t,e){return Smt.Translator.isEventInside(t,e)},e.prototype.lastMousePosition=function(){return this._lastMousePosition},e._DISPATCHER_KEY="__Plottable_Dispatcher_Mouse",e._MOUSEOVER_EVENT_NAME="mouseover",e._MOUSEMOVE_EVENT_NAME="mousemove",e._MOUSEOUT_EVENT_NAME="mouseout",e._MOUSEDOWN_EVENT_NAME="mousedown",e._MOUSEUP_EVENT_NAME="mouseup",e._WHEEL_EVENT_NAME="wheel",e._DBLCLICK_EVENT_NAME="dblclick",e})(Wmt.Dispatcher);e.Mouse=n})),Xmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(n){var i=t.call(this)||this;return i._translator=Smt.getTranslator(n),i._eventToProcessingFunction[e._TOUCHSTART_EVENT_NAME]=function(t){return i._measureAndDispatch(n,t,e._TOUCHSTART_EVENT_NAME,"page")},i._eventToProcessingFunction[e._TOUCHMOVE_EVENT_NAME]=function(t){return i._measureAndDispatch(n,t,e._TOUCHMOVE_EVENT_NAME,"page")},i._eventToProcessingFunction[e._TOUCHEND_EVENT_NAME]=function(t){return i._measureAndDispatch(n,t,e._TOUCHEND_EVENT_NAME,"page")},i._eventToProcessingFunction[e._TOUCHCANCEL_EVENT_NAME]=function(t){return i._measureAndDispatch(n,t,e._TOUCHCANCEL_EVENT_NAME,"page")},i}return Dft.__extends(e,t),e.getDispatcher=function(t){var n=t.root().rootElement(),i=n[e._DISPATCHER_KEY];return null==i&&(i=new e(t),n[e._DISPATCHER_KEY]=i),i},e.prototype.onTouchStart=function(t){return this._addCallbackForEvent(e._TOUCHSTART_EVENT_NAME,t),this},e.prototype.offTouchStart=function(t){return this._removeCallbackForEvent(e._TOUCHSTART_EVENT_NAME,t),this},e.prototype.onTouchMove=function(t){return this._addCallbackForEvent(e._TOUCHMOVE_EVENT_NAME,t),this},e.prototype.offTouchMove=function(t){return this._removeCallbackForEvent(e._TOUCHMOVE_EVENT_NAME,t),this},e.prototype.onTouchEnd=function(t){return this._addCallbackForEvent(e._TOUCHEND_EVENT_NAME,t),this},e.prototype.offTouchEnd=function(t){return this._removeCallbackForEvent(e._TOUCHEND_EVENT_NAME,t),this},e.prototype.onTouchCancel=function(t){return this._addCallbackForEvent(e._TOUCHCANCEL_EVENT_NAME,t),this},e.prototype.offTouchCancel=function(t){return this._removeCallbackForEvent(e._TOUCHCANCEL_EVENT_NAME,t),this},e.prototype._measureAndDispatch=function(t,e,n,i){if(void 0===i&&(i="element"),"page"!==i&&"element"!==i)throw new Error("Invalid scope '"+i+"', must be 'element' or 'page'");if("element"!==i||this.eventInside(t,e)){for(var r=e.changedTouches,o={},a=[],s=0;s<r.length;s++){var l=r[s],c=l.identifier,u=this._translator.computePosition(l.clientX,l.clientY);null!=u&&(o[c]=u,a.push(c))}a.length>0&&this._callCallbacksForEvent(n,a,o,e)}},e.prototype.eventInside=function(t,e){return Smt.Translator.isEventInside(t,e)},e._DISPATCHER_KEY="__Plottable_Dispatcher_Touch",e._TOUCHSTART_EVENT_NAME="touchstart",e._TOUCHMOVE_EVENT_NAME="touchmove",e._TOUCHEND_EVENT_NAME="touchend",e._TOUCHCANCEL_EVENT_NAME="touchcancel",e})(Wmt.Dispatcher);e.Touch=n})),$mt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),Dft.__exportStar(qmt,e),Dft.__exportStar(Ymt,e),Dft.__exportStar(Xmt,e)})),Kmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){var t=this;this._anchorCallback=function(e){return t._anchor(e)},this._enabled=!0}return t.prototype.attachTo=function(t){return this._disconnect(),this._componentAttachedTo=t,this._connect(),this},t.prototype.detachFrom=function(t){return this.detach()},t.prototype.detach=function(){return this._disconnect(),this._componentAttachedTo=null,this},t.prototype.enabled=function(t){return null==t?this._enabled:(this._enabled=t,this._enabled?this._connect():this._disconnect(),this)},t.prototype._anchor=function(t){this._isAnchored=!0},t.prototype._unanchor=function(){this._isAnchored=!1},t.prototype._translateToComponentSpace=function(t){var e=this._componentAttachedTo.originToRoot();return{x:t.x-e.x,y:t.y-e.y}},t.prototype._isInsideComponent=function(t){return 0<=t.x&&0<=t.y&&t.x<=this._componentAttachedTo.width()&&t.y<=this._componentAttachedTo.height()},t.prototype._connect=function(){this.enabled()&&null!=this._componentAttachedTo&&!this._isAnchored&&this._componentAttachedTo.onAnchor(this._anchorCallback)},t.prototype._disconnect=function(){this._isAnchored&&this._unanchor(),null!=this._componentAttachedTo&&this._componentAttachedTo.offAnchor(this._anchorCallback)},t})();e.Interaction=n})),Zmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._clickedDown=!1,e._doubleClicking=!1,e._onClickCallbacks=new Smt.CallbackSet,e._onDoubleClickCallbacks=new Smt.CallbackSet,e._mouseDownCallback=function(t,n){return e._handleClickDown(t,n)},e._mouseUpCallback=function(t,n){return e._handleClickUp(t,n)},e._dblClickCallback=function(t,n){return e._handleDblClick(t,n)},e._touchStartCallback=function(t,n,i){return e._handleClickDown(n[t[0]],i)},e._touchEndCallback=function(t,n,i){return e._handleClickUp(n[t[0]],i)},e._touchCancelCallback=function(t,n){return e._clickedDown=!1},e}return Dft.__extends(e,t),e.prototype._anchor=function(e){t.prototype._anchor.call(this,e),this._mouseDispatcher=$mt.Mouse.getDispatcher(e),this._mouseDispatcher.onMouseDown(this._mouseDownCallback),this._mouseDispatcher.onMouseUp(this._mouseUpCallback),this._mouseDispatcher.onDblClick(this._dblClickCallback),this._touchDispatcher=$mt.Touch.getDispatcher(e),this._touchDispatcher.onTouchStart(this._touchStartCallback),this._touchDispatcher.onTouchEnd(this._touchEndCallback),this._touchDispatcher.onTouchCancel(this._touchCancelCallback)},e.prototype._unanchor=function(){t.prototype._unanchor.call(this),this._mouseDispatcher.offMouseDown(this._mouseDownCallback),this._mouseDispatcher.offMouseUp(this._mouseUpCallback),this._mouseDispatcher.offDblClick(this._dblClickCallback),this._mouseDispatcher=null,this._touchDispatcher.offTouchStart(this._touchStartCallback),this._touchDispatcher.offTouchEnd(this._touchEndCallback),this._touchDispatcher.offTouchCancel(this._touchCancelCallback),this._touchDispatcher=null},e.prototype._handleClickDown=function(t,e){var n=this._translateToComponentSpace(t);this._isInsideComponent(n)&&(this._clickedDown=!0,this._clickedPoint=n)},e.prototype._handleClickUp=function(t,n){var i=this,r=this._translateToComponentSpace(t);this._clickedDown&&e._pointsEqual(r,this._clickedPoint)&&setTimeout((function(){i._doubleClicking||i._onClickCallbacks.callCallbacks(r,n)}),0),this._clickedDown=!1},e.prototype._handleDblClick=function(t,e){var n=this,i=this._translateToComponentSpace(t);this._doubleClicking=!0,this._onDoubleClickCallbacks.callCallbacks(i,e),setTimeout((function(){return n._doubleClicking=!1}),0)},e._pointsEqual=function(t,e){return t.x===e.x&&t.y===e.y},e.prototype.onClick=function(t){return this._onClickCallbacks.add(t),this},e.prototype.offClick=function(t){return this._onClickCallbacks.delete(t),this},e.prototype.onDoubleClick=function(t){return this._onDoubleClickCallbacks.add(t),this},e.prototype.offDoubleClick=function(t){return this._onDoubleClickCallbacks.delete(t),this},e})(Kmt.Interaction);e.Click=n})),Jmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(n){var i=t.call(this)||this;return i._dragging=!1,i._constrainedToComponent=!0,i._mouseFilter=e._DEFAULT_MOUSE_FILTER,i._dragStartCallbacks=new Smt.CallbackSet,i._dragCallbacks=new Smt.CallbackSet,i._dragEndCallbacks=new Smt.CallbackSet,i._mouseDownCallback=function(t,e){return i._startDrag(t,e)},i._mouseMoveCallback=function(t,e){return i._doDrag(t,e)},i._mouseUpCallback=function(t,e){return i._endDrag(t,e)},i._touchStartCallback=function(t,e,n){return i._startDrag(e[t[0]],n)},i._touchMoveCallback=function(t,e,n){return i._doDrag(e[t[0]],n)},i._touchEndCallback=function(t,e,n){return i._endDrag(e[t[0]],n)},i._mouseButton=void 0!==n?n:0,i}return Dft.__extends(e,t),e.prototype._anchor=function(e){t.prototype._anchor.call(this,e),this._mouseDispatcher=$mt.Mouse.getDispatcher(this._componentAttachedTo),this._mouseDispatcher.onMouseDown(this._mouseDownCallback),this._mouseDispatcher.onMouseMove(this._mouseMoveCallback),this._mouseDispatcher.onMouseUp(this._mouseUpCallback),this._touchDispatcher=$mt.Touch.getDispatcher(this._componentAttachedTo),this._touchDispatcher.onTouchStart(this._touchStartCallback),this._touchDispatcher.onTouchMove(this._touchMoveCallback),this._touchDispatcher.onTouchEnd(this._touchEndCallback)},e.prototype._unanchor=function(){t.prototype._unanchor.call(this),this._mouseDispatcher.offMouseDown(this._mouseDownCallback),this._mouseDispatcher.offMouseMove(this._mouseMoveCallback),this._mouseDispatcher.offMouseUp(this._mouseUpCallback),this._mouseDispatcher=null,this._touchDispatcher.offTouchStart(this._touchStartCallback),this._touchDispatcher.offTouchMove(this._touchMoveCallback),this._touchDispatcher.offTouchEnd(this._touchEndCallback),this._touchDispatcher=null},e.prototype._translateAndConstrain=function(t){var e=this._translateToComponentSpace(t);return this._constrainedToComponent?{x:Smt.Math.clamp(e.x,0,this._componentAttachedTo.width()),y:Smt.Math.clamp(e.y,0,this._componentAttachedTo.height())}:e},e.prototype._startDrag=function(t,e){if(!(e instanceof MouseEvent)||this._mouseFilter(e)){var n=this._translateToComponentSpace(t);this._isInsideComponent(n)&&(e.preventDefault(),this._dragging=!0,this._dragOrigin=n,this._dragStartCallbacks.callCallbacks(this._dragOrigin))}},e.prototype._doDrag=function(t,e){this._dragging&&this._dragCallbacks.callCallbacks(this._dragOrigin,this._translateAndConstrain(t))},e.prototype._endDrag=function(t,e){e instanceof MouseEvent&&e.button!==this._mouseButton||this._dragging&&(this._dragging=!1,this._dragEndCallbacks.callCallbacks(this._dragOrigin,this._translateAndConstrain(t)))},e.prototype.constrainedToComponent=function(t){return null==t?this._constrainedToComponent:(this._constrainedToComponent=t,this)},e.prototype.mouseFilter=function(t){return 0===arguments.length?this._mouseFilter:(this._mouseFilter=t,this)},e.prototype.onDragStart=function(t){return this._dragStartCallbacks.add(t),this},e.prototype.offDragStart=function(t){return this._dragStartCallbacks.delete(t),this},e.prototype.onDrag=function(t){return this._dragCallbacks.add(t),this},e.prototype.offDrag=function(t){return this._dragCallbacks.delete(t),this},e.prototype.onDragEnd=function(t){return this._dragEndCallbacks.add(t),this},e.prototype.offDragEnd=function(t){return this._dragEndCallbacks.delete(t),this},e._DEFAULT_MOUSE_FILTER=function(t){return 0===t.button},e})(Kmt.Interaction);e.Drag=n})),Qmt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._keyPressCallbacks={},e._keyReleaseCallbacks={},e._mouseMoveCallback=function(t){return!1},e._downedKeys=new Smt.Set,e._keyDownCallback=function(t,n){return e._handleKeyDownEvent(t,n)},e._keyUpCallback=function(t){return e._handleKeyUpEvent(t)},e}return Dft.__extends(e,t),e.prototype._anchor=function(e){t.prototype._anchor.call(this,e),this._positionDispatcher=$mt.Mouse.getDispatcher(this._componentAttachedTo),this._positionDispatcher.onMouseMove(this._mouseMoveCallback),this._keyDispatcher=$mt.Key.getDispatcher(),this._keyDispatcher.onKeyDown(this._keyDownCallback),this._keyDispatcher.onKeyUp(this._keyUpCallback)},e.prototype._unanchor=function(){t.prototype._unanchor.call(this),this._positionDispatcher.offMouseMove(this._mouseMoveCallback),this._positionDispatcher=null,this._keyDispatcher.offKeyDown(this._keyDownCallback),this._keyDispatcher.offKeyUp(this._keyUpCallback),this._keyDispatcher=null},e.prototype._handleKeyDownEvent=function(t,e){var n=this._translateToComponentSpace(this._positionDispatcher.lastMousePosition());this._isInsideComponent(n)&&!e.repeat&&(this._keyPressCallbacks[t]&&this._keyPressCallbacks[t].callCallbacks(t),this._downedKeys.add(t))},e.prototype._handleKeyUpEvent=function(t){this._downedKeys.has(t)&&this._keyReleaseCallbacks[t]&&this._keyReleaseCallbacks[t].callCallbacks(t),this._downedKeys.delete(t)},e.prototype.onKeyPress=function(t,e){return this._keyPressCallbacks[t]||(this._keyPressCallbacks[t]=new Smt.CallbackSet),this._keyPressCallbacks[t].add(e),this},e.prototype.offKeyPress=function(t,e){return this._keyPressCallbacks[t].delete(e),0===this._keyPressCallbacks[t].size&&delete this._keyPressCallbacks[t],this},e.prototype.onKeyRelease=function(t,e){return this._keyReleaseCallbacks[t]||(this._keyReleaseCallbacks[t]=new Smt.CallbackSet),this._keyReleaseCallbacks[t].add(e),this},e.prototype.offKeyRelease=function(t,e){return this._keyReleaseCallbacks[t].delete(e),0===this._keyReleaseCallbacks[t].size&&delete this._keyReleaseCallbacks[t],this},e})(Kmt.Interaction);e.Key=n})),tgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e,n){var i=t.call(this)||this;return i._wheelFilter=function(t){return!0},i._wheelCallback=function(t,e){return i._handleWheelEvent(t,e)},i._touchStartCallback=function(t,e,n){return i._handleTouchStart(t,e,n)},i._touchMoveCallback=function(t,e,n){return i._handlePinch(t,e,n)},i._touchEndCallback=function(t,e,n){return i._handleTouchEnd(t,e,n)},i._touchCancelCallback=function(t,e,n){return i._handleTouchEnd(t,e,n)},i._panEndCallbacks=new Smt.CallbackSet,i._zoomEndCallbacks=new Smt.CallbackSet,i._panZoomUpdateCallbacks=new Smt.CallbackSet,i._xScales=new Smt.Set,i._yScales=new Smt.Set,i._dragInteraction=new ngt.Drag,i._setupDragInteraction(),i._touchIds=idt.map(),i._minDomainExtents=new Smt.Map,i._maxDomainExtents=new Smt.Map,i._minDomainValues=new Smt.Map,i._maxDomainValues=new Smt.Map,null!=e&&i.addXScale(e),null!=n&&i.addYScale(n),i}return Dft.__extends(e,t),e.prototype.dragInteraction=function(){return this._dragInteraction},e.prototype.wheelFilter=function(t){return 0===arguments.length?this._wheelFilter:(this._wheelFilter=t,this)},e.prototype.pan=function(t){var e=this;this.xScales().forEach((function(n){n.pan(e._constrainedTranslation(n,t.x))})),this.yScales().forEach((function(n){n.pan(e._constrainedTranslation(n,t.y))})),this._panZoomUpdateCallbacks.callCallbacks()},e.prototype.zoom=function(t,e,n){var i,r,o=this;return void 0===n&&(n=!0),null!=e&&(i=e.x,r=e.y,n&&(this.xScales().forEach((function(e){var n=o._constrainedZoom(e,t,i);i=n.centerPoint,t=n.zoomAmount})),this.yScales().forEach((function(e){var n=o._constrainedZoom(e,t,r);r=n.centerPoint,t=n.zoomAmount})))),this.xScales().forEach((function(e){var n=e.range();e.zoom(t,null==i?(n[1]+n[0])/2:i)})),this.yScales().forEach((function(e){var n=e.range();e.zoom(t,null==r?(n[1]+n[0])/2:r)})),this._panZoomUpdateCallbacks.callCallbacks(),{zoomAmount:t,centerValue:{centerX:i,centerY:r}}},e.prototype._anchor=function(e){t.prototype._anchor.call(this,e),this._dragInteraction.attachTo(e),this._mouseDispatcher=$mt.Mouse.getDispatcher(this._componentAttachedTo),this._mouseDispatcher.onWheel(this._wheelCallback),this._touchDispatcher=$mt.Touch.getDispatcher(this._componentAttachedTo),this._touchDispatcher.onTouchStart(this._touchStartCallback),this._touchDispatcher.onTouchMove(this._touchMoveCallback),this._touchDispatcher.onTouchEnd(this._touchEndCallback),this._touchDispatcher.onTouchCancel(this._touchCancelCallback)},e.prototype._unanchor=function(){t.prototype._unanchor.call(this),this._mouseDispatcher.offWheel(this._wheelCallback),this._mouseDispatcher=null,this._touchDispatcher.offTouchStart(this._touchStartCallback),this._touchDispatcher.offTouchMove(this._touchMoveCallback),this._touchDispatcher.offTouchEnd(this._touchEndCallback),this._touchDispatcher.offTouchCancel(this._touchCancelCallback),this._touchDispatcher=null,this._dragInteraction.detach()},e.prototype._handleTouchStart=function(t,e,n){for(var i=0;i<t.length&&this._touchIds.size()<2;i++){var r=t[i];this._touchIds.set(r.toString(),this._translateToComponentSpace(e[r]))}},e.prototype._handlePinch=function(t,n,i){var r=this;if(!(this._touchIds.size()<2)){var o=this._touchIds.values();if(this._isInsideComponent(this._translateToComponentSpace(o[0]))&&this._isInsideComponent(this._translateToComponentSpace(o[1]))){var a=e._pointDistance(o[0],o[1]);if(0!==a){t.forEach((function(t){r._touchIds.has(t.toString())&&r._touchIds.set(t.toString(),r._translateToComponentSpace(n[t]))}));var s=this._touchIds.values(),l=e._pointDistance(s[0],s[1]);if(0!==l){var c=a/l,u=s.map((function(t,e){return{x:(t.x-o[e].x)/c,y:(t.y-o[e].y)/c}})),h=e.centerPoint(o[0],o[1]),d=this.zoom(c,h),p=d.centerValue,f=d.zoomAmount,m=p.centerX,g=p.centerY,_=o.map((function(t,e){return{x:u[e].x*f+t.x,y:u[e].y*f+t.y}}));this.pan({x:m-(_[0].x+_[1].x)/2,y:g-(_[0].y+_[1].y)/2})}}}}},e.centerPoint=function(t,e){var n=Math.min(t.x,e.x),i=Math.max(t.x,e.x),r=Math.min(t.y,e.y);return{x:(n+i)/2,y:(Math.max(t.y,e.y)+r)/2}},e._pointDistance=function(t,e){var n=Math.min(t.x,e.x),i=Math.max(t.x,e.x),r=Math.min(t.y,e.y),o=Math.max(t.y,e.y);return Math.sqrt(Math.pow(i-n,2)+Math.pow(o-r,2))},e.prototype._handleTouchEnd=function(t,e,n){var i=this;t.forEach((function(t){i._touchIds.remove(t.toString())})),this._touchIds.size()>0&&this._zoomEndCallbacks.callCallbacks()},e.prototype._handleWheelEvent=function(t,n){if(this._wheelFilter(n)){var i=this._translateToComponentSpace(t);if(this._isInsideComponent(i)){n.preventDefault();var r=Math.pow(2,(0!==n.deltaY?n.deltaY:n.deltaX)*(n.deltaMode?e._PIXELS_PER_LINE:1)*.002);this.zoom(r,i),this._zoomEndCallbacks.callCallbacks()}}},e.prototype._constrainedZoom=function(t,e,n){return Nmt.constrainedZoom(t,e,n,this.minDomainExtent(t),this.maxDomainExtent(t),this.minDomainValue(t),this.maxDomainValue(t))},e.prototype._constrainedTranslation=function(t,e){return Nmt.constrainedTranslation(t,e,this.minDomainValue(t),this.maxDomainValue(t))},e.prototype._setupDragInteraction=function(){var t,e=this;this._dragInteraction.constrainedToComponent(!1),this._dragInteraction.onDragStart((function(){return t=null})),this._dragInteraction.onDrag((function(n,i){e._touchIds.size()>=2||(e.pan({x:(null==t?n.x:t.x)-i.x,y:(null==t?n.y:t.y)-i.y}),t=i)})),this._dragInteraction.onDragEnd((function(){return e._panEndCallbacks.callCallbacks()}))},e.prototype._nonLinearScaleWithExtents=function(t){return!(null==this.minDomainExtent(t)||null==this.maxDomainExtent(t)||t instanceof Umt.Linear||t instanceof Umt.Time)},e.prototype.xScales=function(t){var e=this;if(null==t){var n=[];return this._xScales.forEach((function(t){n.push(t)})),n}return this._xScales=new Smt.Set,t.forEach((function(t){e.addXScale(t)})),this},e.prototype.yScales=function(t){var e=this;if(null==t){var n=[];return this._yScales.forEach((function(t){n.push(t)})),n}return this._yScales=new Smt.Set,t.forEach((function(t){e.addYScale(t)})),this},e.prototype.addXScale=function(t){return this._xScales.add(t),this},e.prototype.removeXScale=function(t){return this._xScales.delete(t),this._minDomainExtents.delete(t),this._maxDomainExtents.delete(t),this._minDomainValues.delete(t),this._maxDomainValues.delete(t),this},e.prototype.addYScale=function(t){return this._yScales.add(t),this},e.prototype.removeYScale=function(t){return this._yScales.delete(t),this._minDomainExtents.delete(t),this._maxDomainExtents.delete(t),this._minDomainValues.delete(t),this._maxDomainValues.delete(t),this},e.prototype.minDomainExtent=function(t,e){if(null==e)return this._minDomainExtents.get(t);if(e.valueOf()<0)throw new Error("extent must be non-negative");var n=this.maxDomainExtent(t);if(null!=n&&n.valueOf()<e.valueOf())throw new Error("minDomainExtent must be smaller than maxDomainExtent for the same Scale");return this._nonLinearScaleWithExtents(t)&&Smt.Window.warn("Panning and zooming with extents on a nonlinear scale may have unintended behavior."),this._minDomainExtents.set(t,e),this},e.prototype.maxDomainExtent=function(t,e){if(null==e)return this._maxDomainExtents.get(t);if(e.valueOf()<=0)throw new Error("extent must be positive");var n=this.minDomainExtent(t);if(null!=n&&e.valueOf()<n.valueOf())throw new Error("maxDomainExtent must be larger than minDomainExtent for the same Scale");return this._nonLinearScaleWithExtents(t)&&Smt.Window.warn("Panning and zooming with extents on a nonlinear scale may have unintended behavior."),this._maxDomainExtents.set(t,e),this},e.prototype.minDomainValue=function(t,e){return null==e?this._minDomainValues.get(t):(this._minDomainValues.set(t,e),this)},e.prototype.maxDomainValue=function(t,e){return null==e?this._maxDomainValues.get(t):(this._maxDomainValues.set(t,e),this)},e.prototype.setMinMaxDomainValuesTo=function(t){this._minDomainValues.delete(t),this._maxDomainValues.delete(t);var e=t.getTransformationDomain(),n=e[1];return this.minDomainValue(t,e[0]),this.maxDomainValue(t,n),this},e.prototype.onPanEnd=function(t){return this._panEndCallbacks.add(t),this},e.prototype.offPanEnd=function(t){return this._panEndCallbacks.delete(t),this},e.prototype.onZoomEnd=function(t){return this._zoomEndCallbacks.add(t),this},e.prototype.offZoomEnd=function(t){return this._zoomEndCallbacks.delete(t),this},e.prototype.onPanZoomUpdate=function(t){return this._panZoomUpdateCallbacks.add(t),this},e.prototype.offPanZoomUpdate=function(t){return this._panZoomUpdateCallbacks.delete(t),this},e._PIXELS_PER_LINE=120,e})(Kmt.Interaction);e.PanZoom=n})),egt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._overComponent=!1,e._pointerEnterCallbacks=new Smt.CallbackSet,e._pointerMoveCallbacks=new Smt.CallbackSet,e._pointerExitCallbacks=new Smt.CallbackSet,e._mouseMoveCallback=function(t,n){return e._handleMouseEvent(t,n)},e._touchStartCallback=function(t,n,i){return e._handleTouchEvent(n[t[0]],i)},e}return Dft.__extends(e,t),e.prototype._anchor=function(e){t.prototype._anchor.call(this,e),this._mouseDispatcher=$mt.Mouse.getDispatcher(this._componentAttachedTo),this._mouseDispatcher.onMouseMove(this._mouseMoveCallback),this._touchDispatcher=$mt.Touch.getDispatcher(this._componentAttachedTo),this._touchDispatcher.onTouchStart(this._touchStartCallback)},e.prototype._unanchor=function(){t.prototype._unanchor.call(this),this._mouseDispatcher.offMouseMove(this._mouseMoveCallback),this._mouseDispatcher=null,this._touchDispatcher.offTouchStart(this._touchStartCallback),this._touchDispatcher=null},e.prototype._handleMouseEvent=function(t,e){var n=this._mouseDispatcher.eventInside(this._componentAttachedTo,e);this._handlePointerEvent(t,n)},e.prototype._handleTouchEvent=function(t,e){var n=this._touchDispatcher.eventInside(this._componentAttachedTo,e);this._handlePointerEvent(t,n)},e.prototype._handlePointerEvent=function(t,e){var n=this._translateToComponentSpace(t),i=this._isInsideComponent(n);i&&e?(this._overComponent||this._pointerEnterCallbacks.callCallbacks(n),this._pointerMoveCallbacks.callCallbacks(n)):this._overComponent&&this._pointerExitCallbacks.callCallbacks(n),this._overComponent=i&&e},e.prototype.onPointerEnter=function(t){return this._pointerEnterCallbacks.add(t),this},e.prototype.offPointerEnter=function(t){return this._pointerEnterCallbacks.delete(t),this},e.prototype.onPointerMove=function(t){return this._pointerMoveCallbacks.add(t),this},e.prototype.offPointerMove=function(t){return this._pointerMoveCallbacks.delete(t),this},e.prototype.onPointerExit=function(t){return this._pointerExitCallbacks.add(t),this},e.prototype.offPointerExit=function(t){return this._pointerExitCallbacks.delete(t),this},e})(Kmt.Interaction);e.Pointer=n})),ngt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),Dft.__exportStar(Zmt,e),Dft.__exportStar(Jmt,e),Dft.__exportStar(Qmt,e),Dft.__exportStar(tgt,e),Dft.__exportStar(egt,e),e.zoomOut=Nmt.zoomOut})),igt=be((function(t,e){var n;
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),(function(t){t[t.VALUE=0]="VALUE",t[t.PIXEL=1]="PIXEL"})(n=e.PropertyMode||(e.PropertyMode={}));var i=(function(t){function e(){var e=t.call(this)||this;return e._boxVisible=!1,e._boxBounds={topLeft:{x:0,y:0},bottomRight:{x:0,y:0}},e._xBoundsMode=n.PIXEL,e._yBoundsMode=n.PIXEL,e.addClass("selection-box-layer"),e._adjustBoundsCallback=function(){e.render()},e._overflowHidden=!0,e._xExtent=[void 0,void 0],e._yExtent=[void 0,void 0],e}return Dft.__extends(e,t),e.prototype._setup=function(){t.prototype._setup.call(this),this._box=this.content().append("g").classed("selection-box",!0).remove(),this._boxArea=this._box.append("rect").classed("selection-area",!0)},e.prototype._sizeFromOffer=function(t,e){return{width:t,height:e}},e.prototype.bounds=function(t){return null==t?this._getBounds():(this._setBounds(t),this._xBoundsMode=n.PIXEL,this._yBoundsMode=n.PIXEL,this.render(),this)},e.prototype._setBounds=function(t){var e={x:Math.min(t.topLeft.x,t.bottomRight.x),y:Math.min(t.topLeft.y,t.bottomRight.y)},n={x:Math.max(t.topLeft.x,t.bottomRight.x),y:Math.max(t.topLeft.y,t.bottomRight.y)};this._boxBounds={topLeft:e,bottomRight:n}},e.prototype._getBounds=function(){return{topLeft:{x:this._xBoundsMode===n.PIXEL?this._boxBounds.topLeft.x:null==this._xScale?0:Math.min(this.xScale().scale(this.xExtent()[0]),this.xScale().scale(this.xExtent()[1])),y:this._yBoundsMode===n.PIXEL?this._boxBounds.topLeft.y:null==this._yScale?0:Math.min(this.yScale().scale(this.yExtent()[0]),this.yScale().scale(this.yExtent()[1]))},bottomRight:{x:this._xBoundsMode===n.PIXEL?this._boxBounds.bottomRight.x:null==this._xScale?0:Math.max(this.xScale().scale(this.xExtent()[0]),this.xScale().scale(this.xExtent()[1])),y:this._yBoundsMode===n.PIXEL?this._boxBounds.bottomRight.y:null==this._yScale?0:Math.max(this.yScale().scale(this.yExtent()[0]),this.yScale().scale(this.yExtent()[1]))}}},e.prototype.renderImmediately=function(){if(t.prototype.renderImmediately.call(this),this._boxVisible){var e=this.bounds(),n=e.topLeft.y,i=e.bottomRight.y,r=e.topLeft.x,o=e.bottomRight.x;if(!(Smt.Math.isValidNumber(n)&&Smt.Math.isValidNumber(i)&&Smt.Math.isValidNumber(r)&&Smt.Math.isValidNumber(o)))throw new Error("bounds have not been properly set");this._boxArea.attrs({x:r,y:n,width:o-r,height:i-n}),this.content().node().appendChild(this._box.node())}else this._box.remove();return this},e.prototype.boxVisible=function(t){return null==t?this._boxVisible:(this._boxVisible=t,this.render(),this)},e.prototype.fixedWidth=function(){return!0},e.prototype.fixedHeight=function(){return!0},e.prototype.xScale=function(t){return null==t?this._xScale:(null!=this._xScale&&this._xScale.offUpdate(this._adjustBoundsCallback),this._xScale=t,this._xBoundsMode=n.VALUE,this._xScale.onUpdate(this._adjustBoundsCallback),this.render(),this)},e.prototype.yScale=function(t){return null==t?this._yScale:(null!=this._yScale&&this._yScale.offUpdate(this._adjustBoundsCallback),this._yScale=t,this._yBoundsMode=n.VALUE,this._yScale.onUpdate(this._adjustBoundsCallback),this.render(),this)},e.prototype.xExtent=function(t){return null==t?this._getXExtent():(this._setXExtent(t),this._xBoundsMode=n.VALUE,this.render(),this)},e.prototype._getXExtent=function(){return this._xBoundsMode===n.VALUE?this._xExtent:null==this._xScale?[void 0,void 0]:[this._xScale.invert(this._boxBounds.topLeft.x),this._xScale.invert(this._boxBounds.bottomRight.x)]},e.prototype._setXExtent=function(t){this._xExtent=t},e.prototype.yExtent=function(t){return null==t?this._getYExtent():(this._setYExtent(t),this._yBoundsMode=n.VALUE,this.render(),this)},e.prototype._getYExtent=function(){return this._yBoundsMode===n.VALUE?this._yExtent:null==this._yScale?[void 0,void 0]:[this._yScale.invert(this._boxBounds.topLeft.y),this._yScale.invert(this._boxBounds.bottomRight.y)]},e.prototype._setYExtent=function(t){this._yExtent=t},e.prototype.destroy=function(){t.prototype.destroy.call(this),null!=this._xScale&&this.xScale().offUpdate(this._adjustBoundsCallback),null!=this._yScale&&this.yScale().offUpdate(this._adjustBoundsCallback)},e})(Tmt.Component);e.SelectionBoxLayer=i})),rgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._detectionRadius=3,e._resizable=!1,e._movable=!1,e._hasCorners=!0,e.addClass("drag-box-layer"),e._dragInteraction=new ngt.Drag,e._setUpCallbacks(),e._dragInteraction.attachTo(e),e._dragStartCallbacks=new Smt.CallbackSet,e._dragCallbacks=new Smt.CallbackSet,e._dragEndCallbacks=new Smt.CallbackSet,e}return Dft.__extends(e,t),e.prototype._setUpCallbacks=function(){var t,e,n,i,r=this,o=0,a=function(a){t=r._getResizingEdges(a);var s=r.bounds(),l=s.topLeft.x<=a.x&&a.x<=s.bottomRight.x&&s.topLeft.y<=a.y&&a.y<=s.bottomRight.y;r.boxVisible()&&(t.top||t.bottom||t.left||t.right)?o=1:r.boxVisible()&&r.movable()&&l?o=2:(o=0,r._setBounds({topLeft:a,bottomRight:a}),r._xBoundsMode===Ngt.PropertyMode.VALUE&&null!=r.xScale()&&r._setXExtent([r.xScale().invert(a.x),r.xScale().invert(a.x)]),r._yBoundsMode===Ngt.PropertyMode.VALUE&&null!=r.yScale()&&r._setYExtent([r.yScale().invert(a.y),r.yScale().invert(a.y)]),r.render()),r.boxVisible(!0),s=r.bounds(),e={x:s.topLeft.x,y:s.topLeft.y},n={x:s.bottomRight.x,y:s.bottomRight.y},i=a,r._dragStartCallbacks.callCallbacks(s)},s=function(a,s){switch(o){case 0:n.x=s.x,n.y=s.y;break;case 1:t.bottom?n.y=s.y:t.top&&(e.y=s.y),t.right?n.x=s.x:t.left&&(e.x=s.x);break;case 2:var l=s.x-i.x,c=s.y-i.y;e.x+=l,e.y+=c,n.x+=l,n.y+=c,i=s}r._setBounds({topLeft:e,bottomRight:n}),r._xBoundsMode===Ngt.PropertyMode.VALUE&&null!=r.xScale()&&r._setXExtent([r.xScale().invert(e.x),r.xScale().invert(n.x)]),r._yBoundsMode===Ngt.PropertyMode.VALUE&&null!=r.yScale()&&r._setYExtent([r.yScale().invert(e.y),r.yScale().invert(n.y)]),r.render(),r._dragCallbacks.callCallbacks(r.bounds())},l=function(t,e){0===o&&t.x===e.x&&t.y===e.y&&r.boxVisible(!1),r._dragEndCallbacks.callCallbacks(r.bounds())};this._dragInteraction.onDragStart(a),this._dragInteraction.onDrag(s),this._dragInteraction.onDragEnd(l),this._disconnectInteraction=function(){r._dragInteraction.offDragStart(a),r._dragInteraction.offDrag(s),r._dragInteraction.offDragEnd(l),r._dragInteraction.detach()}},e.prototype._setup=function(){var e=this;t.prototype._setup.call(this);var n=function(){return e._box.append("line").styles({opacity:0,stroke:"pink","pointer-events":"visibleStroke"})};if(this._detectionEdgeT=n().classed("drag-edge-tb",!0),this._detectionEdgeB=n().classed("drag-edge-tb",!0),this._detectionEdgeL=n().classed("drag-edge-lr",!0),this._detectionEdgeR=n().classed("drag-edge-lr",!0),this._hasCorners){var i=function(){return e._box.append("circle").styles({opacity:0,fill:"pink","pointer-events":"visibleFill"})};this._detectionCornerTL=i().classed("drag-corner-tl",!0),this._detectionCornerTR=i().classed("drag-corner-tr",!0),this._detectionCornerBL=i().classed("drag-corner-bl",!0),this._detectionCornerBR=i().classed("drag-corner-br",!0)}},e.prototype._getResizingEdges=function(t){var e={top:!1,bottom:!1,left:!1,right:!1};if(!this.resizable())return e;var n=this.bounds(),i=n.topLeft.y,r=n.bottomRight.y,o=n.topLeft.x,a=n.bottomRight.x,s=this._detectionRadius;return o-s<=t.x&&t.x<=a+s&&(e.top=i-s<=t.y&&t.y<=i+s,e.bottom=r-s<=t.y&&t.y<=r+s),i-s<=t.y&&t.y<=r+s&&(e.left=o-s<=t.x&&t.x<=o+s,e.right=a-s<=t.x&&t.x<=a+s),e},e.prototype.renderImmediately=function(){if(t.prototype.renderImmediately.call(this),this.boxVisible()){var e=this.bounds(),n=e.topLeft.y,i=e.bottomRight.y,r=e.topLeft.x,o=e.bottomRight.x;this._detectionEdgeT.attrs({x1:r,y1:n,x2:o,y2:n,"stroke-width":2*this._detectionRadius}),this._detectionEdgeB.attrs({x1:r,y1:i,x2:o,y2:i,"stroke-width":2*this._detectionRadius}),this._detectionEdgeL.attrs({x1:r,y1:n,x2:r,y2:i,"stroke-width":2*this._detectionRadius}),this._detectionEdgeR.attrs({x1:o,y1:n,x2:o,y2:i,"stroke-width":2*this._detectionRadius}),this._hasCorners&&(this._detectionCornerTL.attrs({cx:r,cy:n,r:this._detectionRadius}),this._detectionCornerTR.attrs({cx:o,cy:n,r:this._detectionRadius}),this._detectionCornerBL.attrs({cx:r,cy:i,r:this._detectionRadius}),this._detectionCornerBR.attrs({cx:o,cy:i,r:this._detectionRadius}))}return this},e.prototype.detectionRadius=function(t){if(null==t)return this._detectionRadius;if(t<0)throw new Error("detection radius cannot be negative.");return this._detectionRadius=t,this.render(),this},e.prototype.resizable=function(t){return null==t?this._resizable:(this._resizable=t,this._setResizableClasses(t),this)},e.prototype._setResizableClasses=function(t){t&&this.enabled()?(this.addClass("x-resizable"),this.addClass("y-resizable")):(this.removeClass("x-resizable"),this.removeClass("y-resizable"))},e.prototype.movable=function(t){return null==t?this._movable:(this._movable=t,this._setMovableClass(),this)},e.prototype._setMovableClass=function(){this.movable()&&this.enabled()?this.addClass("movable"):this.removeClass("movable")},e.prototype.onDragStart=function(t){return this._dragStartCallbacks.add(t),this},e.prototype.offDragStart=function(t){return this._dragStartCallbacks.delete(t),this},e.prototype.onDrag=function(t){return this._dragCallbacks.add(t),this},e.prototype.offDrag=function(t){return this._dragCallbacks.delete(t),this},e.prototype.onDragEnd=function(t){return this._dragEndCallbacks.add(t),this},e.prototype.offDragEnd=function(t){return this._dragEndCallbacks.delete(t),this},e.prototype.dragInteraction=function(){return this._dragInteraction},e.prototype.enabled=function(t){return null==t?this._dragInteraction.enabled():(this._dragInteraction.enabled(t),this._setResizableClasses(this.resizable()),this._setMovableClass(),this)},e.prototype.destroy=function(){var e=this;t.prototype.destroy.call(this),this._dragStartCallbacks.forEach((function(t){return e._dragCallbacks.delete(t)})),this._dragCallbacks.forEach((function(t){return e._dragCallbacks.delete(t)})),this._dragEndCallbacks.forEach((function(t){return e._dragEndCallbacks.delete(t)})),this._disconnectInteraction()},e.prototype.detach=function(){return this._resetState(),this._dragInteraction.detach(),t.prototype.detach.call(this),this},e.prototype.anchor=function(e){return e=Nft.coerceExternalD3(e),this._dragInteraction.attachTo(this),t.prototype.anchor.call(this,e),this},e.prototype._resetState=function(){this.bounds({topLeft:{x:0,y:0},bottomRight:{x:0,y:0}})},e})(igt.SelectionBoxLayer);e.DragBoxLayer=n})),ogt=be((function(t,e){var n;
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),(function(t){t[t.VALUE=0]="VALUE",t[t.PIXEL=1]="PIXEL"})(n||(n={}));var i=(function(t){function e(i){var r=t.call(this)||this;if(r._mode=n.VALUE,i!==e.ORIENTATION_VERTICAL&&i!==e.ORIENTATION_HORIZONTAL)throw new Error(i+" is not a valid orientation for GuideLineLayer");return r._orientation=i,r._overflowHidden=!0,r.addClass("guide-line-layer"),r._isVertical()?r.addClass("vertical"):r.addClass("horizontal"),r._scaleUpdateCallback=function(){r._syncPixelPositionAndValue(),r.render()},r}return Dft.__extends(e,t),e.prototype._setup=function(){t.prototype._setup.call(this),this._guideLine=this.content().append("line").classed("guide-line",!0)},e.prototype._sizeFromOffer=function(t,e){return{width:t,height:e}},e.prototype._isVertical=function(){return this._orientation===e.ORIENTATION_VERTICAL},e.prototype.fixedWidth=function(){return!0},e.prototype.fixedHeight=function(){return!0},e.prototype.computeLayout=function(e,n,i){return t.prototype.computeLayout.call(this,e,n,i),null!=this.scale()&&(this._isVertical()?this.scale().range([0,this.width()]):this.scale().range([this.height(),0])),this},e.prototype.renderImmediately=function(){return t.prototype.renderImmediately.call(this),this._syncPixelPositionAndValue(),this._guideLine.attrs({x1:this._isVertical()?this.pixelPosition():0,y1:this._isVertical()?0:this.pixelPosition(),x2:this._isVertical()?this.pixelPosition():this.width(),y2:this._isVertical()?this.height():this.pixelPosition()}),this},e.prototype._syncPixelPositionAndValue=function(){null!=this.scale()&&(this._mode===n.VALUE&&null!=this.value()?this._pixelPosition=this.scale().scale(this.value()):this._mode===n.PIXEL&&null!=this.pixelPosition()&&(this._value=this.scale().invert(this.pixelPosition())))},e.prototype._setPixelPositionWithoutChangingMode=function(t){this._pixelPosition=t,null!=this.scale()&&(this._value=this.scale().invert(this.pixelPosition())),this.render()},e.prototype.scale=function(t){if(null==t)return this._scale;var e=this._scale;return null!=e&&e.offUpdate(this._scaleUpdateCallback),this._scale=t,this._scale.onUpdate(this._scaleUpdateCallback),this._syncPixelPositionAndValue(),this.redraw(),this},e.prototype.value=function(t){return null==t?this._value:(this._value=t,this._mode=n.VALUE,this._syncPixelPositionAndValue(),this.render(),this)},e.prototype.pixelPosition=function(t){if(null==t)return this._pixelPosition;if(!Smt.Math.isValidNumber(t))throw new Error("pixelPosition must be a finite number");return this._pixelPosition=t,this._mode=n.PIXEL,this._syncPixelPositionAndValue(),this.render(),this},e.prototype.destroy=function(){t.prototype.destroy.call(this),null!=this.scale()&&this.scale().offUpdate(this._scaleUpdateCallback)},e.ORIENTATION_VERTICAL="vertical",e.ORIENTATION_HORIZONTAL="horizontal",e})(Tmt.Component);e.GuideLineLayer=i})),agt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e){var n=t.call(this,e)||this;n._detectionRadius=3,n._enabled=!0,n.addClass("drag-line-layer"),n.addClass("enabled"),n._dragInteraction=new ngt.Drag,n._dragInteraction.attachTo(n);var i=!1,r=function(t){(function(t){return n._isVertical()&&n.pixelPosition()-n.detectionRadius()<=t.x&&t.x<=n.pixelPosition()+n.detectionRadius()||!n._isVertical()&&n.pixelPosition()-n.detectionRadius()<=t.y&&t.y<=n.pixelPosition()+n.detectionRadius()})(t)&&(i=!0,n._dragStartCallbacks.callCallbacks(n))};n._dragInteraction.onDragStart(r);var o=function(t,e){i&&(n._setPixelPositionWithoutChangingMode(n._isVertical()?e.x:e.y),n._dragCallbacks.callCallbacks(n))};n._dragInteraction.onDrag(o);var a=function(t,e){i&&(i=!1,n._dragEndCallbacks.callCallbacks(n))};return n._dragInteraction.onDragEnd(a),n._disconnectInteraction=function(){n._dragInteraction.offDragStart(r),n._dragInteraction.offDrag(o),n._dragInteraction.offDragEnd(a),n._dragInteraction.detach()},n._dragStartCallbacks=new Smt.CallbackSet,n._dragCallbacks=new Smt.CallbackSet,n._dragEndCallbacks=new Smt.CallbackSet,n}return Dft.__extends(e,t),e.prototype._setup=function(){t.prototype._setup.call(this),this._detectionEdge=this.content().append("line").styles({opacity:0,stroke:"pink","pointer-events":"visibleStroke"}).classed("drag-edge",!0)},e.prototype.renderImmediately=function(){return t.prototype.renderImmediately.call(this),this._detectionEdge.attrs({x1:this._isVertical()?this.pixelPosition():0,y1:this._isVertical()?0:this.pixelPosition(),x2:this._isVertical()?this.pixelPosition():this.width(),y2:this._isVertical()?this.height():this.pixelPosition(),"stroke-width":2*this._detectionRadius}),this},e.prototype.detectionRadius=function(t){if(null==t)return this._detectionRadius;if(t<0)throw new Error("detection radius cannot be negative.");return this._detectionRadius=t,this.render(),this},e.prototype.enabled=function(t){return null==t?this._enabled:(this._enabled=t,t?this.addClass("enabled"):this.removeClass("enabled"),this._dragInteraction.enabled(t),this)},e.prototype.onDragStart=function(t){return this._dragStartCallbacks.add(t),this},e.prototype.offDragStart=function(t){return this._dragStartCallbacks.delete(t),this},e.prototype.onDrag=function(t){return this._dragCallbacks.add(t),this},e.prototype.offDrag=function(t){return this._dragCallbacks.delete(t),this},e.prototype.onDragEnd=function(t){return this._dragEndCallbacks.add(t),this},e.prototype.offDragEnd=function(t){return this._dragEndCallbacks.delete(t),this},e.prototype.destroy=function(){var e=this;t.prototype.destroy.call(this),this._dragStartCallbacks.forEach((function(t){return e._dragStartCallbacks.delete(t)})),this._dragCallbacks.forEach((function(t){return e._dragCallbacks.delete(t)})),this._dragEndCallbacks.forEach((function(t){return e._dragEndCallbacks.delete(t)})),this._disconnectInteraction()},e})(ogt.GuideLineLayer);e.DragLineLayer=n})),sgt=be((function(t,e){function n(t,e,n){var i={};if(void 0!==n)for(var r=0;r<n.length;r++)i[n[r]]=n[r-1];return function(n){var r,o=t.scale(n);if(!e)return o;var a=void 0===i[n]?void 0:t.scale(i[n]);return void 0!==a&&(r=a+(o-a)/2),r}}
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var i=(function(t){function e(e,n){var i=t.call(this)||this;return i.addClass("gridlines"),i._xScale=e,i._yScale=n,i._renderCallback=function(t){return i.render()},i._xScale&&i._xScale.onUpdate(i._renderCallback),i._yScale&&i._yScale.onUpdate(i._renderCallback),i}return Dft.__extends(e,t),e.prototype.betweenX=function(t){return void 0===t?this._betweenX:(t!==this._betweenX&&(this._betweenX=t,this.render()),this)},e.prototype.betweenY=function(t){return void 0===t?this._betweenY:(t!==this._betweenY&&(this._betweenY=t,this.render()),this)},e.prototype.destroy=function(){return t.prototype.destroy.call(this),this._xScale&&this._xScale.offUpdate(this._renderCallback),this._yScale&&this._yScale.offUpdate(this._renderCallback),this},e.prototype._setup=function(){t.prototype._setup.call(this),this._xLinesContainer=this.content().append("g").classed("x-gridlines",!0),this._yLinesContainer=this.content().append("g").classed("y-gridlines",!0)},e.prototype.renderImmediately=function(){return t.prototype.renderImmediately.call(this),this._redrawXLines(),this._redrawYLines(),this},e.prototype.computeLayout=function(e,n,i){return t.prototype.computeLayout.call(this,e,n,i),null!=this._xScale&&this._xScale.range([0,this.width()]),null!=this._yScale&&this._yScale.range([this.height(),0]),this},e.prototype._redrawXLines=function(){if(this._xScale){var t=this.betweenX(),e=this._xScale.ticks().slice(t?1:0),i=this._xLinesContainer.selectAll("line").data(e);i.enter().append("line").merge(i).attr("x1",n(this._xScale,t,this._xScale.ticks())).attr("y1",0).attr("x2",n(this._xScale,t,this._xScale.ticks())).attr("y2",this.height()).classed("betweenline",t).classed("zeroline",(function(t){return 0===t})),i.exit().remove()}},e.prototype._redrawYLines=function(){if(this._yScale){var t=this.betweenY(),e=this._yScale.ticks().slice(t?1:0),i=this._yLinesContainer.selectAll("line").data(e);i.enter().append("line").merge(i).attr("x1",0).attr("y1",n(this._yScale,t,this._yScale.ticks())).attr("x2",this.width()).attr("y2",n(this._yScale,t,this._yScale.ticks())).classed("betweenline",t).classed("zeroline",(function(t){return 0===t})),i.exit().remove()}},e})(Tmt.Component);e.Gridlines=i})),lgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._detachCallback=function(t){return e.remove(t)},e}return Dft.__extends(e,t),e.prototype.anchor=function(e){var n=this;return e=Nft.coerceExternalD3(e),t.prototype.anchor.call(this,e),this._forEach((function(t){return t.anchor(n.element())})),this},e.prototype.render=function(){return this._forEach((function(t){return t.render()})),this},e.prototype.has=function(t){throw new Error("has() is not implemented on ComponentContainer")},e.prototype._adoptAndAnchor=function(t){t.parent(this),t.onDetach(this._detachCallback),this._isAnchored&&t.anchor(this.element())},e.prototype.remove=function(t){return this.has(t)&&(t.offDetach(this._detachCallback),this._remove(t),t.detach(),this.redraw()),this},e.prototype._remove=function(t){return!1},e.prototype._forEach=function(t){throw new Error("_forEach() is not implemented on ComponentContainer")},e.prototype.destroy=function(){t.prototype.destroy.call(this),this._forEach((function(t){return t.destroy()}))},e.prototype.invalidateCache=function(){this._forEach((function(t){return t.invalidateCache()}))},e})(Tmt.Component);e.ComponentContainer=n})),cgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e){void 0===e&&(e=[]);var n=t.call(this)||this;return n._components=[],n.addClass("component-group"),e.forEach((function(t){return n.append(t)})),n}return Dft.__extends(e,t),e.prototype._forEach=function(t){this.components().forEach(t)},e.prototype.has=function(t){return this._components.indexOf(t)>=0},e.prototype.requestedSpace=function(t,e){var n=this._components.map((function(n){return n.requestedSpace(t,e)}));return{minWidth:Smt.Math.max(n,(function(t){return t.minWidth}),0),minHeight:Smt.Math.max(n,(function(t){return t.minHeight}),0)}},e.prototype.computeLayout=function(e,n,i){var r=this;return t.prototype.computeLayout.call(this,e,n,i),this._forEach((function(t){t.computeLayout({x:0,y:0},r.width(),r.height())})),this},e.prototype._sizeFromOffer=function(t,e){return{width:t,height:e}},e.prototype.fixedWidth=function(){return this._components.every((function(t){return t.fixedWidth()}))},e.prototype.fixedHeight=function(){return this._components.every((function(t){return t.fixedHeight()}))},e.prototype.components=function(){return this._components.slice()},e.prototype.append=function(t){return null==t||this.has(t)||(t.detach(),this._components.push(t),this._adoptAndAnchor(t),this.redraw()),this},e.prototype._remove=function(t){var e=this._components.indexOf(t);return e>=0&&(this._components.splice(e,1),!0)},e})(lgt.ComponentContainer);e.Group=n})),ugt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e){var n=t.call(this)||this;if(n._textPadding=5,null==e)throw new Error("InterpolatedColorLegend requires a interpolatedColorScale");return n._scale=e,n._redrawCallback=function(t){return n.redraw()},n._scale.onUpdate(n._redrawCallback),n._formatter=Cmt.general(),n._orientation="horizontal",n._expands=!1,n.addClass("legend"),n.addClass("interpolated-color-legend"),n}return Dft.__extends(e,t),e.prototype.destroy=function(){t.prototype.destroy.call(this),this._scale.offUpdate(this._redrawCallback)},e.prototype.formatter=function(t){return void 0===t?this._formatter:(this._formatter=t,this.redraw(),this)},e.prototype.expands=function(t){return null==t?this._expands:(this._expands=t,this.redraw(),this)},e._ensureOrientation=function(t){if("horizontal"===(t=t.toLowerCase())||"left"===t||"right"===t)return t;throw new Error('"'+t+'" is not a valid orientation for InterpolatedColorLegend')},e.prototype.orientation=function(t){return null==t?this._orientation:(this._orientation=e._ensureOrientation(t),this.redraw(),this)},e.prototype.fixedWidth=function(){return!this.expands()||this._isVertical()},e.prototype.fixedHeight=function(){return!this.expands()||!this._isVertical()},e.prototype._generateTicks=function(t){void 0===t&&(t=e._DEFAULT_NUM_SWATCHES);var n=this._scale.domain();if(1===t)return[n[0]];for(var i=(n[1]-n[0])/(t-1),r=[],o=0;o<t;o++)r.push(n[0]+i*o);return r},e.prototype._setup=function(){t.prototype._setup.call(this),this._swatchContainer=this.content().append("g").classed("swatch-container",!0),this._swatchBoundingBox=this.content().append("rect").classed("swatch-bounding-box",!0),this._lowerLabel=this.content().append("g").classed(e.LEGEND_LABEL_CLASS,!0),this._upperLabel=this.content().append("g").classed(e.LEGEND_LABEL_CLASS,!0);var n=new amt.SvgContext(this.content().node());this._measurer=new amt.Measurer(n),this._wrapper=new amt.Wrapper,this._writer=new amt.Writer(this._measurer,n,this._wrapper)},e.prototype.requestedSpace=function(t,n){var i,r,o=this,a=this._measurer.measure().height,s=a,l=this._scale.domain().map((function(t){return o._measurer.measure(o._formatter(t)).width})),c=e._DEFAULT_NUM_SWATCHES;if(this._isVertical()){var u=Smt.Math.max(l,0);r=s+a+this._textPadding+u+this._textPadding,i=c*a}else i=s+a+s,r=this._textPadding+l[0]+c*a+l[1]+this._textPadding;return{minWidth:r,minHeight:i}},e.prototype._isVertical=function(){return"horizontal"!==this._orientation},e.prototype.renderImmediately=function(){var e=this;t.prototype.renderImmediately.call(this);var n,i,r,o,a,s,l=this._scale.domain(),c=this._formatter(l[0]),u=this._measurer.measure(c).width,h=this._formatter(l[1]),d=this._measurer.measure(h).width,p=this._measurer.measure().height,f=this._textPadding,m={x:0,y:0},g={x:0,y:0},_={xAlign:"center",yAlign:"center",textRotation:0},y={xAlign:"center",yAlign:"center",textRotation:0},v={x:0,y:0,width:0,height:0};if(this._isVertical()){s=Math.floor(this.height());var b=Math.max(u,d);a=(this.width()-b-2*this._textPadding)/2,n=Math.max(this.width()-a-2*f-b,0),i=1,o=function(t,n){return e.height()-(n+1)},y.yAlign="top",m.y=0,_.yAlign="bottom",g.y=0,"left"===this._orientation?(r=function(t,e){return f+b+f},y.xAlign="right",m.x=-(a+n+f),_.xAlign="right",g.x=-(a+n+f)):(r=function(t,e){return a},y.xAlign="left",m.x=a+n+f,_.xAlign="left",g.x=a+n+f),v.width=n,v.height=s*i}else a=Math.max(f,(this.height()-p)/2),s=Math.max(Math.floor(this.width()-4*f-u-d),0),n=1,i=Math.max(this.height()-2*a,0),r=function(t,e){return Math.floor(u+2*f)+e},o=function(t,e){return a},y.xAlign="right",m.x=-f,_.xAlign="left",g.x=f,v.y=a,v.width=s*n,v.height=i;v.x=r(null,0),this._upperLabel.text(""),this._writer.write(h,this.width(),this.height(),y,this._upperLabel.node()),this._upperLabel.attr("transform","translate("+m.x+", "+m.y+")"),this._lowerLabel.text(""),this._writer.write(c,this.width(),this.height(),_,this._lowerLabel.node()),this._lowerLabel.attr("transform","translate("+g.x+", "+g.y+")"),this._swatchBoundingBox.attrs(v);var x=this._generateTicks(s),w=this._swatchContainer.selectAll("rect.swatch").data(x),S=w.enter().append("rect").classed("swatch",!0),M=w.merge(S);return w.exit().remove(),M.attrs({fill:function(t,n){return e._scale.scale(t)},width:n,height:i,x:r,y:o,"shape-rendering":"crispEdges"}),fmt.ADD_TITLE_ELEMENTS&&S.append("title").text((function(t){return e._formatter(t)})),this},e._DEFAULT_NUM_SWATCHES=11,e.LEGEND_LABEL_CLASS="legend-label",e})(Tmt.Component);e.InterpolatedColorLegend=n})),hgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e,n){void 0===e&&(e=""),void 0===n&&(n=0);var i=t.call(this)||this;return i.addClass("label"),i.text(e),i.angle(n),i.xAlignment("center").yAlignment("center"),i._padding=0,i}return Dft.__extends(e,t),e.prototype.requestedSpace=function(t,e){var n=this._measurer.measure(this._text);return{minWidth:(0===this.angle()?n.width:n.height)+2*this.padding(),minHeight:(0===this.angle()?n.height:n.width)+2*this.padding()}},e.prototype._setup=function(){t.prototype._setup.call(this),this._textContainer=this.content().append("g");var e=new amt.SvgContext(this._textContainer.node());this._measurer=new amt.CacheMeasurer(e),this._wrapper=new amt.Wrapper,this._writer=new amt.Writer(this._measurer,e,this._wrapper),this.text(this._text)},e.prototype.text=function(t){if(null==t)return this._text;if("string"!=typeof t)throw new Error("Label.text() only takes strings as input");return this._text=t,this.redraw(),this},e.prototype.angle=function(t){if(null==t)return this._angle;if((t%=360)>180?t-=360:t<-180&&(t+=360),-90!==t&&0!==t&&90!==t)throw new Error(t+" is not a valid angle for Label");return this._angle=t,this.redraw(),this},e.prototype.padding=function(t){if(null==t)return this._padding;if((t=+t)<0)throw new Error(t+" is not a valid padding value. Cannot be less than 0.");return this._padding=t,this.redraw(),this},e.prototype.fixedWidth=function(){return!0},e.prototype.fixedHeight=function(){return!0},e.prototype.renderImmediately=function(){t.prototype.renderImmediately.call(this),this._textContainer.selectAll("g").remove();var e=this._measurer.measure(this._text),n=Math.max(Math.min((this.height()-e.height)/2,this.padding()),0),i=Math.max(Math.min((this.width()-e.width)/2,this.padding()),0);this._textContainer.attr("transform","translate("+i+","+n+")");var r=this.width()-2*i,o=this.height()-2*n,a={xAlign:this.xAlignment(),yAlign:this.yAlignment(),textRotation:this.angle()};return this._writer.write(this._text,r,o,a),this},e.prototype.invalidateCache=function(){t.prototype.invalidateCache.call(this),this._measurer.reset()},e})(Tmt.Component);e.Label=n;var i=(function(t){function e(n,i){var r=t.call(this,n,i)||this;return r.addClass(e.TITLE_LABEL_CLASS),r}return Dft.__extends(e,t),e.TITLE_LABEL_CLASS="title-label",e})(n);e.TitleLabel=i;var r=(function(t){function e(n,i){var r=t.call(this,n,i)||this;return r.addClass(e.AXIS_LABEL_CLASS),r}return Dft.__extends(e,t),e.AXIS_LABEL_CLASS="axis-label",e})(n);e.AxisLabel=r})),dgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.circle=function n(){return function(t){return idt.symbol().type(idt.symbolCircle).size(Math.PI*Math.pow(t/2,2))}},e.square=function i(){return function(t){return idt.symbol().type(idt.symbolSquare).size(Math.pow(t,2))}},e.cross=function r(){return function(t){return idt.symbol().type(idt.symbolCross).size(5/9*Math.pow(t,2))}},e.diamond=function o(){return function(t){return idt.symbol().type(idt.symbolDiamond).size(Math.tan(Math.PI/6)*Math.pow(t,2)/2)}},e.triangle=function a(){return function(t){return idt.symbol().type(idt.symbolTriangle).size(Math.sqrt(3)*Math.pow(t/2,2))}},e.star=function s(){return function(t){return idt.symbol().type(idt.symbolStar).size(.8908130915292852*Math.pow(t/2,2))}};var l=3*(1/Math.sqrt(12)/2+1);e.wye=function c(){return function(t){return idt.symbol().type(idt.symbolWye).size(l*Math.pow(t/2.4,2))}}})),pgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(t,e,n){void 0===t&&(t=[]),void 0===e&&(e=0),void 0===n&&(n=1/0),this.columns=t,this.bottomPadding=e,this.maxWidth=n}return t.prototype.addColumn=function(t){var e=t.width,n=this.getWidthAvailable();t.width=Math.min(n,e),this.columns.push(t)},t.prototype.getBounds=function(t){for(var e=this.columns[t],n=0,i=0;i<t;i++)n+=this.columns[i].width;return{topLeft:{x:n,y:0},bottomRight:{x:n+e.width,y:e.height}}},t.prototype.getHeight=function(){return Smt.Math.max(this.columns.map((function(t){return t.height})),0)+this.bottomPadding},t.prototype.getWidth=function(){return Math.min(this.columns.reduce((function(t,e){return t+e.width}),0),this.maxWidth)},t.prototype.getWidthAvailable=function(){var t=this.getWidth();return Math.max(this.maxWidth-t,0)},t})(),i=(function(){function t(t,e,n,i){void 0===t&&(t=1/0),void 0===e&&(e=1/0),void 0===n&&(n=0),void 0===i&&(i=[]),this.maxWidth=t,this.maxHeight=e,this.padding=n,this.rows=i}return t.prototype.addRow=function(t){t.maxWidth=this.maxWidth-2*this.padding,this.rows.push(t)},t.prototype.getColumnBounds=function(t,e){var n=this.getRowBounds(t),i=this.rows[t].getBounds(e);return i.topLeft.x+=n.topLeft.x,i.bottomRight.x+=n.topLeft.x,i.topLeft.y+=n.topLeft.y,i.bottomRight.y+=n.topLeft.y,i},t.prototype.getRowBounds=function(t){for(var e=this.padding,n=this.padding,i=0;i<t;i++)n+=this.rows[i].getHeight();return{topLeft:{x:e,y:n},bottomRight:{x:e+this.rows[t].getWidth(),y:n+this.rows[t].getHeight()}}},t.prototype.getHeight=function(){return Math.min(this.rows.reduce((function(t,e){return t+e.getHeight()}),0)+2*this.padding,this.maxHeight)},t.prototype.getWidth=function(){return Math.min(Smt.Math.max(this.rows.map((function(t){return t.getWidth()})),0)+2*this.padding,this.maxWidth)},t})(),r=(function(t){function e(e){var n=t.call(this)||this;if(n._padding=5,n._rowBottomPadding=3,n.addClass("legend"),n.maxEntriesPerRow(1),null==e)throw new Error("Legend requires a colorScale");return n._colorScale=e,n._redrawCallback=function(t){return n.redraw()},n._colorScale.onUpdate(n._redrawCallback),n._formatter=Cmt.identity(),n.maxLinesPerEntry(1),n.xAlignment("right").yAlignment("top"),n.comparator((function(t,e){var i=n._colorScale.domain().slice().map((function(t){return n._formatter(t)}));return i.indexOf(t)-i.indexOf(e)})),n._symbolFactoryAccessor=function(){return dgt.circle()},n._symbolOpacityAccessor=function(){return 1},n}return Dft.__extends(e,t),e.prototype._setup=function(){t.prototype._setup.call(this);var n=this.content().append("g").classed(e.LEGEND_ROW_CLASS,!0);n.append("g").classed(e.LEGEND_ENTRY_CLASS,!0).append("text");var i=new amt.SvgContext(n.node(),null,fmt.ADD_TITLE_ELEMENTS);this._measurer=new amt.CacheMeasurer(i),this._wrapper=(new amt.Wrapper).maxLines(this.maxLinesPerEntry()),this._writer=new amt.Writer(this._measurer,i,this._wrapper)},e.prototype.formatter=function(t){return null==t?this._formatter:(this._formatter=t,this.redraw(),this)},e.prototype.maxEntriesPerRow=function(t){return null==t?this._maxEntriesPerRow:(this._maxEntriesPerRow=t,this.redraw(),this)},e.prototype.maxLinesPerEntry=function(t){return null==t?this._maxLinesPerEntry:(this._maxLinesPerEntry=t,this.redraw(),this)},e.prototype.maxWidth=function(t){return null==t?this._maxWidth:(this._maxWidth=t,this.redraw(),this)},e.prototype.comparator=function(t){return null==t?this._comparator:(this._comparator=t,this.redraw(),this)},e.prototype.colorScale=function(t){return null!=t?(this._colorScale.offUpdate(this._redrawCallback),this._colorScale=t,this._colorScale.onUpdate(this._redrawCallback),this.redraw(),this):this._colorScale},e.prototype.destroy=function(){t.prototype.destroy.call(this),this._colorScale.offUpdate(this._redrawCallback)},e.prototype._buildLegendTable=function(t,e){var r=this,o=this._measurer.measure().height,a=new i(t,e,this._padding),s=this._colorScale.domain().slice().sort((function(t,e){return r._comparator(r._formatter(t),r._formatter(e))})),l=new n;return a.addRow(l),l.bottomPadding=this._rowBottomPadding,s.forEach((function(t,e){l.columns.length/2===r.maxEntriesPerRow()&&((l=new n).bottomPadding=r._rowBottomPadding,a.addRow(l));var i=l.getWidthAvailable(),s=r._formatter(t),c=r._measurer.measure(s).width;i-o-c<0&&l.columns.length>1&&((l=new n).bottomPadding=r._rowBottomPadding,a.addRow(l)),l.addColumn({width:o,height:o,data:{name:t,type:"symbol"}}),i=l.getWidthAvailable();var u=Math.min(i,c);r._wrapper.maxLines(r.maxLinesPerEntry());var h=r._wrapper.wrap(s,r._measurer,u).noLines;l.addColumn({width:u,height:h*o,data:{name:t,type:"text"}})})),a},e.prototype.requestedSpace=function(t,e){var n=this._buildLegendTable(Smt.Math.min([this.maxWidth(),t],t),e);return{minHeight:n.getHeight(),minWidth:n.getWidth()}},e.prototype.entitiesAt=function(t){var n=this;if(!this._isSetup)return[];var i=this._buildLegendTable(this.width(),this.height());return i.rows.reduce((function(r,o,a){if(0!==r.length)return r;var s=i.getRowBounds(a);return Smt.Math.within(t,s)?o.columns.reduce((function(r,o,s){var l=i.getColumnBounds(a,s);if(Smt.Math.within(t,l)){var c=n.content().selectAll("."+e.LEGEND_ROW_CLASS).nodes()[a],u=idt.select(c).selectAll("."+e.LEGEND_ENTRY_CLASS).nodes()[Math.floor(s/2)],h=idt.select(u).select("."+e.LEGEND_SYMBOL_CLASS),d=Smt.DOM.getTranslateValues(idt.select(c)),p=Smt.DOM.getTranslateValues(h);return[{bounds:Smt.DOM.elementBBox(idt.select(c)),datum:o.data.name,position:{x:d[0]+p[0],y:d[1]+p[1]},selection:idt.select(u),component:n}]}return r}),r):r}),[])},e.prototype.renderImmediately=function(){t.prototype.renderImmediately.call(this);var n=this._buildLegendTable(this.width(),this.height());this.content().selectAll("*").remove();var i=this.content().selectAll("g."+e.LEGEND_ROW_CLASS).data(n.rows),r=i.enter().append("g").classed(e.LEGEND_ROW_CLASS,!0).merge(i);i.exit().remove(),r.attr("transform",(function(t,e){var i=n.getRowBounds(e);return"translate("+i.topLeft.x+", "+i.topLeft.y+")"}));var o=this;return r.each((function(t,i){for(var r=[],a=0;a<t.columns.length;a+=2)r.push([t.columns[a],t.columns[a+1]]);var s=idt.select(this).selectAll("g."+e.LEGEND_ENTRY_CLASS).data(r),l=s.enter().append("g").classed(e.LEGEND_ENTRY_CLASS,!0).merge(s);l.append("path").attr("d",(function(t,e){var n=t[0];return o.symbol()(n.data.name,i)(.6*n.height)(null)})).attr("transform",(function(t,e){var r=t[0],o=n.rows[i].columns.indexOf(r);return"translate("+(n.getColumnBounds(i,o).topLeft.x+r.width/2)+", "+r.height/2+")"})).attr("fill",(function(t){return o._colorScale.scale(t[0].data.name)})).attr("opacity",(function(t,e){return o.symbolOpacity()(t[0].data.name,i)})).classed(e.LEGEND_SYMBOL_CLASS,!0),l.append("g").classed("text-container",!0).attr("transform",(function(t,e){var r=n.rows[i].columns.indexOf(t[1]);return"translate("+n.getColumnBounds(i,r).topLeft.x+", 0)"})).each((function(t,e,n){var i=idt.select(this),r=t[1];o._writer.write(o._formatter(r.data.name),r.width,o.height(),{xAlign:"left",yAlign:"top",textRotation:0},i.node())})),s.exit().remove()})),this},e.prototype.symbol=function(t){return null==t?this._symbolFactoryAccessor:(this._symbolFactoryAccessor=t,this.render(),this)},e.prototype.symbolOpacity=function(t){return null==t?this._symbolOpacityAccessor:(this._symbolOpacityAccessor="number"==typeof t?function(){return t}:t,this.render(),this)},e.prototype.fixedWidth=function(){return!0},e.prototype.fixedHeight=function(){return!0},e.prototype.invalidateCache=function(){t.prototype.invalidateCache.call(this),this._measurer.reset()},e.LEGEND_ROW_CLASS="legend-row",e.LEGEND_ENTRY_CLASS="legend-entry",e.LEGEND_SYMBOL_CLASS="legend-symbol",e})(Tmt.Component);e.Legend=r})),fgt=be((function(t,e){var n;
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),(n=e.Animator||(e.Animator={})).MAIN="main",n.RESET="reset"}));function mgt(t){return!0===(function t(e){return null!=e&&"object"==typeof e&&!1===Array.isArray(e)})(t)&&"[object Object]"===Object.prototype.toString.call(t)}var ggt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=0,i=(function(){function t(t,e){void 0===t&&(t=[]),void 0===e&&(e={}),this._updateId=n++,this._data=t,this._metadata=e,this._callbacks=new Smt.CallbackSet}return t.prototype.onUpdate=function(t){return this._callbacks.add(t),this},t.prototype.offUpdate=function(t){return this._callbacks.delete(t),this},t.prototype.data=function(t){return null==t?this._data:(this._data=t,this._dispatchUpdate(),this)},t.prototype.metadata=function(t){return null==t?this._metadata:(this._metadata=t,this._dispatchUpdate(),this)},t.prototype.updateId=function(){return this._updateId},t.prototype._dispatchUpdate=function(){this._updateId=n++,this._callbacks.callCallbacks(this)},t})();e.Dataset=i})),_gt=be((function(t,e){function n(t){return t instanceof l?t:t instanceof Date?o(t.valueOf()):t instanceof Imt.Scale?i(t):t instanceof ggt.Dataset?r(t):(function t(e){var n,i;return!1!==mgt(e)&&"function"==typeof(n=e.constructor)&&!1!==mgt(i=n.prototype)&&!1!==i.hasOwnProperty("isPrototypeOf")})(t)?s(t):Array.isArray(t)?a(t):o(t)}function i(t){return s({domain:t.domain(),range:t.range(),updateId:t.updateId(),ref:o(t)})}function r(t){return s({ref:o(t),updateId:t.updateId()})}function o(t){return new u(t)}function a(t){return new c(t.map((function(t){return n(t)})))}function s(t){var e={};for(var i in t)t.hasOwnProperty(i)&&(e[i]=n(t[i]));return new h(e)}
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     * @fileoverview Implements the Signature API to help in comparing when two
     * Plottable objects have "changed".
     *
     * Memoization in Plottable is complicated by mutable scales and datasets. We cannot simply
     * reference compare two e.g. scales since it may have internally mutated. To resolve this,
     * we write a recursive Signature interface that holds an immutable snapshot of whatever
     * state the scale/data was in at the time. Then on memoized function invocation we sign the
     * new inputs and compare the signatures to decide if we should recompute.
     *
     * We must hand-write a signature for each custom class we wish to support.
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.sign=n,e.signScale=i,e.signDataset=r,e.signRef=o,e.signArray=a,e.signObj=s;var l=(function(){function t(){}return t.prototype.isDifferent=function(t){return!(t instanceof this.constructor)||this.isSignatureDifferent(t)},t})();e.Signature=l;var c=(function(t){function e(e){var n=t.call(this)||this;return n.array=e,n}return Dft.__extends(e,t),e.prototype.isSignatureDifferent=function(t){if(t.array.length!==this.array.length)return!0;for(var e=0;e<this.array.length;e++)if(this.array[e].isDifferent(t.array[e]))return!0;return!1},e})(l);e.ArraySignature=c;var u=(function(t){function e(e){var n=t.call(this)||this;return n.ref=e,n}return Dft.__extends(e,t),e.prototype.isSignatureDifferent=function(t){return this.ref!==t.ref},e})(l);e.ReferenceSignature=u;var h=(function(t){function e(e){var n=t.call(this)||this;return n.obj=e,n}return Dft.__extends(e,t),e.prototype.isSignatureDifferent=function(t){var e=Object.keys(this.obj),n=Object.keys(t.obj);if(e.length!==n.length)return!0;for(var i=0,r=e;i<r.length;i++){var o=r[i];if(!t.obj.hasOwnProperty(o))return!0;if(this.obj[o].isDifferent(t.obj[o]))return!0}return!1},e})(l);e.ObjectSignature=h})),ygt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     * @fileoverview Implements a function memoizer using the Signature API.
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.memoize=function n(t){var e,n=void 0,i=!1,r=!1,o=function(){for(var o=[],a=0;a<arguments.length;a++)o[a]=arguments[a];if(i)return e;var s=_gt.signArray(o);return void 0===n||n.isDifferent(s)?(r&&console.warn("cache miss! computing"),n=s,e=t.apply(this,o)):r&&console.warn("cache hit!"),e};return o.doLocked=function(t){if(i)throw new Error("Locking an already locked memoize function!");i=!0;var e=t.apply(this);return i=!1,e},o.logPerformance=function(t){return void 0===t&&(t=!0),r=t,this},o}})),vgt=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){this.map=Object.create(null),this.exists=Object.create(null)}return t.prototype.delete=function(t){return delete this.map[t],delete this.exists[t],!0},t.prototype.get=function(t){return this.map[t]},t.prototype.has=function(t){return!!this.exists[t]},t.prototype.set=function(t,e){return this.map[t]=e,this.exists[t]=!0,this},t})(),i=(function(){function t(){this.map=new n}return t.prototype.get=function(t){return this.map.get(t[0]).get(t[1])},t.prototype.has=function(t){return this.map.has(t[0])&&this.map.get(t[0]).has(t[1])},t.prototype.set=function(t,e){return this.map.has(t[0])||this.map.set(t[0],new n),this.map.get(t[0]).set(t[1],e),this},t.prototype.delete=function(t){return this.map.has(t[0])&&this.map.get(t[0]).delete(t[1]),!0},t.prototype.clear=function(){this.map=new n},t.resolver=function(t,e,n){return[n.updateId(),e]},t})();function r(t){var e=we.memoize(t,i.resolver);return e.cache=new i,e}e.memoizeProjector=r,e.memoizeProjectors=function o(t){return Object.keys(t).forEach((function(e){t[e]=r(t[e])})),t}})),bgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     * @fileoverview Implements a convenient thunk function to handle the common case
     * of creating a memoized function that takes its inputs from mutable class properties.
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.memThunk=function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=t.slice(0,-1),i=t[t.length-1],r=xgt.memoize(i),o=function(){var t=this,e=n.map((function(e){return e.apply(t)}));return r.apply(void 0,e)};return o}})),xgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),Dft.__exportStar(ygt,e),Dft.__exportStar(vgt,e),Dft.__exportStar(bgt,e),e.sign=_gt.sign})),wgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(t,e){this._context=t,this._drawStep=e}return t.prototype.getDrawStep=function(){return this._drawStep},t.prototype.draw=function(t,e){var n=e[e.length-1].attrToAppliedProjector;this._context.save(),this._drawStep(this._context,t,n),this._context.restore()},t.prototype.getVisualPrimitives=function(){return[]},t.prototype.getVisualPrimitiveAtIndex=function(t){return null},t.prototype.remove=function(){},t})();function i(t,e,n,i){for(var r={},o=0,a=e;o<a.length;o++){var s=a[o];t.hasOwnProperty(s)&&(r[s]=t[s](n,i))}return r}function r(t){return null!=t["stroke-width"]?parseFloat(t["stroke-width"]):1}function o(t){var e=t["stroke-dasharray"];if(null!=e)try{return e.split(/[ ,]+/).map((function(t){return parseInt(t,10)}))}catch(t){return console.error("getStrokeDashArray failed with: "+t),[]}return[]}function a(t,e){if(e.stroke){t.lineWidth=r(e);var n=idt.color(e.stroke),i=o(e);t.setLineDash(i),n.opacity*=(function a(t){var e=null!=t.opacity?parseFloat(t.opacity):1;return(null!=t["stroke-opacity"]?parseFloat(t["stroke-opacity"]):1)*e})(e),t.strokeStyle=n.toString(),t.stroke()}if(e.fill){var s=idt.color(e.fill);s.opacity*=(function l(t){var e=null!=t.opacity?parseFloat(t.opacity):1;return(null!=t["fill-opacity"]?parseFloat(t["fill-opacity"]):1)*e})(e),t.fillStyle=s.toString(),t.fill()}}e.CanvasDrawer=n,e.ContextStyleAttrs=["fill-opacity","fill","opacity","stroke-opacity","stroke-width","stroke","stroke-dasharray"],e.resolveAttributesSubsetWithStyles=function s(t,n,r,o){return i(t,e.ContextStyleAttrs.concat(n),r,o)},e.resolveAttributes=i,e.getStrokeWidth=r,e.getStrokeDashArray=o,e.renderArea=function l(t,e,n,i){t.save(),t.beginPath(),e.context(t),e(n),t.lineJoin="round",a(t,i),t.restore()},e.renderLine=function c(t,e,n,i){t.save(),t.beginPath(),e.context(t),e(n),t.lineJoin="round",a(t,i),t.restore()},e.renderPathWithStyle=a})),Sgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(t,e){this._svgDrawerFactory=t,this._canvasDrawerFactory=e}return t.prototype.useSVG=function(t){null!=this._currentDrawer&&this._currentDrawer.remove();var e=this._svgDrawerFactory();e.attachTo(t),this._currentDrawer=e},t.prototype.useCanvas=function(t){null!=this._currentDrawer&&this._currentDrawer.remove(),this._currentDrawer=this._canvasDrawerFactory(t.node().getContext("2d"))},t.prototype.getDrawer=function(){return this._currentDrawer},t.prototype.remove=function(){null!=this._currentDrawer&&this._currentDrawer.remove()},t.prototype.draw=function(t,e){this._currentDrawer.draw(t,e)},t.prototype.getVisualPrimitives=function(){return this._currentDrawer.getVisualPrimitives()},t.prototype.getVisualPrimitiveAtIndex=function(t){return this._currentDrawer.getVisualPrimitiveAtIndex(t)},t})();e.ProxyDrawer=n})),Mgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(t,e){this._root=idt.select(document.createElementNS("http://www.w3.org/2000/svg","g")),this._className=e,this._svgElementName=t}return t.prototype.draw=function(t,e){var n=this;this._createAndDestroyDOMElements(t);for(var i=0,r=e.length,o=function(r){var o=e[r];Smt.Window.setTimeout((function(){return n._drawStep(o)}),i),i+=o.animator.totalTime(t.length)},a=0;a<r;a++)o(a)},t.prototype.getVisualPrimitives=function(){return null==this._cachedVisualPrimitivesNodes&&(this._cachedVisualPrimitivesNodes=this._selection.nodes()),this._cachedVisualPrimitivesNodes},t.prototype.getVisualPrimitiveAtIndex=function(t){return null==this._cachedVisualPrimitivesNodeMap?null:this._cachedVisualPrimitivesNodeMap.get(t)},t.prototype.remove=function(){this._root.remove()},t.prototype.attachTo=function(t){t.node().appendChild(this._root.node())},t.prototype.getRoot=function(){return this._root},t.prototype.selector=function(){return this._svgElementName},t.prototype._applyDefaultAttributes=function(t){},t.prototype._createAndDestroyDOMElements=function(t){var e=t.map((function(t,e){return null!=t?{d:t,i:e}:null})).filter((function(t){return null!=t})),n=this._root.selectAll(this.selector()).data(e);this._selection=n.enter().append(this._svgElementName).merge(n),n.exit().remove();var i=new Smt.Map;this._selection.each((function(t){i.set(t.i,this)})),this._cachedVisualPrimitivesNodeMap=i,this._cachedVisualPrimitivesNodes=null,this._selection.data(this._selection.data().map((function(t){return t.d}))),null!=this._className&&this._selection.classed(this._className,!0),this._applyDefaultAttributes(this._selection)},t.prototype._drawStep=function(t){var e=this;["fill","stroke"].forEach((function(n){null!=t.attrToAppliedProjector[n]&&e._selection.attr(n,t.attrToAppliedProjector[n])})),t.animator.animate(this._selection,t.attrToAppliedProjector),null!=this._className&&this._selection.classed(this._className,!0)},t})();e.SVGDrawer=n})),Egt=be((function(t,e){
/**
     * Copyright 2017-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(){var t=this;this.scale=0,this.translate=0,this.cachedDomain=[null,null],this.lastSeenDomain=[null,null],this.updateDomain=function(e){t.lastSeenDomain=e.getTransformationDomain();var n=e.scaleTransformation(t.cachedDomain[1])-e.scaleTransformation(t.cachedDomain[0]),i=e.scaleTransformation(t.lastSeenDomain[1])-e.scaleTransformation(t.lastSeenDomain[0]);t.scale=n/i||1,t.translate=e.scaleTransformation(t.cachedDomain[0])-e.scaleTransformation(t.lastSeenDomain[0])*t.scale||0}}return t.prototype.reset=function(){this.scale=1,this.translate=0,this.cachedDomain=this.lastSeenDomain},t.prototype.setDomain=function(t){this.cachedDomain=t.getTransformationDomain()},t})(),i=(function(){function t(e,i){var r=this;this.renderCallback=e,this.applyTransformCallback=i,this.domainTransformX=new n,this.domainTransformY=new n,this.renderDeferred=function(){r.applyTransform(),clearTimeout(r.timeoutToken),r.timeoutToken=setTimeout((function(){r.renderCallback()}),t.DEFERRED_RENDERING_DELAY)}}return t.prototype.setDomains=function(t,e){t&&this.domainTransformX.setDomain(t),e&&this.domainTransformY.setDomain(e),this.renderDeferred()},t.prototype.updateDomains=function(t,e){t&&this.domainTransformX.updateDomain(t),e&&this.domainTransformY.updateDomain(e),this.renderDeferred()},t.prototype.resetTransforms=function(){this.domainTransformX.reset(),this.domainTransformY.reset(),this.applyTransform()},t.prototype.applyTransform=function(){this.applyTransformCallback(this.domainTransformX.translate,this.domainTransformY.translate,this.domainTransformX.scale,this.domainTransformY.scale)},t.DEFERRED_RENDERING_DELAY=200,t})();e.DeferredRenderer=i})),Tgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.Renderer=Ift.makeEnum(["svg","canvas"]);var n=(function(t){function e(){var n=t.call(this)||this;n._dataChanged=!1,n._attrExtents={},n._animate=!1,n._animators={},n._propertyExtents={},n._resetEntityStore=function(){n._cachedEntityStore=void 0},n._overflowHidden=!0,n.addClass("plot"),n._datasetToDrawer=new Smt.Map,n._attrBindings=idt.map(),n._includedValuesProvider=function(t,e){return n._includedValuesForScale(t,e)},n._renderCallback=function(){return n.render()},n._onDatasetUpdateCallback=function(){return n._onDatasetUpdate()},n._propertyBindings=idt.map();var i=(new Bft.Easing).maxTotalDuration(e._ANIMATION_MAX_DURATION);return n.animator(fgt.Animator.MAIN,i),n.animator(fgt.Animator.RESET,new Bft.Null),n._deferredResetEntityStore=Smt.Window.debounce(Egt.DeferredRenderer.DEFERRED_RENDERING_DELAY,n._resetEntityStore),n}return Dft.__extends(e,t),e.getTotalDrawTime=function(t,e){return e.reduce((function(e,n){return e+n.animator.totalTime(t.length)}),0)},e.applyDrawSteps=function(t,e){return t.map((function(t){var n=t.attrToProjector,i={};return Object.keys(n).forEach((function(t){i[t]=function(i,r){return n[t](i,r,e)}})),{attrToAppliedProjector:i,animator:t.animator}}))},e.prototype.anchor=function(e){return e=Nft.coerceExternalD3(e),t.prototype.anchor.call(this,e),this._dataChanged=!0,this._resetEntityStore(),this._updateExtents(),this},e.prototype._setup=function(){var e=this;this._isSetup||(t.prototype._setup.call(this),null!=this._canvas&&this._appendCanvasNode(),this._renderArea=this.content().append("g").classed("render-area",!0),this.datasets().forEach((function(t){return e._createNodesForDataset(t)})))},e.prototype._appendCanvasNode=function(){var t=this.element().select(".plot-canvas-container");t.empty()&&(t=this.element().append("div").classed("plot-canvas-container",!0)).node().appendChild(this._canvas.node())},e.prototype.setBounds=function(e,n,i,r){if(t.prototype.setBounds.call(this,e,n,i,r),this._updateExtents(),null!=this._canvas){if(this._bufferCanvas&&!this._bufferCanvasValid){this._bufferCanvas.attr("width",this._canvas.attr("width")),this._bufferCanvas.attr("height",this._canvas.attr("height"));var o=this._bufferCanvas.node().getContext("2d");if(o){var a=this._canvas.node();a.width>0&&a.height>0?o.canvas.width>0&&o.canvas.height>0&&o.drawImage(a,0,0):console.warn("Failed to fill buffer canvas with with 0x0 canvas")}this._bufferCanvasValid=!0}var s=null!=window.devicePixelRatio?window.devicePixelRatio:1;this._canvas.attr("width",e*s),this._canvas.attr("height",n*s);var l=this._canvas.node().getContext("2d");if(l&&(l.setTransform(s,0,0,s,0,0),this._bufferCanvas)){var c=this._bufferCanvas.node();c.width>0&&c.height>0?l.canvas.width>0&&l.canvas.height>0&&l.drawImage(c,0,0,e,n):console.warn("Failed to fill canvas with 0x0 buffer canvas")}}return this},e.prototype.destroy=function(){var e=this;t.prototype.destroy.call(this),this._scales().forEach((function(t){return t.offUpdate(e._renderCallback)})),this.datasets([])},e.prototype._createNodesForDataset=function(t){var e=this._datasetToDrawer.get(t);return"svg"===this.renderer()?e.useSVG(this._renderArea):e.useCanvas(this._canvas),e},e.prototype._createDrawer=function(t){return new Sgt.ProxyDrawer((function(){return new Mgt.SVGDrawer("path","")}),(function(t){return new wgt.CanvasDrawer(t,(function(){}))}))},e.prototype._getAnimator=function(t){return this._animateOnNextRender()&&this._animators[t]||new Bft.Null},e.prototype._onDatasetUpdate=function(){this._updateExtents(),this._dataChanged=!0,this._resetEntityStore(),this.renderLowPriority()},e.prototype.attr=function(t,e,n){return null==e?this._attrBindings.get(t):(this._bindAttr(t,e,n),this.render(),this)},e.prototype._bindProperty=function(t,e,n,i){var r=this._propertyBindings.get(t),o=null!=r?r.scale:null;this._propertyBindings.set(t,{accessor:"function"==typeof e?e:function(){return e},scale:n,postScale:i}),null!=o&&this._uninstallScaleForKey(o,t),null!=n&&this._installScaleForKey(n,t),this._clearAttrToProjectorCache()},e.prototype._bindAttr=function(t,e,n){var i=this._attrBindings.get(t),r=null!=i?i.scale:null;this._attrBindings.set(t,{accessor:"function"==typeof e?e:function(){return e},scale:n}),null!=r&&this._uninstallScaleForKey(r,t),null!=n&&this._installScaleForKey(n,t),this._clearAttrToProjectorCache()},e.prototype._clearAttrToProjectorCache=function(){delete this._cachedAttrToProjector},e.prototype._getAttrToProjector=function(){if(null==this._cachedAttrToProjector){var t=this._generateAttrToProjector();e.OPTIMIZE_MEMOIZE_PROJECTORS&&(t=xgt.memoizeProjectors(t)),this._cachedAttrToProjector=t}return Smt.assign({},this._cachedAttrToProjector)},e.prototype._generateAttrToProjector=function(){var t={};this._attrBindings.each((function(n,i){t[i]=e._scaledAccessor(n)}));var n=this._propertyProjectors();return Object.keys(n).forEach((function(e){null==t[e]&&(t[e]=n[e])})),t},e.prototype.renderImmediately=function(){return t.prototype.renderImmediately.call(this),this._isAnchored&&(this._paint(),this._dataChanged=!1),this},e.prototype.renderLowPriority=function(){return this._renderCallback(),this},e.prototype.animated=function(t){return null==t?this._animate:(this._animate=t,this)},e.prototype.detach=function(){return t.prototype.detach.call(this),this._updateExtents(),this},e.prototype._scales=function(){var t=[];return this._attrBindings.each((function(e,n){var i=e.scale;null!=i&&-1===t.indexOf(i)&&t.push(i)})),this._propertyBindings.each((function(e,n){var i=e.scale;null!=i&&-1===t.indexOf(i)&&t.push(i)})),t},e.prototype._updateExtents=function(){var t=this;this._resetEntityStore(),this._scales().forEach((function(e){return e.addIncludedValuesProvider(t._includedValuesProvider)}))},e.prototype._filterForProperty=function(t){return null},e.prototype.getExtentsForAttr=function(t){var e=this;if(null==this._attrExtents[t]){var n=xgt.memThunk((function(){return e.datasets()}),(function(){return e._attrBindings.get(t)}),(function(t,e){return null==e||null==e.accessor?null:t.map((function(t){return i(t,e,null)}))}));this._attrExtents[t]=n}return this._attrExtents[t]()},e.prototype.getExtentsForProperty=function(t){var e=this;if(null==this._propertyExtents[t]){var n=xgt.memThunk((function(){return e.datasets()}),(function(){return e._propertyBindings.get(t)}),(function(){return e._filterForProperty(t)}),(function(t,e,n){return null==e||null==e.accessor?null:t.map((function(t){return i(t,e,n)}))}));this._propertyExtents[t]=n}return this._propertyExtents[t]()},e.prototype._includedValuesForScale=function(t,e){var n=this;if(!this._isAnchored&&!e)return[];var i=[];return this._attrBindings.each((function(e,r){if(e.scale===t){var o=n.getExtentsForAttr(r);null!=o&&(i=i.concat(idt.merge(o)))}})),this._propertyBindings.each((function(e,r){if(e.scale===t){var o=n.getExtentsForProperty(r);null!=o&&(i=i.concat(idt.merge(o)))}})),i},e.prototype.animator=function(t,e){return void 0===e?this._animators[t]:(this._animators[t]=e,this)},e.prototype.renderer=function(t){var e=this;return void 0===t?null==this._canvas?"svg":"canvas":(null==this._canvas&&"canvas"===t?(this._canvas=idt.select(document.createElement("canvas")).classed("plot-canvas",!0),this._bufferCanvas=idt.select(document.createElement("canvas")),null!=this.element()&&this._appendCanvasNode(),this._datasetToDrawer.forEach((function(t){t.useCanvas(e._canvas)})),this.render()):null!=this._canvas&&"svg"==t&&(this._canvas.remove(),this._canvas=null,this._bufferCanvas=null,this._datasetToDrawer.forEach((function(t){t.useSVG(e._renderArea)})),this.render()),this)},e.prototype.addDataset=function(t){return this._addDataset(t),this._onDatasetUpdate(),this},e.prototype._addDataset=function(t){this._removeDataset(t);var e=this._createDrawer(t);return this._datasetToDrawer.set(t,e),this._isSetup&&this._createNodesForDataset(t),t.onUpdate(this._onDatasetUpdateCallback),this},e.prototype.removeDataset=function(t){return this._removeDataset(t),this._onDatasetUpdate(),this},e.prototype._removeDataset=function(t){return-1===this.datasets().indexOf(t)||(this._removeDatasetNodes(t),t.offUpdate(this._onDatasetUpdateCallback),this._datasetToDrawer.delete(t)),this},e.prototype._removeDatasetNodes=function(t){this._datasetToDrawer.get(t).remove()},e.prototype.datasets=function(t){var e=this,n=[];return this._datasetToDrawer.forEach((function(t,e){return n.push(e)})),null==t?n:(n.forEach((function(t){return e._removeDataset(t)})),t.forEach((function(t){return e._addDataset(t)})),this._onDatasetUpdate(),this)},e.prototype._generateDrawSteps=function(){return[{attrToProjector:this._getAttrToProjector(),animator:new Bft.Null}]},e.prototype._additionalPaint=function(t){},e.prototype._buildLightweightPlotEntities=function(t){var e=this,n=[];return t.forEach((function(t,i){for(var r=e._datasetToDrawer.get(t),o=0,a=t.data(),s=a.length,l=function(s){var l=a[s],c=e._pixelPoint(l,s,t);if(Smt.Math.isNaN(c.x)||Smt.Math.isNaN(c.y))return"continue";var u=e;n.push({datum:l,get position(){return u._pixelPoint.call(u,l,s,t)},index:s,dataset:t,datasetIndex:i,component:e,drawer:r,validDatumIndex:o}),o++},c=0;c<s;c++)l(c)})),n},e.prototype._getDataToDraw=function(){var t=new Smt.Map;return this.datasets().forEach((function(e){return t.set(e,e.data())})),t},e.prototype._paint=function(){var t=this;delete this._cachedAttrToProjector;var n=this._generateDrawSteps(),i=this._getDataToDraw(),r=this.datasets().map((function(e){return t._datasetToDrawer.get(e)}));if("canvas"===this.renderer()){var o=this._canvas.node();o.getContext("2d").clearRect(0,0,o.clientWidth,o.clientHeight),this._bufferCanvasValid=!1}this.datasets().forEach((function(t,o){var a=e.applyDrawSteps(n,t);r[o].draw(i.get(t),a)}));var a=this.datasets().map((function(t,r){return e.getTotalDrawTime(i.get(t),n)})),s=Smt.Math.max(a,0);this._additionalPaint(s)},e.prototype.selections=function(t){var e=this;if(void 0===t&&(t=this.datasets()),"canvas"===this.renderer())return idt.selectAll();var n=[];return t.forEach((function(t){var i=e._datasetToDrawer.get(t);if(null!=i){var r=i.getVisualPrimitives();n.push.apply(n,r)}})),idt.selectAll(n)},e.prototype.entities=function(t){var e=this;return this._getEntityStore(t).entities().map((function(t){return e._lightweightPlotEntityToPlotEntity(t)}))},e.prototype.filterEntities=function(t){var e=this;return this._getEntityStore().entities().filter(t).map((function(t){return e._lightweightPlotEntityToPlotEntity(t)}))},e.prototype._getEntityStore=function(t){var e,n=this,i=function(t){return n._entityBounds(t)};return void 0!==t?((e=new Smt.EntityStore).addAll(this._buildLightweightPlotEntities(t),i,this._localOriginBounds()),e):(void 0===this._cachedEntityStore&&((e=new Smt.EntityStore).addAll(this._buildLightweightPlotEntities(this.datasets()),i,this._localOriginBounds()),this._cachedEntityStore=e),this._cachedEntityStore)},e.prototype._localOriginBounds=function(){return{topLeft:{x:0,y:0},bottomRight:{x:this.width(),y:this.height()}}},e.prototype._entityBounds=function(t){var e=this._pixelPoint(t.datum,t.index,t.dataset);return{x:e.x,y:e.y,width:0,height:0}},e.prototype._lightweightPlotEntityToPlotEntity=function(t){return{bounds:this._entityBounds(t),component:t.component,dataset:t.dataset,datasetIndex:t.datasetIndex,datum:t.datum,index:t.index,position:t.position,selection:idt.select(t.drawer.getVisualPrimitiveAtIndex(t.validDatumIndex))}},e.prototype.entitiesAt=function(t){throw new Error("plots must implement entitiesAt")},e.prototype.entityNearest=function(t){var e=this._getEntityStore().entityNearest(t);return void 0===e?void 0:this._lightweightPlotEntityToPlotEntity(e)},e.prototype.entitiesIn=function(t,e){return this.entitiesInBounds(null==e?{x:t.topLeft.x,y:t.topLeft.y,width:t.bottomRight.x-t.topLeft.x,height:t.bottomRight.y-t.topLeft.y}:{x:t.min,y:e.min,width:t.max-t.min,height:e.max-e.min})},e.prototype.entitiesInBounds=function(t){var e=this,n=this._getEntityStore().entitiesInBounds(t);if(n)return n.map((function(t){return e._lightweightPlotEntityToPlotEntity(t)}))},e.prototype.entitiesInXBounds=function(t){var e=this,n=this._getEntityStore().entitiesInXBounds(t);if(n)return n.map((function(t){return e._lightweightPlotEntityToPlotEntity(t)}))},e.prototype.entitiesInYBounds=function(t){var e=this,n=this._getEntityStore().entitiesInYBounds(t);if(n)return n.map((function(t){return e._lightweightPlotEntityToPlotEntity(t)}))},e.prototype._uninstallScaleForKey=function(t,e){t.offUpdate(this._renderCallback),t.offUpdate(this._deferredResetEntityStore),t.removeIncludedValuesProvider(this._includedValuesProvider)},e.prototype._installScaleForKey=function(t,e){t.onUpdate(this._renderCallback),t.onUpdate(this._deferredResetEntityStore),t.addIncludedValuesProvider(this._includedValuesProvider)},e.prototype._propertyProjectors=function(){return{}},e._scaledAccessor=function(t){var e=t.scale,n=t.accessor,i=t.postScale,r=null==e?n:function(t,i,r){return e.scale(n(t,i,r))};return null==i?r:function(t,e,n){return i(r(t,e,n),t,e,n)}},e.prototype._pixelPoint=function(t,e,n){return{x:0,y:0}},e.prototype._animateOnNextRender=function(){return this._animate&&this._dataChanged},e.OPTIMIZE_MEMOIZE_PROJECTORS=!1,e._ANIMATION_MAX_DURATION=600,e})(Tmt.Component);function i(t,e,n){var i=e.accessor,r=e.scale;if(null==r)return[];var o=t.data();null!=n&&(o=o.filter((function(e,i){return n(e,i,t)})));var a=o.map((function(e,n){return i(e,n,t)}));return r.extentOfValues(a)}e.Plot=n})),Cgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Dft.__extends(e,t),e.prototype.entityNearest=function(t){var e,n=1/0;return this.components().forEach((function(i){var r=i.entityNearest(t);if(null!=r){var o=Smt.Math.distanceSquared(r.position,t);o<=n&&(n=o,e=r)}})),e},e.prototype.append=function(e){if(null!=e&&!(e instanceof Tgt.Plot))throw new Error("Plot Group only accepts plots");return t.prototype.append.call(this,e),this},e})(cgt.Group);e.PlotGroup=n})),Agt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e){void 0===e&&(e=[]);var n=t.call(this)||this;return n._rowPadding=0,n._columnPadding=0,n._rows=[],n._rowWeights=[],n._columnWeights=[],n._nRows=0,n._nCols=0,n._calculatedLayout=null,n.addClass("table"),e.forEach((function(t,e){t.forEach((function(t,i){null!=t&&n.add(t,e,i)}))})),n}return Dft.__extends(e,t),e.prototype._forEach=function(t){for(var e=0;e<this._nRows;e++)for(var n=0;n<this._nCols;n++)null!=this._rows[e][n]&&t(this._rows[e][n])},e.prototype.has=function(t){for(var e=0;e<this._nRows;e++)for(var n=0;n<this._nCols;n++)if(this._rows[e][n]===t)return!0;return!1},e.prototype.componentAt=function(t,e){return t<0||t>=this._nRows||e<0||e>=this._nCols?null:this._rows[t][e]},e.prototype.add=function(t,e,n){if(null==t)throw Error("Cannot add null to a table cell");if(!this.has(t)){if(null!=(this._rows[e]&&this._rows[e][n]))throw new Error("cell is occupied");t.detach(),this._nRows=Math.max(e+1,this._nRows),this._nCols=Math.max(n+1,this._nCols),this._padTableToSize(this._nRows,this._nCols),this._rows[e][n]=t,this._adoptAndAnchor(t),this.redraw()}return this},e.prototype._remove=function(t){for(var e=0;e<this._nRows;e++)for(var n=0;n<this._nCols;n++)if(this._rows[e][n]===t)return this._rows[e][n]=null,!0;return!1},e.prototype._iterateLayout=function(t,n,i){void 0===i&&(i=!1);for(var r,o,a,s,l,c=this._rows,u=idt.transpose(this._rows),h=t-this._columnPadding*(this._nCols-1),d=n-this._rowPadding*(this._nRows-1),p=e._calcComponentWeights(this._rowWeights,c,(function(t){return null==t||t.fixedHeight()})),f=e._calcComponentWeights(this._columnWeights,u,(function(t){return null==t||t.fixedWidth()})),m=f.map((function(t){return 0===t?.5:t})),g=p.map((function(t){return 0===t?.5:t})),_=e._calcProportionalSpace(m,h),y=e._calcProportionalSpace(g,d),v=Smt.Array.createFilledArray(0,this._nCols),b=Smt.Array.createFilledArray(0,this._nRows),x=0;;){var w=Smt.Array.add(b,y),S=Smt.Array.add(v,_);v=(a=this._determineGuarantees(S,w,i)).guaranteedWidths,b=a.guaranteedHeights,s=a.wantsWidthArr.some((function(t){return t})),l=a.wantsHeightArr.some((function(t){return t}));var M=r,E=o;r=h-idt.sum(a.guaranteedWidths),o=d-idt.sum(a.guaranteedHeights);var T=void 0;s?(T=a.wantsWidthArr.map((function(t){return t?.1:0})),T=Smt.Array.add(T,f)):T=f;var C=void 0;if(l?(C=a.wantsHeightArr.map((function(t){return t?.1:0})),C=Smt.Array.add(C,p)):C=p,_=e._calcProportionalSpace(T,r),y=e._calcProportionalSpace(C,o),x++,!(r>0&&r!==M||o>0&&o!==E))break;if(x>5)break}return r=h-idt.sum(a.guaranteedWidths),o=d-idt.sum(a.guaranteedHeights),{colProportionalSpace:_=e._calcProportionalSpace(f,r),rowProportionalSpace:y=e._calcProportionalSpace(p,o),guaranteedWidths:a.guaranteedWidths,guaranteedHeights:a.guaranteedHeights,wantsWidth:s,wantsHeight:l}},e.prototype._determineGuarantees=function(t,e,n){void 0===n&&(n=!1);var i=Smt.Array.createFilledArray(0,this._nCols),r=Smt.Array.createFilledArray(0,this._nRows),o=Smt.Array.createFilledArray(!1,this._nCols),a=Smt.Array.createFilledArray(!1,this._nRows);return this._rows.forEach((function(s,l){s.forEach((function(s,c){var u;u=null!=s?s.requestedSpace(t[c],e[l]):{minWidth:0,minHeight:0};var h=n?Math.min(u.minWidth,t[c]):u.minWidth;i[c]=Math.max(i[c],h);var d=n?Math.min(u.minHeight,e[l]):u.minHeight;r[l]=Math.max(r[l],d),o[c]=o[c]||u.minWidth>t[c],a[l]=a[l]||u.minHeight>e[l]}))})),{guaranteedWidths:i,guaranteedHeights:r,wantsWidthArr:o,wantsHeightArr:a}},e.prototype.requestedSpace=function(t,e){return this._calculatedLayout=this._iterateLayout(t,e),{minWidth:idt.sum(this._calculatedLayout.guaranteedWidths),minHeight:idt.sum(this._calculatedLayout.guaranteedHeights)}},e.prototype.computeLayout=function(e,n,i){var r=this;t.prototype.computeLayout.call(this,e,n,i);var o=idt.sum(this._calculatedLayout.guaranteedWidths),a=idt.sum(this._calculatedLayout.guaranteedHeights),s=this._calculatedLayout;(o>this.width()||a>this.height())&&(s=this._iterateLayout(this.width(),this.height(),!0));var l=0,c=Smt.Array.add(s.rowProportionalSpace,s.guaranteedHeights),u=Smt.Array.add(s.colProportionalSpace,s.guaranteedWidths);return this._rows.forEach((function(t,e){var n=0;t.forEach((function(t,i){null!=t&&t.computeLayout({x:n,y:l},u[i],c[e]),n+=u[i]+r._columnPadding})),l+=c[e]+r._rowPadding})),this},e.prototype.rowPadding=function(t){if(null==t)return this._rowPadding;if(!Smt.Math.isValidNumber(t)||t<0)throw Error("rowPadding must be a non-negative finite value");return this._rowPadding=t,this.redraw(),this},e.prototype.columnPadding=function(t){if(null==t)return this._columnPadding;if(!Smt.Math.isValidNumber(t)||t<0)throw Error("columnPadding must be a non-negative finite value");return this._columnPadding=t,this.redraw(),this},e.prototype.rowWeight=function(t,e){if(null==e)return this._rowWeights[t];if(!Smt.Math.isValidNumber(e)||e<0)throw Error("rowWeight must be a non-negative finite value");return this._rowWeights[t]=e,this.redraw(),this},e.prototype.columnWeight=function(t,e){if(null==e)return this._columnWeights[t];if(!Smt.Math.isValidNumber(e)||e<0)throw Error("columnWeight must be a non-negative finite value");return this._columnWeights[t]=e,this.redraw(),this},e.prototype.fixedWidth=function(){var t=idt.transpose(this._rows);return e._fixedSpace(t,(function(t){return null==t||t.fixedWidth()}))},e.prototype.fixedHeight=function(){return e._fixedSpace(this._rows,(function(t){return null==t||t.fixedHeight()}))},e.prototype._padTableToSize=function(t,e){for(var n=0;n<t;n++){void 0===this._rows[n]&&(this._rows[n]=[],this._rowWeights[n]=null);for(var i=0;i<e;i++)void 0===this._rows[n][i]&&(this._rows[n][i]=null)}for(i=0;i<e;i++)void 0===this._columnWeights[i]&&(this._columnWeights[i]=null)},e._calcComponentWeights=function(t,e,n){return t.map((function(t,i){return null!=t?t:e[i].map(n).reduce((function(t,e){return t&&e}),!0)?0:1}))},e._calcProportionalSpace=function(t,e){var n=idt.sum(t);return 0===n?Smt.Array.createFilledArray(0,t.length):t.map((function(t){return e*t/n}))},e._fixedSpace=function(t,e){var n=function(t){return t.reduce((function(t,e){return t&&e}),!0)};return n(t.map((function(t){return n(t.map(e))})))},e})(lgt.ComponentContainer);e.Table=n})),kgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._maxLines=2,e}return Dft.__extends(e,t),e.prototype.requestedSpace=function(t,e){this._wrapper.maxLines(this._maxLines);var n=0===this.angle()?t:e;0===n&&(n=1/0);var i=this._wrapper.wrap(this._text,this._measurer,n),r=this._measurer.measure(i.wrappedText);return{minWidth:(0===this.angle()?r.width:r.height)+2*this.padding(),minHeight:(0===this.angle()?r.height:r.width)+2*this.padding()}},e.prototype.maxLines=function(t){return 0===arguments.length?this._maxLines:(this._maxLines=t,this.redraw(),this)},e})(hgt.Label);e.WrappedLabel=n})),Lgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e.addClass("x-drag-box-layer"),e._hasCorners=!1,e}return Dft.__extends(e,t),e.prototype.computeLayout=function(e,n,i){return t.prototype.computeLayout.call(this,e,n,i),this._setBounds(this.bounds()),this},e.prototype._setBounds=function(e){t.prototype._setBounds.call(this,{topLeft:{x:e.topLeft.x,y:0},bottomRight:{x:e.bottomRight.x,y:this.height()}})},e.prototype._setResizableClasses=function(t){t&&this.enabled()?this.addClass("x-resizable"):this.removeClass("x-resizable")},e.prototype.yScale=function(e){if(null==e)return t.prototype.yScale.call(this);throw new Error("yScales cannot be set on an XDragBoxLayer")},e.prototype.yExtent=function(e){if(null==e)return t.prototype.yExtent.call(this);throw new Error("XDragBoxLayer has no yExtent")},e})(rgt.DragBoxLayer);e.XDragBoxLayer=n})),Pgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e.addClass("y-drag-box-layer"),e._hasCorners=!1,e}return Dft.__extends(e,t),e.prototype.computeLayout=function(e,n,i){return t.prototype.computeLayout.call(this,e,n,i),this._setBounds(this.bounds()),this},e.prototype._setBounds=function(e){t.prototype._setBounds.call(this,{topLeft:{x:0,y:e.topLeft.y},bottomRight:{x:this.width(),y:e.bottomRight.y}})},e.prototype._setResizableClasses=function(t){t&&this.enabled()?this.addClass("y-resizable"):this.removeClass("y-resizable")},e.prototype.xScale=function(e){if(null==e)return t.prototype.xScale.call(this);throw new Error("xScales cannot be set on an YDragBoxLayer")},e.prototype.xExtent=function(e){if(null==e)return t.prototype.xExtent.call(this);throw new Error("YDragBoxLayer has no xExtent")},e})(rgt.DragBoxLayer);e.YDragBoxLayer=n})),Ngt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),Dft.__exportStar(rgt,e),Dft.__exportStar(agt,e),Dft.__exportStar(sgt,e),Dft.__exportStar(cgt,e),Dft.__exportStar(ogt,e),Dft.__exportStar(ugt,e),Dft.__exportStar(hgt,e),Dft.__exportStar(pgt,e),Dft.__exportStar(Cgt,e),Dft.__exportStar(igt,e),Dft.__exportStar(Agt,e),Dft.__exportStar(kgt,e),Dft.__exportStar(Lgt,e),Dft.__exportStar(Pgt,e)})),Igt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){return t.call(this,"path","arc fill")||this}return Dft.__extends(e,t),e.prototype._applyDefaultAttributes=function(t){t.style("stroke","none")},e})(Mgt.SVGDrawer);e.ArcSVGDrawer=n})),Ogt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){return t.call(this,"path","arc outline")||this}return Dft.__extends(e,t),e.prototype._applyDefaultAttributes=function(t){t.style("fill","none")},e})(Mgt.SVGDrawer);e.ArcOutlineSVGDrawer=n})),Rgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){return t.call(this,"path","area")||this}return Dft.__extends(e,t),e.prototype._applyDefaultAttributes=function(t){t.style("stroke","none")},e.prototype.getVisualPrimitiveAtIndex=function(e){return t.prototype.getVisualPrimitiveAtIndex.call(this,0)},e})(Mgt.SVGDrawer);e.AreaSVGDrawer=n;var i=["opacity","fill","fill-opacity"],r=["opacity","stroke","stroke-width"];e.makeAreaCanvasDrawStep=function o(t,e){return function(n,o,a){var s=wgt.resolveAttributes(a,i,o[0],0);wgt.renderArea(n,t(),o[0],s);var l=wgt.resolveAttributes(a,r,o[0],0);wgt.renderLine(n,e(),o[0],l)}}})),zgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){return t.call(this,"path","line")||this}return Dft.__extends(e,t),e.prototype._applyDefaultAttributes=function(t){t.style("fill","none")},e.prototype.getVisualPrimitiveAtIndex=function(e){return t.prototype.getVisualPrimitiveAtIndex.call(this,0)},e})(Mgt.SVGDrawer);e.LineSVGDrawer=n;var i=["opacity","stroke-opacity","stroke-width","stroke","stroke-dasharray"];e.makeLineCanvasDrawStep=function r(t){return function(e,n,r){var o=wgt.resolveAttributes(r,i,n[0],0);wgt.renderLine(e,t(),n[0],o)}}})),Dgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e){void 0===e&&(e="");var n=t.call(this,"rect","")||this;return n._rootClassName=e,n._root.classed(n._rootClassName,!0),n}return Dft.__extends(e,t),e})(Mgt.SVGDrawer);e.RectangleSVGDrawer=n;var i=wgt.ContextStyleAttrs.concat(["x","y","width","height"]);e.RectangleCanvasDrawStep=function(t,e,n){t.save();for(var r=e.length,o=0;o<r;o++){var a=e[o];if(null!=a){var s=wgt.resolveAttributes(n,i,a,o);t.beginPath(),t.rect(s.x,s.y,s.width,s.height),wgt.renderPathWithStyle(t,s)}}t.restore()};var r=(function(t){function n(n){return t.call(this,n,e.RectangleCanvasDrawStep)||this}return Dft.__extends(n,t),n})(wgt.CanvasDrawer);e.RectangleCanvasDrawer=r})),Bgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){return t.call(this,"line","")||this}return Dft.__extends(e,t),e})(Mgt.SVGDrawer);e.SegmentSVGDrawer=n})),Hgt=be((function(t,e){
/**
     * Copyright 2017-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(){function t(e,n,i){void 0===i&&(i=window.devicePixelRatio),this.screenWidth=e,this.screenHeight=n,this.devicePixelRatio=i,this.pixelWidth=e*i,this.pixelHeight=n*i,this.canvas=document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),t.sizePixels(this.ctx,e,n,i)}return t.sizePixels=function(t,e,n,i){var r=t.canvas;r.width=e*i,r.height=n*i,r.style.width=e+"px",r.style.height=n+"px",t.setTransform(1,0,0,1,0,0),t.scale(i,i)},t.prototype.blit=function(t,e,n){void 0===e&&(e=0),void 0===n&&(n=0),t.drawImage(this.canvas,e,n,this.screenWidth,this.screenHeight)},t.prototype.blitCenter=function(t,e,n){void 0===e&&(e=0),void 0===n&&(n=0),this.blit(t,Math.floor(e-this.screenWidth/2),Math.floor(n-this.screenHeight/2))},t.prototype.resize=function(e,n,i){void 0===i&&(i=!1);var r=this.devicePixelRatio;return this.screenWidth=e,this.screenHeight=n,this.pixelWidth=e*r,this.pixelHeight=n*r,t.sizePixels(this.ctx,e,n,r),i&&this.ctx.translate(e/2,e/2),this},t.prototype.clear=function(t){var e=this,n=e.pixelWidth,i=e.pixelHeight,r=e.ctx;return r.save(),r.setTransform(1,0,0,1,0,0),null==t?r.clearRect(0,0,n,i):(r.fillStyle=t,r.fillRect(0,0,n,i)),r.restore(),this},t.prototype.getImageData=function(){return this.ctx.getImageData(0,0,this.pixelWidth,this.pixelHeight)},t})();e.CanvasBuffer=n})),Fgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){return t.call(this,"path","symbol")||this}return Dft.__extends(e,t),e})(Mgt.SVGDrawer);e.SymbolSVGDrawer=n;var i=wgt.ContextStyleAttrs.concat(["x","y"]);function r(t,e,n,i,r){return n+r>=0&&n-r<=t&&i+r>=0&&i-r<=e}function o(t,e,n){if(null==t)return!1;for(var i=0;i<n.length;i++){var r=n[i];if(t[r]!=e[r])return!1}return!0}e.makeSymbolCanvasDrawStep=function a(t,e,n,s){var l=this;return function(a,c,u){for(var h=a.canvas,d=h.clientWidth,p=h.clientHeight,f=void 0===s?new Hgt.CanvasBuffer(0,0):s,m=e(),g=n(),_=null,y=null,v=null,b=0;b<c.length;b++){var x=c[b];if(null!=x){var w=wgt.resolveAttributes(u,i,x,b),S=g(x,b,t);if(r(d,p,w.x,w.y,S)){var M=o(_,w,wgt.ContextStyleAttrs),E=m(x,b,l._dataset);if(M&&v==S&&y==E);else{var T=S+wgt.getStrokeWidth(w)+1;(T>f.screenWidth||T>f.screenHeight)&&f.resize(T,T,!0),f.clear();var C=f.ctx;C.beginPath(),E(S).context(C)(null),C.closePath(),wgt.renderPathWithStyle(C,w),y=E,v=S,_=w}f.blitCenter(a,w.x,w.y)}}}}}})),Vgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),Dft.__exportStar(Igt,e),Dft.__exportStar(Ogt,e),Dft.__exportStar(Rgt,e),Dft.__exportStar(wgt,e),Dft.__exportStar(Sgt,e),Dft.__exportStar(zgt,e),Dft.__exportStar(Dgt,e),Dft.__exportStar(Bgt,e),Dft.__exportStar(Mgt,e),Dft.__exportStar(Fgt,e)})),Ugt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._autoAdjustXScaleDomain=!1,e._autoAdjustYScaleDomain=!1,e._deferredRendering=!1,e._applyDeferredRenderingTransform=function(t,n,i,r){e._isAnchored&&(null!=e._renderArea&&e._renderArea.attr("transform","translate("+t+", "+n+") scale("+i+", "+r+")"),null!=e._canvas&&e._canvas.style("transform","translate("+t+"px, "+n+"px) scale("+i+", "+r+")"))},e.addClass("xy-plot"),e._adjustYDomainOnChangeFromXCallback=function(t){return e._adjustYDomainOnChangeFromX()},e._adjustXDomainOnChangeFromYCallback=function(t){return e._adjustXDomainOnChangeFromY()},e._renderCallback=function(){if(e.deferredRendering()){var t=e.x()&&e.x().scale,n=e.y()&&e.y().scale;e._deferredRenderer.updateDomains(t,n)}else e.render()},e._deferredRenderer=new Egt.DeferredRenderer((function(){return e.render()}),e._applyDeferredRenderingTransform),e}return Dft.__extends(e,t),e.prototype.render=function(){return this.deferredRendering()&&this._deferredRenderer.resetTransforms(),t.prototype.render.call(this)},e.prototype.deferredRendering=function(t){if(null==t)return this._deferredRendering;if(t){var e=this.x()&&this.x().scale,n=this.y()&&this.y().scale;this._deferredRenderer.setDomains(e,n)}return this._deferredRendering=t,this},e.prototype.x=function(t,n,i){if(null==t)return this._propertyBindings.get(e._X_KEY);this._bindProperty(e._X_KEY,t,n,i);var r=this.width();return null!=n&&null!=r&&n.range([0,r]),this._autoAdjustYScaleDomain&&this._updateYExtentsAndAutodomain(),this.render(),this},e.prototype.y=function(t,n,i){if(null==t)return this._propertyBindings.get(e._Y_KEY);this._bindProperty(e._Y_KEY,t,n,i);var r=this.height();return null!=n&&null!=r&&n.range(n instanceof Umt.Category?[0,r]:[r,0]),this._autoAdjustXScaleDomain&&this._updateXExtentsAndAutodomain(),this.render(),this},e.prototype._filterForProperty=function(t){return"x"===t&&this._autoAdjustXScaleDomain?this._makeFilterByProperty("y"):"y"!==t&&"y0"!==t||!this._autoAdjustYScaleDomain?null:this._makeFilterByProperty("x")},e.prototype._makeFilterByProperty=function(t){var e=this._propertyBindings.get(t);if(null!=e){var n=e.accessor,i=e.scale;if(null!=i)return function(t,e,r){var o=i.range();return Smt.Math.inRange(i.scale(n(t,e,r)),o[0],o[1])}}return null},e.prototype._uninstallScaleForKey=function(n,i){t.prototype._uninstallScaleForKey.call(this,n,i),n.offUpdate(i===e._X_KEY?this._adjustYDomainOnChangeFromXCallback:this._adjustXDomainOnChangeFromYCallback)},e.prototype._installScaleForKey=function(n,i){t.prototype._installScaleForKey.call(this,n,i),n.onUpdate(i===e._X_KEY?this._adjustYDomainOnChangeFromXCallback:this._adjustXDomainOnChangeFromYCallback)},e.prototype.destroy=function(){return t.prototype.destroy.call(this),this.x().scale&&this.x().scale.offUpdate(this._adjustYDomainOnChangeFromXCallback),this.y().scale&&this.y().scale.offUpdate(this._adjustXDomainOnChangeFromYCallback),this},e.prototype.autorangeMode=function(t){if(null==t)return this._autoAdjustXScaleDomain?"x":this._autoAdjustYScaleDomain?"y":"none";switch(t){case"x":this._autoAdjustXScaleDomain=!0,this._autoAdjustYScaleDomain=!1,this._adjustXDomainOnChangeFromY();break;case"y":this._autoAdjustXScaleDomain=!1,this._autoAdjustYScaleDomain=!0,this._adjustYDomainOnChangeFromX();break;case"none":this._autoAdjustXScaleDomain=!1,this._autoAdjustYScaleDomain=!1;break;default:throw new Error("Invalid scale name '"+t+"', must be 'x', 'y' or 'none'")}return this},e.prototype.computeLayout=function(e,n,i){t.prototype.computeLayout.call(this,e,n,i);var r=this.x(),o=r&&r.scale;null!=o&&o.range([0,this.width()]);var a=this.y(),s=a&&a.scale;return null!=s&&s.range(s instanceof Umt.Category?[0,this.height()]:[this.height(),0]),this},e.prototype._updateXExtentsAndAutodomain=function(){var t=this.x().scale;null!=t&&t.autoDomain()},e.prototype._updateYExtentsAndAutodomain=function(){var t=this.y().scale;null!=t&&t.autoDomain()},e.prototype.showAllData=function(){return this._updateXExtentsAndAutodomain(),this._updateYExtentsAndAutodomain(),this},e.prototype._adjustYDomainOnChangeFromX=function(){this._projectorsReady()&&this._autoAdjustYScaleDomain&&this._updateYExtentsAndAutodomain()},e.prototype._adjustXDomainOnChangeFromY=function(){this._projectorsReady()&&this._autoAdjustXScaleDomain&&this._updateXExtentsAndAutodomain()},e.prototype._projectorsReady=function(){var t=this.x(),e=this.y();return null!=t&&null!=t.accessor&&null!=e&&null!=e.accessor},e.prototype._pixelPoint=function(t,e,n){var i=Tgt.Plot._scaledAccessor(this.x()),r=Tgt.Plot._scaledAccessor(this.y());return{x:i(t,e,n),y:r(t,e,n)}},e.prototype._getDataToDraw=function(){var e=this,n=t.prototype._getDataToDraw.call(this),i=this.attr("defined");return this.datasets().forEach((function(t){n.set(t,n.get(t).filter((function(n,r){return(function(t,n,r){var o=Tgt.Plot._scaledAccessor(e.x())(t,n,r),a=Tgt.Plot._scaledAccessor(e.y())(t,n,r);return(!i||!1!==i.accessor(t,n,r))&&Smt.Math.isValidNumber(o)&&Smt.Math.isValidNumber(a)})(n,r,t)})))})),n},e._X_KEY="x",e._Y_KEY="y",e})(Tgt.Plot);e.XYPlot=n})),jgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n={linear:idt.curveLinear,linearClosed:idt.curveLinearClosed,step:idt.curveStep,stepBefore:idt.curveStepBefore,stepAfter:idt.curveStepAfter,basis:idt.curveBasis,basisOpen:idt.curveBasisOpen,basisClosed:idt.curveBasisClosed,bundle:idt.curveBundle,cardinal:idt.curveCardinal,cardinalOpen:idt.curveCardinalOpen,cardinalClosed:idt.curveCardinalClosed,monotone:idt.curveMonotoneX};e.CurveName=Ift.makeEnum(["linear","linearClosed","step","stepBefore","stepAfter","basis","basisOpen","basisClosed","bundle","cardinal","cardinalOpen","cardinalClosed","monotone"]);var i=(function(t){function e(){var e=t.call(this)||this;e._curve="linear",e._autorangeSmooth=!1,e._croppedRenderingEnabled=!0,e._collapseDenseVerticalLinesEnabled=!1,e._downsamplingEnabled=!1,e.addClass("line-plot");var n=new Bft.Easing;return n.stepDuration(Tgt.Plot._ANIMATION_MAX_DURATION),n.easingMode("expInOut"),n.maxTotalDuration(Tgt.Plot._ANIMATION_MAX_DURATION),e.animator(t_t.Animator.MAIN,n),e.attr("stroke",(new Umt.Color).range()[0]),e.attr("stroke-width","2px"),e}return Dft.__extends(e,t),e.prototype.x=function(e,n,i){return null==e?t.prototype.x.call(this):(t.prototype.x.call(this,e,n,i),this._setScaleSnapping(),this)},e.prototype.y=function(e,n,i){return null==e?t.prototype.y.call(this):(t.prototype.y.call(this,e,n,i),this._setScaleSnapping(),this)},e.prototype.autorangeMode=function(e){return null==e?t.prototype.autorangeMode.call(this):(t.prototype.autorangeMode.call(this,e),this._setScaleSnapping(),this)},e.prototype.autorangeSmooth=function(t){return null==t?this._autorangeSmooth:(this._autorangeSmooth=t,this._setScaleSnapping(),this)},e.prototype._setScaleSnapping=function(){"x"===this.autorangeMode()&&this.x()&&this.x().scale&&this.x().scale instanceof Dmt.QuantitativeScale&&this.x().scale.snappingDomainEnabled(!this.autorangeSmooth()),"y"===this.autorangeMode()&&this.y()&&this.y().scale&&this.y().scale instanceof Dmt.QuantitativeScale&&this.y().scale.snappingDomainEnabled(!this.autorangeSmooth())},e.prototype.curve=function(t){return null==t?this._curve:(this._curve=t,this.render(),this)},e.prototype.downsamplingEnabled=function(t){return null==t?this._downsamplingEnabled:(this._downsamplingEnabled=t,this)},e.prototype.croppedRenderingEnabled=function(t){return null==t?this._croppedRenderingEnabled:(this._croppedRenderingEnabled=t,this.render(),this)},e.prototype.collapseDenseLinesEnabled=function(t){return null==t?this._collapseDenseVerticalLinesEnabled:(this._collapseDenseVerticalLinesEnabled=t,this.render(),this)},e.prototype._createDrawer=function(t){var e=this;return new Sgt.ProxyDrawer((function(){return new zgt.LineSVGDrawer}),(function(n){return new Vgt.CanvasDrawer(n,zgt.makeLineCanvasDrawStep((function(){return e._d3LineFactory(t)})))}))},e.prototype.getExtentsForProperty=function(e){var n=t.prototype.getExtentsForProperty.call(this,e);if(!this._autorangeSmooth)return n;if(this.autorangeMode()!==e)return n;if("x"!==this.autorangeMode()&&"y"!==this.autorangeMode())return n;var i,r=this._getEdgeIntersectionPoints();return i="y"===this.autorangeMode()?r.left.concat(r.right).map((function(t){return t.y})):r.top.concat(r.bottom).map((function(t){return t.x})),n.map((function(t){return idt.extent(idt.merge([t,i]))}))},e.prototype._getEdgeIntersectionPoints=function(){var t=this;if(!(this.y().scale instanceof Dmt.QuantitativeScale&&this.x().scale instanceof Dmt.QuantitativeScale))return{left:[],right:[],top:[],bottom:[]};var e=this.y().scale,n=this.x().scale,i={left:[],right:[],top:[],bottom:[]},r=n.scale(n.domain()[0]),o=n.scale(n.domain()[1]),a=e.scale(e.domain()[0]),s=e.scale(e.domain()[1]);return this.datasets().forEach((function(l){for(var c,u,h,d,p=l.data(),f=1;f<p.length;f++)c=h||n.scale(t.x().accessor(p[f-1],f-1,l)),u=d||e.scale(t.y().accessor(p[f-1],f-1,l)),h=n.scale(t.x().accessor(p[f],f,l)),d=e.scale(t.y().accessor(p[f],f,l)),c<r==r<=h&&i.left.push({x:r,y:e.invert(u+(r-c)*(d-u)/(h-c))}),c<o==o<=h&&i.right.push({x:o,y:e.invert(u+(o-c)*(d-u)/(h-c))}),u<s==s<=d&&i.top.push({x:n.invert(c+(s-u)*(h-c)/(d-u)),y:s}),u<a==a<=d&&i.bottom.push({x:n.invert(c+(a-u)*(h-c)/(d-u)),y:a})})),i},e.prototype._getResetYFunction=function(){var t=this.y().scale.domain(),e=Math.max(t[0],t[1]),n=Math.min(t[0],t[1]),i=e<0&&e||n>0&&n||0,r=this.y().scale.scale(i);return function(t,e,n){return r}},e.prototype._generateDrawSteps=function(){var t=[];if(this._animateOnNextRender()){var e=this._getAttrToProjector();e.d=this._constructLineProjector(Tgt.Plot._scaledAccessor(this.x()),this._getResetYFunction()),t.push({attrToProjector:e,animator:this._getAnimator(t_t.Animator.RESET)})}return t.push({attrToProjector:this._getAttrToProjector(),animator:this._getAnimator(t_t.Animator.MAIN)}),t},e.prototype._generateAttrToProjector=function(){var e=t.prototype._generateAttrToProjector.call(this);return Object.keys(e).forEach((function(t){if("d"!==t){var n=e[t];e[t]=function(t,e,i){return t.length>0?n(t[0],e,i):null}}})),e},e.prototype.entitiesAt=function(t){var e=this.entityNearestByXThenY(t);return null!=e?[e]:[]},e.prototype.entityNearestByXThenY=function(t){for(var e,n=1/0,i=1/0,r=this.bounds(),o=this.entities(),a=o.length,s=0;s<a;s++){var l=o[s];if(Smt.Math.within(l.position,r)){var c=Math.abs(t.x-l.position.x),u=Math.abs(t.y-l.position.y);(c<n||c===n&&u<i)&&(e=l,n=c,i=u)}}return e},e.prototype._propertyProjectors=function(){var e=t.prototype._propertyProjectors.call(this);return e.d=this._constructLineProjector(Tgt.Plot._scaledAccessor(this.x()),Tgt.Plot._scaledAccessor(this.y())),e},e.prototype._constructLineProjector=function(t,e){var n=this;return function(i,r,o){return n._d3LineFactory(o,t,e)(i)}},e.prototype._d3LineFactory=function(t,e,n){return void 0===e&&(e=Tgt.Plot._scaledAccessor(this.x())),void 0===n&&(n=Tgt.Plot._scaledAccessor(this.y())),idt.line().x((function(n,i){return e(n,i,t)})).y((function(e,i){return n(e,i,t)})).curve(this._getCurveFactory()).defined((function(i,r){return(function(t,i,r){var o=e(t,i,r),a=n(t,i,r);return Smt.Math.isValidNumber(o)&&Smt.Math.isValidNumber(a)})(i,r,t)}))},e.prototype._getCurveFactory=function(){var t=this.curve();if("string"==typeof t){var e=n[t];return null==e?n.linear:e}return t},e.prototype._getDataToDraw=function(){var t=this,e=new Smt.Map;return this.datasets().forEach((function(n){var i=n.data();if(t._croppedRenderingEnabled||t._downsamplingEnabled){for(var r=[],o=i.length,a=0;a<o;a++)r[a]=a;t._croppedRenderingEnabled&&(r=t._filterCroppedRendering(n,r)),t._downsamplingEnabled&&(r=t._filterDownsampling(n,r)),t._collapseDenseVerticalLinesEnabled&&(r=t._filterDenseLines(n,r));var s=[],l=r.length;for(a=0;a<l;a++)s[a]=i[r[a]];e.set(n,[s])}else e.set(n,[i])})),e},e.prototype._filterCroppedRendering=function(t,e){for(var n=this,i=Tgt.Plot._scaledAccessor(this.x()),r=Tgt.Plot._scaledAccessor(this.y()),o=t.data(),a=[],s=function(t,e){return Smt.Math.inRange(t,0,n.width())&&Smt.Math.inRange(e,0,n.height())},l=0;l<e.length;l++){var c=s(i(o[e[l]],e[l],t),r(o[e[l]],e[l],t));if(!c&&null!=e[l-1]&&null!=o[e[l-1]]){var u=i(o[e[l-1]],e[l-1],t),h=r(o[e[l-1]],e[l-1],t);c=c||s(u,h)}if(!c&&null!=e[l+1]&&null!=o[e[l+1]]){var d=i(o[e[l+1]],e[l+1],t),p=r(o[e[l+1]],e[l+1],t);c=c||s(d,p)}c&&a.push(e[l])}return a},e.prototype._filterDownsampling=function(t,e){if(0===e.length)return[];for(var n=t.data(),i=Tgt.Plot._scaledAccessor(this.x()),r=Tgt.Plot._scaledAccessor(this.y()),o=[e[0]],a=function(o,a){var s=i(n[e[o]],e[o],t),l=r(n[e[o]],e[o],t),c=i(n[e[o+1]],e[o+1],t),u=r(n[e[o+1]],e[o+1],t);if(a===1/0)return Math.floor(s)===Math.floor(c);var h=l+(c-s)*a;return Math.floor(u)===Math.floor(h)},s=0;s<e.length-1;){for(var l=e[s],c=i(n[e[s]],e[s],t),u=r(n[e[s]],e[s],t),h=i(n[e[s+1]],e[s+1],t),d=r(n[e[s+1]],e[s+1],t),p=Math.floor(c)===Math.floor(h)?1/0:(d-u)/(h-c),f=e[s],m=p===1/0?u:c,g=f,_=m,y=!0;s<e.length-1&&(y||a(s,p));){s++,y=!1;var v=p===1/0?r(n[e[s]],e[s],t):i(n[e[s]],e[s],t);v>_&&(_=v,g=e[s]),v<m&&(m=v,f=e[s])}var b=e[s];f!==l&&o.push(f),g!==f&&g!==l&&o.push(g),b!==l&&b!==f&&b!==g&&o.push(b)}return o},e.prototype._filterDenseLines=function(t,e){if(0===e.length)return[];var n=t.data(),i=Tgt.Plot._scaledAccessor(this.x()),r=Tgt.Plot._scaledAccessor(this.y());return this._bucketByX(t,e,(function(e){return i(n[e],e,t)}),(function(e){return r(n[e],e,t)}))},e.prototype._bucketByX=function(t,e,n,i){for(var r=[],o=t.data(),a=null,s=e.length,l=0;l<=s;++l){var c=e[l];if(null!=o[c]){var u=Math.floor(n(c)),h=i(c);null==a?a=new Smt.Bucket(c,u,h):a.isInBucket(u)?a.addToBucket(h,c):(r.push.apply(r,a.getUniqueIndices()),a=new Smt.Bucket(c,u,h))}}return null!=a&&r.push.apply(r,a.getUniqueIndices()),r},e})(Ugt.XYPlot);e.Line=i})),Ggt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e.addClass("area-plot"),e.y0(0),e.attr("fill-opacity",.25),e.attr("fill",(new Umt.Color).range()[0]),e._lineDrawers=new Smt.Map,e}return Dft.__extends(e,t),e.prototype.y=function(n,i){if(null==n)return t.prototype.y.call(this);if(null==i?t.prototype.y.call(this,n):t.prototype.y.call(this,n,i),null!=i){var r=this.y0().accessor;null!=r&&this._bindProperty(e._Y0_KEY,r,i),this._updateYScale()}return this},e.prototype.y0=function(t){if(null==t)return this._propertyBindings.get(e._Y0_KEY);var n=this.y();return this._bindProperty(e._Y0_KEY,t,n&&n.scale),this._updateYScale(),this.render(),this},e.prototype._onDatasetUpdate=function(){t.prototype._onDatasetUpdate.call(this),this._updateYScale()},e.prototype._addDataset=function(e){var n=this;return this._lineDrawers.set(e,new Vgt.ProxyDrawer((function(){return new zgt.LineSVGDrawer}),(function(t){return new Vgt.CanvasDrawer(t,zgt.makeLineCanvasDrawStep((function(){var t=Tgt.Plot._scaledAccessor(n.x()),i=Tgt.Plot._scaledAccessor(n.y());return n._d3LineFactory(e,t,i)})))}))),t.prototype._addDataset.call(this,e),this},e.prototype._createNodesForDataset=function(e){t.prototype._createNodesForDataset.call(this,e);var n=this._lineDrawers.get(e);return"svg"===this.renderer()?n.useSVG(this._renderArea):n.useCanvas(this._canvas),n},e.prototype._removeDatasetNodes=function(e){t.prototype._removeDatasetNodes.call(this,e),this._lineDrawers.get(e).remove()},e.prototype._additionalPaint=function(){var t=this,e=this._generateLineDrawSteps(),n=this._getDataToDraw();this.datasets().forEach((function(i){var r=Tgt.Plot.applyDrawSteps(e,i);t._lineDrawers.get(i).draw(n.get(i),r)}))},e.prototype._generateLineDrawSteps=function(){var t=[];if(this._animateOnNextRender()){var e=this._generateLineAttrToProjector();e.d=this._constructLineProjector(Tgt.Plot._scaledAccessor(this.x()),this._getResetYFunction()),t.push({attrToProjector:e,animator:this._getAnimator(t_t.Animator.RESET)})}return t.push({attrToProjector:this._generateLineAttrToProjector(),animator:this._getAnimator(t_t.Animator.MAIN)}),t},e.prototype._generateLineAttrToProjector=function(){var t=this._getAttrToProjector();return t.d=this._constructLineProjector(Tgt.Plot._scaledAccessor(this.x()),Tgt.Plot._scaledAccessor(this.y())),t},e.prototype._createDrawer=function(t){var e=this;return new Sgt.ProxyDrawer((function(){return new Rgt.AreaSVGDrawer}),(function(n){return new Vgt.CanvasDrawer(n,Rgt.makeAreaCanvasDrawStep((function(){var n=e._coordinateProjectors(),i=n[0],r=n[1],o=n[2],a=e._createDefinedProjector(i,r);return e._createAreaGenerator(i,r,o,a,t)}),(function(){var n=e._coordinateProjectors(),i=n[0],r=n[1],o=e._createDefinedProjector(i,r);return e._createTopLineGenerator(i,r,o,t)})))}))},e.prototype._generateDrawSteps=function(){var t=[];if(this._animateOnNextRender()){var e=this._getAttrToProjector();e.d=this._constructAreaProjector(Tgt.Plot._scaledAccessor(this.x()),this._getResetYFunction(),Tgt.Plot._scaledAccessor(this.y0())),t.push({attrToProjector:e,animator:this._getAnimator(t_t.Animator.RESET)})}return t.push({attrToProjector:this._getAttrToProjector(),animator:this._getAnimator(t_t.Animator.MAIN)}),t},e.prototype._updateYScale=function(){var t=this.getExtentsForProperty("y0"),e=Smt.Array.flatten(t),n=Smt.Array.uniq(e),i=1===n.length?n[0]:null,r=this.y(),o=r&&r.scale;null!=o&&(null!=this._constantBaselineValueProvider&&(o.removePaddingExceptionsProvider(this._constantBaselineValueProvider),this._constantBaselineValueProvider=null),null!=i&&(this._constantBaselineValueProvider=function(){return[i]},o.addPaddingExceptionsProvider(this._constantBaselineValueProvider)))},e.prototype._getResetYFunction=function(){return Tgt.Plot._scaledAccessor(this.y0())},e.prototype._coordinateProjectors=function(){return[Tgt.Plot._scaledAccessor(this.x()),Tgt.Plot._scaledAccessor(this.y()),Tgt.Plot._scaledAccessor(this.y0())]},e.prototype._propertyProjectors=function(){var e=t.prototype._propertyProjectors.call(this),n=this._coordinateProjectors();return e.d=this._constructAreaProjector(n[0],n[1],n[2]),e},e.prototype.selections=function(e){var n=this;if(void 0===e&&(e=this.datasets()),"canvas"===this.renderer())return idt.selectAll();var i=t.prototype.selections.call(this,e).nodes();return e.map((function(t){return n._lineDrawers.get(t)})).filter((function(t){return null!=t})).forEach((function(t){return i.push.apply(i,t.getVisualPrimitives())})),idt.selectAll(i)},e.prototype._constructAreaProjector=function(t,e,n){var i=this,r=this._createDefinedProjector(Tgt.Plot._scaledAccessor(this.x()),Tgt.Plot._scaledAccessor(this.y()));return function(o,a,s){return i._createAreaGenerator(t,e,n,r,s)(o)}},e.prototype._createDefinedProjector=function(t,e){return function(n,i,r){var o=t(n,i,r),a=e(n,i,r);return Smt.Math.isValidNumber(o)&&Smt.Math.isValidNumber(a)}},e.prototype._createAreaGenerator=function(t,e,n,i,r){var o=this._getCurveFactory();return idt.area().x((function(e,n){return t(e,n,r)})).y1((function(t,n){return e(t,n,r)})).y0((function(t,e){return n(t,e,r)})).curve(o).defined((function(t,e){return i(t,e,r)}))},e.prototype._createTopLineGenerator=function(t,e,n,i){var r=this._getCurveFactory();return idt.line().x((function(e,n){return t(e,n,i)})).y((function(t,n){return e(t,n,i)})).curve(r).defined((function(t,e){return n(t,e,i)}))},e._Y0_KEY="y0",e})(jgt.Line);e.Area=n})),Wgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.BarOrientation=Ift.makeEnum(["vertical","horizontal"]),e.LabelsPosition=Ift.makeEnum(["start","middle","end","outside"]),e.BarAlignment=Ift.makeEnum(["start","middle","end"]);var n=(function(t){function n(r){void 0===r&&(r="vertical");var o=t.call(this)||this;if(o._labelFormatter=Cmt.identity(),o._labelsEnabled=!1,o._labelsPosition=e.LabelsPosition.end,o._hideBarsIfAnyAreTooWide=!0,o._barAlignment="middle",o._computeBarPixelThickness=xgt.memoize(i),o._fixedBarPixelThickness=!0,o.addClass("bar-plot"),"vertical"!==r&&"horizontal"!==r)throw new Error(r+" is not a valid orientation for Plots.Bar");return o._isVertical="vertical"===r,o.animator("baseline",new Bft.Null),o.attr("fill",(new Umt.Color).range()[0]),o.attr(n._BAR_THICKNESS_KEY,(function(){return o._barPixelThickness()})),o._labelConfig=new Smt.Map,o._baselineValueProvider=function(){return[o.baselineValue()]},o}return Dft.__extends(n,t),n.prototype.computeLayout=function(e,n,i){return t.prototype.computeLayout.call(this,e,n,i),this._updateExtents(),this},n.prototype.x=function(e,n){return null==e?t.prototype.x.call(this):(null==n?t.prototype.x.call(this,e):t.prototype.x.call(this,e,n),this._updateThicknessAttr(),this._updateLengthScale(),this)},n.prototype.y=function(e,n){return null==e?t.prototype.y.call(this):(null==n?t.prototype.y.call(this,e):t.prototype.y.call(this,e,n),this._updateLengthScale(),this)},n.prototype.length=function(){return this._isVertical?this.y():this.x()},n.prototype.position=function(){return this._isVertical?this.x():this.y()},n.prototype.barEnd=function(t){if(null==t)return this._propertyBindings.get(n._BAR_END_KEY);var e=this.position();return this._bindProperty(n._BAR_END_KEY,t,e&&e.scale),this._updateThicknessAttr(),this._updateLengthScale(),this.render(),this},n.prototype.barAlignment=function(t){return null==t?this._barAlignment:(this._barAlignment=t,this._clearAttrToProjectorCache(),this.render(),this)},n.prototype.orientation=function(){return this._isVertical?"vertical":"horizontal"},n.prototype._createDrawer=function(){return new Sgt.ProxyDrawer((function(){return new Dgt.RectangleSVGDrawer(n._BAR_AREA_CLASS)}),(function(t){return new Vgt.RectangleCanvasDrawer(t)}))},n.prototype._setup=function(){t.prototype._setup.call(this),this._baseline=this._renderArea.append("line").classed("baseline",!0)},n.prototype.baselineValue=function(t){if(null==t){if(null!=this._baselineValue)return this._baselineValue;if(!this._projectorsReady())return 0;var e=this.length().scale;return e&&e instanceof Umt.Time?new Date(0):0}return this._baselineValue=t,this._updateLengthScale(),this._clearAttrToProjectorCache(),this.render(),this},n.prototype.addDataset=function(e){return t.prototype.addDataset.call(this,e),this},n.prototype._addDataset=function(e){return t.prototype._addDataset.call(this,e),this},n.prototype.removeDataset=function(e){return t.prototype.removeDataset.call(this,e),this},n.prototype._removeDataset=function(e){return t.prototype._removeDataset.call(this,e),this},n.prototype.datasets=function(e){return null==e?t.prototype.datasets.call(this):(t.prototype.datasets.call(this,e),this)},n.prototype.labelsEnabled=function(t,e){return null==t?this._labelsEnabled:(this._labelsEnabled=t,null!=e&&(this._labelsPosition=e),this._clearAttrToProjectorCache(),this.render(),this)},n.prototype.labelFormatter=function(t){return null==t?this._labelFormatter:(this._labelFormatter=t,this._clearAttrToProjectorCache(),this.render(),this)},n.prototype._createNodesForDataset=function(e){var i=t.prototype._createNodesForDataset.call(this,e),r=this._renderArea.append("g").classed(n._LABEL_AREA_CLASS,!0),o=new amt.SvgContext(r.node()),a=new amt.CacheMeasurer(o),s=new amt.Writer(a,o);return this._labelConfig.set(e,{labelArea:r,measurer:a,writer:s}),i},n.prototype._removeDatasetNodes=function(e){t.prototype._removeDatasetNodes.call(this,e);var n=this._labelConfig.get(e);null!=n&&(n.labelArea.remove(),this._labelConfig.delete(e))},n.prototype.entityNearest=function(t){var e=this,n=function(){var n=e._isVertical?e._getEntityStore().entityNearestX(t):e._getEntityStore().entityNearestY(t);return void 0===n?void 0:e._lightweightPlotEntityToPlotEntity(n)};return this._fixedBarPixelThickness?this._computeBarPixelThickness.doLocked(n):n()},n.prototype.entitiesAt=function(t){var e=this,n=function(){return e._entitiesIntersecting(t.x,t.y)};return this._fixedBarPixelThickness?this._computeBarPixelThickness.doLocked(n):n()},n.prototype.entitiesInBounds=function(e){var n=this,i=function(){return t.prototype.entitiesInBounds.call(n,e)};return this._fixedBarPixelThickness?this._computeBarPixelThickness.doLocked(i):i()},n.prototype.entitiesInXBounds=function(e){var n=this,i=function(){return t.prototype.entitiesInXBounds.call(n,e)};return this._fixedBarPixelThickness?this._computeBarPixelThickness.doLocked(i):i()},n.prototype.entitiesInYBounds=function(e){var n=this,i=function(){return t.prototype.entitiesInYBounds.call(n,e)};return this._fixedBarPixelThickness?this._computeBarPixelThickness.doLocked(i):i()},n.prototype._entitiesIntersecting=function(t,e){for(var n=[],i=this._getEntityStore().entities(),r=i.length,o=0;o<r;o++){var a=i[o];Smt.DOM.intersectsBBox(t,e,this._entityBounds(a))&&n.push(this._lightweightPlotEntityToPlotEntity(a))}return n},n.prototype._updateLengthScale=function(){if(this._projectorsReady()){var t=this.length().scale;t instanceof Dmt.QuantitativeScale&&(t.addPaddingExceptionsProvider(this._baselineValueProvider),t.addIncludedValuesProvider(this._baselineValueProvider))}},n.prototype.renderImmediately=function(){var e=this;return this._barPixelThickness(),this._computeBarPixelThickness.doLocked((function(){return t.prototype.renderImmediately.call(e)}))},n.prototype._additionalPaint=function(t){var e=this,n=this.length().scale.scale(this.baselineValue()),i={x1:this._isVertical?0:n,y1:this._isVertical?n:0,x2:this._isVertical?this.width():n,y2:this._isVertical?n:this.height()};this._getAnimator("baseline").animate(this._baseline,i),this.datasets().forEach((function(t){return e._labelConfig.get(t).labelArea.selectAll("g").remove()})),this._labelsEnabled&&Smt.Window.setTimeout((function(){return e._drawLabels()}),t)},n.prototype.getExtentsForProperty=function(e){var n,i=this,r=t.prototype.getExtentsForProperty.call(this,e);if("x"===e&&this._isVertical)n=this.x();else{if("y"!==e||this._isVertical)return r;n=this.y()}if(!(n&&n.scale&&n.scale instanceof Dmt.QuantitativeScale))return r;var o=n.scale,a=this._barPixelThickness();return r.map((function(t){return idt.extent([o.invert(i._getPositionAttr(o.scale(t[0]),a)),o.invert(i._getPositionAttr(o.scale(t[0]),a)+a),o.invert(i._getPositionAttr(o.scale(t[1]),a)),o.invert(i._getPositionAttr(o.scale(t[1]),a)+a)])}))},n.prototype._getPositionAttr=function(t,e){switch(this._isVertical||(t-=e,e*=-1),this._barAlignment){case"start":return t;case"end":return t-e;case"middle":default:return t-e/2}},n.prototype._drawLabels=function(){var t=this,e=this._getDataToDraw(),n=this._getAttrToProjector(),i=this.datasets().some((function(i){return e.get(i).some((function(e,r){return null!=e&&t._drawLabel(e,r,i,n)}))}));this._hideBarsIfAnyAreTooWide&&i&&this.datasets().forEach((function(e){return t._labelConfig.get(e).labelArea.selectAll("g").remove()}))},n.prototype._drawLabel=function(t,e,n,i){var r=this._labelConfig.get(n),o=r.labelArea,a=r.measurer,s=r.writer,l=(0,this.length().accessor)(t,e,n),c=this.length().scale,u=null!=c?c.scale(l):l,h=null!=c?c.scale(this.baselineValue()):this.baselineValue(),d={x:i.x(t,e,n),y:i.y(t,e,n)},p={width:i.width(t,e,n),height:i.height(t,e,n)},f=this._labelFormatter(l,t,e,n),m=a.measure(f),g=this._shouldShowLabelOnBar(d,p,m),_=this._calculateLabelProperties(d,p,m,g,this._isVertical?u<=h:u<h),y=_.containerDimensions,v=_.labelContainerOrigin,b=_.labelOrigin,x=_.alignment,w=i.fill(t,e,n),S=this._createLabelContainer(o,v,b,m,g,w);return s.write(f,y.width,y.height,{xAlign:x.x,yAlign:x.y},S.node()),this._isVertical?p.width<m.width:p.height<m.height},n.prototype._shouldShowLabelOnBar=function(t,i,r){if(this._labelsPosition===e.LabelsPosition.outside)return!1;var o=this._isVertical?t.y:t.x,a=this._isVertical?i.height:i.width,s=this._isVertical?this.height():this.width(),l=o+a,c=a;return l>s?c=s-o:o<0&&(c=l),(this._isVertical?r.height:r.width)+n._LABEL_MARGIN_INSIDE_BAR<=c},n.prototype._calculateLabelProperties=function(t,i,r,o,a){var s=this,l=this._isVertical?t.y:t.x,c=this._isVertical?i.height:i.width,u=this._isVertical?r.height:r.width,h="center",d=c,p=l,f=l,m=function(t){switch(t){case"topLeft":return h=s._isVertical?"top":"left",p+=n._LABEL_MARGIN_INSIDE_BAR,void(f+=n._LABEL_MARGIN_INSIDE_BAR);case"center":return void(f+=(c+u)/2);case"bottomRight":return h=s._isVertical?"bottom":"right",p-=n._LABEL_MARGIN_INSIDE_BAR,void(f+=d-n._LABEL_MARGIN_INSIDE_BAR-u)}};if(o)switch(this._labelsPosition){case e.LabelsPosition.start:m(a?"bottomRight":"topLeft");break;case e.LabelsPosition.middle:m("center");break;case e.LabelsPosition.end:m(a?"topLeft":"bottomRight")}else a?(h=this._isVertical?"top":"left",d=c+n._LABEL_MARGIN_INSIDE_BAR+u,p-=n._LABEL_MARGIN_INSIDE_BAR+u,f-=n._LABEL_MARGIN_INSIDE_BAR+u):(h=this._isVertical?"bottom":"right",d=c+n._LABEL_MARGIN_INSIDE_BAR+u,f+=c+n._LABEL_MARGIN_INSIDE_BAR);return{containerDimensions:{width:this._isVertical?i.width:d,height:this._isVertical?d:i.height},labelContainerOrigin:{x:this._isVertical?t.x:p,y:this._isVertical?p:t.y},labelOrigin:{x:this._isVertical?t.x+i.width/2-r.width/2:f,y:this._isVertical?f:t.y+i.height/2-r.height/2},alignment:{x:this._isVertical?"center":h,y:this._isVertical?h:"center"}}},n.prototype._createLabelContainer=function(t,e,n,i,r,o){var a=t.append("g").attr("transform","translate("+e.x+", "+e.y+")");if(r){a.classed("on-bar-label",!0);var s=1.6*Smt.Color.contrast("white",o)<Smt.Color.contrast("black",o);a.classed(s?"dark-label":"light-label",!0)}else a.classed("off-bar-label",!0);return a},n.prototype._generateDrawSteps=function(){var t=[];if(this._animateOnNextRender()){var e=this._getAttrToProjector(),n=this.length().scale.scale(this.baselineValue()),i=this._isVertical?"height":"width";e[this._isVertical?"y":"x"]=function(){return n},e[i]=function(){return 0},t.push({attrToProjector:e,animator:this._getAnimator(t_t.Animator.RESET)})}return t.push({attrToProjector:this._getAttrToProjector(),animator:this._getAnimator(t_t.Animator.MAIN)}),t},n.prototype._generateAttrToProjector=function(){var e=this,i=t.prototype._generateAttrToProjector.call(this),r=this.length().scale.scale(this.baselineValue()),o=this._isVertical?"y":"x",a=this._isVertical?"x":"y",s=Tgt.Plot._scaledAccessor(this.position()),l=Tgt.Plot._scaledAccessor(this.length()),c=function(t,e,n){return Math.abs(r-l(t,e,n))},u=i[n._BAR_THICKNESS_KEY],h=i.gap,d=null==h?u:function(t,e,i){var r=u(t,e,i);return r<n._BAR_GAPLESS_THRESHOLD_PX?r:r-h(t,e,i)};return i.width=this._isVertical?d:c,i.height=this._isVertical?c:d,i[o]=function(t,e,n){var i=l(t,e,n);return i>r?r:i},i[a]=function(t,n,i){return e._getPositionAttr(s(t,n,i),u(t,n,i))},i},n.prototype._updateThicknessAttr=function(){var t=this,e=this.position(),i=this.barEnd();null!=e&&null!=i?(this._fixedBarPixelThickness=!1,this.attr(n._BAR_THICKNESS_KEY,(function(t,n,r){var o=e.accessor(t,n,r),a=i.accessor(t,n,r);return o=e.scale?e.scale.scale(o):o,a=i.scale?i.scale.scale(a):a,Math.abs(a-o)}))):(this._fixedBarPixelThickness=!0,this.attr(n._BAR_THICKNESS_KEY,(function(){return t._barPixelThickness()})))},n.prototype._barPixelThickness=function(){return this._fixedBarPixelThickness&&this._projectorsReady()?this._computeBarPixelThickness(this.position(),this.datasets(),this._isVertical?this.width():this.height()):0},n.prototype.entities=function(e){return void 0===e&&(e=this.datasets()),this._projectorsReady()?t.prototype.entities.call(this,e):[]},n.prototype._entityBounds=function(t){return this._pixelBounds(t.datum,t.index,t.dataset)},n.prototype._pixelBounds=function(t,e,n){var i=this._getAttrToProjector();return{x:i.x(t,e,n),y:i.y(t,e,n),width:i.width(t,e,n),height:i.height(t,e,n)}},n.prototype._pixelPoint=function(t,e,n){var i=this._pixelBounds(t,e,n),r=Tgt.Plot._scaledAccessor(this._isVertical?this.y():this.x())(t,e,n),o=(this._isVertical?this.y().scale:this.x().scale).scale(this.baselineValue());return this._pixelPointBar(r,o,i)},n.prototype._pixelPointBar=function(t,e,n){var i,r;return this._isVertical?(i=n.x+n.width/2,r=t<=e?n.y:n.y+n.height):(i=t>=e?n.x+n.width:n.x,r=n.y+n.height/2),{x:i,y:r}},n.prototype._uninstallScaleForKey=function(e,n){t.prototype._uninstallScaleForKey.call(this,e,n)},n.prototype._getDataToDraw=function(){var t=this,e=new Smt.Map,n=this._getAttrToProjector(),i=this.width(),r=this.height();return this.datasets().forEach((function(o){var a=o.data().map((function(e,a){return t._isDatumOnScreen(n,i,r,e,a,o)?e:null}));e.set(o,a)})),e},n.prototype._isDatumOnScreen=function(t,e,n,i,r,o){var a=t.x(i,r,o),s=t.y(i,r,o),l=t.width(i,r,o),c=t.height(i,r,o);return!!(Smt.Math.isValidNumber(a)&&Smt.Math.isValidNumber(s)&&Smt.Math.isValidNumber(l)&&Smt.Math.isValidNumber(c))&&Smt.Math.boundsIntersects(a,s,l,c,0,0,e,n)},n.prototype.invalidateCache=function(){var e=this;t.prototype.invalidateCache.call(this),this.datasets().forEach((function(t){return e._labelConfig.get(t).measurer.reset()}))},n._BAR_THICKNESS_RATIO=.95,n._BAR_GAPLESS_THRESHOLD_PX=3,n._SINGLE_BAR_DIMENSION_RATIO=.4,n._BAR_AREA_CLASS="bar-area",n._BAR_END_KEY="barEnd",n._BAR_THICKNESS_KEY="width",n._LABEL_AREA_CLASS="bar-label-text-area",n._LABEL_MARGIN_INSIDE_BAR=10,n})(Ugt.XYPlot);function i(t,e,i){var r,o=t.scale;if(o instanceof Umt.Category)r=o.rangeBand();else{var a=t.accessor,s=idt.set(Smt.Array.flatten(e.map((function(t){return t.data().map((function(e,n){return a(e,n,t)})).filter((function(t){return null!=t})).map((function(t){return t.valueOf()}))})))).values().map((function(t){return+t}));s.sort((function(t,e){return t-e}));var l=s.map((function(t){return o.scale(t)})),c=idt.pairs(l);r=Smt.Math.min(c,(function(t,e){return Math.abs(t[1]-t[0])}),i*n._SINGLE_BAR_DIMENSION_RATIO),r*=n._BAR_THICKNESS_RATIO}return r}e.Bar=n})),qgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e){void 0===e&&(e="vertical");var n=t.call(this,e)||this;return n._clusterOffsets=new Smt.Map,n}return Dft.__extends(e,t),e.prototype._generateAttrToProjector=function(){var e=this,n=t.prototype._generateAttrToProjector.call(this),i=this._makeInnerScale(),r=function(t,e){return i.rangeBand()};n.width=this._isVertical?r:n.width,n.height=this._isVertical?n.height:r;var o=n.x,a=n.y;return n.x=this._isVertical?function(t,n,i){return o(t,n,i)+e._clusterOffsets.get(i)}:function(t,e,n){return o(t,e,n)},n.y=this._isVertical?function(t,e,n){return a(t,e,n)}:function(t,n,i){return a(t,n,i)+e._clusterOffsets.get(i)},n},e.prototype._updateClusterPosition=function(){var t=this,e=this._makeInnerScale();this.datasets().forEach((function(n,i){return t._clusterOffsets.set(n,e.scale(String(i))-e.rangeBand()/2)}))},e.prototype._makeInnerScale=function(){var t=new Umt.Category;t.domain(this.datasets().map((function(t,e){return String(e)})));var e=Tgt.Plot._scaledAccessor(this.attr(Wgt.Bar._BAR_THICKNESS_KEY));return t.range([0,e(null,0,null)]),t},e.prototype._getDataToDraw=function(){return this._updateClusterPosition(),t.prototype._getDataToDraw.call(this)},e})(Wgt.Bar);e.ClusteredBar=n})),Ygt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._startAngle=0,e._endAngle=2*Math.PI,e._labelFormatter=Cmt.identity(),e._labelsEnabled=!1,e.innerRadius(0),e.outerRadius((function(){var t=e._pieCenter();return Math.min(Math.max(e.width()-t.x,t.x),Math.max(e.height()-t.y,t.y))})),e.addClass("pie-plot"),e.attr("fill",(function(t,e){return String(e)}),new Umt.Color),e._strokeDrawers=new Smt.Map,e}return Dft.__extends(e,t),e.prototype._setup=function(){var e=this;t.prototype._setup.call(this),this._strokeDrawers.forEach((function(t){return t.attachTo(e._renderArea)}))},e.prototype.computeLayout=function(e,n,i){t.prototype.computeLayout.call(this,e,n,i);var r=this._pieCenter();this._renderArea.attr("transform","translate("+r.x+","+r.y+")");var o=Math.min(Math.max(this.width()-r.x,r.x),Math.max(this.height()-r.y,r.y));return null!=this.innerRadius().scale&&this.innerRadius().scale.range([0,o]),null!=this.outerRadius().scale&&this.outerRadius().scale.range([0,o]),this},e.prototype.addDataset=function(e){return t.prototype.addDataset.call(this,e),this},e.prototype._addDataset=function(e){if(1===this.datasets().length)return Smt.Window.warn("Only one dataset is supported in Pie plots"),this;this._updatePieAngles(),t.prototype._addDataset.call(this,e);var n=new Ogt.ArcOutlineSVGDrawer;return this._isSetup&&n.attachTo(this._renderArea),this._strokeDrawers.set(e,n),this},e.prototype.removeDataset=function(e){return t.prototype.removeDataset.call(this,e),this},e.prototype._removeDatasetNodes=function(e){t.prototype._removeDatasetNodes.call(this,e),this._strokeDrawers.get(e).remove()},e.prototype._removeDataset=function(e){return t.prototype._removeDataset.call(this,e),this._strokeDrawers.delete(e),this._startAngles=[],this._endAngles=[],this},e.prototype.selections=function(e){var n=this;void 0===e&&(e=this.datasets());var i=t.prototype.selections.call(this,e).nodes();return e.forEach((function(t){var e=n._strokeDrawers.get(t);null!=e&&i.push.apply(i,e.getVisualPrimitives())})),idt.selectAll(i)},e.prototype._onDatasetUpdate=function(){t.prototype._onDatasetUpdate.call(this),this._updatePieAngles(),this.render()},e.prototype._createDrawer=function(){return new Sgt.ProxyDrawer((function(){return new Igt.ArcSVGDrawer}),(function(){return mmt.warn("canvas renderer is not supported on Pie Plot!"),null}))},e.prototype.entities=function(e){var n=this;return void 0===e&&(e=this.datasets()),t.prototype.entities.call(this,e).map((function(t){t.position.x+=n.width()/2,t.position.y+=n.height()/2;var e=idt.select(n._strokeDrawers.get(t.dataset).getVisualPrimitiveAtIndex(t.index)),i=t;return i.strokeSelection=e,i}))},e.prototype.sectorValue=function(t,n){return null==t?this._propertyBindings.get(e._SECTOR_VALUE_KEY):(this._bindProperty(e._SECTOR_VALUE_KEY,t,n),this._updatePieAngles(),this.render(),this)},e.prototype.innerRadius=function(t,n){return null==t?this._propertyBindings.get(e._INNER_RADIUS_KEY):(this._bindProperty(e._INNER_RADIUS_KEY,t,n),this.render(),this)},e.prototype.outerRadius=function(t,n){return null==t?this._propertyBindings.get(e._OUTER_RADIUS_KEY):(this._bindProperty(e._OUTER_RADIUS_KEY,t,n),this.render(),this)},e.prototype.startAngle=function(t){return null==t?this._startAngle:(this._startAngle=t,this._updatePieAngles(),this.render(),this)},e.prototype.endAngle=function(t){return null==t?this._endAngle:(this._endAngle=t,this._updatePieAngles(),this.render(),this)},e.prototype.labelsEnabled=function(t){return null==t?this._labelsEnabled:(this._labelsEnabled=t,this.render(),this)},e.prototype.labelFormatter=function(t){return null==t?this._labelFormatter:(this._labelFormatter=t,this.render(),this)},e.prototype.entitiesAt=function(t){var e=this.width()/2,n=this.height()/2,i=this._sliceIndexForPoint({x:t.x-e,y:t.y-n});return null==i?[]:[this.entities()[i]]},e.prototype._propertyProjectors=function(){var e=this,n=t.prototype._propertyProjectors.call(this),i=Tgt.Plot._scaledAccessor(this.innerRadius()),r=Tgt.Plot._scaledAccessor(this.outerRadius());return n.d=function(t,n,o){return idt.arc().innerRadius(i(t,n,o)).outerRadius(r(t,n,o)).startAngle(e._startAngles[n]).endAngle(e._endAngles[n])(t,n)},n},e.prototype._updatePieAngles=function(){if(null!=this.sectorValue()&&0!==this.datasets().length){var t=Tgt.Plot._scaledAccessor(this.sectorValue()),e=this.datasets()[0],n=this._getDataToDraw().get(e),i=idt.pie().sort(null).startAngle(this._startAngle).endAngle(this._endAngle).value((function(n,i){return t(n,i,e)}))(n);this._startAngles=i.map((function(t){return t.startAngle})),this._endAngles=i.map((function(t){return t.endAngle}))}},e.prototype._pieCenter=function(){var t,e,n,i,r=this._startAngle<this._endAngle?this._startAngle:this._endAngle,o=this._startAngle<this._endAngle?this._endAngle:this._startAngle,a=Math.sin(r),s=Math.cos(r),l=Math.sin(o),c=Math.cos(o);return a>=0&&l>=0?s>=0&&c>=0?(t=s,e=0,i=0,n=l):s<0&&c<0?(t=0,e=-c,i=0,n=a):s>=0&&c<0?(t=s,e=-c,i=0,n=a):s<0&&c>=0&&(t=1,e=1,i=1,n=Math.max(a,l)):a>=0&&l<0?s>=0&&c>=0?(t=Math.max(s,c),e=1,i=1,n=1):s<0&&c<0?(t=0,e=1,i=-l,n=a):s>=0&&c<0?(t=s,e=1,i=-l,n=1):s<0&&c>=0&&(t=c,e=1,i=1,n=a):a<0&&l>=0?s>=0&&c>=0?(t=1,e=0,i=-a,n=l):s<0&&c<0?(t=1,e=Math.max(-s,-c),i=1,n=1):s>=0&&c<0?(t=1,e=-c,i=-a,n=1):s<0&&c>=0&&(t=1,e=-s,i=1,n=l):a<0&&l<0&&(s>=0&&c>=0?(t=c,e=0,i=-a,n=0):s<0&&c<0?(t=0,e=-s,i=-l,n=0):s>=0&&c<0?(t=1,e=1,i=Math.max(s,-c),n=1):s<0&&c>=0&&(t=c,e=-s,i=1,n=0)),{x:i+n==0?0:i/(i+n)*this.width(),y:t+e==0?0:t/(t+e)*this.height()}},e.prototype._getDataToDraw=function(){var n=t.prototype._getDataToDraw.call(this);if(0===this.datasets().length)return n;var i=Tgt.Plot._scaledAccessor(this.sectorValue()),r=this.datasets()[0],o=n.get(r).filter((function(t,n){return e._isValidData(i(t,n,r))}));return n.set(r,o),n},e._isValidData=function(t){return Smt.Math.isValidNumber(t)&&t>=0},e.prototype._pixelPoint=function(t,n,i){var r=Tgt.Plot._scaledAccessor(this.sectorValue());if(!e._isValidData(r(t,n,i)))return{x:NaN,y:NaN};var o=(Tgt.Plot._scaledAccessor(this.innerRadius())(t,n,i)+Tgt.Plot._scaledAccessor(this.outerRadius())(t,n,i))/2,a=idt.pie().sort(null).value((function(t,n){var o=r(t,n,i);return e._isValidData(o)?o:0})).startAngle(this._startAngle).endAngle(this._endAngle)(i.data()),s=(a[n].startAngle+a[n].endAngle)/2;return{x:o*Math.sin(s),y:-o*Math.cos(s)}},e.prototype._additionalPaint=function(t){var e=this;this._renderArea.select(".label-area").remove(),this._labelsEnabled&&Smt.Window.setTimeout((function(){return e._drawLabels()}),t);var n=this._generateStrokeDrawSteps(),i=this._getDataToDraw();this.datasets().forEach((function(t){var r=Tgt.Plot.applyDrawSteps(n,t);e._strokeDrawers.get(t).draw(i.get(t),r)}))},e.prototype._generateStrokeDrawSteps=function(){return[{attrToProjector:this._getAttrToProjector(),animator:new Bft.Null}]},e.prototype._sliceIndexForPoint=function(t){var e,n=Math.sqrt(Math.pow(t.x,2)+Math.pow(t.y,2)),i=Math.acos(-t.y/n);t.x<0&&(i=2*Math.PI-i);for(var r=0;r<this._startAngles.length;r++)if(this._startAngles[r]<i&&this._endAngles[r]>i){e=r;break}if(void 0!==e){var o=this.datasets()[0],a=o.data()[e],s=this.innerRadius().accessor(a,e,o),l=this.outerRadius().accessor(a,e,o);if(n>s&&n<l)return e}return null},e.prototype._drawLabels=function(){for(var t=this,e=this._getAttrToProjector(),n=this._renderArea.append("g").classed("label-area",!0),i=new amt.SvgContext(n.node()),r=new amt.CacheMeasurer(i),o=new amt.Writer(r,i),a=this.datasets()[0],s=this._getDataToDraw().get(a),l=s.length,c=function(i){var l=s[i],c=u.sectorValue().accessor(l,i,a);if(!Smt.Math.isValidNumber(c))return"continue";c=u._labelFormatter(c,l,i,a);var h=r.measure(c),d=(u._endAngles[i]+u._startAngles[i])/2,p=u.outerRadius().accessor(l,i,a);u.outerRadius().scale&&(p=u.outerRadius().scale.scale(p));var f=u.innerRadius().accessor(l,i,a);u.innerRadius().scale&&(f=u.innerRadius().scale.scale(f));var m=(p+f)/2,g=Math.sin(d)*m-h.width/2,_=-Math.cos(d)*m-h.height/2,y=[{x:g,y:_},{x:g,y:_+h.height},{x:g+h.width,y:_},{x:g+h.width,y:_+h.height}],v=y.every((function(e){return Math.abs(e.x)<=t.width()/2&&Math.abs(e.y)<=t.height()/2}));v&&(v=y.map((function(e){return t._sliceIndexForPoint(e)})).every((function(t){return t===i})));var b=e.fill(l,i,a),x=1.6*Smt.Color.contrast("white",b)<Smt.Color.contrast("black",b),w=n.append("g").attr("transform","translate("+g+","+_+")");w.classed(x?"dark-label":"light-label",!0),w.style("visibility",v?"inherit":"hidden"),o.write(c,h.width,h.height,{xAlign:"center",yAlign:"center"},w.node())},u=this,h=0;h<l;h++)c(h)},e._INNER_RADIUS_KEY="inner-radius",e._OUTER_RADIUS_KEY="outer-radius",e._SECTOR_VALUE_KEY="sector-value",e})(Tgt.Plot);e.Pie=n})),Xgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._labelsEnabled=!1,e._label=null,e.animator("rectangles",new Bft.Null),e.addClass("rectangle-plot"),e.attr("fill",(new Umt.Color).range()[0]),e}return Dft.__extends(e,t),e.prototype._createDrawer=function(){return new Sgt.ProxyDrawer((function(){return new Dgt.RectangleSVGDrawer}),(function(t){return new Vgt.RectangleCanvasDrawer(t)}))},e.prototype._generateAttrToProjector=function(){var n=this,i=t.prototype._generateAttrToProjector.call(this),r=Tgt.Plot._scaledAccessor(this.x()),o=i[e._X2_KEY],a=Tgt.Plot._scaledAccessor(this.y()),s=i[e._Y2_KEY],l=this.x().scale,c=this.y().scale;return null!=o?(i.width=function(t,e,n){return Math.abs(o(t,e,n)-r(t,e,n))},i.x=function(t,e,n){return Math.min(o(t,e,n),r(t,e,n))}):(i.width=function(t,e,i){return n._rectangleWidth(l)},i.x=function(t,e,n){return r(t,e,n)-.5*i.width(t,e,n)}),null!=s?(i.height=function(t,e,n){return Math.abs(s(t,e,n)-a(t,e,n))},i.y=function(t,e,n){return Math.max(s(t,e,n),a(t,e,n))-i.height(t,e,n)}):(i.height=function(t,e,i){return n._rectangleWidth(c)},i.y=function(t,e,n){return a(t,e,n)-.5*i.height(t,e,n)}),delete i[e._X2_KEY],delete i[e._Y2_KEY],i},e.prototype._generateDrawSteps=function(){return[{attrToProjector:this._getAttrToProjector(),animator:this._getAnimator("rectangles")}]},e.prototype._filterForProperty=function(e){return t.prototype._filterForProperty.call(this,"x2"===e?"x":"y2"===e?"y":e)},e.prototype.x=function(n,i,r){if(null==n)return t.prototype.x.call(this);if(null==i?t.prototype.x.call(this,n):t.prototype.x.call(this,n,i,r),null!=i){var o=this.x2(),a=o&&o.accessor;null!=a&&this._bindProperty(e._X2_KEY,a,i,o.postScale)}return i instanceof Umt.Category&&i.innerPadding(0).outerPadding(0),this},e.prototype.x2=function(t,n){if(null==t)return this._propertyBindings.get(e._X2_KEY);var i=this.x();return this._bindProperty(e._X2_KEY,t,i&&i.scale,n),this.render(),this},e.prototype.y=function(n,i,r){if(null==n)return t.prototype.y.call(this);if(null==i?t.prototype.y.call(this,n):t.prototype.y.call(this,n,i,r),null!=i){var o=this.y2(),a=o&&o.accessor;null!=a&&this._bindProperty(e._Y2_KEY,a,i,o.postScale)}return i instanceof Umt.Category&&i.innerPadding(0).outerPadding(0),this},e.prototype.y2=function(t,n){if(null==t)return this._propertyBindings.get(e._Y2_KEY);var i=this.y();return this._bindProperty(e._Y2_KEY,t,i&&i.scale,n),this.render(),this},e.prototype.entitiesAt=function(t){var e=this._getAttrToProjector();return this.entities().filter((function(n){var i=n.datum,r=n.index,o=n.dataset,a=e.x(i,r,o),s=e.y(i,r,o),l=e.width(i,r,o),c=e.height(i,r,o);return a<=t.x&&t.x<=a+l&&s<=t.y&&t.y<=s+c}))},e.prototype._entityBounds=function(t){return this._entityBBox(t.datum,t.index,t.dataset,this._getAttrToProjector())},e.prototype._entityBBox=function(t,e,n,i){return{x:i.x(t,e,n),y:i.y(t,e,n),width:i.width(t,e,n),height:i.height(t,e,n)}},e.prototype.label=function(t){return null==t?this._label:(this._label=t,this.render(),this)},e.prototype.labelsEnabled=function(t){return null==t?this._labelsEnabled:(this._labelsEnabled=t,this.render(),this)},e.prototype._propertyProjectors=function(){var e=t.prototype._propertyProjectors.call(this);return null!=this.x2()&&(e.x2=Tgt.Plot._scaledAccessor(this.x2())),null!=this.y2()&&(e.y2=Tgt.Plot._scaledAccessor(this.y2())),e},e.prototype._pixelPoint=function(t,e,n){var i=this._getAttrToProjector(),r=i.x(t,e,n),o=i.y(t,e,n);return{x:r+i.width(t,e,n)/2,y:o+i.height(t,e,n)/2}},e.prototype._rectangleWidth=function(t){if(t instanceof Umt.Category)return t.rangeBand();var e=t===this.x().scale?this.x().accessor:this.y().accessor,n=idt.set(Smt.Array.flatten(this.datasets().map((function(t){return t.data().map((function(n,i){return e(n,i,t).valueOf()}))})))).values().map((function(t){return+t})),i=Smt.Math.min(n,0),r=Smt.Math.max(n,0),o=t.scale(i);return(t.scale(r)-o)/Math.abs(r-i)},e.prototype._getDataToDraw=function(){var t=new Smt.Map,e=this._getAttrToProjector();return this.datasets().forEach((function(n){var i=n.data().map((function(t,i){return Smt.Math.isValidNumber(e.x(t,i,n))&&Smt.Math.isValidNumber(e.y(t,i,n))&&Smt.Math.isValidNumber(e.width(t,i,n))&&Smt.Math.isValidNumber(e.height(t,i,n))?t:null}));t.set(n,i)})),t},e.prototype._additionalPaint=function(t){var e=this;this._renderArea.selectAll(".label-area").remove(),this._labelsEnabled&&null!=this.label()&&Smt.Window.setTimeout((function(){return e._drawLabels()}),t)},e.prototype._drawLabels=function(){var t=this,e=this._getDataToDraw();this.datasets().forEach((function(n,i){return t._drawLabel(e,n,i)}))},e.prototype._drawLabel=function(t,e,n){for(var i=this._getAttrToProjector(),r=this._renderArea.append("g").classed("label-area",!0),o=new amt.SvgContext(r.node()),a=new amt.CacheMeasurer(o),s=new amt.Writer(a,o),l=this.x().scale.range(),c=this.y().scale.range(),u=Math.min.apply(null,l),h=Math.max.apply(null,l),d=Math.min.apply(null,c),p=Math.max.apply(null,c),f=t.get(e),m=f.length,g=0;g<m;g++){var _=f[g];if(null!=_){var y=""+this.label()(_,g,e),v=a.measure(y),b=i.x(_,g,e),x=i.y(_,g,e),w=i.width(_,g,e),S=i.height(_,g,e);if(v.height<=S&&v.width<=w){var M={min:b+=(w-v.width)/2,max:b+v.width},E={min:x+=(S-v.height)/2,max:x+v.height};if(M.min<u||M.max>h||E.min<d||E.max>p)continue;if(this._overlayLabel(M,E,g,n,t))continue;var T=i.fill(_,g,e),C=1.6*Smt.Color.contrast("white",T)<Smt.Color.contrast("black",T),A=r.append("g").attr("transform","translate("+b+","+x+")");A.classed(C?"dark-label":"light-label",!0),s.write(y,v.width,v.height,{xAlign:"center",yAlign:"center"},A.node())}}}},e.prototype._overlayLabel=function(t,e,n,i,r){for(var o=this._getAttrToProjector(),a=this.datasets(),s=i;s<a.length;s++)for(var l=a[s],c=r.get(l),u=c.length,h=s===i?n+1:0;h<u;h++)if(Smt.DOM.intersectsBBox(t,e,this._entityBBox(c[h],h,l,o)))return!0;return!1},e._X2_KEY="x2",e._Y2_KEY="y2",e})(Ugt.XYPlot);e.Rectangle=n})),$gt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;e._labelFormatter=Cmt.identity(),e._labelsEnabled=!1,e.addClass("scatter-plot");var n=new Bft.Easing;n.startDelay(5),n.stepDuration(250),n.maxTotalDuration(Tgt.Plot._ANIMATION_MAX_DURATION),e.animator(t_t.Animator.MAIN,n),e.attr("opacity",.6),e.attr("fill",(new Umt.Color).range()[0]),e.size(6);var i=dgt.circle();return e.symbol((function(){return i})),e._labelConfig=new Smt.Map,e}return Dft.__extends(e,t),e.prototype._buildLightweightPlotEntities=function(e){var n=this;return t.prototype._buildLightweightPlotEntities.call(this,e).map((function(t){var e=Tgt.Plot._scaledAccessor(n.size())(t.datum,t.index,t.dataset);return t.diameter=e,t}))},e.prototype._createDrawer=function(t){var e=this;return new Sgt.ProxyDrawer((function(){return new Fgt.SymbolSVGDrawer}),(function(n){return new Vgt.CanvasDrawer(n,Fgt.makeSymbolCanvasDrawStep(t,(function(){return Tgt.Plot._scaledAccessor(e.symbol())}),(function(){return Tgt.Plot._scaledAccessor(e.size())})))}))},e.prototype.size=function(t,n){return null==t?this._propertyBindings.get(e._SIZE_KEY):(this._bindProperty(e._SIZE_KEY,t,n),this.render(),this)},e.prototype.symbol=function(t){return null==t?this._propertyBindings.get(e._SYMBOL_KEY):(this._propertyBindings.set(e._SYMBOL_KEY,{accessor:t}),this.render(),this)},e.prototype._generateDrawSteps=function(){var t=[];if(this._animateOnNextRender()){var e=this._getAttrToProjector(),n=Tgt.Plot._scaledAccessor(this.symbol());e.d=function(t,e,i){return n(t,e,i)(0)(null)},t.push({attrToProjector:e,animator:this._getAnimator(t_t.Animator.RESET)})}return t.push({attrToProjector:this._getAttrToProjector(),animator:this._getAnimator(t_t.Animator.MAIN)}),t},e.prototype._propertyProjectors=function(){var e=t.prototype._propertyProjectors.call(this),n=Tgt.Plot._scaledAccessor(this.x()),i=Tgt.Plot._scaledAccessor(this.y());return e.x=n,e.y=i,e.transform=function(t,e,r){return"translate("+n(t,e,r)+","+i(t,e,r)+")"},e.d=this._constructSymbolGenerator(),e},e.prototype._constructSymbolGenerator=function(){var t=Tgt.Plot._scaledAccessor(this.symbol()),e=Tgt.Plot._scaledAccessor(this.size());return function(n,i,r){return t(n,i,r)(e(n,i,r))(null)}},e.prototype._entityBounds=function(t){return{x:t.position.x-t.diameter/2,y:t.position.y-t.diameter/2,width:t.diameter,height:t.diameter}},e.prototype._entityVisibleOnPlot=function(t,e){var n={min:e.topLeft.x,max:e.bottomRight.x},i={min:e.topLeft.y,max:e.bottomRight.y},r=this._entityBounds(t);return Smt.DOM.intersectsBBox(n,i,r)},e.prototype.entitiesAt=function(t){var e=Tgt.Plot._scaledAccessor(this.x()),n=Tgt.Plot._scaledAccessor(this.y()),i=Tgt.Plot._scaledAccessor(this.size());return this.entities().filter((function(r){var o=r.datum,a=r.index,s=r.dataset,l=e(o,a,s),c=n(o,a,s),u=i(o,a,s);return l-u/2<=t.x&&t.x<=l+u/2&&c-u/2<=t.y&&t.y<=c+u/2}))},e.prototype.labelsEnabled=function(t){return null==t?this._labelsEnabled:(this._labelsEnabled=t,this._clearAttrToProjectorCache(),this.render(),this)},e.prototype._createNodesForDataset=function(n){var i=t.prototype._createNodesForDataset.call(this,n),r=this._renderArea.append("g").classed(e._LABEL_AREA_CLASS,!0),o=new amt.SvgContext(r.node()),a=new amt.CacheMeasurer(o),s=new amt.Writer(a,o);return this._labelConfig.set(n,{labelArea:r,measurer:a,writer:s}),i},e.prototype._removeDatasetNodes=function(e){t.prototype._removeDatasetNodes.call(this,e);var n=this._labelConfig.get(e);null!=n&&(n.labelArea.remove(),this._labelConfig.delete(e))},e.prototype._additionalPaint=function(t){var e=this;this.datasets().forEach((function(t){return e._labelConfig.get(t).labelArea.selectAll("g").remove()})),this._labelsEnabled&&Smt.Window.setTimeout((function(){return e._drawLabels()}),t)},e.prototype._drawLabels=function(){var t=this,e=this._getDataToDraw(),n=this._getAttrToProjector();this.datasets().forEach((function(i){for(var r=e.get(i),o=r.length,a=0;a<o;a++){var s=r[a];null!=s&&t._drawLabel(s,a,i,n)}}))},e.prototype._drawLabel=function(t,e,n,i){if(null!=t.label){var r=this._labelConfig.get(n),o=r.labelArea,a=r.measurer,s=r.writer,l={x:i.x(t,e,n),y:i.y(t,e,n)},c=Tgt.Plot._scaledAccessor(this.size())(t,e,n),u=this._labelFormatter(t.label,t,e,n),h=a.measure(u),d=this._calculateLabelProperties(l,c,h),p=d.containerDimensions,f=d.alignment,m=this._createLabelContainer(o,d.labelContainerOrigin,d.labelOrigin,h);s.write(u,p.width,p.height,{xAlign:f.x,yAlign:f.y},m.node())}},e.prototype._calculateLabelProperties=function(t,n,i){return{containerDimensions:{width:i.width,height:i.height},labelContainerOrigin:{x:t.x-i.width/2,y:t.y-i.height/2+(n<i.height?n/2+e._LABEL_MARGIN_FROM_BUBBLE:0)},labelOrigin:{x:t.x,y:t.y},alignment:{x:"center",y:"center"}}},e.prototype._createLabelContainer=function(t,e,n,i){var r=t.append("g").attr("transform","translate("+e.x+", "+e.y+")");return r.classed("on-bar-label",!0),r},e._SIZE_KEY="size",e._SYMBOL_KEY="symbol",e._LABEL_AREA_CLASS="scatter-label-text-area",e._LABEL_MARGIN_FROM_BUBBLE=15,e})(Ugt.XYPlot);e.Scatter=n})),Kgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e.addClass("segment-plot"),e.attr("stroke",(new Umt.Color).range()[0]),e.attr("stroke-width","2px"),e}return Dft.__extends(e,t),e.prototype._createDrawer=function(){return new Sgt.ProxyDrawer((function(){return new Bgt.SegmentSVGDrawer}),(function(){return mmt.warn("canvas renderer is not supported on Segment Plot!"),null}))},e.prototype._generateDrawSteps=function(){return[{attrToProjector:this._getAttrToProjector(),animator:new Bft.Null}]},e.prototype._filterForProperty=function(e){return t.prototype._filterForProperty.call(this,"x2"===e?"x":"y2"===e?"y":e)},e.prototype.x=function(n,i){if(null==n)return t.prototype.x.call(this);if(null==i)t.prototype.x.call(this,n);else{t.prototype.x.call(this,n,i);var r=this.x2(),o=r&&r.accessor;null!=o&&this._bindProperty(e._X2_KEY,o,i)}return this},e.prototype.x2=function(t){if(null==t)return this._propertyBindings.get(e._X2_KEY);var n=this.x();return this._bindProperty(e._X2_KEY,t,n&&n.scale),this.render(),this},e.prototype.y=function(n,i){if(null==n)return t.prototype.y.call(this);if(null==i)t.prototype.y.call(this,n);else{t.prototype.y.call(this,n,i);var r=this.y2(),o=r&&r.accessor;null!=o&&this._bindProperty(e._Y2_KEY,o,i)}return this},e.prototype.y2=function(t){if(null==t)return this._propertyBindings.get(e._Y2_KEY);var n=this.y();return this._bindProperty(e._Y2_KEY,t,n&&n.scale),this.render(),this},e.prototype._propertyProjectors=function(){var e=t.prototype._propertyProjectors.call(this);return e.x1=Tgt.Plot._scaledAccessor(this.x()),e.x2=null==this.x2()?Tgt.Plot._scaledAccessor(this.x()):Tgt.Plot._scaledAccessor(this.x2()),e.y1=Tgt.Plot._scaledAccessor(this.y()),e.y2=null==this.y2()?Tgt.Plot._scaledAccessor(this.y()):Tgt.Plot._scaledAccessor(this.y2()),e},e.prototype.entitiesAt=function(t){var e=this.entityNearest(t);return null!=e?[e]:[]},e.prototype.entitiesIn=function(t,e){var n,i;return null==e?(n={min:t.topLeft.x,max:t.bottomRight.x},i={min:t.topLeft.y,max:t.bottomRight.y}):(n=t,i=e),this._entitiesIntersecting(n,i)},e.prototype._entitiesIntersecting=function(t,e){for(var n=[],i=this._getAttrToProjector(),r=this.entities(),o=r.length,a=0;a<o;a++){var s=r[a];this._lineIntersectsBox(s,t,e,i)&&n.push(s)}return n},e.prototype._lineIntersectsBox=function(t,e,n,i){var r=this,o=i.x1(t.datum,t.index,t.dataset),a=i.x2(t.datum,t.index,t.dataset),s=i.y1(t.datum,t.index,t.dataset),l=i.y2(t.datum,t.index,t.dataset);if(e.min<=o&&o<=e.max&&n.min<=s&&s<=n.max||e.min<=a&&a<=e.max&&n.min<=l&&l<=n.max)return!0;var c={x:o,y:s},u={x:a,y:l},h=[{x:e.min,y:n.min},{x:e.min,y:n.max},{x:e.max,y:n.max},{x:e.max,y:n.min}];return h.filter((function(t,e){return 0!==e&&r._lineIntersectsSegment(c,u,t,h[e-1])&&r._lineIntersectsSegment(t,h[e-1],c,u)})).length>0},e.prototype._lineIntersectsSegment=function(t,e,n,i){var r=function(t,e,n){return(e.x-t.x)*(n.y-e.y)-(e.y-t.y)*(n.x-e.x)};return r(t,e,n)*r(t,e,i)<0},e._X2_KEY="x2",e._Y2_KEY="y2",e})(Ugt.XYPlot);e.Segment=n})),Zgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._stackingResult=xgt.memThunk((function(){return e.datasets()}),(function(){return e.x().accessor}),(function(){return e.y().accessor}),(function(){return e._stackingOrder}),(function(t,e,n,i){return Smt.Stacking.stack(t,e,n,i)})),e._stackedExtent=xgt.memThunk(e._stackingResult,(function(){return e.x().accessor}),(function(){return e._filterForProperty("y")}),(function(t,e,n){return Smt.Stacking.stackedExtent(t,e,n)})),e._baselineValue=0,e._stackingOrder="bottomup",e.addClass("stacked-area-plot"),e._baselineValueProvider=function(){return[e._baselineValue]},e.croppedRenderingEnabled(!1),e}return Dft.__extends(e,t),e.prototype.croppedRenderingEnabled=function(e){return null==e?t.prototype.croppedRenderingEnabled.call(this):e?(Smt.Window.warn("Warning: Stacked Area Plot does not support cropped rendering."),this):t.prototype.croppedRenderingEnabled.call(this,e)},e.prototype._getAnimator=function(t){return new Bft.Null},e.prototype._setup=function(){t.prototype._setup.call(this),this._baseline=this._renderArea.append("line").classed("baseline",!0)},e.prototype.x=function(e,n){return null==e?t.prototype.x.call(this):(null==n?t.prototype.x.call(this,e):t.prototype.x.call(this,e,n),this._checkSameDomain(),this)},e.prototype.y=function(e,n){return null==e?t.prototype.y.call(this):(null==n?t.prototype.y.call(this,e):t.prototype.y.call(this,e,n),this._checkSameDomain(),this)},e.prototype.yOffset=function(t,e){var n=this._stackingResult();if(null!=n){var i=n.get(t);if(null!=i){var r=i.get(String(e));if(null!=r)return r.offset}}},e.prototype.stackingOrder=function(t){return null==t?this._stackingOrder:(this._stackingOrder=t,this._onDatasetUpdate(),this)},e.prototype.downsamplingEnabled=function(e){return null==e?t.prototype.downsamplingEnabled.call(this):(Smt.Window.warn("Warning: Stacked Area Plot does not support downsampling"),this)},e.prototype._additionalPaint=function(){var t=this.y().scale.scale(this._baselineValue),e={x1:0,y1:t,x2:this.width(),y2:t};this._getAnimator("baseline").animate(this._baseline,e)},e.prototype._updateYScale=function(){var t=this.y(),e=t&&t.scale;null!=e&&(e.addPaddingExceptionsProvider(this._baselineValueProvider),e.addIncludedValuesProvider(this._baselineValueProvider))},e.prototype._onDatasetUpdate=function(){return this._checkSameDomain(),t.prototype._onDatasetUpdate.call(this),this},e.prototype.getExtentsForProperty=function(e){return"y"===e?[this._stackedExtent()]:t.prototype.getExtentsForProperty.call(this,e)},e.prototype._checkSameDomain=function(){if(this._projectorsReady()){var t=this.datasets(),n=this.x().accessor,i=t.map((function(t){return idt.set(t.data().map((function(e,i){return Smt.Stacking.normalizeKey(n(e,i,t))}))).values()})),r=e._domainKeys(t,n);i.some((function(t){return t.length!==r.length}))&&Smt.Window.warn("the domains across the datasets are not the same. Plot may produce unintended behavior.")}},e._domainKeys=function(t,e){var n=idt.set();return t.forEach((function(t){for(var i=t.data(),r=i.length,o=0;o<r;o++)n.add(e(i[o],o,t))})),n.values()},e.prototype._coordinateProjectors=function(){var t=this,e=Tgt.Plot._scaledAccessor(this.x()),n=this.y().accessor,i=this.x().accessor,r=function(t,e,n){return Smt.Stacking.normalizeKey(i(t,e,n))},o=this._stackingResult();return[e,function(e,i,a){var s=+n(e,i,a),l=o.get(a).get(r(e,i,a)).offset;return t.y().scale.scale(s+l)},function(e,n,i){var a=o.get(i).get(r(e,n,i)).offset;return t.y().scale.scale(a)}]},e.prototype._propertyProjectors=function(){var e=t.prototype._propertyProjectors.call(this),n=this._coordinateProjectors();return e.d=this._constructAreaProjector(n[0],n[1],n[2]),e},e.prototype._pixelPoint=function(e,n,i){var r=t.prototype._pixelPoint.call(this,e,n,i),o=this.x().accessor(e,n,i),a=this.y().accessor(e,n,i),s=this.y().scale.scale(+a+this._stackingResult().get(i).get(Smt.Stacking.normalizeKey(o)).offset);return{x:r.x,y:s}},e})(Ggt.Area);e.StackedArea=n})),Jgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(e){void 0===e&&(e="vertical");var n=t.call(this,e)||this;return n._extremaFormatter=Cmt.identity(),n._stackingResult=xgt.memThunk((function(){return n.datasets()}),(function(){return n.position().accessor}),(function(){return n.length().accessor}),(function(){return n._stackingOrder}),(function(t,e,n,i){return Smt.Stacking.stack(t,e,n,i)})),n._stackedExtent=xgt.memThunk(n._stackingResult,(function(){return n.position().accessor}),(function(){return n._filterForProperty(n._isVertical?"y":"x")}),(function(t,e,n){return Smt.Stacking.stackedExtent(t,e,n)})),n.addClass("stacked-bar-plot"),n._stackingOrder="bottomup",n}return Dft.__extends(e,t),e.prototype.stackingOrder=function(t){return null==t?this._stackingOrder:(this._stackingOrder=t,this._onDatasetUpdate(),this)},e.prototype.extremaFormatter=function(t){return 0===arguments.length?this._extremaFormatter:(this._extremaFormatter=t,this.render(),this)},e.prototype._setup=function(){t.prototype._setup.call(this),this._labelArea=this._renderArea.append("g").classed(Wgt.Bar._LABEL_AREA_CLASS,!0);var e=new amt.SvgContext(this._labelArea.node());this._measurer=new amt.CacheMeasurer(e),this._writer=new amt.Writer(this._measurer,e)},e.prototype._drawLabels=function(){var n=this;t.prototype._drawLabels.call(this),this._labelArea.selectAll("g").remove();var i=+this.baselineValue(),r=this.position().scale,o=this.length().scale,a=Smt.Stacking.stackedExtents(this._stackingResult()),s=a.minimumExtents,l=[],c=function(t,e){var a=n._generateAttrToProjector(),s=n.width(),c=n.height();t.forEach((function(t){if(t.extent!==i){var u=n.extremaFormatter()(t.extent),h=n._measurer.measure(u),d=t.stackedDatum,p=d.originalDatum,f=d.originalIndex,m=d.originalDataset;if(!n._isDatumOnScreen(a,s,c,p,f,m))return;var g=Tgt.Plot._scaledAccessor(n.attr(Wgt.Bar._BAR_THICKNESS_KEY))(p,f,m),_=o.scale(t.extent),y=n._getPositionAttr(r.scale(t.axisValue),g)+g/2,v=e(n._isVertical?{x:y,y:_}:{x:_,y:y},h,g),b=(function(t,e,i){var r=e.topLeft,o=r.x,a=r.y,s=e.bottomRight.x-e.topLeft.x,l=e.bottomRight.y-e.topLeft.y,c=n._isVertical?s>i:l>i;if(!c){var u=n._labelArea.append("g").attr("transform","translate("+o+", "+a+")");u.classed("stacked-bar-label",!0),n._writer.write(t,s,l,{xAlign:"center",yAlign:"center"},u.node())}return c})(u,{topLeft:v,bottomRight:{x:v.x+h.width,y:v.y+h.height}},g);l.push(b)}}))};c(a.maximumExtents,(function(t,i,r){var o=n._isVertical?i.width:i.height;return{x:n._isVertical?t.x-o/2:t.x+e._EXTREMA_LABEL_MARGIN_FROM_BAR,y:n._isVertical?t.y-(n._isVertical?i.height:i.width):t.y-o/2}})),c(s,(function(t,i,r){var o=n._isVertical?i.width:i.height;return{x:n._isVertical?t.x-o/2:t.x-(n._isVertical?i.height:i.width),y:n._isVertical?t.y+e._EXTREMA_LABEL_MARGIN_FROM_BAR:t.y-o/2}})),l.some((function(t){return t}))&&this._labelArea.selectAll("g").remove()},e.prototype._generateAttrToProjector=function(){var e=this,n=t.prototype._generateAttrToProjector.call(this),i=this._isVertical?"y":"x",r=this.length().scale,o=this.length().accessor,a=this.position().accessor,s=function(t,e,n){return Smt.Stacking.normalizeKey(a(t,e,n))},l=this._stackingResult(),c=function(t,e,n){return r.scale(l.get(n).get(s(t,e,n)).offset)},u=function(t,e,n){return r.scale(+o(t,e,n)+l.get(n).get(s(t,e,n)).offset)},h=function(t,e,n){return Math.abs(u(t,e,n)-c(t,e,n))};n[this._isVertical?"height":"width"]=h;var d=function(t,e,n){return+o(t,e,n)<0?c(t,e,n):u(t,e,n)};return n[i]=function(t,n,i){return e._isVertical?d(t,n,i):d(t,n,i)-h(t,n,i)},n},e.prototype.getExtentsForProperty=function(e){return e===(this._isVertical?"y":"x")?[this._stackedExtent()]:t.prototype.getExtentsForProperty.call(this,e)},e.prototype.invalidateCache=function(){t.prototype.invalidateCache.call(this),this._measurer.reset()},e._EXTREMA_LABEL_MARGIN_FROM_BAR=5,e})(Wgt.Bar);e.StackedBar=n})),Qgt=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0});var n=(function(t){function e(){var e=t.call(this)||this;return e._connectorsEnabled=!1,e.addClass("waterfall-plot"),e}return Dft.__extends(e,t),e.prototype.connectorsEnabled=function(t){return null==t?this._connectorsEnabled:(this._connectorsEnabled=t,this)},e.prototype.total=function(t){return null==t?this._propertyBindings.get(e._TOTAL_KEY):(this._bindProperty(e._TOTAL_KEY,t,null),this)},e.prototype._additionalPaint=function(t){var e=this;this._connectorArea.selectAll("line").remove(),this._connectorsEnabled&&Smt.Window.setTimeout((function(){return e._drawConnectors()}),t)},e.prototype._createNodesForDataset=function(n){var i=t.prototype._createNodesForDataset.call(this,n);return this._connectorArea=this._renderArea.append("g").classed(e._CONNECTOR_AREA_CLASS,!0),i},e.prototype.getExtentsForProperty=function(e){return"y"===e?[this._extent]:t.prototype.getExtentsForProperty.call(this,e)},e.prototype._generateAttrToProjector=function(){var n=this,i=t.prototype._generateAttrToProjector.call(this),r=this.y().scale,o=Tgt.Plot._scaledAccessor(this.total());return null==this.attr("y")&&(i.y=function(t,e,i){var a=n.y().accessor(t,e,i);if(o(t,e,i))return Math.min(r.scale(a),r.scale(0));var s=n._subtotals[e];if(0===e)return r.scale(a<0?s-a:s);var l=n._subtotals[e-1];return r.scale(s>l?s:l)}),null==this.attr("height")&&(i.height=function(t,e,i){var a=o(t,e,i),s=n.y().accessor(t,e,i);if(a)return Math.abs(r.scale(s)-r.scale(0));var l=n._subtotals[e];if(0===e)return Math.abs(r.scale(l)-r.scale(l-s));var c=n._subtotals[e-1];return Math.abs(r.scale(l)-r.scale(c))}),i.class=function(t,i,r){var a="";return null!=n.attr("class")&&(a=n.attr("class").accessor(t,i,r)+" "),o(t,i,r)?a+e._BAR_TOTAL_CLASS:a+(n.y().accessor(t,i,r)>0?e._BAR_GROWTH_CLASS:e._BAR_DECLINE_CLASS)},i},e.prototype._onDatasetUpdate=function(){return this._updateSubtotals(),t.prototype._onDatasetUpdate.call(this),this},e.prototype._calculateSubtotalsAndExtent=function(t){for(var e=Number.MAX_VALUE,n=Number.MIN_VALUE,i=0,r=!1,o=t.data(),a=o.length,s=0;s<a;s++){var l=o[s],c=this.y().accessor(l,s,t),u=this.total().accessor(l,s,t);if(u&&0!==s||(i+=c),this._subtotals.push(i),i<e&&(e=i),i>n&&(n=i),u&&(c<e&&(e=c),c>n&&(n=c)),!r&&u){for(var h=c-i,d=0;d<this._subtotals.length;d++)this._subtotals[d]+=h;r=!0,i+=h,e+=h,n+=h}}this._extent=[e,n]},e.prototype._drawConnectors=function(){for(var t=this._getAttrToProjector(),n=this.datasets()[0],i=1;i<n.data().length;i++){var r=i-1,o=n.data()[i],a=n.data()[r],s=t.x(a,r,n),l=t.x(o,i,n)+t.width(o,i,n),c=t.y(o,i,n);(this._subtotals[i]>0&&this._subtotals[i]>this._subtotals[r]||this._subtotals[i]<0&&this._subtotals[i]>=this._subtotals[r])&&(c=t.y(o,i,n)+t.height(o,i,n)),this._connectorArea.append("line").classed(e._CONNECTOR_CLASS,!0).attr("x1",s).attr("x2",l).attr("y1",c).attr("y2",c)}},e.prototype._updateSubtotals=function(){var t=this.datasets();if(t.length>0){var e=t[t.length-1];this._subtotals=new Array,this._calculateSubtotalsAndExtent(e)}},e._BAR_DECLINE_CLASS="waterfall-decline",e._BAR_GROWTH_CLASS="waterfall-growth",e._BAR_TOTAL_CLASS="waterfall-total",e._CONNECTOR_CLASS="connector",e._CONNECTOR_AREA_CLASS="connector-area",e._TOTAL_KEY="total",e})(Wgt.Bar);e.Waterfall=n})),t_t=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),Dft.__exportStar(Ggt,e),Dft.__exportStar(Wgt,e),Dft.__exportStar(fgt,e),Dft.__exportStar(qgt,e),Dft.__exportStar(jgt,e),Dft.__exportStar(Ygt,e),Dft.__exportStar(Xgt,e),Dft.__exportStar($gt,e),Dft.__exportStar(Kgt,e),Dft.__exportStar(Zgt,e),Dft.__exportStar(Jgt,e),Dft.__exportStar(Qgt,e)})),e_t=be((function(t,e){
/**
     * Copyright 2014-present Palantir Technologies
     * @license MIT
     */
Object.defineProperty(e,"__esModule",{value:!0}),e.version="3.9.0"})),n_t=be((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.Animators=Bft,e.Axes=Gmt,e.Components=Ngt,e.Configs=fmt,e.Formatters=Cmt,e.RenderController=Emt,e.RenderPolicies=Mmt,e.SymbolFactories=dgt,e.Dispatchers=$mt,e.Drawers=Vgt,e.Interactions=ngt,e.Plots=t_t,e.Scales=Umt,e.Utils=Smt,Dft.__exportStar(Amt,e),e.TimeInterval=jmt.TimeInterval,Dft.__exportStar(Tmt,e),Dft.__exportStar(lgt,e),Dft.__exportStar(ggt,e),e.version=e_t.version,Dft.__exportStar(Wmt,e),Dft.__exportStar(Sgt,e),Dft.__exportStar(Kmt,e),Dft.__exportStar(Qmt,e),Dft.__exportStar(Ugt,e),Dft.__exportStar(Tgt,e),Dft.__exportStar(Dmt,e),Dft.__exportStar(Imt,e)}));const i_t=[{character:"◼",method:n_t.SymbolFactories.square},{character:"◆",method:n_t.SymbolFactories.diamond},{character:"▲",method:n_t.SymbolFactories.triangle},{character:"★",method:n_t.SymbolFactories.star},{character:"✚",method:n_t.SymbolFactories.cross}];var r_t;function o_t(t){return e=>{let n,i=Math.abs(e);return i<1e-15&&(i=0),n=fy(i>=1e4||i>0&&i<.01?"."+t+"~e":"."+t+"~g"),n(e)}}!(function(t){t.STEP="step",t.RELATIVE="relative",t.WALL_TIME="wall_time"})(r_t||(r_t={}));const a_t=fy(".4~s");function s_t(){let t=new n_t.Scales.Linear;t.tickGenerator(n_t.Scales.TickGenerators.integerTickGenerator());let e=new n_t.Axes.Numeric(t,"bottom");return e.formatter(a_t),{scale:t,axis:e,accessor:t=>t.step}}let l_t=n_t.Formatters.time("%a %b %e, %H:%M:%S"),c_t=(t,e,n)=>{if(null!=t.relative)return t.relative;let i=n.data();return(+t.wall_time-(i.length>0?+i[0].wall_time:0))/36e5},u_t=t=>{let e="",n=Math.floor(t/24);t-=24*n,n&&(e+=n+"d ");let i=Math.floor(t);t-=i,t*=60,(i||n)&&(e+=i+"h ");let r=Math.floor(t);return t-=r,t*=60,(r||i||n)&&(e+=r+"m "),e+Math.floor(t)+"s"};function h_t(t){switch(t){case r_t.STEP:return s_t();case r_t.WALL_TIME:return(function e(){let t=new n_t.Scales.Time;return{scale:t,axis:new n_t.Axes.Time(t,"bottom"),accessor:t=>t.wall_time}})();case r_t.RELATIVE:return(function n(){let t=new n_t.Scales.Linear;return{scale:t,axis:new n_t.Axes.Numeric(t,"bottom"),accessor:c_t}})();default:throw new Error("invalid xType: "+t)}}var d_t;function p_t(t){return class extends t{constructor(){super(...arguments),this.loadKey="",this.dataToLoad=[],this.getDataLoadName=t=>String(t),this.dataLoading=!1,this.dataLoadedAtLeastOnce=!1,this._isConnected=!1,this._dataLoadState=new Map,this._canceller=new NO,this._loadDataAsync=null,this._loadData=we.throttle(this._loadDataImpl,100,{leading:!0,trailing:!0})}connectedCallback(){super.connectedCallback(),this._isConnected=!0}disconnectedCallback(){super.disconnectedCallback(),this._isConnected=!1}static get properties(){return{active:{type:Boolean,observer:"_loadDataIfActive"},_isConnected:{type:Boolean},loadKey:{type:String},dataToLoad:{type:Array},getDataLoadName:{type:Object},loadDataCallback:{type:Object},requestData:{type:Object}}}static get observers(){return["_dataToLoadChanged(_isConnected, dataToLoad.*)"]}onLoadFinish(){}reload(){this._dataLoadState.clear(),this._loadData()}reset(){null!=this._loadDataAsync&&(clearTimeout(this._loadDataAsync),this._loadDataAsync=null),this._canceller&&this._canceller.cancelAll(),this._dataLoadState&&this._dataLoadState.clear(),this._isConnected&&this._loadData()}_dataToLoadChanged(){this._isConnected&&this._loadData()}detached(){null!=this._loadDataAsync&&(clearTimeout(this._loadDataAsync),this._loadDataAsync=null)}_loadDataIfActive(){this.active&&this._loadData()}_loadDataImpl(){this.active&&(null!==this._loadDataAsync&&clearTimeout(this._loadDataAsync),this._loadDataAsync=setTimeout(this._canceller.cancellable((t=>{if(t.cancelled)return;this.dataLoading=!0;const e=this.dataToLoad.filter((t=>{const e=this.getDataLoadName(t);return!this._dataLoadState.has(e)}));for(const t of e){const e=this.getDataLoadName(t);this._dataLoadState.set(e,d_t.LOADING)}const n=this._canceller.cancellable((t=>{if(t.cancelled)return;const{item:e,data:n}=t.value,i=this.getDataLoadName(e);this._dataLoadState.set(i,d_t.LOADED),this.loadDataCallback(this,e,n)})),i=this._canceller.cancellable((t=>{if(!t.cancelled){const t=new Set(e.map((t=>this.getDataLoadName(t))));this.dataToLoad.some((e=>t.has(this.getDataLoadName(e))))&&this.onLoadFinish(),this._loadDataAsync=null,this.dataLoadedAtLeastOnce=!0}Array.from(this._dataLoadState.values()).includes(d_t.LOADING)||(this.dataLoading=!1)}));this.requestData(e,n,(()=>i(void 0)))}))))}}}!(function(t){t[t.LOADING=0]="LOADING",t[t.LOADED=1]="LOADED"})(d_t||(d_t={})),tl({moduleName:"plottable-style",styleContent:"\n    \n.plottable-colors-0 {\n  background-color: #5279c7; /* INDIGO */\n}\n\n.plottable-colors-1 {\n  background-color: #fd373e; /* CORAL_RED */\n}\n\n.plottable-colors-2 {\n  background-color: #63c261; /* FERN */\n}\n\n.plottable-colors-3 {\n  background-color: #fad419; /* BRIGHT_SUN */\n}\n\n.plottable-colors-4 {\n  background-color: #2c2b6f; /* JACARTA */\n}\n\n.plottable-colors-5 {\n  background-color: #ff7939; /* BURNING_ORANGE */\n}\n\n.plottable-colors-6 {\n  background-color: #db2e65; /* CERISE_RED */\n}\n\n.plottable-colors-7 {\n  background-color: #99ce50; /* CONIFER */\n}\n\n.plottable-colors-8 {\n  background-color: #962565; /* ROYAL_HEATH */\n}\n\n.plottable-colors-9 {\n  background-color: #06cccc; /* ROBINS_EGG_BLUE */\n}\n\n/**\n * User-supplied renderTo element.\n */\n.plottable {\n  display: block; /* must be block elements for width/height calculations to work in Firefox. */\n  pointer-events: visibleFill;\n  position: relative;\n  /**\n   * Pre 3.0, users could set the dimension of the root element in two ways: either using CSS\n   * (inline or through a stylesheet), or using the SVG width/height attributes. By default, we\n   * set the SVG width/height attributes to 100%.\n   *\n   * Post 3.0 the root element is always a normal div and the only way to set the dimensions is\n   * to use CSS. To replicate the \"100%-by-default\" behavior, we apply width/height 100%.\n   */\n  width: 100%;\n  height: 100%;\n}\n\n/**\n * The _element that roots each Component's DOM.\n */\n.plottable .component {\n  /* Allow components to be positioned with explicit left/top/width/height styles */\n  position: absolute;\n}\n\n.plottable .background-container,\n.plottable .content,\n.plottable .foreground-container {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n}\n\n/**\n * Don't allow svg elements above the content to steal events\n */\n.plottable .foreground-container {\n  pointer-events: none;\n}\n\n.plottable .component-overflow-hidden {\n  overflow: hidden;\n}\n\n.plottable .component-overflow-visible {\n  overflow: visible;\n}\n\n.plottable .plot-canvas-container {\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n\n.plottable .plot-canvas {\n  width: 100%;\n  height: 100%;\n  /**\n   * Play well with deferred rendering.\n   */\n  transform-origin: 0px 0px 0px;\n}\n\n.plottable text {\n  text-rendering: geometricPrecision;\n}\n\n.plottable .label text {\n  fill: #32313F;\n}\n\n.plottable .bar-label-text-area text,\n.plottable .scatter-label-text-area text {\n  font-size: 12px;\n}\n\n.plottable .label-area text {\n  fill: #32313F;\n  font-size: 14px;\n}\n\n.plottable .light-label text {\n  fill: white;\n}\n\n.plottable .dark-label text {\n  fill: #32313F;\n}\n\n.plottable .off-bar-label text {\n  fill: #32313F;\n}\n\n.plottable .stacked-bar-label text {\n  fill: #32313F;\n  font-style: normal;\n}\n\n.plottable .stacked-bar-plot .off-bar-label {\n  /* HACKHACK #2795: correct off-bar label logic to be implemented on StackedBar */\n  visibility: hidden !important;\n}\n\n.plottable .axis-label text {\n  font-size: 10px;\n  font-weight: bold;\n  letter-spacing: 1px;\n  line-height: normal;\n  text-transform: uppercase;\n}\n\n.plottable .title-label text {\n  font-size: 20px;\n  font-weight: bold;\n}\n\n.plottable .axis line.baseline {\n  stroke: #CCC;\n  stroke-width: 1px;\n}\n\n.plottable .axis line.tick-mark {\n  stroke: #CCC;\n  stroke-width: 1px;\n}\n\n.plottable .axis text {\n  fill: #32313F;\n  font-size: 12px;\n  font-weight: 200;\n  line-height: normal;\n}\n\n.plottable .axis .annotation-circle {\n  fill: white;\n  stroke-width: 1px;\n  stroke: #CCC;\n}\n\n.plottable .axis .annotation-line {\n  stroke: #CCC;\n  stroke-width: 1px;\n}\n\n.plottable .axis .annotation-rect {\n  stroke: #CCC;\n  stroke-width: 1px;\n  fill: white;\n}\n\n.plottable .bar-plot .baseline {\n  stroke: #999;\n}\n\n.plottable .gridlines line {\n  stroke: #3C3C3C; /* hackhack: gridlines should be solid; see #820 */\n  opacity: 0.25;\n  stroke-width: 1px;\n}\n\n.plottable .selection-box-layer .selection-area {\n  fill: black;\n  fill-opacity: 0.03;\n  stroke: #CCC;\n}\n/* DragBoxLayer */\n.plottable .drag-box-layer.x-resizable .drag-edge-lr {\n  cursor: ew-resize;\n}\n.plottable .drag-box-layer.y-resizable .drag-edge-tb {\n  cursor: ns-resize;\n}\n\n.plottable .drag-box-layer.x-resizable.y-resizable .drag-corner-tl {\n  cursor: nwse-resize;\n}\n.plottable .drag-box-layer.x-resizable.y-resizable .drag-corner-tr {\n  cursor: nesw-resize;\n}\n.plottable .drag-box-layer.x-resizable.y-resizable .drag-corner-bl {\n  cursor: nesw-resize;\n}\n.plottable .drag-box-layer.x-resizable.y-resizable .drag-corner-br {\n  cursor: nwse-resize;\n}\n\n.plottable .drag-box-layer.movable .selection-area {\n  cursor: move; /* IE fallback */\n  cursor: -moz-grab;\n  cursor: -webkit-grab;\n  cursor: grab;\n}\n\n.plottable .drag-box-layer.movable .selection-area:active {\n  cursor: -moz-grabbing;\n  cursor: -webkit-grabbing;\n  cursor: grabbing;\n}\n/* /DragBoxLayer */\n\n.plottable .guide-line-layer line.guide-line {\n  stroke: #CCC;\n  stroke-width: 1px;\n}\n\n.plottable .drag-line-layer.enabled.vertical line.drag-edge {\n  cursor: ew-resize;\n}\n\n.plottable .drag-line-layer.enabled.horizontal line.drag-edge {\n  cursor: ns-resize;\n}\n\n.plottable .legend text {\n  fill: #32313F;\n  font-size: 12px;\n  font-weight: bold;\n  line-height: normal;\n}\n\n.plottable .interpolated-color-legend rect.swatch-bounding-box {\n  fill: none;\n  stroke: #CCC;\n  stroke-width: 1px;\n  pointer-events: none;\n}\n\n.plottable .waterfall-plot line.connector {\n  stroke: #CCC;\n  stroke-width: 1px;\n}\n\n.plottable .pie-plot .arc.outline {\n  stroke-linejoin: round;\n}\n\n"});const f_t=[1,0,0,1,0,0];class m_t extends n_t.Utils.Translator{computePosition(t,e){const n={x:t,y:e},i=(function r(t){const e=(function n(t){const e=[];for(;t&&t instanceof HTMLElement;)if(e.push(t),t.assignedSlot)t=t.assignedSlot;else if(t.parentElement)t=t.parentElement;else{const e=t.parentNode;t=e instanceof DocumentFragment?e.host:e!==t?e:null}return e})(t);let i=f_t,r=null;for(const t of e){const e=n_t.Utils.DOM.getElementTransform(t);if(null!=e){const n=t.clientWidth/2,r=t.clientHeight/2;i=n_t.Utils.Math.multiplyTranslate(i,[n,r]),i=n_t.Utils.Math.multiplyMatrix(i,n_t.Utils.Math.invertMatrix(e)),i=n_t.Utils.Math.multiplyTranslate(i,[-n,-r])}let n=t.scrollLeft,o=t.scrollTop;null!==r&&t!==r||(n-=t.offsetLeft+t.clientLeft,o-=t.offsetTop+t.clientTop,r=t.offsetParent),i=n_t.Utils.Math.multiplyTranslate(i,[n,o])}return i})(this._rootElement);return null==i?n:n_t.Utils.Math.applyTransform(i,n)}}class g_t extends n_t.Dispatchers.Mouse{constructor(t){super(t),this._eventTarget=t.root().rootElement().node(),this._translator=new m_t(t.root().rootElement().node())}static getDispatcher(t){const e=t.root().rootElement();let n=e[g_t._DISPATCHER_KEY];return n||(n=new g_t(t),e[g_t._DISPATCHER_KEY]=n),n}}class __t extends n_t.Dispatchers.Touch{constructor(t){super(t),this._eventTarget=t.root().rootElement().node(),this._translator=new m_t(t.root().rootElement().node())}static getDispatcher(t){const e=t.root().rootElement();let n=e[__t._DISPATCHER_KEY];return n||(n=new __t(t),e[__t._DISPATCHER_KEY]=n),n}}n_t.Interaction.prototype._isInsideComponent=function(t){return 0<=t.x&&0<=t.y&&t.x<this._componentAttachedTo.width()&&t.y<this._componentAttachedTo.height()};class y_t extends n_t.Interactions.Pointer{_anchor(t){const e=this;e._isAnchored=!0,e._mouseDispatcher=g_t.getDispatcher(e._componentAttachedTo),e._mouseDispatcher.onMouseMove(e._mouseMoveCallback),e._touchDispatcher=__t.getDispatcher(e._componentAttachedTo),e._touchDispatcher.onTouchStart(e._touchStartCallback)}}var v_t;!(function(t){t.AUTO="auto",t.BOTTOM="bottom",t.RIGHT="right"})(v_t||(v_t={}));const b_t={boxShadow:"0 1px 4px rgba(0, 0, 0, .3)",opacity:0,position:"fixed",willChange:"transform",zIndex:5};let x_t=class extends(tr(ye)){constructor(){super(...arguments),this.position=v_t.AUTO,this.minDistFromEdge=15,this._styleCache=null,this._raf=null,this._tunnel=null}ready(){this._styleCache=null,this._raf=null,this._tunnel=null}attached(){this._tunnel=this._createTunnel(),this._hideOnBlur=()=>{document.hidden&&this.hide()},window.addEventListener("visibilitychange",this._hideOnBlur)}detached(){this.hide(),this._removeTunnel(this._tunnel),this._tunnel=null,window.removeEventListener("visibilitychange",this._hideOnBlur)}content(){return this._tunnel.shadowRoot}hide(){window.cancelAnimationFrame(this._raf),this._styleCache=null,this._tunnel.style.opacity=0}updateAndPosition(t){window.cancelAnimationFrame(this._raf),this._raf=window.requestAnimationFrame((()=>{this.isAttached&&this._repositionImpl(t)}))}_repositionImpl(t){const e=this._tunnel,n=t.getBoundingClientRect(),i=e.getBoundingClientRect(),r=window.innerHeight,o=document.body.clientWidth,a=n.top,s=a+n.height,l=i.height+20;let c=null,u=Math.max(this.minDistFromEdge,n.left),h=null,d=a;this.position==v_t.RIGHT?u=n.right:(d=s+20,o<u+i.width+this.minDistFromEdge&&(u=null,h=this.minDistFromEdge)),this.position==v_t.AUTO&&n.top-l>0&&r<n.top+n.height+l&&(d=null,c=r-a+20);const p={contain:"content",opacity:1,left:u?`${u}px`:null,right:h?`${h}px`:null,top:d?`${d}px`:null,bottom:c?`${c}px`:null};we.isEqual(this._styleCache,p)||(Object.assign(e.style,p),this._styleCache=p)}_createTunnel(){if(!this.contentComponentName)throw new RangeError("Require `contentComponentName` to be a name of a Polymer component");const t=document.createElement(this.contentComponentName);return Object.assign(t.style,b_t),document.body.appendChild(t),t}_removeTunnel(t){document.body.removeChild(t)}};t([o({type:String}),e("design:type",String)],x_t.prototype,"contentComponentName",void 0),t([o({type:String}),e("design:type",String)],x_t.prototype,"position",void 0),t([o({type:Number}),e("design:type",Number)],x_t.prototype,"minDistFromEdge",void 0),x_t=t([i("vz-chart-tooltip")],x_t);const w_t=fy(".2~e"),S_t=fy(".4~r"),M_t=fy(",~");function E_t(t){if(0===t)return"0";const e=Math.abs(t);return e>=1e4||e<.001?w_t(t):S_t(t)}const T_t={formatTick:E_t,formatShort:E_t,formatReadable(t){const e=Math.abs(t);return e>=1e4||e<.001?w_t(t):M_t(t)},formatLong:M_t};fy("0.3~s"),fy(",.3~f"),fy(".4~");const C_t=YC().tickFormat();let A_t;const k_t={formatTick:t=>C_t(new Date(t)),formatShort:t=>new Date(t).toLocaleString(A_t,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"}),formatReadable:t=>new Date(t).toLocaleString(A_t,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}),formatLong:t=>new Date(t).toLocaleString(A_t,{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short",fractionalSecondDigits:3})};var L_t;!(function(t){t[t.LINEAR=0]="LINEAR",t[t.LOG10=1]="LOG10",t[t.TIME=2]="TIME"})(L_t||(L_t={}));class P_t{constructor(){this.defaultFormatter=T_t}transform(t,e,n){const[i,r]=t,o=r-i,[a,s]=e;return 0===o?a:(s-a)/o*(n-i)+a}forward(t,e,n){return this.transform(t,e,n)}reverse(t,e,n){return this.transform(e,t,n)}niceDomain(t){let[e,n]=t;if(n<e)throw new Error("Unexpected input: min is larger than max");if(n===e)return 0===e?[-1,1]:e<0?[2*e,0]:[0,2*e];const i=DM(),r=.05*(n-e+Number.EPSILON),[o,a]=i.domain([e-r,n+r]).nice().domain();return[o,a]}ticks(t,e){return DM().domain(t).ticks(e)}isSafeNumber(t){return Number.isFinite(t)}}class N_t{constructor(){this.defaultFormatter=T_t}transform(t){return Math.log10(t>0?t:Number.MIN_VALUE)}untransform(t){return Math.exp(t/Math.LOG10E)}forward(t,e,n){if(n<=0)return e[0];const[i,r]=t,[o,a]=e,s=this.transform(i),l=this.transform(r)-s,c=a-o;return n=this.transform(n),c/(l+Number.EPSILON)*(n-s)+o}reverse(t,e,n){const[i,r]=t,[o,a]=e,s=this.transform(i),l=this.transform(r);return this.untransform((l-s)/(a-o+Number.EPSILON)*(n-o)+s)}niceDomain(t){const[e,n]=t;if(e>n)throw new Error("Unexpected input: min is larger than max");const i=Math.max(e,Number.MIN_VALUE),r=Math.max(n,Number.MIN_VALUE);return n<=0?[Number.MIN_VALUE,1]:[Math.max(Number.MIN_VALUE,.5*i),2*r]}ticks(t,e){const n=t[0]<=0?Number.MIN_VALUE:t[0],i=t[1]<=0?Number.MIN_VALUE:t[1],r=qM().domain([n,i]).ticks(e);return r.length?r:t}isSafeNumber(t){return Number.isFinite(t)&&t>0}}class I_t{constructor(){this.scale=YC(),this.defaultFormatter=k_t}forward(t,e,n){return this.scale.domain(t).range(e)(n)}reverse(t,e,n){return this.scale.domain(t).range(e).invert(n).getTime()}niceDomain(t){const[e,n]=this.scale.domain(t).nice().domain();return[e.getTime(),n.getTime()]}ticks(t,e){return this.scale.domain(t).ticks(e).map((t=>t.getTime()))}isSafeNumber(t){return Number.isFinite(t)}}class O_t extends n_t.Scales.Linear{constructor(){super(),this._ignoreOutlier=!1,this.padProportion(.2)}setValueProviderForDomain(t){return this._valueProviderForDomain=t,this}_niceDomain(t,e){const[n,i]=t;return(function r(t){switch(t){case L_t.LINEAR:return new P_t;case L_t.LOG10:return new N_t;case L_t.TIME:return new I_t;default:throw new RangeError(`ScaleType ${t} not supported.`)}})(L_t.LINEAR).niceDomain([n,i])}_getUnboundedExtent(t){const e=this._getAllIncludedValues(t);let n=this._defaultExtent();if(0!==e.length){const t=[n_t.Utils.Math.min(e,n[0]),n_t.Utils.Math.max(e,n[1])];n=this._niceDomain(t)}return n}_getAllIncludedValues(t=!1){const e=this._valueProviderForDomain?this._valueProviderForDomain():[];return this.extentOfValues(e)}extentOfValues(t){const e=t.filter((t=>n_t.Utils.Math.isValidNumber(t)));let n=e;if(this.ignoreOutlier()){const t=e.sort(((t,e)=>t-e)),i=jl(t,.05),r=jl(t,.95);n=e.filter((t=>t>=i&&t<=r))}const i=kl(n);return null==i[0]||null==i[1]?[]:i}ignoreOutlier(t){return"boolean"==typeof t?(this._ignoreOutlier=t,this):this._ignoreOutlier}}class R_t extends n_t.QuantitativeScale{constructor(){super(...arguments),this._ignoreOutlier=!1}setValueProviderForDomain(t){return this._valueProviderForDomain=t,this}ignoreOutlier(t){return"boolean"==typeof t?(this._ignoreOutlier=t,this):this._ignoreOutlier}_getAllIncludedValues(t=!1){const e=this._valueProviderForDomain?this._valueProviderForDomain():[];return this.extentOfValues(e)}}const z_t=Math.pow(2,-1074);function D_t(t){return Math.log10(t)}function B_t(t){return Math.pow(10,t)}class H_t extends R_t{constructor(){super(),this._d3LogScale=qM(),this.padProportion(.2)}scale(t){return t<=0?NaN:this._d3LogScale(t)}invert(t){return this._d3LogScale.invert(t)}scaleTransformation(t){return this.scale(t)}invertedTransformation(t){return this.invert(t)}getTransformationDomain(){return this.domain()}setTransformationDomain(t){this.domain(t)}getTransformationExtent(){return this._getUnboundedExtent(!0)}_getDomain(){return this._untransformedDomain}_setDomain(t){this._untransformedDomain=t;const[e,n]=t;super._setDomain([Math.max(z_t,e),n])}_niceDomain(t,e){const[n,i]=t,r=Math.max(D_t(z_t),D_t(n)),o=D_t(i),a=o-r,s=a?a*this.padProportion():1;return[B_t(Math.max(D_t(z_t),r-s)),B_t(o+s)]}_getUnboundedExtent(t){const e=this._getAllIncludedValues(t);let n=this._defaultExtent();if(0!==e.length){const t=[n_t.Utils.Math.min(e,n[0]),n_t.Utils.Math.max(e,n[1])];n=this._niceDomain(t)}return n}_getAllIncludedValues(t=!1){return super._getAllIncludedValues().map((t=>t>0?t:z_t))}_defaultExtent(){return[1,10]}_backingScaleDomain(t){return null==t?this._d3LogScale.domain():(this._d3LogScale.domain(t),this)}_getRange(){return this._d3LogScale.range()}_setRange(t){this._d3LogScale.range(t)}defaultTicks(){return this._d3LogScale.ticks(1)}ticks(){return this._d3LogScale.ticks()}extentOfValues(t){const e=t.filter((t=>n_t.Utils.Math.isValidNumber(t)&&t>0));let n=e;if(this.ignoreOutlier()){const t=e.map(D_t).sort(((t,e)=>t-e)),i=jl(t,.05),r=jl(t,.95);n=t.filter((t=>t>=i&&t<=r)).map(B_t)}const i=kl(n);return null==i[0]||null==i[1]?[]:i}}class F_t extends n_t.Components.SelectionBoxLayer{constructor(t,e,n){super(),this.easeFn=Ef,this._animationTime=750,this.xScale(t),this.yScale(e),this._dragInteraction=new n_t.Interactions.Drag,this._doubleClickInteraction=new n_t.Interactions.Click,this.setupCallbacks(),this.unzoomMethod=n,this.onDetach((()=>{this._doubleClickInteraction.detachFrom(this),this._dragInteraction.detachFrom(this)})),this.onAnchor((()=>{this._doubleClickInteraction.attachTo(this),this._dragInteraction.attachTo(this)}))}interactionStart(t){this.onStart=t}interactionEnd(t){this.onEnd=t}dragInteraction(){return this._dragInteraction}setupCallbacks(){let t=!1;this._dragInteraction.onDragStart((t=>{this.bounds({topLeft:t,bottomRight:t}),this.onStart()})),this._dragInteraction.onDrag(((e,n)=>{this.bounds({topLeft:e,bottomRight:n}),this.boxVisible(!0),t=!0})),this._dragInteraction.onDragEnd(((e,n)=>{this.boxVisible(!1),this.bounds({topLeft:e,bottomRight:n}),t?this.zoom():this.onEnd(),t=!1})),this._doubleClickInteraction.onDoubleClick(this.unzoom.bind(this))}animationTime(t){if(null==t)return this._animationTime;if(t<0)throw new Error("animationTime cannot be negative");return this._animationTime=t,this}ease(t){if("function"!=typeof t)throw new Error("ease function must be a function");return 0===t(0)&&1===t(1)||n_t.Utils.Window.warn("Easing function does not maintain invariant f(0)==0 && f(1)==1. Bad behavior may result."),this.easeFn=t,this}zoom(){let t=this.xExtent()[0].valueOf(),e=this.xExtent()[1].valueOf(),n=this.yExtent()[1].valueOf(),i=this.yExtent()[0].valueOf();t!==e&&n!==i&&this.interpolateZoom(t,e,n,i)}unzoom(){let t=this.xScale();t._domainMin=null,t._domainMax=null;let e=t._getExtent();this.xScale().domain(e),this.unzoomMethod()}isZooming(t){this._dragInteraction.enabled(!t),this._doubleClickInteraction.enabled(!t)}interpolateZoom(t,e,n,i){let r=this.xScale().domain()[0].valueOf(),o=this.xScale().domain()[1].valueOf(),a=this.yScale().domain()[0].valueOf(),s=this.yScale().domain()[1].valueOf(),l=this.easeFn,c=(t,e,n)=>Dd(t,e)(l(n));this.isZooming(!0);let u=Date.now(),h=()=>{let l=Date.now(),d=0===this._animationTime?1:Math.min(1,(l-u)/this._animationTime),p=c(r,t,d),f=c(o,e,d),m=c(a,n,d),g=c(s,i,d);this.xScale().domain([p,f]),this.yScale().domain([m,g]),d<1?n_t.Utils.DOM.requestAnimationFramePolyfill(h):(this.onEnd(),this.isZooming(!1))};h()}}var V_t,U_t,j_t,G_t;!(function(t){t[t.NONE=0]="NONE",t[t.DRAG_ZOOMING=1]="DRAG_ZOOMING",t[t.PANNING=2]="PANNING"})(V_t||(V_t={}));class W_t extends n_t.Components.Group{constructor(t,e,n){super(),this.state=V_t.NONE,this.panStartCallback=new n_t.Utils.CallbackSet,this.panEndCallback=new n_t.Utils.CallbackSet,this.panZoom=new n_t.Interactions.PanZoom(t,e),this.panZoom.dragInteraction().mouseFilter((t=>W_t.isPanKey(t)&&0===t.button)),this.panZoom.wheelFilter(this.canScrollZoom),this.dragZoomLayer=new F_t(t,e,n),this.dragZoomLayer.dragInteraction().mouseFilter((t=>!W_t.isPanKey(t)&&0===t.button)),this.append(this.dragZoomLayer);const i=this.onWheel.bind(this);this.onAnchor((()=>{this._mouseDispatcher=n_t.Dispatchers.Mouse.getDispatcher(this),this._mouseDispatcher.onWheel(i),this.panZoom.attachTo(this)})),this.onDetach((()=>{this.panZoom.detachFrom(this),this._mouseDispatcher&&(this._mouseDispatcher.offWheel(i),this._mouseDispatcher=null)})),this.panZoom.dragInteraction().onDragStart((()=>{this.state==V_t.NONE&&this.setState(V_t.PANNING)})),this.panZoom.dragInteraction().onDragEnd((()=>{this.state==V_t.PANNING&&this.setState(V_t.NONE)})),this.dragZoomLayer.dragInteraction().onDragStart((()=>{this.state==V_t.NONE&&this.setState(V_t.DRAG_ZOOMING)})),this.dragZoomLayer.dragInteraction().onDragEnd((()=>{this.state==V_t.DRAG_ZOOMING&&this.setState(V_t.NONE)}))}onWheel(t,e){if(this.canScrollZoom(e))return;const n=this.element();if(!n.select(".help").empty())return;const i=n.append("div").classed("help",!0);i.append("span").text("Alt + Scroll to Zoom"),i.on("animationend",(()=>{i.remove()}))}static isPanKey(t){return Boolean(t.altKey)||Boolean(t.shiftKey)}canScrollZoom(t){return t.altKey}setState(t){if(this.state==t)return;const e=this.state;this.state=t,this.root().removeClass(this.stateClassName(e)),this.root().addClass(this.stateClassName(t)),e==V_t.PANNING&&this.panEndCallback.callCallbacks(),t==V_t.PANNING&&this.panStartCallback.callCallbacks()}stateClassName(t){switch(t){case V_t.PANNING:return"panning";case V_t.DRAG_ZOOMING:return"drag-zooming";case V_t.NONE:default:return""}}onPanStart(t){this.panStartCallback.add(t)}onPanEnd(t){this.panEndCallback.add(t)}onScrollZoom(t){this.panZoom.onZoomEnd(t)}onDragZoomStart(t){this.dragZoomLayer.interactionStart(t)}onDragZoomEnd(t){this.dragZoomLayer.interactionEnd(t)}}!(function(t){t[t.TEXT=0]="TEXT",t[t.DOM=1]="DOM"})(U_t||(U_t={})),(function(t){t.LOG="log",t.LINEAR="linear"})(j_t||(j_t={}));class q_t{constructor(t,e,n,i,r,o,a,s,l,c,u){this.dirtyDatasets=new Set,this.seriesNames=[],this.name2datasets={},this.colorScale=i,this.tooltip=r,this.datasets=[],this._ignoreYOutliers=!1,this.lastPointsDataset=new n_t.Dataset,this.nanDataset=new n_t.Dataset,this.yValueAccessor=e,this.symbolFunction=c,this._defaultXRange=s,this._defaultYRange=l,this.tooltipColumns=o,this.buildChart(t,e,n,a,u)}buildChart(t,e,n,i,r){this.destroy();const o=t();this.xAccessor=o.accessor,this.xScale=o.scale,this.xAxis=o.axis,this.xAxis.margin(1).tickLabelPadding(3),r&&this.xAxis.formatter(r),this.yScale=q_t.getYScaleFromType(n),this.yScale.setValueProviderForDomain((()=>this.getValuesForYAxisDomainCompute())),this.yAxis=new n_t.Axes.Numeric(this.yScale,"left");let a=o_t(3);this.yAxis.margin(0).tickLabelPadding(5).formatter(a),this.yAxis.usesTextWidthApproximation(!0),this.fillArea=i;const s=new W_t(this.xScale,this.yScale,(()=>this.resetDomain()));this.tooltipInteraction=this.createTooltipInteraction(s),this.tooltipPointsComponent=new n_t.Component;const l=this.buildPlot(this.xScale,this.yScale,i);this.gridlines=new n_t.Components.Gridlines(this.xScale,this.yScale);let c=null;n!==j_t.LOG&&(c=new n_t.Components.GuideLineLayer("horizontal"),c.scale(this.yScale).value(0));let u=new n_t.Components.GuideLineLayer("vertical");u.scale(this.xScale).value(0),this.center=new n_t.Components.Group([this.gridlines,c,u,l,this.tooltipPointsComponent,s]),this.center.addClass("main"),this.outer=new n_t.Components.Table([[this.yAxis,this.center],[null,this.xAxis]])}buildPlot(t,e,n){n&&(this.marginAreaPlot=new n_t.Plots.Area,this.marginAreaPlot.x(this.xAccessor,t),this.marginAreaPlot.y(n.higherAccessor,e),this.marginAreaPlot.y0(n.lowerAccessor),this.marginAreaPlot.attr("fill",((t,e,n)=>this.colorScale.scale(n.metadata().name))),this.marginAreaPlot.attr("fill-opacity",.3),this.marginAreaPlot.attr("stroke-width",0)),this.smoothedAccessor=t=>t.smoothed;let i=new n_t.Plots.Line;i.x(this.xAccessor,t),i.y(this.yValueAccessor,e),i.attr("stroke",((t,e,n)=>this.colorScale.scale(n.metadata().name))),this.linePlot=i,this.setupTooltips(i);let r=new n_t.Plots.Line;if(r.x(this.xAccessor,t),r.y(this.smoothedAccessor,e),r.attr("stroke",((t,e,n)=>this.colorScale.scale(n.metadata().name))),this.smoothLinePlot=r,this.symbolFunction){const n=new n_t.Plots.Scatter;n.x(this.xAccessor,t),n.y(this.yValueAccessor,e),n.attr("fill",((t,e,n)=>this.colorScale.scale(n.metadata().name))),n.attr("opacity",1),n.size(8),n.symbol(((t,e,n)=>this.symbolFunction(n.metadata().name))),this.markersScatterPlot=n}let o=new n_t.Plots.Scatter;o.x(this.xAccessor,t),o.y(this.yValueAccessor,e),o.attr("fill",(t=>this.colorScale.scale(t.name))),o.attr("opacity",1),o.size(8),o.datasets([this.lastPointsDataset]),this.scatterPlot=o;let a=new n_t.Plots.Scatter;a.x(this.xAccessor,t),a.y((t=>t.displayY),e),a.attr("fill",(t=>this.colorScale.scale(t.name))),a.attr("opacity",1),a.size(12),a.datasets([this.nanDataset]),a.symbol(n_t.SymbolFactories.triangle),this.nanDisplay=a;const s=[a,o,r,i];return this.marginAreaPlot&&s.push(this.marginAreaPlot),this.markersScatterPlot&&s.push(this.markersScatterPlot),new n_t.Components.Group(s)}ignoreYOutliers(t){t!==this._ignoreYOutliers&&(this._ignoreYOutliers=t,this.updateSpecialDatasets(),this.yScale.ignoreOutlier(t),this.resetYDomain())}getValuesForYAxisDomainCompute(){const t=this.getAccessorsForComputingYRange();return we.flattenDeep(this.datasets.map((e=>t.map((t=>e.data().map((n=>t(n,-1,e)))))))).filter(isFinite)}updateSpecialDatasets(){const t=this.getYAxisAccessor();let e=this.datasets.map((e=>{let n=null,i=e.data().filter((n=>!isNaN(t(n,-1,e))));return i.length>0&&(n=i[i.length-1],n.name=e.metadata().name,n.relative=c_t(n,0,e)),n})).filter((t=>null!=t));this.lastPointsDataset.data(e),this.markersScatterPlot&&this.markersScatterPlot.datasets(this.datasets.map(this.createSampledDatasetForMarkers));let n=we.flatten(this.datasets.map((e=>{let n=null,i=e.data(),r=0;for(;r<i.length&&null==n;)isNaN(t(i[r],-1,e))||(n=t(i[r],-1,e)),r++;null==n&&(n=0);let o=[];for(r=0;r<i.length;r++)isNaN(t(i[r],-1,e))?(i[r].name=e.metadata().name,i[r].displayY=n,i[r].relative=c_t(i[r],0,e),o.push(i[r])):n=t(i[r],-1,e);return o})));this.nanDataset.data(n)}resetDomain(){this.resetXDomain(),this.resetYDomain()}resetXDomain(){let t;if(null!=this._defaultXRange)t=this._defaultXRange;else{const e=this.xScale;e._domainMin=null,e._domainMax=null,t=e._getExtent()}this.xScale.domain(t)}resetYDomain(){null!=this._defaultYRange?this.yScale.domain(this._defaultYRange):(this.yScale.autoDomain(),this.yScale.domain(this.yScale.domain()))}getAccessorsForComputingYRange(){const t=[this.getYAxisAccessor()];return this.fillArea&&t.push(this.fillArea.lowerAccessor,this.fillArea.higherAccessor),t}getYAxisAccessor(){return this.smoothingEnabled?this.smoothedAccessor:this.yValueAccessor}createTooltipInteraction(t){const e=new y_t,n=()=>{e.enabled(!1),this.hideTooltips()},i=()=>e.enabled(!0);return t.onPanStart(n),t.onDragZoomStart(n),t.onPanEnd(i),t.onDragZoomEnd(i),t.onScrollZoom((()=>this.updateTooltipContent(this._lastMousePosition))),e.onPointerMove((t=>{this._lastMousePosition=t,this.updateTooltipContent(t)})),e.onPointerExit((()=>this.hideTooltips())),e}updateTooltipContent(t){this.linePlot&&(window.cancelAnimationFrame(this._tooltipUpdateAnimationFrame),this._tooltipUpdateAnimationFrame=window.requestAnimationFrame((()=>{let e={x:t.x,y:t.y,datum:null,dataset:null},n=this.gridlines.content().node().getBBox(),i=this.linePlot.datasets().map((t=>this.findClosestPoint(e,t))).filter(Boolean),r=n_t.Utils.DOM.intersectsBBox,o=i.filter((t=>r(t.x,t.y,n)||isNaN(this.yValueAccessor(t.datum,0,t.dataset)))),a=o.filter((t=>!isNaN(this.yValueAccessor(t.datum,0,t.dataset))));if(0!==i.length){this.scatterPlot.attr("display","none");const t=this.tooltipPointsComponent.content().selectAll(".point").data(a,(t=>t.dataset.metadata().name));t.enter().append("circle").classed("point",!0),t.attr("r",4).attr("cx",(t=>t.x)).attr("cy",(t=>t.y)).style("stroke","none").attr("fill",(t=>this.colorScale.scale(t.dataset.metadata().name))),t.exit().remove(),this.drawTooltips(o,e,this.tooltipColumns)}else this.hideTooltips()})))}hideTooltips(){window.cancelAnimationFrame(this._tooltipUpdateAnimationFrame),this.tooltip.hide(),this.scatterPlot.attr("display","block"),this.tooltipPointsComponent.content().selectAll(".point").remove()}setupTooltips(t){t.onDetach((()=>{this.tooltipInteraction.detachFrom(t),this.tooltipInteraction.enabled(!1)})),t.onAnchor((()=>{this.tooltipInteraction.attachTo(t),this.tooltipInteraction.enabled(!0)}))}drawTooltips(t,e,n){if(!t.length)return void this.tooltip.hide();const{colorScale:i}=this;n=[{title:"",static:!1,evalType:U_t.DOM,evaluate(t){return wu(this).select("span").style("background-color",(()=>i.scale(t.dataset.metadata().name))),""},enter(t){wu(this).append("span").classed("swatch",!0).style("background-color",(()=>i.scale(t.dataset.metadata().name)))}},...n];const r=t=>Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2),o=we.min(t.map(r)),a=this.smoothingEnabled?this.smoothedAccessor:this.yValueAccessor;t="ascending"===this.tooltipSortingMethod?we.sortBy(t,(t=>a(t.datum,-1,t.dataset))):"descending"===this.tooltipSortingMethod?we.sortBy(t,(t=>a(t.datum,-1,t.dataset))).reverse():"nearest"===this.tooltipSortingMethod?we.sortBy(t,r):t.slice(0).reverse();const s=this,l=wu(this.tooltip.content()).select("table"),c=l.select("thead").selectAll("th").data(n,((t,e,n)=>t.title));c.enter().append("th").text((t=>t.title)).nodes(),c.exit().remove();const u=l.select("tbody").selectAll("tr").data(t,((t,e,n)=>t.dataset.metadata().name));u.classed("distant",(t=>{let n=t.dataset.data()[0],i=we.last(t.dataset.data()),r=this.xScale.scale(this.xAccessor(n,0,t.dataset)),o=this.xScale.scale(this.xAccessor(i,0,t.dataset)),a=this.smoothingEnabled?t.datum.smoothed:this.yValueAccessor(t.datum,0,t.dataset);return e.x<r||e.x>o||isNaN(a)})).classed("closest",(t=>r(t)===o)).each((function(t){s.drawTooltipRow(this,n,t)})).order(),u.exit().remove(),u.enter().append("tr").each((function(t){s.drawTooltipRow(this,n,t)})).nodes(),this.tooltip.updateAndPosition(this.targetSVG.node())}drawTooltipRow(t,e,n){const i=this,r=wu(t).selectAll("td").data(e);r.each((function(t){t.static||i.drawTooltipColumn.call(i,this,t,n)})),r.exit().remove(),r.enter().append("td").each((function(t){"enter"in t&&t.enter&&t.enter.call(this,n),i.drawTooltipColumn.call(i,this,t,n)}))}drawTooltipColumn(t,e,n){const{smoothingEnabled:i}=this;"evalType"in e&&e.evalType==U_t.DOM?e.evaluate.call(t,n,{smoothingEnabled:i}):wu(t).text(e.evaluate.call(t,n,{smoothingEnabled:i}))}findClosestPoint(t,e){const n=e.data().map(((t,n)=>this.xScale.scale(this.xAccessor(t,n,e))));let i=we.sortedIndex(n,t.x);if(0==n.length)return null;i===n.length?i-=1:0!==i&&(i=Math.abs(n[i-1]-t.x)<Math.abs(n[i]-t.x)?i-1:i);const r=e.data()[i],o=this.smoothingEnabled?this.smoothedAccessor(r,i,e):this.yValueAccessor(r,i,e);return{x:n[i],y:this.yScale.scale(o),datum:r,dataset:e}}resmoothDataset(t){let e=t.data();const n=this.smoothingWeight;let i=e.length>0?0:NaN,r=0;const o=e.map(((e,n)=>this.yValueAccessor(e,n,t))),a=o.every((t=>t==o[0]));e.forEach(((t,e)=>{const s=o[e];if(a||!Number.isFinite(s))t.smoothed=s;else{i=i*n+(1-n)*s,r++;let e=1;1!==n&&(e=1-Math.pow(n,r)),t.smoothed=i/e}}))}getDataset(t){return void 0===this.name2datasets[t]&&(this.name2datasets[t]=new n_t.Dataset([],{name:t,meta:null})),this.name2datasets[t]}static getYScaleFromType(t){if(t===j_t.LOG)return new H_t;if(t===j_t.LINEAR)return new O_t;throw new Error("Unrecognized yScale type "+t)}setVisibleSeries(t){this.disableChanges(),(t=t.sort()).reverse(),this.seriesNames=t}disableChanges(){this.dirtyDatasets.size||(this.linePlot.datasets([]),this.smoothLinePlot&&this.smoothLinePlot.datasets([]),this.marginAreaPlot&&this.marginAreaPlot.datasets([]))}commitChanges(){this.datasets=this.seriesNames.map((t=>this.getDataset(t))),[...this.dirtyDatasets].forEach((t=>{this.smoothingEnabled&&this.resmoothDataset(this.getDataset(t))})),this.updateSpecialDatasets(),this.linePlot.datasets(this.datasets),this.smoothingEnabled&&this.smoothLinePlot.datasets(this.datasets),this.marginAreaPlot&&this.marginAreaPlot.datasets(this.datasets),this.measureBBoxAndMaybeInvalidateLayoutInRaf(),this.dirtyDatasets.clear()}createSampledDatasetForMarkers(t){const e=t.data();if(e.length<=20)return t;const n=Math.ceil(e.length/20),i=new Array(Math.floor(e.length/n));for(let t=0,r=0;t<i.length;t++,r+=n)i[t]=e[r];return new n_t.Dataset(i,t.metadata())}setSeriesData(t,e){this.disableChanges(),this.getDataset(t).data(e),this.dirtyDatasets.add(t)}setSeriesMetadata(t,e){this.disableChanges(),this.getDataset(t).metadata(Object.assign(Object.assign({},this.getDataset(t).metadata()),{meta:e})),this.dirtyDatasets.add(t)}smoothingUpdate(t){this.smoothingWeight=t,this.datasets.forEach((t=>this.resmoothDataset(t))),this.smoothingEnabled||(this.linePlot.addClass("ghost"),this.scatterPlot.y(this.smoothedAccessor,this.yScale),this.smoothingEnabled=!0,this.smoothLinePlot.datasets(this.datasets)),this.markersScatterPlot&&this.markersScatterPlot.y(this.getYAxisAccessor(),this.yScale),this.updateSpecialDatasets()}smoothingDisable(){this.smoothingEnabled&&(this.linePlot.removeClass("ghost"),this.scatterPlot.y(this.yValueAccessor,this.yScale),this.smoothLinePlot.datasets([]),this.smoothingEnabled=!1,this.updateSpecialDatasets()),this.markersScatterPlot&&this.markersScatterPlot.y(this.getYAxisAccessor(),this.yScale)}setColorScale(t){this.colorScale=t}setTooltipColumns(t){this.tooltipColumns=t}setTooltipSortingMethod(t){this.tooltipSortingMethod=t}renderTo(t){this.targetSVG=t,this.outer.renderTo(t),null!=this._defaultXRange&&this.resetXDomain(),null!=this._defaultYRange&&this.resetYDomain(),this.measureBBoxAndMaybeInvalidateLayoutInRaf()}redraw(){window.cancelAnimationFrame(this._redrawRaf),this._redrawRaf=window.requestAnimationFrame((()=>{this.measureBBoxAndMaybeInvalidateLayout(),this.outer.redraw()}))}measureBBoxAndMaybeInvalidateLayoutInRaf(){window.cancelAnimationFrame(this._invalidateLayoutRaf),this._invalidateLayoutRaf=window.requestAnimationFrame((()=>{this.measureBBoxAndMaybeInvalidateLayout()}))}measureBBoxAndMaybeInvalidateLayout(){if(this._lastDrawBBox){const{width:t}=this._lastDrawBBox,{width:e}=this.targetSVG.node().getBoundingClientRect();0==t&&t<e&&this.outer.invalidateCache()}this._lastDrawBBox=this.targetSVG.node().getBoundingClientRect()}destroy(){window.cancelAnimationFrame(this._redrawRaf),window.cancelAnimationFrame(this._invalidateLayoutRaf),this.outer&&this.outer.destroy()}onAnchor(t){this.outer&&this.outer.onAnchor(t)}isDataFitToDomain(){return t(this.xAxis.getScale())&&t(this.yAxis.getScale());function t(t){const e=t.getTransformationDomain(),n=t.getTransformationExtent();return n[0]===e[0]&&n[1]===e[1]}}}!(function(t){t.GROUP="G",t.DIV="DIV",t.SVG="SVG",t.TEXT="TEXT"})(G_t||(G_t={}));class Y_t extends class{constructor(t){this.uniqueId=0,this.root=t}exportAsString(){const t=this.convert(this.root);if(!t)return"";const e=this.createRootSvg();return e.appendChild(t),e.outerHTML}createUniqueId(t){return`${t}_${this.uniqueId++}`}getSize(){return this.root.getBoundingClientRect()}createRootSvg(){const t=document.createElement("svg"),e=this.getSize();return t.setAttributeNS("svg","viewBox",`0 0 ${e.width} ${e.height}`),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t}convert(t){let e=null;const n=t.nodeName.toUpperCase();if(t.nodeType!=Node.ELEMENT_NODE||n!=G_t.DIV&&n!=G_t.SVG)e=t.cloneNode();else{e=document.createElement(G_t.GROUP);const n=window.getComputedStyle(t),i=parseInt(n.left,10),r=parseInt(n.top,10);if(i||r){const t=this.createUniqueId("clip");e.setAttribute("transform",`translate(${i}, ${r})`),e.setAttribute("clip-path",`url(#${t})`);const o=parseInt(n.width,10),a=parseInt(n.height,10),s=document.createElement("rect");s.setAttribute("width",String(o)),s.setAttribute("height",String(a));const l=document.createElementNS("svg","clipPath");l.id=t,l.appendChild(s),e.appendChild(l)}}return Array.from(t.childNodes).map((t=>this.convert(t))).filter(Boolean).forEach((t=>e.appendChild(t))),e.nodeName.toUpperCase()==G_t.GROUP&&!e.hasChildNodes()||this.shouldOmitNode(t)?null:this.stripClass(this.transferStyle(t,e))}stripClass(t){return t.nodeType==Node.ELEMENT_NODE&&t.removeAttribute("class"),t}transferStyle(t,e){if(e.nodeType!=Node.ELEMENT_NODE)return e;const n=e,i=e.nodeName.toUpperCase(),r=window.getComputedStyle(t);return i==G_t.TEXT&&Object.assign(n.style,{fontFamily:r.fontFamily,fontSize:r.fontSize,fontWeight:r.fontWeight}),i!=G_t.GROUP&&(n.setAttribute("fill",r.fill),n.setAttribute("stroke",r.stroke),n.setAttribute("stroke-width",r.strokeWidth)),"1"!=r.opacity&&n.setAttribute("opacity",r.opacity),e}shouldOmitNode(t){return!1}}{shouldOmitNode(t){return t.nodeType==Node.ELEMENT_NODE&&t.classList.contains("scatter-plot")}}tl({moduleName:"vz-pan-zoom-style",styleContent:"\n    .help {\n      align-items: center;\n      animation-delay: 1s;\n      animation-duration: 1s;\n      animation-name: fade-out;\n      background: rgba(30, 30, 30, 0.6);\n      bottom: 0;\n      color: #fff;\n      display: flex;\n      justify-content: center;\n      left: 0;\n      opacity: 1;\n      padding: 20px;\n      pointer-events: none;\n      position: absolute;\n      right: 0;\n      top: 0;\n    }\n\n    .help > span {\n      white-space: normal;\n    }\n\n    @keyframes fade-out {\n      0% {\n        opacity: 1;\n      }\n\n      100% {\n        opacity: 0;\n      }\n    }\n  "});const X_t=o_t(4),$_t=t=>isNaN(t)?"NaN":X_t(t),K_t=[{title:"Name",evaluate:t=>t.dataset.metadata().name},{title:"Smoothed",evaluate(t,e){const{smoothingEnabled:n}=e;return $_t(n?t.datum.smoothed:t.datum.scalar)}},{title:"Value",evaluate:t=>$_t(t.datum.scalar)},{title:"Step",evaluate:t=>a_t(t.datum.step)},{title:"Time",evaluate:t=>l_t(t.datum.wall_time)},{title:"Relative",evaluate:t=>u_t(c_t(t.datum,0,t.dataset))}];let Z_t=class extends(tr(ye)){constructor(){super(...arguments),this.colorScale=(new n_t.Scales.Color).range(tA.slice(0)),this.smoothingEnabled=!1,this.smoothingWeight=.6,this.xType=null,this.xComponentsCreationMethod=null,this.yValueAccessor=t=>t.scalar,this.tooltipColumns=K_t,this.yScaleType=j_t.LINEAR,this.ignoreYOutliers=!1,this.tooltipSortingMethod="default",this.tooltipPosition=v_t.BOTTOM,this._visibleSeriesCache=[],this._seriesDataCache={},this._seriesMetadataCache={},this._makeChartAsyncCallbackId=null}ready(){super.ready(),this.scopeSubtree(this.$.chartdiv,!0)}attached(){const t={capture:!0,passive:!0};this._listen(this,"mousedown",this._onMouseDown.bind(this),t),this._listen(this,"mouseup",this._onMouseUp.bind(this),t),this._listen(window,"keydown",this._onKeyDown.bind(this),t),this._listen(window,"keyup",this._onKeyUp.bind(this),t)}detached(){this.cancelAsync(this._makeChartAsyncCallbackId),this._chart&&(this._chart.destroy(),this._chart=void 0),this._listeners&&(this._listeners.forEach((({node:t,eventName:e,func:n,option:i})=>{t.removeEventListener(e,n,i)})),this._listeners.clear())}_listen(t,e,n,i={}){this._listeners||(this._listeners=new Set),this._listeners.add({node:t,eventName:e,func:n,option:i}),t.addEventListener(e,n,i)}_onKeyDown(t){this.toggleClass("pankey",W_t.isPanKey(t))}_onKeyUp(t){this.toggleClass("pankey",W_t.isPanKey(t))}_onMouseDown(t){this.toggleClass("mousedown",!0)}_onMouseUp(t){this.toggleClass("mousedown",!1)}isDataFitToDomain(){return!this._chart||this._chart.isDataFitToDomain()}setVisibleSeries(t){we.isEqual(this._visibleSeriesCache,t)||(this._visibleSeriesCache=t)}setSeriesData(t,e){this._seriesDataCache[t]=e,this._chart&&this._chart.setSeriesData(t,e)}setSeriesMetadata(t,e){this._seriesMetadataCache[t]=e,this._chart&&this._chart.setSeriesMetadata(t,e)}commitChanges(){this._chart&&this._chart.commitChanges()}resetDomain(){this._chart&&this._chart.resetDomain()}redraw(){this._chart&&this._chart.redraw()}_makeChart(){null!==this._makeChartAsyncCallbackId&&(this.cancelAsync(this._makeChartAsyncCallbackId),this._makeChartAsyncCallbackId=null),this._makeChartAsyncCallbackId=this.async((function(){this._makeChartAsyncCallbackId=null;let t=this.xComponentsCreationMethod;if(this.xType||t?this.xType&&(t=()=>h_t(this.xType)):t=s_t,t&&this.yValueAccessor&&this.tooltipColumns){var e=new q_t(t,this.yValueAccessor,this.yScaleType,this.colorScale,this.$.tooltip,this.tooltipColumns,this.fillArea,this.defaultXRange,this.defaultYRange,this.symbolFunction,this.xAxisFormatter),n=wu(this.$.chartdiv);e.renderTo(n),this._chart&&this._chart.destroy(),this._chart=e,this._chart.onAnchor((()=>this.fire("chart-attached")))}}),350)}_reloadFromCache(){this._chart&&(this._visibleSeriesCache.forEach((t=>{this._chart.setSeriesData(t,this._seriesDataCache[t]||[])})),this._visibleSeriesCache.filter((t=>this._seriesMetadataCache[t])).forEach((t=>{this._chart.setSeriesMetadata(t,this._seriesMetadataCache[t])})),this._chart.setVisibleSeries(this._visibleSeriesCache),this._chart.commitChanges())}_smoothingChanged(){this._chart&&(this.smoothingEnabled?this._chart.smoothingUpdate(this.smoothingWeight):this._chart.smoothingDisable())}_outliersChanged(){this._chart&&this._chart.ignoreYOutliers(this.ignoreYOutliers)}_colorScaleChanged(){this._chart&&(this._chart.setColorScale(this.colorScale),this._chart.redraw())}_tooltipColumnsChanged(){this._chart&&this._chart.setTooltipColumns(this.tooltipColumns)}_tooltipSortingMethodChanged(){this._chart&&this._chart.setTooltipSortingMethod(this.tooltipSortingMethod)}getExporter(){return new Y_t(this.$.chartdiv)}};Z_t.template=_e`
    <div id="chartdiv"></div>
    <vz-chart-tooltip
      id="tooltip"
      position="[[tooltipPosition]]"
      content-component-name="vz-line-chart-tooltip"
    ></vz-chart-tooltip>
    <style include="plottable-style"></style>
    <style include="vz-pan-zoom-style"></style>
    <style>
      :host {
        -moz-user-select: none;
        -webkit-user-select: none;
        display: flex;
        flex-direction: column;
        flex-grow: 1;
        flex-shrink: 1;
        outline: none;
        position: relative;
        white-space: nowrap;
      }
      div {
        -webkit-user-select: none;
        -moz-user-select: none;
        flex-grow: 1;
        flex-shrink: 1;
      }

      #chartdiv .main {
        contain: strict;
        cursor: crosshair;
      }

      :host(.pankey) #chartdiv :not(.drag-zooming) .main {
        cursor: -webkit-grab;
        cursor: grab;
      }

      :host(.mousedown) #chartdiv .panning .main {
        cursor: -webkit-grabbing;
        cursor: grabbing;
      }

      #chartdiv {
        contain: strict;
      }

      #chartdiv line.guide-line {
        stroke: #999;
        stroke-width: 1.5px;
      }
      #chartdiv:hover .main {
        will-change: transform;
      }

      .ghost {
        opacity: 0.2;
        stroke-width: 1px;
      }

      .plottable .axis text {
        fill: currentColor;
      }

      .plottable .gridlines line {
        stroke: var(--tb-secondary-text-color);
      }
    </style>
  `,t([o({type:Object}),e("design:type",n_t.Scales.Color)],Z_t.prototype,"colorScale",void 0),t([o({type:Object}),e("design:type",Function)],Z_t.prototype,"symbolFunction",void 0),t([o({type:Boolean,notify:!0}),e("design:type",Boolean)],Z_t.prototype,"smoothingEnabled",void 0),t([o({type:Number}),e("design:type",Number)],Z_t.prototype,"smoothingWeight",void 0),t([o({type:String}),e("design:type",String)],Z_t.prototype,"xType",void 0),t([o({type:Object}),e("design:type",Function)],Z_t.prototype,"xComponentsCreationMethod",void 0),t([o({type:Object}),e("design:type",Function)],Z_t.prototype,"xAxisFormatter",void 0),t([o({type:Object}),e("design:type",Function)],Z_t.prototype,"yValueAccessor",void 0),t([o({type:Array}),e("design:type",Array)],Z_t.prototype,"tooltipColumns",void 0),t([o({type:Object}),e("design:type",Object)],Z_t.prototype,"fillArea",void 0),t([o({type:Array}),e("design:type",Array)],Z_t.prototype,"defaultXRange",void 0),t([o({type:Array}),e("design:type",Array)],Z_t.prototype,"defaultYRange",void 0),t([o({type:String}),e("design:type",String)],Z_t.prototype,"yScaleType",void 0),t([o({type:Boolean}),e("design:type",Boolean)],Z_t.prototype,"ignoreYOutliers",void 0),t([o({type:String}),e("design:type",String)],Z_t.prototype,"tooltipSortingMethod",void 0),t([o({type:String}),e("design:type",String)],Z_t.prototype,"tooltipPosition",void 0),t([o({type:Object}),e("design:type",Object)],Z_t.prototype,"_chart",void 0),t([o({type:Array}),e("design:type",Array)],Z_t.prototype,"_visibleSeriesCache",void 0),t([o({type:Object}),e("design:type",Object)],Z_t.prototype,"_seriesDataCache",void 0),t([o({type:Object}),e("design:type",Object)],Z_t.prototype,"_seriesMetadataCache",void 0),t([o({type:Number}),e("design:type",Number)],Z_t.prototype,"_makeChartAsyncCallbackId",void 0),t([a("xComponentsCreationMethod","xType","yValueAccessor","yScaleType","isAttached"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],Z_t.prototype,"_makeChart",null),t([a("_chart","_visibleSeriesCache"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],Z_t.prototype,"_reloadFromCache",null),t([a("smoothingEnabled","smoothingWeight","_chart"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],Z_t.prototype,"_smoothingChanged",null),t([a("ignoreYOutliers","_chart"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],Z_t.prototype,"_outliersChanged",null),t([a("colorScale"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],Z_t.prototype,"_colorScaleChanged",null),t([a("tooltipColumns"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],Z_t.prototype,"_tooltipColumnsChanged",null),t([a("tooltipSortingMethod","_chart"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],Z_t.prototype,"_tooltipSortingMethodChanged",null),Z_t=t([i("vz-line-chart2")],Z_t);let J_t=class extends ye{};J_t.template=_e`
    <div class="content">
      <table>
        <thead></thead>
        <tbody></tbody>
      </table>
    </div>
    <style>
      :host {
        pointer-events: none;
      }

      .content {
        background: rgba(0, 0, 0, 0.8);
        border-radius: 4px;
        color: #fff;
        overflow: hidden;
        pointer-events: none;
      }

      table {
        font-size: 13px;
        line-height: 1.4em;
        margin-top: 10px;
        padding: 8px;
      }

      thead {
        font-size: 14px;
      }

      tbody {
        font-size: 13px;
        line-height: 21px;
        white-space: nowrap;
      }

      td {
        padding: 0 5px;
      }

      .swatch {
        border-radius: 50%;
        display: block;
        height: 18px;
        width: 18px;
      }

      .closest .swatch {
        box-shadow: inset 0 0 0 2px #fff;
      }

      th {
        padding: 0 5px;
        text-align: left;
      }

      .distant td:not(.swatch) {
        opacity: 0.8;
      }

      .ghost {
        opacity: 0.2;
        stroke-width: 1px;
      }
    </style>
  `,J_t=t([i("vz-line-chart-tooltip")],J_t);const Q_t=[],tyt=we.throttle((function t(){if(0==Q_t.length)return;const e=Q_t.shift();e&&e.active&&(e.redraw(),e._maybeRenderedInBadState=!1),window.cancelAnimationFrame(0),window.requestAnimationFrame(t)}),100);let eyt=class extends(p_t(tr(ye))){constructor(){super(...arguments),this._redrawRaf=null,this.active=!1,this.logScaleActive=!1,this.colorScale={scale:AO},this._resetDomainOnNextLoad=!0,this._maybeRenderedInBadState=!1}onLoadFinish(){this.commitChanges(),this.dataToLoad.length>0&&this._resetDomainOnNextLoad&&(this._resetDomainOnNextLoad=!1,this.getChart().resetDomain()),this.redraw()}disconnectedCallback(){super.disconnectedCallback(),null!==this._redrawRaf&&cancelAnimationFrame(this._redrawRaf)}exportAsSvgString(){return this.getChart().getExporter().exportAsString()}getChart(){return this.$.chart}resetDomain(){this.getChart().resetDomain()}setSeriesData(t,e){this.getChart().setSeriesData(t,e)}setSeriesMetadata(t,e){this.getChart().setSeriesMetadata(t,e)}commitChanges(){this.getChart().commitChanges()}redraw(){null!==this._redrawRaf&&cancelAnimationFrame(this._redrawRaf),this._redrawRaf=window.requestAnimationFrame((()=>{this.active?this.getChart().redraw():this._maybeRenderedInBadState=!0}))}_loadKeyChanged(){this.reset(),this._resetDomainOnNextLoad=!0}_dataSeriesChanged(){this.getChart().setVisibleSeries(this.dataSeries)}_logScaleChanged(t){this.getChart().yScaleType=t?j_t.LOG:j_t.LINEAR,this.redraw()}_fixBadStateWhenActive(){this.active&&this._maybeRenderedInBadState&&(Q_t.push(this),tyt())}_onChartAttached(){this.active||(this._maybeRenderedInBadState=!0)}};eyt.template=_e`
    <div id="chart-and-spinner-container">
      <vz-line-chart2
        id="chart"
        data-loading$="[[dataLoading]]"
        data-loaded-once$="[[dataLoadedAtLeastOnce]]"
        color-scale="[[colorScale]]"
        default-x-range="[[defaultXRange]]"
        default-y-range="[[defaultYRange]]"
        fill-area="[[fillArea]]"
        ignore-y-outliers="[[ignoreYOutliers]]"
        on-chart-attached="_onChartAttached"
        smoothing-enabled="[[smoothingEnabled]]"
        smoothing-weight="[[smoothingWeight]]"
        symbol-function="[[symbolFunction]]"
        tooltip-columns="[[tooltipColumns]]"
        tooltip-position="[[tooltipPosition]]"
        tooltip-sorting-method="[[tooltipSortingMethod]]"
        x-components-creation-method="[[xComponentsCreationMethod]]"
        x-type="[[xType]]"
        y-value-accessor="[[yValueAccessor]]"
      ></vz-line-chart2>
      <template is="dom-if" if="[[dataLoading]]">
        <div id="loading-spinner-container">
          <paper-spinner-lite active=""></paper-spinner-lite>
        </div>
      </template>
    </div>
    <style>
      :host {
        height: 100%;
        width: 100%;
        display: flex;
        flex-direction: column;
      }

      :host([_maybe-rendered-in-bad-state]) vz-line-chart {
        visibility: hidden;
      }

      #chart-and-spinner-container {
        display: flex;
        flex-grow: 1;
        position: relative;
      }

      #loading-spinner-container {
        align-items: center;
        bottom: 0;
        display: flex;
        display: flex;
        justify-content: center;
        left: 0;
        pointer-events: none;
        position: absolute;
        right: 0;
        top: 0;
      }

      vz-line-chart2 {
        -webkit-user-select: none;
        -moz-user-select: none;
      }

      vz-line-chart2[data-loading] {
        opacity: 0.3;
      }
    </style>
  `,t([o({type:Boolean,observer:"_fixBadStateWhenActive"}),e("design:type",Boolean)],eyt.prototype,"active",void 0),t([o({type:Array}),e("design:type",Array)],eyt.prototype,"dataSeries",void 0),t([o({type:Object}),e("design:type",hr)],eyt.prototype,"requestManager",void 0),t([o({type:Boolean,observer:"_logScaleChanged"}),e("design:type",Boolean)],eyt.prototype,"logScaleActive",void 0),t([o({type:Object}),e("design:type",Object)],eyt.prototype,"xComponentsCreationMethod",void 0),t([o({type:String}),e("design:type",String)],eyt.prototype,"xType",void 0),t([o({type:Object}),e("design:type",Function)],eyt.prototype,"yValueAccessor",void 0),t([o({type:Object}),e("design:type",Object)],eyt.prototype,"fillArea",void 0),t([o({type:Boolean}),e("design:type",Boolean)],eyt.prototype,"smoothingEnabled",void 0),t([o({type:Number}),e("design:type",Number)],eyt.prototype,"smoothingWeight",void 0),t([o({type:Array}),e("design:type",Array)],eyt.prototype,"tooltipColumns",void 0),t([o({type:String}),e("design:type",Object)],eyt.prototype,"tooltipSortingMethod",void 0),t([o({type:String}),e("design:type",String)],eyt.prototype,"tooltipPosition",void 0),t([o({type:Boolean}),e("design:type",Boolean)],eyt.prototype,"ignoreYOutliers",void 0),t([o({type:Array}),e("design:type",Array)],eyt.prototype,"defaultXRange",void 0),t([o({type:Array}),e("design:type",Array)],eyt.prototype,"defaultYRange",void 0),t([o({type:Object}),e("design:type",Function)],eyt.prototype,"symbolFunction",void 0),t([o({type:Object}),e("design:type",Object)],eyt.prototype,"colorScale",void 0),t([o({type:Boolean}),e("design:type",Boolean)],eyt.prototype,"_resetDomainOnNextLoad",void 0),t([o({type:Boolean,reflectToAttribute:!0}),e("design:type",Boolean)],eyt.prototype,"_maybeRenderedInBadState",void 0),t([a("loadKey"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],eyt.prototype,"_loadKeyChanged",null),t([a("dataSeries.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],eyt.prototype,"_dataSeriesChanged",null),eyt=t([i("tf-line-chart-data-loader")],eyt),tl({moduleName:"tf-custom-scalar-card-style",styleContent:"\n    :host {\n      margin: 5px 10px;\n      display: inline-block;\n      width: 330px;\n      vertical-align: text-top;\n    }\n\n    :host([_expanded]) {\n      width: 100%;\n    }\n\n    :host([_expanded]) #tf-line-chart-data-loader-container {\n      height: 400px;\n    }\n\n    h1 {\n      font-size: 19px;\n      font-weight: normal;\n    }\n\n    #tf-line-chart-data-loader-container {\n      height: 200px;\n      width: 100%;\n    }\n\n    #buttons {\n      display: flex;\n      flex-direction: row;\n    }\n\n    paper-icon-button {\n      color: #2196f3;\n      border-radius: 100%;\n      width: 32px;\n      height: 32px;\n      padding: 4px;\n    }\n\n    paper-icon-button[selected] {\n      background: var(--tb-ui-light-accent);\n    }\n\n    .download-links {\n      display: flex;\n      height: 32px;\n    }\n\n    .download-links a {\n      font-size: 10px;\n      align-self: center;\n      margin: 2px;\n    }\n\n    .download-links paper-dropdown-menu {\n      width: 100px;\n      --paper-input-container-label: {\n        font-size: 10px;\n      }\n      --paper-input-container-input: {\n        font-size: 10px;\n      }\n    }\n  "});class nyt{constructor(t,e,n,i,r){this.run=t,this.tag=e,this.name=n,this.scalarData=i,this.symbol=r}getName(){return this.name}setData(t){this.scalarData=t}getData(){return this.scalarData}getRun(){return this.run}getTag(){return this.tag}getSymbol(){return this.symbol}}function iyt(t,e){return`${e} (${t})`}class ryt{constructor(t){this.runBasedColorScale=t}scale(t){return this.runBasedColorScale.scale(this.parseRunName(t))}parseRunName(t){const e=t.match(/\((.*)\)$/);return e?e[1]:""}}let oyt=class extends(tr(ye)){constructor(){super(...arguments),this.active=!0,this._colorScale=new ryt({scale:AO}),this._nameToDataSeries={},this._expanded=!1,this._requestData=(t,e,n)=>{const i=gr().pluginRoute("custom_scalars","/scalars");Promise.all(t.map((t=>{const n=VO(i,{tag:this._tagFilter,run:t});return this.requestManager.request(n).then((n=>{e({item:t,data:n})}))}))).finally((()=>{n()}))},this._runToNextAvailableSymbolIndex={},this._matchesListOpened=!1,this._fillArea={lowerAccessor:t=>t.lower,higherAccessor:t=>t.upper},this._tooltipColumns=(()=>{const t=o_t(4),e=e=>isNaN(e)?"NaN":t(e);return[{title:"Name",evaluate:t=>t.dataset.metadata().name},{title:"Value",evaluate:t=>e(t.datum.scalar)},{title:"Lower Margin",evaluate:t=>e(t.datum.lower)},{title:"Upper Margin",evaluate:t=>e(t.datum.upper)},{title:"Step",evaluate:t=>a_t(t.datum.step)},{title:"Time",evaluate:t=>l_t(t.datum.wall_time)},{title:"Relative",evaluate:t=>u_t(c_t(t.datum,0,t.dataset))}]})(),this._missingTags=[],this._missingTagsCollapsibleOpened=!1}reload(){this.$.loader.reload()}redraw(){this.$.loader.redraw()}_toggleExpanded(t){this.set("_expanded",!this._expanded),this.redraw()}_toggleLogScale(){this.set("_logScaleActive",!this._logScaleActive)}_resetDomain(){const t=this.$.loader;t&&t.resetDomain()}_csvUrl(t,e){return e?VO(this._downloadDataUrl(t,e),{format:"csv"}):""}_jsonUrl(t,e){return e?VO(this._downloadDataUrl(t,e),{format:"json"}):""}_downloadDataUrl(t,e){const n=t[e],i={tag:n.getTag(),run:n.getRun()};return VO(gr().pluginRoute("custom_scalars","/download_data"),i)}_createProcessDataFunction(t){return(e,n,i)=>{if(!i.regex_valid)return void this.set("_tagFilterInvalid",!0);const r=we.clone(this._nameToDataSeries),o=[];we.forEach(t,(t=>{let e=!1;const a=i.tag_to_events[t.value],s=i.tag_to_events[t.lower],l=i.tag_to_events[t.upper];if(we.isUndefined(a)&&(o.push(t.value),e=!0),we.isUndefined(s)&&(o.push(t.lower),e=!0),we.isUndefined(l)&&(o.push(t.upper),e=!0),e)return;const c=t=>t[1],u=this._findStepMismatch(t,a.map(c),s.map(c),l.map(c));if(u)return void this.set("_stepsMismatch",u);const h=t=>t[2],d=a.map(((t,e)=>({wall_time:new Date(1e3*t[0]),step:c(t),scalar:h(t),lower:h(s[e]),upper:h(l[e])}))),p=iyt(n,t.value),f=r[p];if(f)f.setData(d);else{const e=this._createNewDataSeries(n,t.value,p,d);r[p]=e}})),this.set("_nameToDataSeries",r);const a=we.findIndex(this._missingTags,(t=>t.run===n));if(o.length&&3!=o.length){const t={run:n,tags:o};a>=0?this.splice("_missingTags",a,1,t):this.push("_missingTags",t)}else a>=0&&this.splice("_missingTags",a,1)}}_findStepMismatch(t,e,n,i){return we.isEqual(n,e)&&we.isEqual(i,e)?null:{seriesObject:t,valueSteps:e,lowerSteps:n,upperSteps:i}}_createNewDataSeries(t,e,n,i){this._runToNextAvailableSymbolIndex[t]|=0;const r=new nyt(t,e,n,i,i_t[this._runToNextAvailableSymbolIndex[t]]);return this._runToNextAvailableSymbolIndex[t]=(this._runToNextAvailableSymbolIndex[t]+1)%i_t.length,r}_updateChart(){we.forOwn(this._nameToDataSeries,(t=>{this.$.loader.setSeriesData(t.getName(),t.getData())})),this.$.loader.commitChanges()}get _seriesNames(){const t=new Set(this.runs);return Object.entries(this._nameToDataSeries).filter((([e,n])=>t.has(n.run))).map((([t])=>t))}_determineColor(t,e){return t.scale(e)}_refreshDataSeries(){this.set("_nameToDataSeries",{})}_createSymbolFunction(){return t=>this._nameToDataSeries[t].getSymbol().method()}_determineSymbol(t,e){return t[e].getSymbol().character}get _tagFilter(){return we.flatten(this.marginChartSeries.map((t=>[t.value,t.lower,t.upper]))).map((t=>"("+this._escapeRegexCharacters(t)+")")).join("|")}_escapeRegexCharacters(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}_getToggleCollapsibleIcon(t){return t?"expand-less":"expand-more"}_toggleMatchesOpen(){this.set("_matchesListOpened",!this._matchesListOpened)}get _titleDisplayString(){return this.title||"untitled"}_separateWithCommas(t){return t.join(", ")}_toggleMissingTagsCollapsibleOpen(){this.set("_missingTagsCollapsibleOpened",!this._missingTagsCollapsibleOpened)}_matchListEntryColorUpdated(){const t=this.$$("#match-list-repeat");t&&this.root.querySelectorAll(".match-list-entry").forEach((e=>{const n=t.itemForElement(e);e.style.color=this._determineColor(this._colorScale,n)}))}};oyt.template=_e`
    <tf-card-heading display-name="[[_titleDisplayString]]"></tf-card-heading>
    <div id="tf-line-chart-data-loader-container">
      <tf-line-chart-data-loader
        id="loader"
        active="[[active]]"
        color-scale="[[_colorScale]]"
        data-series="[[_seriesNames]]"
        fill-area="[[_fillArea]]"
        ignore-y-outliers="[[ignoreYOutliers]]"
        load-key="[[_tagFilter]]"
        data-to-load="[[runs]]"
        request-data="[[_requestData]]"
        log-scale-active="[[_logScaleActive]]"
        load-data-callback="[[_createProcessDataFunction(marginChartSeries)]]"
        request-manager="[[requestManager]]"
        symbol-function="[[_createSymbolFunction()]]"
        tooltip-columns="[[_tooltipColumns]]"
        tooltip-sorting-method="[[tooltipSortingMethod]]"
        x-type="[[xType]]"
      >
      </tf-line-chart-data-loader>
    </div>
    <div id="buttons">
      <paper-icon-button
        selected$="[[_expanded]]"
        icon="fullscreen"
        on-tap="_toggleExpanded"
      ></paper-icon-button>
      <paper-icon-button
        selected$="[[_logScaleActive]]"
        icon="line-weight"
        on-tap="_toggleLogScale"
        title="Toggle y-axis log scale"
      ></paper-icon-button>
      <paper-icon-button
        icon="settings-overscan"
        on-tap="_resetDomain"
        title="Fit domain to data"
      ></paper-icon-button>
      <span style="flex-grow: 1"></span>
      <template is="dom-if" if="[[showDownloadLinks]]">
        <div class="download-links">
          <paper-dropdown-menu
            no-label-float="true"
            label="series to download"
            selected-item-label="{{_dataSeriesNameToDownload}}"
          >
            <paper-listbox class="dropdown-content" slot="dropdown-content">
              <template
                is="dom-repeat"
                items="[[_seriesNames]]"
                as="dataSeriesName"
              >
                <paper-item no-label-float="true"
                  >[[dataSeriesName]]</paper-item
                >
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
          <a
            download="[[_dataSeriesNameToDownload]].csv"
            href="[[_csvUrl(_nameToDataSeries, _dataSeriesNameToDownload)]]"
            >CSV</a
          >
          <a
            download="[[_dataSeriesNameToDownload]].json"
            href="[[_jsonUrl(_nameToDataSeries, _dataSeriesNameToDownload)]]"
            >JSON</a
          >
        </div>
      </template>
    </div>

    <!-- here -->
    <template is="dom-if" if="[[_missingTags.length]]">
      <div class="collapsible-list-title">
        <paper-icon-button
          icon="[[_getToggleCollapsibleIcon(_missingTagsCollapsibleOpened)]]"
          on-click="_toggleMissingTagsCollapsibleOpen"
          class="toggle-collapsible-button"
        >
        </paper-icon-button>
        <span class="collapsible-title-text">
          <iron-icon icon="icons:error"></iron-icon> Missing Tags
        </span>
      </div>
      <iron-collapse opened="[[_missingTagsCollapsibleOpened]]">
        <div class="error-content">
          <iron-icon class="error-icon" icon="icons:error"></iron-icon>
          <template is="dom-repeat" items="[[_missingTags]]" as="missingEntry">
            <div class="missing-tags-for-run-container">
              Run "[[missingEntry.run]]" lacks data for tags
              <ul>
                <template
                  is="dom-repeat"
                  items="[[missingEntry.tags]]"
                  as="tag"
                >
                  <li>[[tag]]</li>
                </template>
              </ul>
            </div>
          </template>
        </div>
      </iron-collapse>
    </template>

    <template is="dom-if" if="[[_tagFilterInvalid]]">
      <div class="error-content">
        <iron-icon class="error-icon" icon="icons:error"></iron-icon>
        This regular expresion is invalid:<br />
        <span class="invalid-regex">[[_tagFilter]]</span>
      </div>
    </template>

    <template is="dom-if" if="[[_stepsMismatch]]">
      <div class="error-content">
        <iron-icon class="error-icon" icon="icons:error"></iron-icon>
        The steps for value, lower, and upper tags do not match:
        <ul>
          <li>
            <span class="tag-name">[[_stepsMismatch.seriesObject.value]]</span>:
            [[_separateWithCommas(_stepsMismatch.valueSteps)]]
          </li>
          <li>
            <span class="tag-name">[[_stepsMismatch.seriesObject.lower]]</span>:
            [[_separateWithCommas(_stepsMismatch.lowerSteps)]]
          </li>
          <li>
            <span class="tag-name">[[_stepsMismatch.seriesObject.upper]]</span>:
            [[_separateWithCommas(_stepsMismatch.upperSteps)]]
          </li>
        </ul>
      </div>
    </template>

    <div id="matches-container">
      <div class="collapsible-list-title">
        <template is="dom-if" if="[[_seriesNames.length]]">
          <paper-icon-button
            icon="[[_getToggleCollapsibleIcon(_matchesListOpened)]]"
            on-click="_toggleMatchesOpen"
            class="toggle-matches-button"
          >
          </paper-icon-button>
        </template>

        <span class="collapsible-title-text">
          Matches ([[_seriesNames.length]])
        </span>
      </div>
      <template is="dom-if" if="[[_seriesNames.length]]">
        <iron-collapse opened="[[_matchesListOpened]]">
          <div id="matches-list">
            <template
              is="dom-repeat"
              items="[[_seriesNames]]"
              as="seriesName"
              id="match-list-repeat"
              on-dom-change="_matchListEntryColorUpdated"
            >
              <div class="match-list-entry">
                <span class="match-entry-symbol">
                  [[_determineSymbol(_nameToDataSeries, seriesName)]]
                </span>
                [[seriesName]]
              </div>
            </template>
          </div>
        </iron-collapse>
      </template>
    </div>

    <style include="tf-custom-scalar-card-style"></style>
    <style>
      .error-content {
        background: #f00;
        border-radius: 5px;
        color: #fff;
        margin: 10px 0 0 0;
        padding: 10px;
      }

      .error-icon {
        display: block;
        fill: #fff;
        margin: 0 auto 5px auto;
      }

      .invalid-regex {
        font-weight: bold;
      }

      .error-content ul {
        margin: 1px 0 0 0;
        padding: 0 0 0 19px;
      }

      .tag-name {
        font-weight: bold;
      }

      .collapsible-list-title {
        margin: 10px 0 5px 0;
      }

      .collapsible-title-text {
        vertical-align: middle;
      }

      #matches-list {
        max-height: 200px;
        overflow-y: auto;
      }

      .match-list-entry {
        margin: 0 0 5px 0;
      }

      .match-entry-symbol {
        font-family: arial, sans-serif;
        display: inline-block;
        width: 10px;
      }

      .missing-tags-for-run-container {
        margin: 8px 0 0 0;
      }
    </style>
  `,t([o({type:Array}),e("design:type",Array)],oyt.prototype,"runs",void 0),t([o({type:String}),e("design:type",String)],oyt.prototype,"xType",void 0),t([o({type:Boolean}),e("design:type",Boolean)],oyt.prototype,"active",void 0),t([o({type:String}),e("design:type",String)],oyt.prototype,"title",void 0),t([o({type:Array}),e("design:type",Array)],oyt.prototype,"marginChartSeries",void 0),t([o({type:Boolean}),e("design:type",Boolean)],oyt.prototype,"ignoreYOutliers",void 0),t([o({type:Object}),e("design:type",hr)],oyt.prototype,"requestManager",void 0),t([o({type:Boolean}),e("design:type",Boolean)],oyt.prototype,"showDownloadLinks",void 0),t([o({type:Object}),e("design:type",Object)],oyt.prototype,"tagMetadata",void 0),t([o({type:String}),e("design:type",String)],oyt.prototype,"tooltipSortingMethod",void 0),t([o({type:Object}),e("design:type",Object)],oyt.prototype,"_colorScale",void 0),t([o({type:Boolean}),e("design:type",Boolean)],oyt.prototype,"_tagFilterInvalid",void 0),t([o({type:Object}),e("design:type",Object)],oyt.prototype,"_nameToDataSeries",void 0),t([o({type:Boolean,reflectToAttribute:!0}),e("design:type",Boolean)],oyt.prototype,"_expanded",void 0),t([o({type:Boolean}),e("design:type",Boolean)],oyt.prototype,"_logScaleActive",void 0),t([o({type:Object}),e("design:type",Function)],oyt.prototype,"_requestData",void 0),t([o({type:Object}),e("design:type",Object)],oyt.prototype,"_runToNextAvailableSymbolIndex",void 0),t([o({type:Boolean}),e("design:type",Boolean)],oyt.prototype,"_matchesListOpened",void 0),t([o({type:Object}),e("design:type",Object)],oyt.prototype,"_fillArea",void 0),t([o({type:Array}),e("design:type",Array)],oyt.prototype,"_tooltipColumns",void 0),t([o({type:Array}),e("design:type",Array)],oyt.prototype,"_missingTags",void 0),t([o({type:Boolean}),e("design:type",Boolean)],oyt.prototype,"_missingTagsCollapsibleOpened",void 0),t([o({type:Object}),e("design:type",Object)],oyt.prototype,"_stepsMismatch",void 0),t([a("_nameToDataSeries"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],oyt.prototype,"_updateChart",null),t([s("_nameToDataSeries","runs"),e("design:type",Object),e("design:paramtypes",[])],oyt.prototype,"_seriesNames",null),t([a("_tagFilter"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],oyt.prototype,"_refreshDataSeries",null),t([s("marginChartSeries"),e("design:type",String),e("design:paramtypes",[])],oyt.prototype,"_tagFilter",null),t([s("title"),e("design:type",String),e("design:paramtypes",[])],oyt.prototype,"_titleDisplayString",null),oyt=t([i("tf-custom-scalar-margin-chart-card")],oyt);var ayt=Object.freeze({__proto__:null,TYPES:[],getRunsNamed:function syt(t){return we.keys(t).sort(er)},getTags:or,filterTags:function lyt(t,e){let n=[];return e.forEach((e=>n=n.concat(t[e]))),we.uniq(n).sort(er)},ListenKey:pl,BaseStore:fl,Canceller:NO,EnvironmentStore:ml,environmentStore:gl,ExperimentsStore:MO,experimentsStore:EO,RequestCancellationError:ar,InvalidRequestOptionsError:sr,RequestNetworkError:lr,get HttpMethodType(){return cr},RequestOptions:ur,RequestManager:hr,createRouter:mr,getRouter:gr,setRouter:function cyt(t){if(null==t)throw new Error("Router required, but got: "+t);fr=t},createSearchParam:yr,RunsStore:_l,runsStore:yl,addParams:VO});let uyt=class extends(tr(ye)){constructor(){super(...arguments),this.active=!0,this._colorScale=new ryt({scale:AO}),this._nameToDataSeries={},this._expanded=!1,this._requestData=(t,e,n)=>{const i=gr().pluginRoute("custom_scalars","/scalars");Promise.all(t.map((t=>{const n=VO(i,{tag:this._tagFilter,run:t});return this.requestManager.request(n).then((n=>{e({item:t,data:n})}))}))).finally((()=>{n()}))},this._runToNextAvailableSymbolIndex={},this._matchesListOpened=!1}reload(){this.$.loader.reload()}redraw(){this.$.loader.redraw()}_toggleExpanded(t){this.set("_expanded",!this._expanded),this.redraw()}_toggleLogScale(){this.set("_logScaleActive",!this._logScaleActive)}_resetDomain(){const t=this.$.loader;t&&t.resetDomain()}_csvUrl(t,e){return e?VO(this._downloadDataUrl(t,e),{format:"csv"}):""}_jsonUrl(t,e){return e?VO(this._downloadDataUrl(t,e),{format:"json"}):""}_downloadDataUrl(t,e){const n=t[e],i={tag:n.getTag(),run:n.getRun()};return VO(gr().pluginRoute("custom_scalars","/download_data"),i)}_createProcessDataFunction(){return(t,e,n)=>{if(n.regex_valid){const t=we.clone(this._nameToDataSeries);we.forOwn(n.tag_to_events,((n,i)=>{const r=n.map((t=>({wall_time:new Date(1e3*t[0]),step:t[1],scalar:t[2]}))),o=iyt(e,i),a=t[o];if(a)a.setData(r);else{we.isUndefined(this._runToNextAvailableSymbolIndex[e])&&(this._runToNextAvailableSymbolIndex[e]=0);const n=new nyt(e,i,o,r,i_t[this._runToNextAvailableSymbolIndex[e]]);t[o]=n,this._runToNextAvailableSymbolIndex[e]=(this._runToNextAvailableSymbolIndex[e]+1)%i_t.length}})),this.set("_nameToDataSeries",t)}}}_updateChart(){Object.entries(this._nameToDataSeries).forEach((([t,e])=>{this.$.loader.setSeriesData(t,e.getData())})),this.$.loader.commitChanges()}_computeSelectedRunsSet(t){const e={};return we.forEach(t,(t=>{e[t]=1})),e}get _seriesNames(){const t=new Set(this.runs);return Object.entries(this._nameToDataSeries).filter((([e,n])=>t.has(n.run))).map((([t])=>t))}_determineColor(t,e){return t.scale(e)}_refreshDataSeries(){this.set("_nameToDataSeries",{})}_createSymbolFunction(){return t=>this._nameToDataSeries[t].getSymbol().method()}_determineSymbol(t,e){return t[e].getSymbol().character}get _tagFilter(){var t=this.tagRegexes;return 1===t.length?t[0]:t.map((t=>"("+t+")")).join("|")}_getToggleMatchesIcon(t){return t?"expand-less":"expand-more"}_toggleMatchesOpen(){this.set("_matchesListOpened",!this._matchesListOpened)}get _titleDisplayString(){return this.title||"untitled"}_matchListEntryColorUpdated(t){const e=this.$$("#match-list-repeat");e&&this.root.querySelectorAll(".match-list-entry").forEach((t=>{const n=e.itemForElement(t);t.style.color=this._determineColor(this._colorScale,n)}))}};uyt.template=_e`
    <tf-card-heading display-name="[[_titleDisplayString]]"></tf-card-heading>
    <div id="tf-line-chart-data-loader-container">
      <tf-line-chart-data-loader
        id="loader"
        active="[[active]]"
        color-scale="[[_colorScale]]"
        data-series="[[_seriesNames]]"
        ignore-y-outliers="[[ignoreYOutliers]]"
        load-key="[[_tagFilter]]"
        data-to-load="[[runs]]"
        request-data="[[_requestData]]"
        log-scale-active="[[_logScaleActive]]"
        load-data-callback="[[_createProcessDataFunction()]]"
        request-manager="[[requestManager]]"
        smoothing-enabled="[[smoothingEnabled]]"
        smoothing-weight="[[smoothingWeight]]"
        symbol-function="[[_createSymbolFunction()]]"
        tooltip-sorting-method="[[tooltipSortingMethod]]"
        x-type="[[xType]]"
      >
      </tf-line-chart-data-loader>
    </div>
    <div id="buttons">
      <paper-icon-button
        selected$="[[_expanded]]"
        icon="fullscreen"
        on-tap="_toggleExpanded"
      ></paper-icon-button>
      <paper-icon-button
        selected$="[[_logScaleActive]]"
        icon="line-weight"
        on-tap="_toggleLogScale"
        title="Toggle y-axis log scale"
      ></paper-icon-button>
      <paper-icon-button
        icon="settings-overscan"
        on-tap="_resetDomain"
        title="Fit domain to data"
      ></paper-icon-button>
      <span style="flex-grow: 1"></span>
      <template is="dom-if" if="[[showDownloadLinks]]">
        <div class="download-links">
          <paper-dropdown-menu
            no-label-float="true"
            label="series to download"
            selected-item-label="{{_dataSeriesNameToDownload}}"
          >
            <paper-listbox class="dropdown-content" slot="dropdown-content">
              <template
                is="dom-repeat"
                items="[[_seriesNames]]"
                as="dataSeriesName"
              >
                <paper-item no-label-float="true"
                  >[[dataSeriesName]]</paper-item
                >
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
          <a
            download="[[_dataSeriesNameToDownload]].csv"
            href="[[_csvUrl(_nameToDataSeries, _dataSeriesNameToDownload)]]"
            >CSV</a
          >
          <a
            download="[[_dataSeriesNameToDownload]].json"
            href="[[_jsonUrl(_nameToDataSeries, _dataSeriesNameToDownload)]]"
            >JSON</a
          >
        </div>
      </template>
    </div>
    <div id="matches-container">
      <div id="matches-list-title">
        <template is="dom-if" if="[[_seriesNames.length]]">
          <paper-icon-button
            icon="[[_getToggleMatchesIcon(_matchesListOpened)]]"
            on-click="_toggleMatchesOpen"
            class="toggle-matches-button"
          >
          </paper-icon-button>
        </template>

        <span class="matches-text"> Matches ([[_seriesNames.length]]) </span>
      </div>
      <template is="dom-if" if="[[_seriesNames.length]]">
        <iron-collapse opened="[[_matchesListOpened]]">
          <div id="matches-list">
            <template
              is="dom-repeat"
              items="[[_seriesNames]]"
              as="seriesName"
              id="match-list-repeat"
              on-dom-change="_matchListEntryColorUpdated"
            >
              <div class="match-list-entry">
                <span class="match-entry-symbol">
                  [[_determineSymbol(_nameToDataSeries, seriesName)]]
                </span>
                [[seriesName]]
              </div>
            </template>
          </div>
        </iron-collapse>
      </template>
    </div>

    <style include="tf-custom-scalar-card-style"></style>
    <style>
      #matches-list-title {
        margin: 10px 0 5px 0;
      }

      #matches-list {
        max-height: 200px;
        overflow-y: auto;
      }

      .match-list-entry {
        margin: 0 0 5px 0;
      }

      .match-entry-symbol {
        font-family: arial, sans-serif;
        display: inline-block;
        width: 10px;
      }

      .matches-text {
        vertical-align: middle;
      }
    </style>
  `,t([o({type:Array}),e("design:type",Array)],uyt.prototype,"runs",void 0),t([o({type:String}),e("design:type",String)],uyt.prototype,"xType",void 0),t([o({type:Boolean}),e("design:type",Boolean)],uyt.prototype,"active",void 0),t([o({type:String}),e("design:type",String)],uyt.prototype,"title",void 0),t([o({type:Array}),e("design:type",Array)],uyt.prototype,"tagRegexes",void 0),t([o({type:Boolean}),e("design:type",Boolean)],uyt.prototype,"ignoreYOutliers",void 0),t([o({type:Object}),e("design:type",hr)],uyt.prototype,"requestManager",void 0),t([o({type:Boolean}),e("design:type",Boolean)],uyt.prototype,"showDownloadLinks",void 0),t([o({type:Boolean}),e("design:type",Boolean)],uyt.prototype,"smoothingEnabled",void 0),t([o({type:Number}),e("design:type",Number)],uyt.prototype,"smoothingWeight",void 0),t([o({type:Object}),e("design:type",Object)],uyt.prototype,"tagMetadata",void 0),t([o({type:String}),e("design:type",String)],uyt.prototype,"tooltipSortingMethod",void 0),t([o({type:Object}),e("design:type",ryt)],uyt.prototype,"_colorScale",void 0),t([o({type:Object}),e("design:type",Object)],uyt.prototype,"_nameToDataSeries",void 0),t([o({type:Boolean,reflectToAttribute:!0}),e("design:type",Boolean)],uyt.prototype,"_expanded",void 0),t([o({type:Boolean}),e("design:type",Boolean)],uyt.prototype,"_logScaleActive",void 0),t([o({type:Object}),e("design:type",Function)],uyt.prototype,"_requestData",void 0),t([o({type:Object}),e("design:type",Object)],uyt.prototype,"_runToNextAvailableSymbolIndex",void 0),t([o({type:Boolean}),e("design:type",Boolean)],uyt.prototype,"_matchesListOpened",void 0),t([a("_nameToDataSeries"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],uyt.prototype,"_updateChart",null),t([s("_nameToDataSeries","runs"),e("design:type",Object),e("design:paramtypes",[])],uyt.prototype,"_seriesNames",null),t([a("_tagFilter"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],uyt.prototype,"_refreshDataSeries",null),t([s("tagRegexes"),e("design:type",String),e("design:paramtypes",[])],uyt.prototype,"_tagFilter",null),t([s("title"),e("design:type",String),e("design:paramtypes",[])],uyt.prototype,"_titleDisplayString",null),uyt=t([i("tf-custom-scalar-multi-line-chart-card")],uyt);let hyt=class extends ye{constructor(){super(...arguments),this._requestManager=new hr(50),this._canceller=new NO,this._showDownloadLinks=Bs("_showDownloadLinks",{defaultValue:!1,useLocalStorage:!0}).call(this),this._smoothingWeight=js("_smoothingWeight",{defaultValue:.6}).call(this),this._ignoreYOutliers=Bs("_ignoreYOutliers",{defaultValue:!0,useLocalStorage:!0}).call(this),this._xType="step",this._active=!0,this.reloadOnReady=!0,this._showDownloadLinksObserver=Hs("_showDownloadLinks",{defaultValue:!1,useLocalStorage:!0}),this._smoothingWeightObserver=Gs("_smoothingWeight",{defaultValue:.6}),this._ignoreYOutliersObserver=Hs("_ignoreYOutliers",{defaultValue:!0,useLocalStorage:!0})}ready(){super.ready(),this.reloadOnReady&&this.reload()}reload(){const t=gr().pluginsListing(),e=this._canceller.cancellable((t=>{t.cancelled||(this.set("_dataNotFound",!t.value.custom_scalars),this._dataNotFound||this._retrieveLayoutAndData())}));this._requestManager.request(t).then(e)}_reloadCharts(){this.root.querySelectorAll("tf-custom-scalar-margin-chart-card, tf-custom-scalar-multi-line-chart-card").forEach((t=>{t.reload()}))}_retrieveLayoutAndData(){const t=gr().pluginRoute("custom_scalars","/layout"),e=this._canceller.cancellable((t=>{t.cancelled||(this.set("_layout",t.value),this._dataNotFound||this._reloadCharts())}));this._requestManager.request(t).then(e)}get _smoothingEnabled(){return this._smoothingWeight>0}get _categories(){var t=this._layout;if(!t.category)return[];let e=!1;return this._openedCategories||(e=!0,this._openedCategories={}),t.category.map((t=>(e&&!t.closed&&(this._openedCategories[t.title]=!0),{name:t.title,items:t.chart,metadata:{type:vr.PREFIX_GROUP,opened:!!this._openedCategories[t.title]}})))}_categoryOpenedToggled(t){const e=t.target;e.opened?this._openedCategories[e.category.name]=!0:delete this._openedCategories[e.category.name]}};hyt.template=_e`
    <tf-dashboard-layout>
      <div class="sidebar" slot="sidebar">
        <div class="settings">
          <div class="sidebar-section">
            <div class="line-item">
              <paper-checkbox checked="{{_showDownloadLinks}}"
                >Show data download links</paper-checkbox
              >
            </div>
            <div class="line-item">
              <paper-checkbox checked="{{_ignoreYOutliers}}"
                >Ignore outliers in chart scaling</paper-checkbox
              >
            </div>
            <div id="tooltip-sorting">
              <div id="tooltip-sorting-label">Tooltip sorting method:</div>
              <paper-dropdown-menu
                no-label-float=""
                selected-item-label="{{_tooltipSortingMethod}}"
              >
                <paper-listbox
                  class="dropdown-content"
                  selected="0"
                  slot="dropdown-content"
                >
                  <paper-item>default</paper-item>
                  <paper-item>descending</paper-item>
                  <paper-item>ascending</paper-item>
                  <paper-item>nearest</paper-item>
                </paper-listbox>
              </paper-dropdown-menu>
            </div>
          </div>
          <div class="sidebar-section">
            <tf-smoothing-input
              weight="{{_smoothingWeight}}"
              step="0.001"
              min="0"
              max="1"
            ></tf-smoothing-input>
          </div>
          <div class="sidebar-section">
            <tf-option-selector
              id="x-type-selector"
              name="Horizontal Axis"
              selected-id="{{_xType}}"
            >
              <paper-button id="step">step</paper-button
              ><!--
            --><paper-button id="relative">relative</paper-button
              ><!--
            --><paper-button id="wall_time">wall</paper-button>
            </tf-option-selector>
          </div>
        </div>
        <div class="sidebar-section runs-selector">
          <tf-runs-selector selected-runs="{{_selectedRuns}}">
          </tf-runs-selector>
        </div>
      </div>
      <div class="center" slot="center" id="categories-container">
        <template is="dom-if" if="[[_dataNotFound]]">
          <div class="no-data-warning">
            <h3>The custom scalars dashboard is inactive.</h3>
            <p>Probable causes:</p>
            <ol>
              <li>You haven't laid out the dashboard.</li>
              <li>You haven’t written any scalar data to your event files.</li>
            </ol>

            <p>
              To lay out the dashboard, pass a <code>Layout</code> protobuffer
              to the <code>set_layout</code> method. For example,
            </p>
            <pre>
from tensorboard import summary
from tensorboard.plugins.custom_scalar import layout_pb2
...
# This action does not have to be performed at every step, so the action is not
# taken care of by an op in the graph. We only need to specify the layout once
# (instead of per step).
layout_summary = summary_lib.custom_scalar_pb(layout_pb2.Layout(
  category=[
    layout_pb2.Category(
      title='losses',
      chart=[
          layout_pb2.Chart(
              title='losses',
              multiline=layout_pb2.MultilineChartContent(
                tag=[r'loss.*'],
              )),
          layout_pb2.Chart(
              title='baz',
              margin=layout_pb2.MarginChartContent(
                series=[
                  layout_pb2.MarginChartContent.Series(
                    value='loss/baz/scalar_summary',
                    lower='baz_lower/baz/scalar_summary',
                    upper='baz_upper/baz/scalar_summary'),
                ],
              )),
      ]),
    layout_pb2.Category(
      title='trig functions',
      chart=[
          layout_pb2.Chart(
              title='wave trig functions',
              multiline=layout_pb2.MultilineChartContent(
                tag=[r'trigFunctions/cosine', r'trigFunctions/sine'],
              )),
          # The range of tangent is different. Let's give it its own chart.
          layout_pb2.Chart(
              title='tan',
              multiline=layout_pb2.MultilineChartContent(
                tag=[r'trigFunctions/tangent'],
              )),
      ],
      # This category we care less about. Let's make it initially closed.
      closed=True),
  ]))
writer.add_summary(layout_summary)
</pre
            >
            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>
          </div>
        </template>
        <template is="dom-if" if="[[!_dataNotFound]]">
          <template is="dom-repeat" items="[[_categories]]" as="category">
            <tf-category-paginated-view
              as="chart"
              category="[[category]]"
              disable-pagination
              initial-opened="[[category.metadata.opened]]"
            >
              <template>
                <template is="dom-if" if="[[chart.multiline]]">
                  <tf-custom-scalar-multi-line-chart-card
                    active="[[active]]"
                    request-manager="[[_requestManager]]"
                    runs="[[_selectedRuns]]"
                    title="[[chart.title]]"
                    x-type="[[_xType]]"
                    smoothing-enabled="[[_smoothingEnabled]]"
                    smoothing-weight="[[_smoothingWeight]]"
                    tooltip-sorting-method="[[tooltipSortingMethod]]"
                    ignore-y-outliers="[[_ignoreYOutliers]]"
                    show-download-links="[[_showDownloadLinks]]"
                    tag-regexes="[[chart.multiline.tag]]"
                  ></tf-custom-scalar-multi-line-chart-card>
                </template>
                <template is="dom-if" if="[[chart.margin]]">
                  <tf-custom-scalar-margin-chart-card
                    active="[[active]]"
                    request-manager="[[_requestManager]]"
                    runs="[[_selectedRuns]]"
                    title="[[chart.title]]"
                    x-type="[[_xType]]"
                    tooltip-sorting-method="[[tooltipSortingMethod]]"
                    ignore-y-outliers="[[_ignoreYOutliers]]"
                    show-download-links="[[_showDownloadLinks]]"
                    margin-chart-series="[[chart.margin.series]]"
                  ></tf-custom-scalar-margin-chart-card>
                </template>
              </template>
            </tf-category-paginated-view>
          </template>
        </template>
      </div>
    </tf-dashboard-layout>

    <style include="dashboard-style"></style>
    <style>
      #tooltip-sorting {
        align-items: center;
        display: flex;
        font-size: 14px;
        margin-top: 15px;
      }
      #tooltip-sorting paper-dropdown-menu {
        margin-left: 10px;
        --paper-input-container-focus-color: var(--tb-orange-strong);
        width: 105px;
      }
      .line-item {
        display: block;
        padding-top: 5px;
      }
      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }
    </style>
  `,t([o({type:Object}),e("design:type",hr)],hyt.prototype,"_requestManager",void 0),t([o({type:Object}),e("design:type",NO)],hyt.prototype,"_canceller",void 0),t([o({type:Array}),e("design:type",Array)],hyt.prototype,"_selectedRuns",void 0),t([o({type:Boolean,notify:!0,observer:"_showDownloadLinksObserver"}),e("design:type",Boolean)],hyt.prototype,"_showDownloadLinks",void 0),t([o({type:Number,notify:!0,observer:"_smoothingWeightObserver"}),e("design:type",Number)],hyt.prototype,"_smoothingWeight",void 0),t([o({type:Boolean,observer:"_ignoreYOutliersObserver"}),e("design:type",Boolean)],hyt.prototype,"_ignoreYOutliers",void 0),t([o({type:String}),e("design:type",String)],hyt.prototype,"_xType",void 0),t([o({type:Object}),e("design:type",Object)],hyt.prototype,"_layout",void 0),t([o({type:Boolean}),e("design:type",Boolean)],hyt.prototype,"_dataNotFound",void 0),t([o({type:Object}),e("design:type",Object)],hyt.prototype,"_openedCategories",void 0),t([o({type:Boolean}),e("design:type",Boolean)],hyt.prototype,"_active",void 0),t([o({type:Boolean}),e("design:type",Boolean)],hyt.prototype,"reloadOnReady",void 0),t([s("_smoothingWeight"),e("design:type",Boolean),e("design:paramtypes",[])],hyt.prototype,"_smoothingEnabled",null),t([s("_layout"),e("design:type",Array),e("design:paramtypes",[])],hyt.prototype,"_categories",null),hyt=t([i("tf-custom-scalar-dashboard")],hyt);class dyt{constructor(t,e){this.run2datasets={},this.colorScale=e,this.buildChart(t)}getDataset(t){return void 0===this.run2datasets[t]&&(this.run2datasets[t]=new n_t.Dataset([],{run:t})),this.run2datasets[t]}buildChart(t){this.outer&&this.outer.destroy();let e=h_t(t);this.xAccessor=e.accessor,this.xScale=e.scale,this.xAxis=e.axis,this.xAxis.margin(0),this.xAxis.tickLabelPadding(3),this.yScale=new n_t.Scales.Linear,this.yAxis=new n_t.Axes.Numeric(this.yScale,"left");let n=o_t(3);this.yAxis.margin(0).tickLabelPadding(5).formatter(n),this.yAxis.usesTextWidthApproximation(!0);let i=this.buildPlot(this.xAccessor,this.xScale,this.yScale);this.gridlines=new n_t.Components.Gridlines(this.xScale,this.yScale),this.center=new n_t.Components.Group([this.gridlines,i]),this.outer=new n_t.Components.Table([[this.yAxis,this.center],[null,this.xAxis]])}buildPlot(t,e,n){let i=[0,228,1587,3085,5e3,6915,8413,9772,1e4],r=we.range(i.length-1).map((t=>(i[t+1]-i[t])/2500)),o=i.map(((t,e)=>t=>t[e][1])),a=o[4],s=we.range(o.length-1).map((i=>{let a=new n_t.Plots.Area;a.x(t,e);let s=i>4?o[i]:o[i+1];return a.y(i>4?o[i+1]:o[i],n),a.y0(s),a.attr("fill",((t,e,n)=>this.colorScale.scale(n.metadata().run))),a.attr("stroke",((t,e,n)=>this.colorScale.scale(n.metadata().run))),a.attr("stroke-weight",((t,e,n)=>"0.5px")),a.attr("stroke-opacity",(()=>r[i])),a.attr("fill-opacity",(()=>r[i])),a})),l=new n_t.Plots.Line;return l.x(t,e),l.y(a,n),l.attr("stroke",((t,e,n)=>this.colorScale.scale(n.run))),this.plots=s,new n_t.Components.Group(s)}setVisibleSeries(t){this.runs=t;let e=t.map((t=>this.getDataset(t)));this.plots.forEach((t=>t.datasets(e)))}setSeriesData(t,e){this.getDataset(t).data(e)}renderTo(t){this.targetSVG=t,this.outer.renderTo(t)}redraw(){this.outer.redraw()}destroy(){this.outer.destroy()}}let pyt=class extends(tr(ye)){constructor(){super(...arguments),this.colorScale=(new n_t.Scales.Color).range(tA.slice()),this.xType="step",this._visibleSeriesCache=[],this._seriesDataCache={},this._makeChartAsyncCallbackId=null}setVisibleSeries(t){this._visibleSeriesCache=t,this._chart&&(this._chart.setVisibleSeries(t),this.redraw())}setSeriesData(t,e){this._seriesDataCache[t]=e,this._chart&&this._chart.setSeriesData(t,e)}redraw(){this._chart.redraw()}_makeChart(){var t=this.xType,e=this.colorScale,n=this._attached;null===this._makeChartAsyncCallbackId&&this.cancelAsync(this._makeChartAsyncCallbackId),this._makeChartAsyncCallbackId=this.async((function(){if(this._makeChartAsyncCallbackId=null,n){this._chart&&this._chart.destroy();var i=new dyt(t,e),r=wu(this.$.chartdiv);i.renderTo(r),this._chart=i}}),350)}_reloadFromCache(){this._chart&&(this._chart.setVisibleSeries(this._visibleSeriesCache),this._visibleSeriesCache.forEach(function(t){this._chart.setSeriesData(t,this._seriesDataCache[t]||[])}.bind(this)))}attached(){this._attached=!0}detached(){this._attached=!1}};pyt.template=_e`
    <style include="plottable-style"></style>
    <div id="chartdiv"></div>
    <style>
      :host {
        -webkit-user-select: none;
        -moz-user-select: none;
        display: flex;
        flex-direction: column;
        flex-grow: 1;
        flex-shrink: 1;
        position: relative;
      }
      #chartdiv {
        -webkit-user-select: none;
        -moz-user-select: none;
        flex-grow: 1;
        flex-shrink: 1;
      }
      .plottable .axis text {
        fill: currentColor;
      }
    </style>
  `,t([o({type:Object}),e("design:type",n_t.Scales.Color)],pyt.prototype,"colorScale",void 0),t([o({type:String}),e("design:type",String)],pyt.prototype,"xType",void 0),t([o({type:Boolean}),e("design:type",Boolean)],pyt.prototype,"_attached",void 0),t([o({type:Object}),e("design:type",dyt)],pyt.prototype,"_chart",void 0),t([o({type:Array}),e("design:type",Array)],pyt.prototype,"_visibleSeriesCache",void 0),t([o({type:Object}),e("design:type",Object)],pyt.prototype,"_seriesDataCache",void 0),t([o({type:Number}),e("design:type",Number)],pyt.prototype,"_makeChartAsyncCallbackId",void 0),t([a("xType","colorScale","_attached"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],pyt.prototype,"_makeChart",null),t([a("_chart"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],pyt.prototype,"_reloadFromCache",null),pyt=t([i("vz-distribution-chart")],pyt);let fyt=class extends(p_t(tr(ye))){constructor(){super(...arguments),this.getDataLoadName=({run:t})=>t,this.requestData=(t,e,n)=>{const i=gr().pluginRoute("distributions","/distributions");Promise.all(t.map((t=>{const n=VO(i,{tag:t.tag,run:t.run});return this.requestManager.request(n).then((n=>{e({item:t,data:n})}))}))).finally((()=>{n()}))},this.loadDataCallback=(t,e,n)=>{const i=n.map((t=>{const[e,n,i]=t;return i.wall_time=new Date(1e3*e),i.step=n,i})),r=this.getDataLoadName(e);this.$.chart.setSeriesData(r,i),this.$.chart.setVisibleSeries([r])},this._colorScale={scale:AO},this._expanded=!1,this._canceller=new NO}_reloadOnRunTagChange(){this.reload()}_updateDataToLoad(){this.dataToLoad=[{run:this.run,tag:this.tag}]}get _runColor(){return this._colorScale.scale(this.run)}redraw(){this.$.chart.redraw()}_toggleExpanded(t){this.set("_expanded",!this._expanded),this.redraw()}};fyt.template=_e`
    <tf-card-heading
      tag="[[tag]]"
      run="[[run]]"
      display-name="[[tagMetadata.displayName]]"
      description="[[tagMetadata.description]]"
      color="[[_runColor]]"
    ></tf-card-heading>
    <!--
      The main distribution that we render. Data is set directly with
      \`setSeriesData\`, not with a bound property.
    -->
    <vz-distribution-chart
      id="chart"
      x-type="[[xType]]"
      color-scale="[[_colorScale]]"
    ></vz-distribution-chart>
    <div style="display: flex; flex-direction: row;">
      <paper-icon-button
        selected$="[[_expanded]]"
        icon="fullscreen"
        on-tap="_toggleExpanded"
      ></paper-icon-button>
    </div>
    <style>
      :host {
        display: flex;
        flex-direction: column;
        width: 330px;
        height: 235px;
        margin-right: 10px;
        margin-bottom: 15px;
      }
      :host([_expanded]) {
        width: 700px;
        height: 500px;
      }

      vz-histogram-timeseries {
        -moz-user-select: none;
        -webkit-user-select: none;
      }

      paper-icon-button {
        color: #2196f3;
        border-radius: 100%;
        width: 32px;
        height: 32px;
        padding: 4px;
      }
      paper-icon-button[selected] {
        background: var(--tb-ui-light-accent);
      }

      tf-card-heading {
        margin-bottom: 10px;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],fyt.prototype,"run",void 0),t([o({type:String}),e("design:type",String)],fyt.prototype,"tag",void 0),t([o({type:Object}),e("design:type",Object)],fyt.prototype,"tagMetadata",void 0),t([o({type:String}),e("design:type",String)],fyt.prototype,"xType",void 0),t([o({type:Object}),e("design:type",Object)],fyt.prototype,"getDataLoadName",void 0),t([o({type:Object}),e("design:type",Object)],fyt.prototype,"loadDataCallback",void 0),t([o({type:Object}),e("design:type",Object)],fyt.prototype,"_colorScale",void 0),t([o({type:Boolean,reflectToAttribute:!0}),e("design:type",Boolean)],fyt.prototype,"_expanded",void 0),t([o({type:Object}),e("design:type",hr)],fyt.prototype,"requestManager",void 0),t([o({type:Object}),e("design:type",NO)],fyt.prototype,"_canceller",void 0),t([a("run","tag"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],fyt.prototype,"_reloadOnRunTagChange",null),t([a("run","tag"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],fyt.prototype,"_updateDataToLoad",null),t([s("run"),e("design:type",String),e("design:paramtypes",[])],fyt.prototype,"_runColor",null),fyt=t([i("tf-distribution-loader")],fyt);let myt=class extends(tr(ye)){constructor(){super(...arguments),this.reloadOnReady=!0,this._xType="step",this._requestManager=new hr}ready(){super.ready(),this.reloadOnReady&&this.reload()}reload(){this._fetchTags().then((()=>{this._reloadDistributions()}))}_fetchTags(){const t=gr().pluginRoute("distributions","/tags");return this._requestManager.request(t).then((t=>{if(we.isEqual(t,this._runToTagInfo))return;const e=we.mapValues(t,(t=>Object.keys(t))),n=or(e);this.set("_dataNotFound",0===n.length),this.set("_runToTag",e),this.set("_runToTagInfo",t),this.async((()=>{this.set("_categoriesDomReady",!0)}))}))}_reloadDistributions(){this.root.querySelectorAll("tf-distribution-loader").forEach((t=>{t.reload()}))}_shouldOpen(t){return t<=2}get _categories(){return Sr(this._runToTag,this._selectedRuns,this._tagFilter)}_tagMetadata(t,e,n){return t[e][n]}};myt.template=_e`
    <tf-dashboard-layout>
      <div class="sidebar" slot="sidebar">
        <div class="settings">
          <div class="sidebar-section">
            <tf-option-selector
              id="xTypeSelector"
              name="Horizontal axis"
              selected-id="{{_xType}}"
            >
              <paper-button id="step">step</paper-button>
              <paper-button id="relative">relative</paper-button>
              <paper-button id="wall_time">wall</paper-button>
            </tf-option-selector>
          </div>
        </div>
        <div class="sidebar-section runs-selector">
          <tf-runs-selector selected-runs="{{_selectedRuns}}">
          </tf-runs-selector>
        </div>
      </div>

      <div class="center" slot="center">
        <template is="dom-if" if="[[_dataNotFound]]">
          <div class="no-data-warning">
            <h3>No distribution data was found.</h3>
            <p>Probable causes:</p>
            <ul>
              <li>
                You haven’t written any histogram data to your event files.
                (Histograms and distributions both use the histogram summary
                operation.)
              </li>

              <li>TensorBoard can’t find your event files.</li>
            </ul>

            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>

            <p>
              If you think TensorBoard is configured properly, please see
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
                >the section of the README devoted to missing data problems</a
              >
              and consider filing an issue on GitHub.
            </p>
          </div>
        </template>
        <template is="dom-if" if="[[!_dataNotFound]]">
          <tf-tag-filterer tag-filter="{{_tagFilter}}"></tf-tag-filterer>
          <template is="dom-repeat" items="[[_categories]]" as="category">
            <tf-category-paginated-view
              category="[[category]]"
              initial-opened="[[_shouldOpen(index)]]"
            >
              <template>
                <tf-distribution-loader
                  active="[[active]]"
                  run="[[item.run]]"
                  tag="[[item.tag]]"
                  tag-metadata="[[_tagMetadata(_runToTagInfo, item.run, item.tag)]]"
                  x-type="[[_xType]]"
                  request-manager="[[_requestManager]]"
                ></tf-distribution-loader>
              </template>
            </tf-category-paginated-view>
          </template>
        </template>
      </div>
    </tf-dashboard-layout>

    <style include="dashboard-style"></style>
    <style>
      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }
    </style>
  `,t([o({type:Boolean}),e("design:type",Boolean)],myt.prototype,"reloadOnReady",void 0),t([o({type:String}),e("design:type",String)],myt.prototype,"_xType",void 0),t([o({type:Array}),e("design:type",Array)],myt.prototype,"_selectedRuns",void 0),t([o({type:Object}),e("design:type",Object)],myt.prototype,"_runToTag",void 0),t([o({type:Object}),e("design:type",Object)],myt.prototype,"_runToTagInfo",void 0),t([o({type:Boolean}),e("design:type",Boolean)],myt.prototype,"_dataNotFound",void 0),t([o({type:String}),e("design:type",String)],myt.prototype,"_tagFilter",void 0),t([o({type:Boolean}),e("design:type",Boolean)],myt.prototype,"_categoriesDomReady",void 0),t([o({type:Object}),e("design:type",hr)],myt.prototype,"_requestManager",void 0),t([s("_runToTag","_selectedRuns","_tagFilter","_categoriesDomReady"),e("design:type",Array),e("design:paramtypes",[])],myt.prototype,"_categories",null),myt=t([i("tf-distribution-dashboard")],myt);var gyt=Object.freeze({__proto__:null,ListenKey:hs,addHashListener:fs,addStorageListener:ms,fireStorageChanged:gs,removeHashListenerByKey:_s,removeStorageListenerByKey:ys,getUrlHashDict:function _yt(){return Ts},DISAMBIGUATOR:"disambiguator",getString:Ps,setString:Ns,getStringInitializer:Is,getStringObserver:Os,disposeStringBinding:Rs,getBoolean:zs,setBoolean:Ds,getBooleanInitializer:Bs,getBooleanObserver:Hs,disposeBooleanBinding:Fs,getNumber:Vs,setNumber:Us,getNumberInitializer:js,getNumberObserver:Gs,disposeNumberBinding:Ws,getObject:qs,setObject:Ys,getObjectInitializer:Xs,getObjectObserver:$s,disposeObjectBinding:Ks,makeBindings:Zs,migrateLegacyURLScheme:function yyt(){const t=new Set(["examplesPath","hideModelPane2","modelName1","modelName2","inferenceAddress1","inferenceAddress2","modelType","modelVersion1","modelVersion2","modelSignature1","modelSignature2","maxExamples","labelVocabPath","multiClass","sequenceExamples","maxClassesToDisplay","samplingOdds","usePredictApi","predictInputTensor","predictOutputTensor"]),e=As(Cs());if("whatif"===e.__tab__)for(let n of t)n in e&&(e[`p.whatif.${n}`]=e[n]);ks(Ls(e)),(function n(t){Ts=t})(e)}}),vyt=function byt(t,e){return t===e||t!=t&&e!=e},xyt=function wyt(t,e){for(var n=t.length;n--;)if(vyt(t[n][0],e))return n;return-1},Syt=Array.prototype.splice;function Myt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}Myt.prototype.clear=function Eyt(){this.__data__=[],this.size=0},Myt.prototype.delete=function Tyt(t){var e=this.__data__,n=xyt(e,t);return!(n<0||(n==e.length-1?e.pop():Syt.call(e,n,1),--this.size,0))},Myt.prototype.get=function Cyt(t){var e=this.__data__,n=xyt(e,t);return n<0?void 0:e[n][1]},Myt.prototype.has=function Ayt(t){return xyt(this.__data__,t)>-1},Myt.prototype.set=function kyt(t,e){var n=this.__data__,i=xyt(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this};var Lyt,Pyt=Myt,Nyt="object"==typeof ve&&ve&&ve.Object===Object&&ve,Iyt="object"==typeof self&&self&&self.Object===Object&&self,Oyt=Nyt||Iyt||Function("return this")(),Ryt=Oyt.Symbol,zyt=Object.prototype,Dyt=zyt.hasOwnProperty,Byt=zyt.toString,Hyt=Ryt?Ryt.toStringTag:void 0,Fyt=Object.prototype.toString,Vyt=Ryt?Ryt.toStringTag:void 0,Uyt=function jyt(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Vyt&&Vyt in Object(t)?(function e(t){var e=Dyt.call(t,Hyt),n=t[Hyt];try{t[Hyt]=void 0;var i=!0}catch(t){}var r=Byt.call(t);return i&&(e?t[Hyt]=n:delete t[Hyt]),r})(t):(function n(t){return Fyt.call(t)})(t)},Gyt=function Wyt(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},qyt=function Yyt(t){if(!Gyt(t))return!1;var e=Uyt(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},Xyt=Oyt["__core-js_shared__"],$yt=(Lyt=/[^.]+$/.exec(Xyt&&Xyt.keys&&Xyt.keys.IE_PROTO||""))?"Symbol(src)_1."+Lyt:"",Kyt=Function.prototype.toString,Zyt=function Jyt(t){if(null!=t){try{return Kyt.call(t)}catch(t){}try{return t+""}catch(t){}}return""},Qyt=/^\[object .+?Constructor\]$/,tvt=RegExp("^"+Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),evt=function nvt(t,e){var n=(function i(t,e){return null==t?void 0:t[e]})(t,e);return(function r(t){return!(!Gyt(t)||(function e(t){return!!$yt&&$yt in t})(t))&&(qyt(t)?tvt:Qyt).test(Zyt(t))})(n)?n:void 0},ivt=evt(Oyt,"Map"),rvt=evt(Object,"create"),ovt=Object.prototype.hasOwnProperty,avt=Object.prototype.hasOwnProperty;function svt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}svt.prototype.clear=function lvt(){this.__data__=rvt?rvt(null):{},this.size=0},svt.prototype.delete=function cvt(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},svt.prototype.get=function uvt(t){var e=this.__data__;if(rvt){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return ovt.call(e,t)?e[t]:void 0},svt.prototype.has=function hvt(t){var e=this.__data__;return rvt?void 0!==e[t]:avt.call(e,t)},svt.prototype.set=function dvt(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=rvt&&void 0===e?"__lodash_hash_undefined__":e,this};var pvt=svt,fvt=function mvt(t,e){var n=t.__data__;return(function i(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t})(e)?n["string"==typeof e?"string":"hash"]:n.map};function gvt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}gvt.prototype.clear=function _vt(){this.size=0,this.__data__={hash:new pvt,map:new(ivt||Pyt),string:new pvt}},gvt.prototype.delete=function yvt(t){var e=fvt(this,t).delete(t);return this.size-=e?1:0,e},gvt.prototype.get=function vvt(t){return fvt(this,t).get(t)},gvt.prototype.has=function bvt(t){return fvt(this,t).has(t)},gvt.prototype.set=function xvt(t,e){var n=fvt(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this};var wvt=gvt;function Svt(t){var e=this.__data__=new Pyt(t);this.size=e.size}Svt.prototype.clear=function Mvt(){this.__data__=new Pyt,this.size=0},Svt.prototype.delete=function Evt(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},Svt.prototype.get=function Tvt(t){return this.__data__.get(t)},Svt.prototype.has=function Cvt(t){return this.__data__.has(t)},Svt.prototype.set=function Avt(t,e){var n=this.__data__;if(n instanceof Pyt){var i=n.__data__;if(!ivt||i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new wvt(i)}return n.set(t,e),this.size=n.size,this};var kvt=Svt,Lvt=function Pvt(t,e){for(var n=-1,i=null==t?0:t.length;++n<i&&!1!==e(t[n],n,t););return t},Nvt=(function(){try{var t=evt(Object,"defineProperty");return t({},"",{}),t}catch(t){}})(),Ivt=function Ovt(t,e,n){"__proto__"==e&&Nvt?Nvt(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n},Rvt=Object.prototype.hasOwnProperty,zvt=function Dvt(t,e,n){var i=t[e];Rvt.call(t,e)&&vyt(i,n)&&(void 0!==n||e in t)||Ivt(t,e,n)},Bvt=function Hvt(t,e,n,i){var r=!n;n||(n={});for(var o=-1,a=e.length;++o<a;){var s=e[o],l=i?i(n[s],t[s],s,n,t):void 0;void 0===l&&(l=t[s]),r?Ivt(n,s,l):zvt(n,s,l)}return n},Fvt=function Vvt(t){return null!=t&&"object"==typeof t},Uvt=function jvt(t){return Fvt(t)&&"[object Arguments]"==Uyt(t)},Gvt=Object.prototype,Wvt=Gvt.hasOwnProperty,qvt=Gvt.propertyIsEnumerable,Yvt=Uvt((function(){return arguments})())?Uvt:function(t){return Fvt(t)&&Wvt.call(t,"callee")&&!qvt.call(t,"callee")},Xvt=Array.isArray,$vt=function Kvt(){return!1},Zvt=be((function(t,e){var n=e&&!e.nodeType&&e,i=n&&t&&!t.nodeType&&t,r=i&&i.exports===n?Oyt.Buffer:void 0;t.exports=(r?r.isBuffer:void 0)||$vt})),Jvt=/^(?:0|[1-9]\d*)$/,Qvt=function tbt(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&Jvt.test(t))&&t>-1&&t%1==0&&t<e},ebt=function nbt(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},ibt={};ibt["[object Float32Array]"]=ibt["[object Float64Array]"]=ibt["[object Int8Array]"]=ibt["[object Int16Array]"]=ibt["[object Int32Array]"]=ibt["[object Uint8Array]"]=ibt["[object Uint8ClampedArray]"]=ibt["[object Uint16Array]"]=ibt["[object Uint32Array]"]=!0,ibt["[object Arguments]"]=ibt["[object Array]"]=ibt["[object ArrayBuffer]"]=ibt["[object Boolean]"]=ibt["[object DataView]"]=ibt["[object Date]"]=ibt["[object Error]"]=ibt["[object Function]"]=ibt["[object Map]"]=ibt["[object Number]"]=ibt["[object Object]"]=ibt["[object RegExp]"]=ibt["[object Set]"]=ibt["[object String]"]=ibt["[object WeakMap]"]=!1;var rbt=function obt(t){return function(e){return t(e)}},abt=be((function(t,e){var n=e&&!e.nodeType&&e,i=n&&t&&!t.nodeType&&t,r=i&&i.exports===n&&Nyt.process,o=(function(){try{return i&&i.require&&i.require("util").types||r&&r.binding&&r.binding("util")}catch(t){}})();t.exports=o})),sbt=abt&&abt.isTypedArray,lbt=sbt?rbt(sbt):function cbt(t){return Fvt(t)&&ebt(t.length)&&!!ibt[Uyt(t)]},ubt=Object.prototype.hasOwnProperty,hbt=function dbt(t,e){var n=Xvt(t),i=!n&&Yvt(t),r=!n&&!i&&Zvt(t),o=!n&&!i&&!r&&lbt(t),a=n||i||r||o,s=a?(function l(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i})(t.length,String):[],c=s.length;for(var u in t)!e&&!ubt.call(t,u)||a&&("length"==u||r&&("offset"==u||"parent"==u)||o&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Qvt(u,c))||s.push(u);return s},pbt=Object.prototype,fbt=function mbt(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||pbt)},gbt=function _bt(t,e){return function(n){return t(e(n))}},ybt=gbt(Object.keys,Object),vbt=Object.prototype.hasOwnProperty,bbt=function xbt(t){if(!fbt(t))return ybt(t);var e=[];for(var n in Object(t))vbt.call(t,n)&&"constructor"!=n&&e.push(n);return e},wbt=function Sbt(t){return null!=t&&ebt(t.length)&&!qyt(t)},Mbt=function Ebt(t){return wbt(t)?hbt(t):bbt(t)},Tbt=Object.prototype.hasOwnProperty,Cbt=function Abt(t){return wbt(t)?hbt(t,!0):(function e(t){if(!Gyt(t))return(function e(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e})(t);var n=fbt(t),i=[];for(var r in t)("constructor"!=r||!n&&Tbt.call(t,r))&&i.push(r);return i})(t)},kbt=be((function(t,e){var n=e&&!e.nodeType&&e,i=n&&t&&!t.nodeType&&t,r=i&&i.exports===n?Oyt.Buffer:void 0,o=r?r.allocUnsafe:void 0;t.exports=function a(t,e){if(e)return t.slice();var n=t.length,i=o?o(n):new t.constructor(n);return t.copy(i),i}})),Lbt=function Pbt(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e},Nbt=function Ibt(t,e){for(var n=-1,i=null==t?0:t.length,r=0,o=[];++n<i;){var a=t[n];e(a,n,t)&&(o[r++]=a)}return o},Obt=function Rbt(){return[]},zbt=Object.prototype.propertyIsEnumerable,Dbt=Object.getOwnPropertySymbols,Bbt=Dbt?function(t){return null==t?[]:(t=Object(t),Nbt(Dbt(t),(function(e){return zbt.call(t,e)})))}:Obt,Hbt=function Fbt(t,e){for(var n=-1,i=e.length,r=t.length;++n<i;)t[r+n]=e[n];return t},Vbt=gbt(Object.getPrototypeOf,Object),Ubt=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)Hbt(e,Bbt(t)),t=Vbt(t);return e}:Obt,jbt=function Gbt(t,e,n){var i=e(t);return Xvt(t)?i:Hbt(i,n(t))},Wbt=function qbt(t){return jbt(t,Mbt,Bbt)},Ybt=function Xbt(t){return jbt(t,Cbt,Ubt)},$bt=evt(Oyt,"DataView"),Kbt=evt(Oyt,"Promise"),Zbt=evt(Oyt,"Set"),Jbt=evt(Oyt,"WeakMap"),Qbt="[object Map]",txt="[object Promise]",ext="[object Set]",nxt="[object WeakMap]",ixt="[object DataView]",rxt=Zyt($bt),oxt=Zyt(ivt),axt=Zyt(Kbt),sxt=Zyt(Zbt),lxt=Zyt(Jbt),cxt=Uyt;($bt&&cxt(new $bt(new ArrayBuffer(1)))!=ixt||ivt&&cxt(new ivt)!=Qbt||Kbt&&cxt(Kbt.resolve())!=txt||Zbt&&cxt(new Zbt)!=ext||Jbt&&cxt(new Jbt)!=nxt)&&(cxt=function(t){var e=Uyt(t),n="[object Object]"==e?t.constructor:void 0,i=n?Zyt(n):"";if(i)switch(i){case rxt:return ixt;case oxt:return Qbt;case axt:return txt;case sxt:return ext;case lxt:return nxt}return e});var uxt=cxt,hxt=Object.prototype.hasOwnProperty,dxt=Oyt.Uint8Array,pxt=function fxt(t){var e=new t.constructor(t.byteLength);return new dxt(e).set(new dxt(t)),e},mxt=/\w*$/,gxt=Ryt?Ryt.prototype:void 0,_xt=gxt?gxt.valueOf:void 0,yxt=function vxt(t,e){var n=e?pxt(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)},bxt=Object.create,xxt=(function(){function t(){}return function(e){if(!Gyt(e))return{};if(bxt)return bxt(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}})(),wxt=function Sxt(t){return"function"!=typeof t.constructor||fbt(t)?{}:xxt(Vbt(t))},Mxt=abt&&abt.isMap,Ext=Mxt?rbt(Mxt):function Txt(t){return Fvt(t)&&"[object Map]"==uxt(t)},Cxt=abt&&abt.isSet,Axt=Cxt?rbt(Cxt):function kxt(t){return Fvt(t)&&"[object Set]"==uxt(t)},Lxt="[object Arguments]",Pxt="[object Function]",Nxt="[object Object]",Ixt={};Ixt[Lxt]=Ixt["[object Array]"]=Ixt["[object ArrayBuffer]"]=Ixt["[object DataView]"]=Ixt["[object Boolean]"]=Ixt["[object Date]"]=Ixt["[object Float32Array]"]=Ixt["[object Float64Array]"]=Ixt["[object Int8Array]"]=Ixt["[object Int16Array]"]=Ixt["[object Int32Array]"]=Ixt["[object Map]"]=Ixt["[object Number]"]=Ixt[Nxt]=Ixt["[object RegExp]"]=Ixt["[object Set]"]=Ixt["[object String]"]=Ixt["[object Symbol]"]=Ixt["[object Uint8Array]"]=Ixt["[object Uint8ClampedArray]"]=Ixt["[object Uint16Array]"]=Ixt["[object Uint32Array]"]=!0,Ixt["[object Error]"]=Ixt[Pxt]=Ixt["[object WeakMap]"]=!1;var Oxt=function t(e,n,i,r,o,a){var s,l=1&n,c=2&n,u=4&n;if(i&&(s=o?i(e,r,o,a):i(e)),void 0!==s)return s;if(!Gyt(e))return e;var h=Xvt(e);if(h){if(s=(function d(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&hxt.call(t,"index")&&(n.index=t.index,n.input=t.input),n})(e),!l)return Lbt(e,s)}else{var p=uxt(e),f=p==Pxt||"[object GeneratorFunction]"==p;if(Zvt(e))return kbt(e,l);if(p==Nxt||p==Lxt||f&&!o){if(s=c||f?{}:wxt(e),!l)return c?(function g(t,e){return Bvt(t,Ubt(t),e)})(e,(function m(t,e){return t&&Bvt(e,Cbt(e),t)})(s,e)):(function y(t,e){return Bvt(t,Bbt(t),e)})(e,(function _(t,e){return t&&Bvt(e,Mbt(e),t)})(s,e))}else{if(!Ixt[p])return o?e:{};s=(function v(t,e,n){var i=t.constructor;switch(e){case"[object ArrayBuffer]":return pxt(t);case"[object Boolean]":case"[object Date]":return new i(+t);case"[object DataView]":return(function r(t,e){var n=e?pxt(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)})(t,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return yxt(t,n);case"[object Map]":return new i;case"[object Number]":case"[object String]":return new i(t);case"[object RegExp]":return(function o(t){var e=new t.constructor(t.source,mxt.exec(t));return e.lastIndex=t.lastIndex,e})(t);case"[object Set]":return new i;case"[object Symbol]":return(function a(t){return _xt?Object(_xt.call(t)):{}})(t)}})(e,p,l)}}a||(a=new kvt);var b=a.get(e);if(b)return b;a.set(e,s),Axt(e)?e.forEach((function(r){s.add(t(r,n,i,r,e,a))})):Ext(e)&&e.forEach((function(r,o){s.set(o,t(r,n,i,o,e,a))}));var x=h?void 0:(u?c?Ybt:Wbt:c?Cbt:Mbt)(e);return Lvt(x||e,(function(r,o){x&&(r=e[o=r]),zvt(s,o,t(r,n,i,o,e,a))})),s},Rxt=function zxt(t){return function(){return t}},Dxt=(function Bxt(t){return function(e,n,i){for(var r=-1,o=Object(e),a=i(e),s=a.length;s--;){var l=a[t?s:++r];if(!1===n(o[l],l,o))break}return e}})(),Hxt=function Fxt(t,e){return t&&Dxt(t,e,Mbt)},Vxt=(function Uxt(t,e){return function(n,i){if(null==n)return n;if(!wbt(n))return t(n,i);for(var r=n.length,o=e?r:-1,a=Object(n);(e?o--:++o<r)&&!1!==i(a[o],o,a););return n}})(Hxt),jxt=function Gxt(t){return t},Wxt=function qxt(t){return"function"==typeof t?t:jxt},Yxt=function Xxt(t,e){return(Xvt(t)?Lvt:Vxt)(t,Wxt(e))},$xt=Yxt,Kxt=function Zxt(t,e){var n=[];return Vxt(t,(function(t,i,r){e(t,i,r)&&n.push(t)})),n};function Jxt(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new wvt;++e<n;)this.add(t[e])}Jxt.prototype.add=Jxt.prototype.push=function Qxt(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Jxt.prototype.has=function twt(t){return this.__data__.has(t)};var ewt=Jxt,nwt=function iwt(t,e){for(var n=-1,i=null==t?0:t.length;++n<i;)if(e(t[n],n,t))return!0;return!1},rwt=function owt(t,e){return t.has(e)},awt=function swt(t,e,n,i,r,o){var a=1&n,s=t.length,l=e.length;if(s!=l&&!(a&&l>s))return!1;var c=o.get(t),u=o.get(e);if(c&&u)return c==e&&u==t;var h=-1,d=!0,p=2&n?new ewt:void 0;for(o.set(t,e),o.set(e,t);++h<s;){var f=t[h],m=e[h];if(i)var g=a?i(m,f,h,e,t,o):i(f,m,h,t,e,o);if(void 0!==g){if(g)continue;d=!1;break}if(p){if(!nwt(e,(function(t,e){if(!rwt(p,e)&&(f===t||r(f,t,n,i,o)))return p.push(e)}))){d=!1;break}}else if(f!==m&&!r(f,m,n,i,o)){d=!1;break}}return o.delete(t),o.delete(e),d},lwt=function cwt(t){var e=-1,n=Array(t.size);return t.forEach((function(t,i){n[++e]=[i,t]})),n},uwt=function hwt(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n},dwt=Ryt?Ryt.prototype:void 0,pwt=dwt?dwt.valueOf:void 0,fwt=Object.prototype.hasOwnProperty,mwt="[object Arguments]",gwt="[object Array]",_wt="[object Object]",ywt=Object.prototype.hasOwnProperty,vwt=function t(e,n,i,r,o){return e===n||(null==e||null==n||!Fvt(e)&&!Fvt(n)?e!=e&&n!=n:(function a(t,e,n,i,r,o){var a=Xvt(t),s=Xvt(e),l=a?gwt:uxt(t),c=s?gwt:uxt(e),u=(l=l==mwt?_wt:l)==_wt,h=(c=c==mwt?_wt:c)==_wt,d=l==c;if(d&&Zvt(t)){if(!Zvt(e))return!1;a=!0,u=!1}if(d&&!u)return o||(o=new kvt),a||lbt(t)?awt(t,e,n,i,r,o):(function p(t,e,n,i,r,o,a){switch(n){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!o(new dxt(t),new dxt(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return vyt(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var s=lwt;case"[object Set]":if(s||(s=uwt),t.size!=e.size&&!(1&i))return!1;var l=a.get(t);if(l)return l==e;i|=2,a.set(t,e);var c=awt(s(t),s(e),i,r,o,a);return a.delete(t),c;case"[object Symbol]":if(pwt)return pwt.call(t)==pwt.call(e)}return!1})(t,e,l,n,i,r,o);if(!(1&n)){var f=u&&ywt.call(t,"__wrapped__"),m=h&&ywt.call(e,"__wrapped__");if(f||m){var g=f?t.value():t,_=m?e.value():e;return o||(o=new kvt),r(g,_,n,i,o)}}return!!d&&(o||(o=new kvt),(function y(t,e,n,i,r,o){var a=1&n,s=Wbt(t),l=s.length;if(l!=Wbt(e).length&&!a)return!1;for(var c=l;c--;){var u=s[c];if(!(a?u in e:fwt.call(e,u)))return!1}var h=o.get(t),d=o.get(e);if(h&&d)return h==e&&d==t;var p=!0;o.set(t,e),o.set(e,t);for(var f=a;++c<l;){var m=t[u=s[c]],g=e[u];if(i)var _=a?i(g,m,u,e,t,o):i(m,g,u,t,e,o);if(!(void 0===_?m===g||r(m,g,n,i,o):_)){p=!1;break}f||(f="constructor"==u)}if(p&&!f){var y=t.constructor,v=e.constructor;y==v||!("constructor"in t)||!("constructor"in e)||"function"==typeof y&&y instanceof y&&"function"==typeof v&&v instanceof v||(p=!1)}return o.delete(t),o.delete(e),p})(t,e,n,i,r,o))})(e,n,i,r,t,o))},bwt=function xwt(t){return t==t&&!Gyt(t)},wwt=function Swt(t,e){return function(n){return null!=n&&n[t]===e&&(void 0!==e||t in Object(n))}},Mwt=function Ewt(t){return"symbol"==typeof t||Fvt(t)&&"[object Symbol]"==Uyt(t)},Twt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Cwt=/^\w*$/,Awt=function kwt(t,e){if(Xvt(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!Mwt(t))||Cwt.test(t)||!Twt.test(t)||null!=e&&t in Object(e)};function Lwt(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var i=arguments,r=e?e.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=t.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(Lwt.Cache||wvt),n}Lwt.Cache=wvt;var Pwt,Nwt=Lwt,Iwt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Owt=/\\(\\)?/g,Rwt=(function zwt(t){var e=Nwt(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e})((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Iwt,(function(t,n,i,r){e.push(i?r.replace(Owt,"$1"):n||t)})),e})),Dwt=function Bwt(t,e){for(var n=-1,i=null==t?0:t.length,r=Array(i);++n<i;)r[n]=e(t[n],n,t);return r},Hwt=Ryt?Ryt.prototype:void 0,Fwt=Hwt?Hwt.toString:void 0,Vwt=function t(e){if("string"==typeof e)return e;if(Xvt(e))return Dwt(e,t)+"";if(Mwt(e))return Fwt?Fwt.call(e):"";var n=e+"";return"0"==n&&1/e==-1/0?"-0":n},Uwt=function jwt(t){return null==t?"":Vwt(t)},Gwt=function Wwt(t,e){return Xvt(t)?t:Awt(t,e)?[t]:Rwt(Uwt(t))},qwt=function Ywt(t){if("string"==typeof t||Mwt(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},Xwt=function $wt(t,e){for(var n=0,i=(e=Gwt(e,t)).length;null!=t&&n<i;)t=t[qwt(e[n++])];return n&&n==i?t:void 0},Kwt=function Zwt(t,e){return null!=t&&e in Object(t)},Jwt=function Qwt(t,e,n){for(var i=-1,r=(e=Gwt(e,t)).length,o=!1;++i<r;){var a=qwt(e[i]);if(!(o=null!=t&&n(t,a)))break;t=t[a]}return o||++i!=r?o:!!(r=null==t?0:t.length)&&ebt(r)&&Qvt(a,r)&&(Xvt(t)||Yvt(t))},tSt=function eSt(t,e){return null!=t&&Jwt(t,e,Kwt)},nSt=function iSt(t){return function(e){return null==e?void 0:e[t]}},rSt=function oSt(t){return"function"==typeof t?t:null==t?jxt:"object"==typeof t?Xvt(t)?(function e(t,n){return Awt(t)&&bwt(n)?wwt(qwt(t),n):function(e){var i=(function r(t,e,n){var i=null==t?void 0:Xwt(t,e);return void 0===i?n:i})(e,t);return void 0===i&&i===n?tSt(e,t):vwt(n,i,3)}})(t[0],t[1]):(function n(t){var e=(function n(t){for(var e=Mbt(t),n=e.length;n--;){var i=e[n],r=t[i];e[n]=[i,r,bwt(r)]}return e})(t);return 1==e.length&&e[0][2]?wwt(e[0][0],e[0][1]):function(n){return n===t||(function i(t,e,n,r){var o=n.length,a=o,s=!r;if(null==t)return!a;for(t=Object(t);o--;){var l=n[o];if(s&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++o<a;){var c=(l=n[o])[0],u=t[c],h=l[1];if(s&&l[2]){if(void 0===u&&!(c in t))return!1}else{var d=new kvt;if(r)var p=r(u,h,c,t,e,d);if(!(void 0===p?vwt(h,u,3,r,d):p))return!1}}return!0})(n,t,e)}})(t):(function i(t){return Awt(t)?nSt(qwt(t)):(function e(t){return function(e){return Xwt(e,t)}})(t)})(t)},aSt=function sSt(t,e){return(Xvt(t)?Nbt:Kxt)(t,rSt(e))},lSt=Object.prototype.hasOwnProperty,cSt=function uSt(t,e){return null!=t&&lSt.call(t,e)},hSt=function dSt(t,e){return null!=t&&Jwt(t,e,cSt)},pSt=Object.prototype.hasOwnProperty,fSt=function mSt(t){return void 0===t},gSt=function _St(t,e){var n=-1,i=wbt(t)?Array(t.length):[];return Vxt(t,(function(t,r,o){i[++n]=e(t,r,o)})),i},ySt=function vSt(t,e){return(Xvt(t)?Dwt:gSt)(t,rSt(e))},bSt=function xSt(t,e,n,i){var r=-1,o=null==t?0:t.length;for(i&&o&&(n=t[++r]);++r<o;)n=e(n,t[r],r,t);return n},wSt=function SSt(t,e,n,i,r){return r(t,(function(t,r,o){n=i?(i=!1,t):e(n,t,r,o)})),n},MSt=function ESt(t,e,n){var i=Xvt(t)?bSt:wSt,r=arguments.length<3;return i(t,rSt(e),n,r,Vxt)},TSt=nSt("length"),CSt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),ASt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",kSt="\\ud83c[\\udffb-\\udfff]",LSt="[^\\ud800-\\udfff]",PSt="(?:\\ud83c[\\udde6-\\uddff]){2}",NSt="[\\ud800-\\udbff][\\udc00-\\udfff]",ISt="(?:"+ASt+"|"+kSt+")?",OSt="[\\ufe0e\\ufe0f]?",RSt=OSt+ISt+"(?:\\u200d(?:"+[LSt,PSt,NSt].join("|")+")"+OSt+ISt+")*",zSt="(?:"+[LSt+ASt+"?",ASt,PSt,NSt,"[\\ud800-\\udfff]"].join("|")+")",DSt=RegExp(kSt+"(?="+kSt+")|"+zSt+RSt,"g"),BSt=Ryt?Ryt.isConcatSpreadable:void 0,HSt=function FSt(t){return Xvt(t)||Yvt(t)||!!(BSt&&t&&t[BSt])},VSt=function t(e,n,i,r,o){var a=-1,s=e.length;for(i||(i=HSt),o||(o=[]);++a<s;){var l=e[a];n>0&&i(l)?n>1?t(l,n-1,i,r,o):Hbt(o,l):r||(o[o.length]=l)}return o},USt=function jSt(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)},GSt=Math.max,WSt=function qSt(t,e,n){return e=GSt(void 0===e?t.length-1:e,0),function(){for(var i=arguments,r=-1,o=GSt(i.length-e,0),a=Array(o);++r<o;)a[r]=i[e+r];r=-1;for(var s=Array(e+1);++r<e;)s[r]=i[r];return s[e]=n(a),USt(t,this,s)}},YSt=Date.now,XSt=(function $St(t){var e=0,n=0;return function(){var i=YSt(),r=16-(i-n);if(n=i,r>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}})(Nvt?function(t,e){return Nvt(t,"toString",{configurable:!0,enumerable:!1,value:Rxt(e),writable:!0})}:jxt),KSt=function ZSt(t,e){return XSt(WSt(t,e,jxt),t+"")},JSt=function QSt(t,e,n,i){for(var r=t.length,o=n+(i?1:-1);i?o--:++o<r;)if(e(t[o],o,t))return o;return-1},tMt=function eMt(t){return t!=t},nMt=function iMt(t,e){return!(null==t||!t.length)&&(function n(t,e,i){return e==e?(function r(t,e,n){for(var i=n-1,r=t.length;++i<r;)if(t[i]===e)return i;return-1})(t,e,i):JSt(t,tMt,i)})(t,e,0)>-1},rMt=function oMt(t,e,n){for(var i=-1,r=null==t?0:t.length;++i<r;)if(n(e,t[i]))return!0;return!1},aMt=Zbt&&1/uwt(new Zbt([,-0]))[1]==1/0?function(t){return new Zbt(t)}:function sMt(){},lMt=function cMt(t){return Fvt(t)&&wbt(t)},uMt=KSt((function(t){return(function e(t,n,i){var r=-1,o=nMt,a=t.length,s=!0,l=[],c=l;if(i)s=!1,o=rMt;else if(a>=200){var u=n?null:aMt(t);if(u)return uwt(u);s=!1,o=rwt,c=new ewt}else c=n?[]:l;t:for(;++r<a;){var h=t[r],d=n?n(h):h;if(h=i||0!==h?h:0,s&&d==d){for(var p=c.length;p--;)if(c[p]===d)continue t;n&&c.push(d),l.push(h)}else o(c,d,i)||(c!==l&&c.push(d),l.push(h))}return l})(VSt(t,1,lMt,!0))})),hMt=function dMt(t){return null==t?[]:(function e(t,n){return Dwt(n,(function(e){return t[e]}))})(t,Mbt(t))};try{Pwt={clone:function pMt(t){return Oxt(t,4)},constant:Rxt,each:$xt,filter:aSt,has:hSt,isArray:Xvt,isEmpty:function fMt(t){if(null==t)return!0;if(wbt(t)&&(Xvt(t)||"string"==typeof t||"function"==typeof t.splice||Zvt(t)||lbt(t)||Yvt(t)))return!t.length;var e=uxt(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if(fbt(t))return!bbt(t).length;for(var n in t)if(pSt.call(t,n))return!1;return!0},isFunction:qyt,isUndefined:fSt,keys:Mbt,map:ySt,reduce:MSt,size:function mMt(t){if(null==t)return 0;if(wbt(t))return(function e(t){return"string"==typeof t||!Xvt(t)&&Fvt(t)&&"[object String]"==Uyt(t)})(t)?(function n(t){return(function e(t){return CSt.test(t)})(t)?(function n(t){for(var e=DSt.lastIndex=0;DSt.test(t);)++e;return e})(t):TSt(t)})(t):t.length;var i=uxt(t);return"[object Map]"==i||"[object Set]"==i?t.size:bbt(t).length},transform:function gMt(t,e,n){var i=Xvt(t),r=i||Zvt(t)||lbt(t);if(e=rSt(e),null==n){var o=t&&t.constructor;n=r?i?new o:[]:Gyt(t)&&qyt(o)?xxt(Vbt(t)):{}}return(r?Lvt:Hxt)(t,(function(t,i,r){return e(n,t,i,r)})),n},union:uMt,values:hMt}}catch(t){}Pwt||(Pwt=window._);var _Mt=Pwt,yMt=bMt,vMt="\0";function bMt(t){this._isDirected=!_Mt.has(t,"directed")||t.directed,this._isMultigraph=!!_Mt.has(t,"multigraph")&&t.multigraph,this._isCompound=!!_Mt.has(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=_Mt.constant(void 0),this._defaultEdgeLabelFn=_Mt.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function xMt(t,e){t[e]?t[e]++:t[e]=1}function wMt(t,e){--t[e]||delete t[e]}function SMt(t,e,n,i){var r=""+e,o=""+n;if(!t&&r>o){var a=r;r=o,o=a}return r+""+o+""+(_Mt.isUndefined(i)?"\0":i)}function MMt(t,e,n,i){var r=""+e,o=""+n;if(!t&&r>o){var a=r;r=o,o=a}var s={v:r,w:o};return i&&(s.name=i),s}function EMt(t,e){return SMt(t,e.v,e.w,e.name)}bMt.prototype._nodeCount=0,bMt.prototype._edgeCount=0,bMt.prototype.isDirected=function(){return this._isDirected},bMt.prototype.isMultigraph=function(){return this._isMultigraph},bMt.prototype.isCompound=function(){return this._isCompound},bMt.prototype.setGraph=function(t){return this._label=t,this},bMt.prototype.graph=function(){return this._label},bMt.prototype.setDefaultNodeLabel=function(t){return _Mt.isFunction(t)||(t=_Mt.constant(t)),this._defaultNodeLabelFn=t,this},bMt.prototype.nodeCount=function(){return this._nodeCount},bMt.prototype.nodes=function(){return _Mt.keys(this._nodes)},bMt.prototype.sources=function(){var t=this;return _Mt.filter(this.nodes(),(function(e){return _Mt.isEmpty(t._in[e])}))},bMt.prototype.sinks=function(){var t=this;return _Mt.filter(this.nodes(),(function(e){return _Mt.isEmpty(t._out[e])}))},bMt.prototype.setNodes=function(t,e){var n=arguments,i=this;return _Mt.each(t,(function(t){n.length>1?i.setNode(t,e):i.setNode(t)})),this},bMt.prototype.setNode=function(t,e){return _Mt.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=vMt,this._children[t]={},this._children["\0"][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},bMt.prototype.node=function(t){return this._nodes[t]},bMt.prototype.hasNode=function(t){return _Mt.has(this._nodes,t)},bMt.prototype.removeNode=function(t){var e=this;if(_Mt.has(this._nodes,t)){var n=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],_Mt.each(this.children(t),(function(t){e.setParent(t)})),delete this._children[t]),_Mt.each(_Mt.keys(this._in[t]),n),delete this._in[t],delete this._preds[t],_Mt.each(_Mt.keys(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},bMt.prototype.setParent=function(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(_Mt.isUndefined(e))e=vMt;else{for(var n=e+="";!_Mt.isUndefined(n);n=this.parent(n))if(n===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this},bMt.prototype._removeFromParentsChildList=function(t){delete this._children[this._parent[t]][t]},bMt.prototype.parent=function(t){if(this._isCompound){var e=this._parent[t];if(e!==vMt)return e}},bMt.prototype.children=function(t){if(_Mt.isUndefined(t)&&(t=vMt),this._isCompound){var e=this._children[t];if(e)return _Mt.keys(e)}else{if(t===vMt)return this.nodes();if(this.hasNode(t))return[]}},bMt.prototype.predecessors=function(t){var e=this._preds[t];if(e)return _Mt.keys(e)},bMt.prototype.successors=function(t){var e=this._sucs[t];if(e)return _Mt.keys(e)},bMt.prototype.neighbors=function(t){var e=this.predecessors(t);if(e)return _Mt.union(e,this.successors(t))},bMt.prototype.isLeaf=function(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length},bMt.prototype.filterNodes=function(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var n=this;_Mt.each(this._nodes,(function(n,i){t(i)&&e.setNode(i,n)})),_Mt.each(this._edgeObjs,(function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))}));var i={};function r(t){var o=n.parent(t);return void 0===o||e.hasNode(o)?(i[t]=o,o):o in i?i[o]:r(o)}return this._isCompound&&_Mt.each(e.nodes(),(function(t){e.setParent(t,r(t))})),e},bMt.prototype.setDefaultEdgeLabel=function(t){return _Mt.isFunction(t)||(t=_Mt.constant(t)),this._defaultEdgeLabelFn=t,this},bMt.prototype.edgeCount=function(){return this._edgeCount},bMt.prototype.edges=function(){return _Mt.values(this._edgeObjs)},bMt.prototype.setPath=function(t,e){var n=this,i=arguments;return _Mt.reduce(t,(function(t,r){return i.length>1?n.setEdge(t,r,e):n.setEdge(t,r),r})),this},bMt.prototype.setEdge=function(){var t,e,n,i,r=!1,o=arguments[0];"object"==typeof o&&null!==o&&"v"in o?(t=o.v,e=o.w,n=o.name,2===arguments.length&&(i=arguments[1],r=!0)):(t=o,e=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],r=!0)),t=""+t,e=""+e,_Mt.isUndefined(n)||(n=""+n);var a=SMt(this._isDirected,t,e,n);if(_Mt.has(this._edgeLabels,a))return r&&(this._edgeLabels[a]=i),this;if(!_Mt.isUndefined(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[a]=r?i:this._defaultEdgeLabelFn(t,e,n);var s=MMt(this._isDirected,t,e,n);return t=s.v,e=s.w,Object.freeze(s),this._edgeObjs[a]=s,xMt(this._preds[e],t),xMt(this._sucs[t],e),this._in[e][a]=s,this._out[t][a]=s,this._edgeCount++,this},bMt.prototype.edge=function(t,e,n){var i=1===arguments.length?EMt(this._isDirected,arguments[0]):SMt(this._isDirected,t,e,n);return this._edgeLabels[i]},bMt.prototype.hasEdge=function(t,e,n){var i=1===arguments.length?EMt(this._isDirected,arguments[0]):SMt(this._isDirected,t,e,n);return _Mt.has(this._edgeLabels,i)},bMt.prototype.removeEdge=function(t,e,n){var i=1===arguments.length?EMt(this._isDirected,arguments[0]):SMt(this._isDirected,t,e,n),r=this._edgeObjs[i];return r&&(t=r.v,e=r.w,delete this._edgeLabels[i],delete this._edgeObjs[i],wMt(this._preds[e],t),wMt(this._sucs[t],e),delete this._in[e][i],delete this._out[t][i],this._edgeCount--),this},bMt.prototype.inEdges=function(t,e){var n=this._in[t];if(n){var i=_Mt.values(n);return e?_Mt.filter(i,(function(t){return t.v===e})):i}},bMt.prototype.outEdges=function(t,e){var n=this._out[t];if(n){var i=_Mt.values(n);return e?_Mt.filter(i,(function(t){return t.w===e})):i}},bMt.prototype.nodeEdges=function(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))};var TMt={Graph:yMt,version:"2.1.8"},CMt={write:function AMt(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:LMt(t),edges:PMt(t)};return _Mt.isUndefined(t.graph())||(e.value=_Mt.clone(t.graph())),e},read:function kMt(t){var e=new yMt(t.options).setGraph(t.value);return _Mt.each(t.nodes,(function(t){e.setNode(t.v,t.value),t.parent&&e.setParent(t.v,t.parent)})),_Mt.each(t.edges,(function(t){e.setEdge({v:t.v,w:t.w,name:t.name},t.value)})),e}};function LMt(t){return _Mt.map(t.nodes(),(function(e){var n=t.node(e),i=t.parent(e),r={v:e};return _Mt.isUndefined(n)||(r.value=n),_Mt.isUndefined(i)||(r.parent=i),r}))}function PMt(t){return _Mt.map(t.edges(),(function(e){var n=t.edge(e),i={v:e.v,w:e.w};return _Mt.isUndefined(e.name)||(i.name=e.name),_Mt.isUndefined(n)||(i.value=n),i}))}var NMt=IMt;function IMt(){this._arr=[],this._keyIndices={}}IMt.prototype.size=function(){return this._arr.length},IMt.prototype.keys=function(){return this._arr.map((function(t){return t.key}))},IMt.prototype.has=function(t){return _Mt.has(this._keyIndices,t)},IMt.prototype.priority=function(t){var e=this._keyIndices[t];if(void 0!==e)return this._arr[e].priority},IMt.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},IMt.prototype.add=function(t,e){var n=this._keyIndices;if(t=String(t),!_Mt.has(n,t)){var i=this._arr,r=i.length;return n[t]=r,i.push({key:t,priority:e}),this._decrease(r),!0}return!1},IMt.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key},IMt.prototype.decrease=function(t,e){var n=this._keyIndices[t];if(e>this._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[n].priority+" New: "+e);this._arr[n].priority=e,this._decrease(n)},IMt.prototype._heapify=function(t){var e=this._arr,n=2*t,i=n+1,r=t;n<e.length&&(r=e[n].priority<e[r].priority?n:r,i<e.length&&(r=e[i].priority<e[r].priority?i:r),r!==t&&(this._swap(t,r),this._heapify(r)))},IMt.prototype._decrease=function(t){for(var e,n=this._arr,i=n[t].priority;0!==t&&!(n[e=t>>1].priority<i);)this._swap(t,e),t=e},IMt.prototype._swap=function(t,e){var n=this._arr,i=this._keyIndices,r=n[t],o=n[e];n[t]=o,n[e]=r,i[o.key]=t,i[r.key]=e};var OMt=function RMt(t,e,n,i){return(function r(t,e,n,i){var r,o,a={},s=new NMt,l=function(t){var e=t.v!==r?t.v:t.w,i=a[e],l=n(t),c=o.distance+l;if(l<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+t+" Weight: "+l);c<i.distance&&(i.distance=c,i.predecessor=r,s.decrease(e,c))};for(t.nodes().forEach((function(t){var n=t===e?0:Number.POSITIVE_INFINITY;a[t]={distance:n},s.add(t,n)}));s.size()>0&&(r=s.removeMin(),(o=a[r]).distance!==Number.POSITIVE_INFINITY);)i(r).forEach(l);return a})(t,String(e),n||zMt,i||function(e){return t.outEdges(e)})},zMt=_Mt.constant(1),DMt=function BMt(t){var e=0,n=[],i={},r=[];function o(a){var s=i[a]={onStack:!0,lowlink:e,index:e++};if(n.push(a),t.successors(a).forEach((function(t){_Mt.has(i,t)?i[t].onStack&&(s.lowlink=Math.min(s.lowlink,i[t].index)):(o(t),s.lowlink=Math.min(s.lowlink,i[t].lowlink))})),s.lowlink===s.index){var l,c=[];do{l=n.pop(),i[l].onStack=!1,c.push(l)}while(a!==l);r.push(c)}}return t.nodes().forEach((function(t){_Mt.has(i,t)||o(t)})),r},HMt=_Mt.constant(1),FMt=VMt;function VMt(t){var e={},n={},i=[];if(_Mt.each(t.sinks(),(function r(o){if(_Mt.has(n,o))throw new UMt;_Mt.has(e,o)||(n[o]=!0,e[o]=!0,_Mt.each(t.predecessors(o),r),delete n[o],i.push(o))})),_Mt.size(e)!==t.nodeCount())throw new UMt;return i}function UMt(){}VMt.CycleException=UMt,UMt.prototype=new Error;var jMt=function GMt(t,e,n){_Mt.isArray(e)||(e=[e]);var i=(t.isDirected()?t.successors:t.neighbors).bind(t),r=[],o={};return _Mt.each(e,(function(e){if(!t.hasNode(e))throw new Error("Graph does not have node: "+e);WMt(t,e,"post"===n,o,i,r)})),r};function WMt(t,e,n,i,r,o){_Mt.has(i,e)||(i[e]=!0,n||o.push(e),_Mt.each(r(e),(function(e){WMt(t,e,n,i,r,o)})),n&&o.push(e))}var qMt,YMt={Graph:TMt.Graph,json:CMt,alg:{components:function XMt(t){var e,n={},i=[];function r(i){_Mt.has(n,i)||(n[i]=!0,e.push(i),_Mt.each(t.successors(i),r),_Mt.each(t.predecessors(i),r))}return _Mt.each(t.nodes(),(function(t){e=[],r(t),e.length&&i.push(e)})),i},dijkstra:OMt,dijkstraAll:function $Mt(t,e,n){return _Mt.transform(t.nodes(),(function(i,r){i[r]=OMt(t,r,e,n)}),{})},findCycles:function KMt(t){return _Mt.filter(DMt(t),(function(e){return e.length>1||1===e.length&&t.hasEdge(e[0],e[0])}))},floydWarshall:function ZMt(t,e,n){return(function i(t,e,n){var i={},r=t.nodes();return r.forEach((function(t){i[t]={},i[t][t]={distance:0},r.forEach((function(e){t!==e&&(i[t][e]={distance:Number.POSITIVE_INFINITY})})),n(t).forEach((function(n){var r=n.v===t?n.w:n.v,o=e(n);i[t][r]={distance:o,predecessor:t}}))})),r.forEach((function(t){var e=i[t];r.forEach((function(n){var o=i[n];r.forEach((function(n){var i=e[n],r=o[n],a=o[t].distance+i.distance;a<r.distance&&(r.distance=a,r.predecessor=i.predecessor)}))}))})),i})(t,e||HMt,n||function(e){return t.outEdges(e)})},isAcyclic:function JMt(t){try{FMt(t)}catch(t){if(t instanceof FMt.CycleException)return!1;throw t}return!0},postorder:function QMt(t,e){return jMt(t,e,"post")},preorder:function tEt(t,e){return jMt(t,e,"pre")},prim:function eEt(t,e){var n,i=new yMt,r={},o=new NMt;function a(t){var i=t.v===n?t.w:t.v,a=o.priority(i);if(void 0!==a){var s=e(t);s<a&&(r[i]=n,o.decrease(i,s))}}if(0===t.nodeCount())return i;_Mt.each(t.nodes(),(function(t){o.add(t,Number.POSITIVE_INFINITY),i.setNode(t)})),o.decrease(t.nodes()[0],0);for(var s=!1;o.size()>0;){if(n=o.removeMin(),_Mt.has(r,n))i.setEdge(n,r[n]);else{if(s)throw new Error("Input graph is not connected: "+t);s=!0}t.nodeEdges(n).forEach(a)}return i},tarjan:DMt,topsort:FMt},version:TMt.version};try{qMt=YMt}catch(t){}qMt||(qMt=window.graphlib);var nEt,iEt=qMt,rEt=function oEt(t,e,n){if(!Gyt(n))return!1;var i=typeof e;return!!("number"==i?wbt(n)&&Qvt(e,n.length):"string"==i&&e in n)&&vyt(n[e],t)},aEt=Object.prototype,sEt=aEt.hasOwnProperty,lEt=KSt((function(t,e){t=Object(t);var n=-1,i=e.length,r=i>2?e[2]:void 0;for(r&&rEt(e[0],e[1],r)&&(i=1);++n<i;)for(var o=e[n],a=Cbt(o),s=-1,l=a.length;++s<l;){var c=a[s],u=t[c];(void 0===u||vyt(u,aEt[c])&&!sEt.call(t,c))&&(t[c]=o[c])}return t})),cEt=/\s/,uEt=/^\s+/,hEt=/^[-+]0x[0-9a-f]+$/i,dEt=/^0b[01]+$/i,pEt=/^0o[0-7]+$/i,fEt=parseInt,mEt=function gEt(t){return t?1/0===(t=(function e(t){if("number"==typeof t)return t;if(Mwt(t))return NaN;if(Gyt(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Gyt(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=(function n(t){return t?t.slice(0,(function e(t){for(var e=t.length;e--&&cEt.test(t.charAt(e)););return e})(t)+1).replace(uEt,""):t})(t);var i=dEt.test(t);return i||pEt.test(t)?fEt(t.slice(2),i?2:8):hEt.test(t)?NaN:+t})(t))||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0},_Et=Math.max,yEt=(function bEt(t){return function(e,n,i){var r=Object(e);if(!wbt(e)){var o=rSt(n);e=Mbt(e),n=function(t){return o(r[t],t,r)}}var a=t(e,n,i);return a>-1?r[o?e[a]:a]:void 0}})((function vEt(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var r=null==n?0:(function o(t){var e=mEt(t),n=e%1;return e==e?n?e-n:e:0})(n);return r<0&&(r=_Et(i+r,0)),JSt(t,rSt(e),r)})),xEt=function wEt(t){return null!=t&&t.length?VSt(t,1):[]},SEt=function MEt(t,e,n){for(var i=-1,r=t.length;++i<r;){var o=t[i],a=e(o);if(null!=a&&(void 0===s?a==a&&!Mwt(a):n(a,s)))var s=a,l=o}return l},EEt=function TEt(t,e){return t>e},CEt=function AEt(t,e,n){(void 0!==n&&!vyt(t[e],n)||void 0===n&&!(e in t))&&Ivt(t,e,n)},kEt=Function.prototype.toString,LEt=Object.prototype.hasOwnProperty,PEt=kEt.call(Object),NEt=function IEt(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]},OEt=function t(e,n,i,r,o){e!==n&&Dxt(n,(function(a,s){if(o||(o=new kvt),Gyt(a))!(function l(t,e,n,i,r,o,a){var s=NEt(t,n),l=NEt(e,n),c=a.get(l);if(c)CEt(t,n,c);else{var u=o?o(s,l,n+"",t,e,a):void 0,h=void 0===u;if(h){var d=Xvt(l),p=!d&&Zvt(l),f=!d&&!p&&lbt(l);u=l,d||p||f?Xvt(s)?u=s:lMt(s)?u=Lbt(s):p?(h=!1,u=kbt(l,!0)):f?(h=!1,u=yxt(l,!0)):u=[]:(function m(t){if(!Fvt(t)||"[object Object]"!=Uyt(t))return!1;var e=Vbt(t);if(null===e)return!0;var n=LEt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&kEt.call(n)==PEt})(l)||Yvt(l)?(u=s,Yvt(s)?u=(function g(t){return Bvt(t,Cbt(t))})(s):Gyt(s)&&!qyt(s)||(u=wxt(l))):h=!1}h&&(a.set(l,u),r(u,l,i,o,a),a.delete(l)),CEt(t,n,u)}})(e,n,s,i,t,r,o);else{var c=r?r(NEt(e,s),a,s+"",e,n,o):void 0;void 0===c&&(c=a),CEt(e,s,c)}}),Cbt)},REt=(function zEt(t){return KSt((function(e,n){var i=-1,r=n.length,o=r>1?n[r-1]:void 0,a=r>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(r--,o):void 0,a&&rEt(n[0],n[1],a)&&(o=r<3?void 0:o,r=1),e=Object(e);++i<r;){var s=n[i];s&&t(e,s,i,o)}return e}))})((function(t,e,n){OEt(t,e,n)})),DEt=function BEt(t,e){return t<e},HEt=function FEt(t,e,n,i){if(!Gyt(t))return t;for(var r=-1,o=(e=Gwt(e,t)).length,a=o-1,s=t;null!=s&&++r<o;){var l=qwt(e[r]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return t;if(r!=a){var u=s[l];void 0===(c=i?i(u,l,s):void 0)&&(c=Gyt(u)?u:Qvt(e[r+1])?[]:{})}zvt(s,l,c),s=s[l]}return t},VEt=(function UEt(t){return XSt(WSt(t,void 0,xEt),t+"")})((function(t,e){return null==t?{}:(function n(t,e){return(function n(t,e,i){for(var r=-1,o=e.length,a={};++r<o;){var s=e[r],l=Xwt(t,s);i(l,s)&&HEt(a,Gwt(s,t),l)}return a})(t,e,(function(e,n){return tSt(t,n)}))})(t,e)})),jEt=Math.ceil,GEt=Math.max,WEt=(function qEt(t){return function(e,n,i){return i&&"number"!=typeof i&&rEt(e,n,i)&&(n=i=void 0),e=mEt(e),void 0===n?(n=e,e=0):n=mEt(n),(function r(t,e,n,i){for(var r=-1,o=GEt(jEt((e-t)/(n||1)),0),a=Array(o);o--;)a[i?o:++r]=t,t+=n;return a})(e,n,i=void 0===i?e<n?1:-1:mEt(i),t)}})(),YEt=function XEt(t,e){if(t!==e){var n=void 0!==t,i=null===t,r=t==t,o=Mwt(t),a=void 0!==e,s=null===e,l=e==e,c=Mwt(e);if(!s&&!c&&!o&&t>e||o&&a&&l&&!s&&!c||i&&a&&l||!n&&l||!r)return 1;if(!i&&!o&&!c&&t<e||c&&n&&r&&!i&&!o||s&&n&&r||!a&&r||!l)return-1}return 0},$Et=KSt((function(t,e){if(null==t)return[];var n=e.length;return n>1&&rEt(t,e[0],e[1])?e=[]:n>2&&rEt(e[0],e[1],e[2])&&(e=[e[0]]),(function i(t,e,n){e=e.length?Dwt(e,(function(t){return Xvt(t)?function(e){return Xwt(e,1===t.length?t[0]:t)}:t})):[jxt];var i=-1;return e=Dwt(e,rbt(rSt)),(function r(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t})(gSt(t,(function(t,n,r){return{criteria:Dwt(e,(function(e){return e(t)})),index:++i,value:t}})),(function(t,e){return(function i(t,e,n){for(var i=-1,r=t.criteria,o=e.criteria,a=r.length,s=n.length;++i<a;){var l=YEt(r[i],o[i]);if(l)return i>=s?l:l*("desc"==n[i]?-1:1)}return t.index-e.index})(t,e,n)}))})(t,VSt(e,1),[])})),KEt=0;try{nEt={cloneDeep:function ZEt(t){return Oxt(t,5)},constant:Rxt,defaults:lEt,each:$xt,filter:aSt,find:yEt,flatten:xEt,forEach:Yxt,forIn:function JEt(t,e){return null==t?t:Dxt(t,Wxt(e),Cbt)},has:hSt,isUndefined:fSt,last:function QEt(t){var e=null==t?0:t.length;return e?t[e-1]:void 0},map:ySt,mapValues:function tTt(t,e){var n={};return e=rSt(e),Hxt(t,(function(t,i,r){Ivt(n,i,e(t,i,r))})),n},max:function eTt(t){return t&&t.length?SEt(t,jxt,EEt):void 0},merge:REt,min:function nTt(t){return t&&t.length?SEt(t,jxt,DEt):void 0},minBy:function iTt(t,e){return t&&t.length?SEt(t,rSt(e),DEt):void 0},now:function(){return Oyt.Date.now()},pick:VEt,range:WEt,reduce:MSt,sortBy:$Et,uniqueId:function rTt(t){var e=++KEt;return Uwt(t)+e},values:hMt,zipObject:function oTt(t,e){return(function n(t,e,i){for(var r=-1,o=t.length,a=e.length,s={};++r<o;)i(s,t[r],r<a?e[r]:void 0);return s})(t||[],e||[],zvt)}}}catch(t){}nEt||(nEt=window._);var aTt=nEt,sTt=lTt;function lTt(){var t={};t._next=t._prev=t,this._sentinel=t}function cTt(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function uTt(t,e){if("_next"!==t&&"_prev"!==t)return e}lTt.prototype.dequeue=function(){var t=this._sentinel,e=t._prev;if(e!==t)return cTt(e),e},lTt.prototype.enqueue=function(t){var e=this._sentinel;t._prev&&t._next&&cTt(t),t._next=e._next,e._next._prev=t,e._next=t,t._prev=e},lTt.prototype.toString=function(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,uTt)),n=n._prev;return"["+t.join(", ")+"]"};var hTt=iEt.Graph,dTt=aTt.constant(1);function pTt(t,e,n,i,r){var o=r?[]:void 0;return aTt.forEach(t.inEdges(i.v),(function(i){var a=t.edge(i),s=t.node(i.v);r&&o.push({v:i.v,w:i.w}),s.out-=a,fTt(e,n,s)})),aTt.forEach(t.outEdges(i.v),(function(i){var r=t.edge(i),o=t.node(i.w);o.in-=r,fTt(e,n,o)})),t.removeNode(i.v),o}function fTt(t,e,n){n.out?n.in?t[n.out-n.in+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}var mTt=iEt.Graph,gTt={addDummyNode:kTt,simplify:function _Tt(t){var e=(new mTt).setGraph(t.graph());return aTt.forEach(t.nodes(),(function(n){e.setNode(n,t.node(n))})),aTt.forEach(t.edges(),(function(n){var i=e.edge(n.v,n.w)||{weight:0,minlen:1},r=t.edge(n);e.setEdge(n.v,n.w,{weight:i.weight+r.weight,minlen:Math.max(i.minlen,r.minlen)})})),e},asNonCompoundGraph:function yTt(t){var e=new mTt({multigraph:t.isMultigraph()}).setGraph(t.graph());return aTt.forEach(t.nodes(),(function(n){t.children(n).length||e.setNode(n,t.node(n))})),aTt.forEach(t.edges(),(function(n){e.setEdge(n,t.edge(n))})),e},successorWeights:function vTt(t){var e=aTt.map(t.nodes(),(function(e){var n={};return aTt.forEach(t.outEdges(e),(function(e){n[e.w]=(n[e.w]||0)+t.edge(e).weight})),n}));return aTt.zipObject(t.nodes(),e)},predecessorWeights:function bTt(t){var e=aTt.map(t.nodes(),(function(e){var n={};return aTt.forEach(t.inEdges(e),(function(e){n[e.v]=(n[e.v]||0)+t.edge(e).weight})),n}));return aTt.zipObject(t.nodes(),e)},intersectRect:function xTt(t,e){var n,i,r=t.x,o=t.y,a=e.x-r,s=e.y-o,l=t.width/2,c=t.height/2;if(!a&&!s)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*l>Math.abs(a)*c?(s<0&&(c=-c),n=c*a/s,i=c):(a<0&&(l=-l),n=l,i=l*s/a),{x:r+n,y:o+i}},buildLayerMatrix:function wTt(t){var e=aTt.map(aTt.range(LTt(t)+1),(function(){return[]}));return aTt.forEach(t.nodes(),(function(n){var i=t.node(n),r=i.rank;aTt.isUndefined(r)||(e[r][i.order]=n)})),e},normalizeRanks:function STt(t){var e=aTt.min(aTt.map(t.nodes(),(function(e){return t.node(e).rank})));aTt.forEach(t.nodes(),(function(n){var i=t.node(n);aTt.has(i,"rank")&&(i.rank-=e)}))},removeEmptyRanks:function MTt(t){var e=aTt.min(aTt.map(t.nodes(),(function(e){return t.node(e).rank}))),n=[];aTt.forEach(t.nodes(),(function(i){var r=t.node(i).rank-e;n[r]||(n[r]=[]),n[r].push(i)}));var i=0,r=t.graph().nodeRankFactor;aTt.forEach(n,(function(e,n){aTt.isUndefined(e)&&n%r!=0?--i:i&&aTt.forEach(e,(function(e){t.node(e).rank+=i}))}))},addBorderNode:function ETt(t,e,n,i){var r={width:0,height:0};return arguments.length>=4&&(r.rank=n,r.order=i),kTt(t,"border",r,e)},maxRank:LTt,partition:function TTt(t,e){var n={lhs:[],rhs:[]};return aTt.forEach(t,(function(t){e(t)?n.lhs.push(t):n.rhs.push(t)})),n},time:function CTt(t,e){var n=aTt.now();try{return e()}finally{console.log(t+" time: "+(aTt.now()-n)+"ms")}},notime:function ATt(t,e){return e()}};function kTt(t,e,n,i){var r;do{r=aTt.uniqueId(i)}while(t.hasNode(r));return n.dummy=e,t.setNode(r,n),r}function LTt(t){return aTt.max(aTt.map(t.nodes(),(function(e){var n=t.node(e).rank;if(!aTt.isUndefined(n))return n})))}var PTt=function NTt(t){var e={};aTt.forEach(t.sources(),(function n(i){var r=t.node(i);if(aTt.has(e,i))return r.rank;e[i]=!0;var o=aTt.min(aTt.map(t.outEdges(i),(function(e){return n(e.w)-t.edge(e).minlen})));return o!==Number.POSITIVE_INFINITY&&null!=o||(o=0),r.rank=o}))},ITt=function OTt(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen},RTt=iEt.Graph,zTt=ITt,DTt=function BTt(t){var e,n,i=new RTt({directed:!1}),r=t.nodes()[0],o=t.nodeCount();for(i.setNode(r,{});HTt(i,t)<o;)e=FTt(i,t),n=i.hasNode(e.v)?zTt(t,e):-zTt(t,e),VTt(i,t,n);return i};function HTt(t,e){return aTt.forEach(t.nodes(),(function n(i){aTt.forEach(e.nodeEdges(i),(function(r){var o=r.v,a=i===o?r.w:o;t.hasNode(a)||zTt(e,r)||(t.setNode(a,{}),t.setEdge(i,a,{}),n(a))}))})),t.nodeCount()}function FTt(t,e){return aTt.minBy(e.edges(),(function(n){if(t.hasNode(n.v)!==t.hasNode(n.w))return zTt(e,n)}))}function VTt(t,e,n){aTt.forEach(t.nodes(),(function(t){e.node(t).rank+=n}))}var UTt=ITt,jTt=PTt,GTt=iEt.alg.preorder,WTt=iEt.alg.postorder,qTt=gTt.simplify,YTt=XTt;function XTt(t){t=qTt(t),jTt(t);var e,n=DTt(t);for(ZTt(n),$Tt(n,t);e=QTt(n);)eCt(n,t,e,tCt(n,t,e))}function $Tt(t,e){var n=WTt(t,t.nodes());n=n.slice(0,n.length-1),aTt.forEach(n,(function(n){!(function i(t,e,n){var i=t.node(n);t.edge(n,i.parent).cutvalue=KTt(t,e,n)})(t,e,n)}))}function KTt(t,e,n){var i=t.node(n).parent,r=!0,o=e.edge(n,i),a=0;return o||(r=!1,o=e.edge(i,n)),a=o.weight,aTt.forEach(e.nodeEdges(n),(function(o){var s=o.v===n,l=s?o.w:o.v;if(l!==i){var c=s===r,u=e.edge(o).weight;if(a+=c?u:-u,(function h(t,e,n){return t.hasEdge(e,n)})(t,n,l)){var d=t.edge(n,l).cutvalue;a+=c?-d:d}}})),a}function ZTt(t,e){arguments.length<2&&(e=t.nodes()[0]),JTt(t,{},1,e)}function JTt(t,e,n,i,r){var o=n,a=t.node(i);return e[i]=!0,aTt.forEach(t.neighbors(i),(function(r){aTt.has(e,r)||(n=JTt(t,e,n,r,i))})),a.low=o,a.lim=n++,r?a.parent=r:delete a.parent,n}function QTt(t){return aTt.find(t.edges(),(function(e){return t.edge(e).cutvalue<0}))}function tCt(t,e,n){var i=n.v,r=n.w;e.hasEdge(i,r)||(i=n.w,r=n.v);var o=t.node(i),a=t.node(r),s=o,l=!1;o.lim>a.lim&&(s=a,l=!0);var c=aTt.filter(e.edges(),(function(e){return l===nCt(0,t.node(e.v),s)&&l!==nCt(0,t.node(e.w),s)}));return aTt.minBy(c,(function(t){return UTt(e,t)}))}function eCt(t,e,n,i){t.removeEdge(n.v,n.w),t.setEdge(i.v,i.w,{}),ZTt(t),$Tt(t,e),(function r(t,e){var n=aTt.find(t.nodes(),(function(t){return!e.node(t).parent})),i=GTt(t,n);i=i.slice(1),aTt.forEach(i,(function(n){var i=t.node(n).parent,r=e.edge(n,i),o=!1;r||(r=e.edge(i,n),o=!0),e.node(n).rank=e.node(i).rank+(o?r.minlen:-r.minlen)}))})(t,e)}function nCt(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}XTt.initLowLimValues=ZTt,XTt.initCutValues=$Tt,XTt.calcCutValue=KTt,XTt.leaveEdge=QTt,XTt.enterEdge=tCt,XTt.exchangeEdges=eCt;var iCt=PTt,rCt=iCt;function oCt(t){YTt(t)}var aCt=function sCt(t){var e=gTt.addDummyNode(t,"root",{},"_root"),n=(function i(t){var e={};function n(i,r){var o=t.children(i);o&&o.length&&aTt.forEach(o,(function(t){n(t,r+1)})),e[i]=r}return aTt.forEach(t.children(),(function(t){n(t,1)})),e})(t),r=aTt.max(aTt.values(n))-1,o=2*r+1;t.graph().nestingRoot=e,aTt.forEach(t.edges(),(function(e){t.edge(e).minlen*=o}));var a=(function s(t){return aTt.reduce(t.edges(),(function(e,n){return e+t.edge(n).weight}),0)})(t)+1;aTt.forEach(t.children(),(function(i){lCt(t,e,o,a,r,n,i)})),t.graph().nodeRankFactor=o};function lCt(t,e,n,i,r,o,a){var s=t.children(a);if(s.length){var l=gTt.addBorderNode(t,"_bt"),c=gTt.addBorderNode(t,"_bb"),u=t.node(a);t.setParent(l,a),u.borderTop=l,t.setParent(c,a),u.borderBottom=c,aTt.forEach(s,(function(s){lCt(t,e,n,i,r,o,s);var u=t.node(s),h=u.borderTop?u.borderTop:s,d=u.borderBottom?u.borderBottom:s,p=u.borderTop?i:2*i,f=h!==d?1:r-o[a]+1;t.setEdge(l,h,{weight:p,minlen:f,nestingEdge:!0}),t.setEdge(d,c,{weight:p,minlen:f,nestingEdge:!0})})),t.parent(a)||t.setEdge(e,l,{weight:0,minlen:r+o[a]})}else a!==e&&t.setEdge(e,a,{weight:0,minlen:n})}function cCt(t,e,n,i,r,o){var a=r[e][o-1],s=gTt.addDummyNode(t,"border",{width:0,height:0,rank:o,borderType:e},n);r[e][o]=s,t.setParent(s,i),a&&t.setEdge(a,s,{weight:1})}function uCt(t){aTt.forEach(t.nodes(),(function(e){hCt(t.node(e))})),aTt.forEach(t.edges(),(function(e){hCt(t.edge(e))}))}function hCt(t){var e=t.width;t.width=t.height,t.height=e}function dCt(t){t.y=-t.y}function pCt(t){var e=t.x;t.x=t.y,t.y=e}var fCt=function mCt(t,e){for(var n=0,i=1;i<e.length;++i)n+=gCt(t,e[i-1],e[i]);return n};function gCt(t,e,n){for(var i=aTt.zipObject(n,aTt.map(n,(function(t,e){return e}))),r=aTt.flatten(aTt.map(e,(function(e){return aTt.sortBy(aTt.map(t.outEdges(e),(function(e){return{pos:i[e.w],weight:t.edge(e).weight}})),"pos")})),!0),o=1;o<n.length;)o<<=1;var a=2*o-1;o-=1;var s=aTt.map(new Array(a),(function(){return 0})),l=0;return aTt.forEach(r.forEach((function(t){var e=t.pos+o;s[e]+=t.weight;for(var n=0;e>0;)e%2&&(n+=s[e+1]),s[e=e-1>>1]+=t.weight;l+=t.weight*n}))),l}function _Ct(t,e,n){for(var i;e.length&&(i=aTt.last(e)).i<=n;)e.pop(),t.push(i.vs),n++;return n}var yCt=function t(e,n,i,r){var o=e.children(n),a=e.node(n),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,c={};s&&(o=aTt.filter(o,(function(t){return t!==s&&t!==l})));var u=(function h(t,e){return aTt.map(e,(function(e){var n=t.inEdges(e);if(n.length){var i=aTt.reduce(n,(function(e,n){var i=t.edge(n),r=t.node(n.v);return{sum:e.sum+i.weight*r.order,weight:e.weight+i.weight}}),{sum:0,weight:0});return{v:e,barycenter:i.sum/i.weight,weight:i.weight}}return{v:e}}))})(e,o);aTt.forEach(u,(function(n){if(e.children(n.v).length){var o=t(e,n.v,i,r);c[n.v]=o,aTt.has(o,"barycenter")&&(function a(t,e){aTt.isUndefined(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)})(n,o)}}));var d=(function p(t,e){var n={};return aTt.forEach(t,(function(t,e){var i=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};aTt.isUndefined(t.barycenter)||(i.barycenter=t.barycenter,i.weight=t.weight)})),aTt.forEach(e.edges(),(function(t){var e=n[t.v],i=n[t.w];aTt.isUndefined(e)||aTt.isUndefined(i)||(i.indegree++,e.out.push(n[t.w]))})),(function i(t){var e=[];function n(t){return function(e){e.merged||(aTt.isUndefined(e.barycenter)||aTt.isUndefined(t.barycenter)||e.barycenter>=t.barycenter)&&(function n(t,e){var n=0,i=0;t.weight&&(n+=t.barycenter*t.weight,i+=t.weight),e.weight&&(n+=e.barycenter*e.weight,i+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=n/i,t.weight=i,t.i=Math.min(e.i,t.i),e.merged=!0})(t,e)}}function i(e){return function(n){n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){var r=t.pop();e.push(r),aTt.forEach(r.in.reverse(),n(r)),aTt.forEach(r.out,i(r))}return aTt.map(aTt.filter(e,(function(t){return!t.merged})),(function(t){return aTt.pick(t,["vs","i","barycenter","weight"])}))})(aTt.filter(n,(function(t){return!t.indegree})))})(u,i);!(function f(t,e){aTt.forEach(t,(function(t){t.vs=aTt.flatten(t.vs.map((function(t){return e[t]?e[t].vs:t})),!0)}))})(d,c);var m=(function g(t,e){var n=gTt.partition(t,(function(t){return aTt.has(t,"barycenter")})),i=n.lhs,r=aTt.sortBy(n.rhs,(function(t){return-t.i})),o=[],a=0,s=0,l=0;i.sort((function c(t){return function(e,n){return e.barycenter<n.barycenter?-1:e.barycenter>n.barycenter?1:t?n.i-e.i:e.i-n.i}})(!!e)),l=_Ct(o,r,l),aTt.forEach(i,(function(t){l+=t.vs.length,o.push(t.vs),a+=t.barycenter*t.weight,s+=t.weight,l=_Ct(o,r,l)}));var u={vs:aTt.flatten(o,!0)};return s&&(u.barycenter=a/s,u.weight=s),u})(d,r);if(s&&(m.vs=aTt.flatten([s,m.vs,l],!0),e.predecessors(s).length)){var _=e.node(e.predecessors(s)[0]),y=e.node(e.predecessors(l)[0]);aTt.has(m,"barycenter")||(m.barycenter=0,m.weight=0),m.barycenter=(m.barycenter*m.weight+_.order+y.order)/(m.weight+2),m.weight+=2}return m},vCt=iEt.Graph,bCt=iEt.Graph;function xCt(t,e,n){return aTt.map(e,(function(e){return(function i(t,e,n){var i=(function r(t){for(var e;t.hasNode(e=aTt.uniqueId("_root")););return e})(t),o=new vCt({compound:!0}).setGraph({root:i}).setDefaultNodeLabel((function(e){return t.node(e)}));return aTt.forEach(t.nodes(),(function(r){var a=t.node(r),s=t.parent(r);(a.rank===e||a.minRank<=e&&e<=a.maxRank)&&(o.setNode(r),o.setParent(r,s||i),aTt.forEach(t[n](r),(function(e){var n=e.v===r?e.w:e.v,i=o.edge(n,r),a=aTt.isUndefined(i)?0:i.weight;o.setEdge(n,r,{weight:t.edge(e).weight+a})})),aTt.has(a,"minRank")&&o.setNode(r,{borderLeft:a.borderLeft[e],borderRight:a.borderRight[e]}))})),o})(t,e,n)}))}function wCt(t,e){var n=new bCt;aTt.forEach(t,(function(t){var i=t.graph().root,r=yCt(t,i,n,e);aTt.forEach(r.vs,(function(e,n){t.node(e).order=n})),(function o(t,e,n){var i,r={};aTt.forEach(n,(function(n){for(var o,a,s=t.parent(n);s;){if((o=t.parent(s))?(a=r[o],r[o]=s):(a=i,i=s),a&&a!==s)return void e.setEdge(a,s);s=o}}))})(t,n,r.vs)}))}function SCt(t,e){aTt.forEach(e,(function(e){aTt.forEach(e,(function(e,n){t.node(e).order=n}))}))}var MCt=iEt.Graph;function ECt(t,e,n){if(e>n){var i=e;e=n,n=i}var r=t[e];r||(t[e]=r={}),r[n]=!0}function TCt(t,e,n){if(e>n){var i=e;e=n,n=i}return aTt.has(t[e],n)}var CCt=gTt.normalizeRanks,ACt=gTt.removeEmptyRanks,kCt=gTt,LCt=iEt.Graph,PCt=["nodesep","edgesep","ranksep","marginx","marginy"],NCt={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},ICt=["acyclicer","ranker","rankdir","align"],OCt=["width","height"],RCt={width:0,height:0},zCt=["minlen","weight","width","height","labeloffset"],DCt={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},BCt=["labelpos"];function HCt(t,e){return aTt.mapValues(aTt.pick(t,e),Number)}function FCt(t){var e={};return aTt.forEach(t,(function(t,n){e[n.toLowerCase()]=t})),e}var VCt,UCt,jCt=iEt.Graph,GCt={graphlib:iEt,layout:function WCt(t,e){var n=e&&e.debugTiming?kCt.time:kCt.notime;n("layout",(function(){var e=n("  buildLayoutGraph",(function(){return(function e(t){var e=new LCt({multigraph:!0,compound:!0}),n=FCt(t.graph());return e.setGraph(aTt.merge({},NCt,HCt(n,PCt),aTt.pick(n,ICt))),aTt.forEach(t.nodes(),(function(n){var i=FCt(t.node(n));e.setNode(n,aTt.defaults(HCt(i,OCt),RCt)),e.setParent(n,t.parent(n))})),aTt.forEach(t.edges(),(function(n){var i=FCt(t.edge(n));e.setEdge(n,aTt.merge({},DCt,HCt(i,zCt),aTt.pick(i,BCt)))})),e})(t)}));n("  runLayout",(function(){!(function t(e,n){n("    makeSpaceForEdgeLabels",(function(){!(function t(e){var n=e.graph();n.ranksep/=2,aTt.forEach(e.edges(),(function(t){var i=e.edge(t);i.minlen*=2,"c"!==i.labelpos.toLowerCase()&&("TB"===n.rankdir||"BT"===n.rankdir?i.width+=i.labeloffset:i.height+=i.labeloffset)}))})(e)})),n("    removeSelfEdges",(function(){!(function t(e){aTt.forEach(e.edges(),(function(t){if(t.v===t.w){var n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}}))})(e)})),n("    acyclic",(function(){!(function t(e){var n="greedy"===e.graph().acyclicer?(function r(t,e){if(t.nodeCount()<=1)return[];var n=(function i(t,e){var n=new hTt,i=0,r=0;aTt.forEach(t.nodes(),(function(t){n.setNode(t,{v:t,in:0,out:0})})),aTt.forEach(t.edges(),(function(t){var o=n.edge(t.v,t.w)||0,a=e(t);n.setEdge(t.v,t.w,o+a),r=Math.max(r,n.node(t.v).out+=a),i=Math.max(i,n.node(t.w).in+=a)}));var o=aTt.range(r+i+3).map((function(){return new sTt})),a=i+1;return aTt.forEach(n.nodes(),(function(t){fTt(o,a,n.node(t))})),{graph:n,buckets:o,zeroIdx:a}})(t,e||dTt),r=(function o(t,e,n){for(var i,r=[],o=e[e.length-1],a=e[0];t.nodeCount();){for(;i=a.dequeue();)pTt(t,e,n,i);for(;i=o.dequeue();)pTt(t,e,n,i);if(t.nodeCount())for(var s=e.length-2;s>0;--s)if(i=e[s].dequeue()){r=r.concat(pTt(t,e,n,i,!0));break}}return r})(n.graph,n.buckets,n.zeroIdx);return aTt.flatten(aTt.map(r,(function(e){return t.outEdges(e.v,e.w)})),!0)})(e,(function i(t){return function(e){return t.edge(e).weight}})(e)):(function o(t){var e=[],n={},i={};return aTt.forEach(t.nodes(),(function r(o){aTt.has(i,o)||(i[o]=!0,n[o]=!0,aTt.forEach(t.outEdges(o),(function(t){aTt.has(n,t.w)?e.push(t):r(t.w)})),delete n[o])})),e})(e);aTt.forEach(n,(function(t){var n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,aTt.uniqueId("rev"))}))})(e)})),n("    nestingGraph.run",(function(){aCt(e)})),n("    rank",(function(){!(function t(e){switch(e.graph().ranker){case"network-simplex":oCt(e);break;case"tight-tree":!(function n(t){iCt(t),DTt(t)})(e);break;case"longest-path":rCt(e);break;default:oCt(e)}})(kCt.asNonCompoundGraph(e))})),n("    injectEdgeLabelProxies",(function(){!(function t(e){aTt.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.width&&n.height){var i=e.node(t.v),r=e.node(t.w);kCt.addDummyNode(e,"edge-proxy",{rank:(r.rank-i.rank)/2+i.rank,e:t},"_ep")}}))})(e)})),n("    removeEmptyRanks",(function(){ACt(e)})),n("    nestingGraph.cleanup",(function(){!(function t(e){var n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,aTt.forEach(e.edges(),(function(t){e.edge(t).nestingEdge&&e.removeEdge(t)}))})(e)})),n("    normalizeRanks",(function(){CCt(e)})),n("    assignRankMinMax",(function(){!(function t(e){var n=0;aTt.forEach(e.nodes(),(function(t){var i=e.node(t);i.borderTop&&(i.minRank=e.node(i.borderTop).rank,i.maxRank=e.node(i.borderBottom).rank,n=aTt.max(n,i.maxRank))})),e.graph().maxRank=n})(e)})),n("    removeEdgeLabelProxies",(function(){!(function t(e){aTt.forEach(e.nodes(),(function(t){var n=e.node(t);"edge-proxy"===n.dummy&&(e.edge(n.e).labelRank=n.rank,e.removeNode(t))}))})(e)})),n("    normalize.run",(function(){!(function t(e){e.graph().dummyChains=[],aTt.forEach(e.edges(),(function(t){!(function n(t,e){var n,i,r,o=e.v,a=t.node(o).rank,s=e.w,l=t.node(s).rank,c=e.name,u=t.edge(e),h=u.labelRank;if(l!==a+1){for(t.removeEdge(e),r=0,++a;a<l;++r,++a)u.points=[],n=gTt.addDummyNode(t,"edge",i={width:0,height:0,edgeLabel:u,edgeObj:e,rank:a},"_d"),a===h&&(i.width=u.width,i.height=u.height,i.dummy="edge-label",i.labelpos=u.labelpos),t.setEdge(o,n,{weight:u.weight},c),0===r&&t.graph().dummyChains.push(n),o=n;t.setEdge(o,s,{weight:u.weight},c)}})(e,t)}))})(e)})),n("    parentDummyChains",(function(){!(function t(e){var n=(function i(t){var e={},n=0;return aTt.forEach(t.children(),(function i(r){var o=n;aTt.forEach(t.children(r),i),e[r]={low:o,lim:n++}})),e})(e);aTt.forEach(e.graph().dummyChains,(function(t){for(var i=e.node(t),r=i.edgeObj,o=(function a(t,e,n,i){var r,o,a=[],s=[],l=Math.min(e[n].low,e[i].low),c=Math.max(e[n].lim,e[i].lim);r=n;do{r=t.parent(r),a.push(r)}while(r&&(e[r].low>l||c>e[r].lim));for(o=r,r=i;(r=t.parent(r))!==o;)s.push(r);return{path:a.concat(s.reverse()),lca:o}})(e,n,r.v,r.w),s=o.path,l=o.lca,c=0,u=s[c],h=!0;t!==r.w;){if(i=e.node(t),h){for(;(u=s[c])!==l&&e.node(u).maxRank<i.rank;)c++;u===l&&(h=!1)}if(!h){for(;c<s.length-1&&e.node(u=s[c+1]).minRank<=i.rank;)c++;u=s[c]}e.setParent(t,u),t=e.successors(t)[0]}}))})(e)})),n("    addBorderSegments",(function(){!(function t(e){aTt.forEach(e.children(),(function t(n){var i=e.children(n),r=e.node(n);if(i.length&&aTt.forEach(i,t),aTt.has(r,"minRank")){r.borderLeft=[],r.borderRight=[];for(var o=r.minRank,a=r.maxRank+1;o<a;++o)cCt(e,"borderLeft","_bl",n,r,o),cCt(e,"borderRight","_br",n,r,o)}}))})(e)})),n("    order",(function(){!(function t(e){var n=gTt.maxRank(e),i=xCt(e,aTt.range(1,n+1),"inEdges"),r=xCt(e,aTt.range(n-1,-1,-1),"outEdges"),o=(function a(t){var e={},n=aTt.filter(t.nodes(),(function(e){return!t.children(e).length})),i=aTt.max(aTt.map(n,(function(e){return t.node(e).rank}))),r=aTt.map(aTt.range(i+1),(function(){return[]})),o=aTt.sortBy(n,(function(e){return t.node(e).rank}));return aTt.forEach(o,(function n(i){if(!aTt.has(e,i)){e[i]=!0;var o=t.node(i);r[o.rank].push(i),aTt.forEach(t.successors(i),n)}})),r})(e);SCt(e,o);for(var s,l=Number.POSITIVE_INFINITY,c=0,u=0;u<4;++c,++u){wCt(c%2?i:r,c%4>=2),o=gTt.buildLayerMatrix(e);var h=fCt(e,o);h<l&&(u=0,s=aTt.cloneDeep(o),l=h)}SCt(e,s)})(e)})),n("    insertSelfEdges",(function(){!(function t(e){var n=kCt.buildLayerMatrix(e);aTt.forEach(n,(function(t){var n=0;aTt.forEach(t,(function(t,i){var r=e.node(t);r.order=i+n,aTt.forEach(r.selfEdges,(function(t){kCt.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:r.rank,order:i+ ++n,e:t.e,label:t.label},"_se")})),delete r.selfEdges}))}))})(e)})),n("    adjustCoordinateSystem",(function(){!(function t(e){var n=e.graph().rankdir.toLowerCase();"lr"!==n&&"rl"!==n||uCt(e)})(e)})),n("    position",(function(){!(function t(e){(function n(t){var e=gTt.buildLayerMatrix(t),n=t.graph().ranksep,i=0;aTt.forEach(e,(function(e){var r=aTt.max(aTt.map(e,(function(e){return t.node(e).height})));aTt.forEach(e,(function(e){t.node(e).y=i+r/2})),i+=r+n}))})(e=gTt.asNonCompoundGraph(e)),aTt.forEach((function i(t){var e,n=gTt.buildLayerMatrix(t),i=aTt.merge((function r(t,e){var n={};return aTt.reduce(e,(function i(e,r){var o=0,a=0,s=e.length,l=aTt.last(r);return aTt.forEach(r,(function(e,i){var c=(function u(t,e){if(t.node(e).dummy)return aTt.find(t.predecessors(e),(function(e){return t.node(e).dummy}))})(t,e),h=c?t.node(c).order:s;(c||e===l)&&(aTt.forEach(r.slice(a,i+1),(function(e){aTt.forEach(t.predecessors(e),(function(i){var r=t.node(i),a=r.order;!(a<o||h<a)||r.dummy&&t.node(e).dummy||ECt(n,i,e)}))})),a=i+1,o=h)})),r})),n})(t,n),(function o(t,e){var n={};function i(e,i,r,o,a){var s;aTt.forEach(aTt.range(i,r),(function(i){t.node(s=e[i]).dummy&&aTt.forEach(t.predecessors(s),(function(e){var i=t.node(e);i.dummy&&(i.order<o||i.order>a)&&ECt(n,e,s)}))}))}return aTt.reduce(e,(function r(e,n){var r,o=-1,a=0;return aTt.forEach(n,(function(s,l){if("border"===t.node(s).dummy){var c=t.predecessors(s);c.length&&(r=t.node(c[0]).order,i(n,a,l,o,r),a=l,o=r)}i(n,a,n.length,r,e.length)})),n})),n})(t,n)),a={};aTt.forEach(["u","d"],(function(r){e="u"===r?n:aTt.values(n).reverse(),aTt.forEach(["l","r"],(function(n){"r"===n&&(e=aTt.map(e,(function(t){return aTt.values(t).reverse()})));var o=("u"===r?t.predecessors:t.successors).bind(t),s=(function l(t,e,n,i){var r={},o={},a={};return aTt.forEach(e,(function(t){aTt.forEach(t,(function(t,e){r[t]=t,o[t]=t,a[t]=e}))})),aTt.forEach(e,(function(t){var e=-1;aTt.forEach(t,(function(t){var s=i(t);if(s.length)for(var l=((s=aTt.sortBy(s,(function(t){return a[t]}))).length-1)/2,c=Math.floor(l),u=Math.ceil(l);c<=u;++c){var h=s[c];o[t]===t&&e<a[h]&&!TCt(n,t,h)&&(o[h]=t,o[t]=r[t]=r[h],e=a[h])}}))})),{root:r,align:o}})(0,e,i,o),c=(function u(t,e,n,i,r){var o={},a=(function s(t,e,n,i){var r=new MCt,o=t.graph(),a=(function s(t,e,n){return function(i,r,o){var a,s=i.node(r),l=i.node(o),c=0;if(c+=s.width/2,aTt.has(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":a=-s.width/2;break;case"r":a=s.width/2}if(a&&(c+=n?a:-a),a=0,c+=(s.dummy?e:t)/2,c+=(l.dummy?e:t)/2,c+=l.width/2,aTt.has(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":a=l.width/2;break;case"r":a=-l.width/2}return a&&(c+=n?a:-a),a=0,c}})(o.nodesep,o.edgesep,i);return aTt.forEach(e,(function(e){var i;aTt.forEach(e,(function(e){var o=n[e];if(r.setNode(o),i){var s=n[i],l=r.edge(s,o);r.setEdge(s,o,Math.max(a(t,e,i),l||0))}i=e}))})),r})(t,e,n,r),l=r?"borderLeft":"borderRight";function c(t,e){for(var n=a.nodes(),i=n.pop(),r={};i;)r[i]?t(i):(r[i]=!0,n.push(i),n=n.concat(e(i))),i=n.pop()}return c((function u(t){o[t]=a.inEdges(t).reduce((function(t,e){return Math.max(t,o[e.v]+a.edge(e))}),0)}),a.predecessors.bind(a)),c((function h(e){var n=a.outEdges(e).reduce((function(t,e){return Math.min(t,o[e.w]-a.edge(e))}),Number.POSITIVE_INFINITY),i=t.node(e);n!==Number.POSITIVE_INFINITY&&i.borderType!==l&&(o[e]=Math.max(o[e],n))}),a.successors.bind(a)),aTt.forEach(i,(function(t){o[t]=o[n[t]]})),o})(t,e,s.root,s.align,"r"===n);"r"===n&&(c=aTt.mapValues(c,(function(t){return-t}))),a[r+n]=c}))}));var s=(function l(t,e){return aTt.minBy(aTt.values(e),(function(e){var n=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return aTt.forIn(e,(function(e,r){var o=(function a(t,e){return t.node(e).width})(t,r)/2;n=Math.max(e+o,n),i=Math.min(e-o,i)})),n-i}))})(t,a);return(function c(t,e){var n=aTt.values(e),i=aTt.min(n),r=aTt.max(n);aTt.forEach(["u","d"],(function(n){aTt.forEach(["l","r"],(function(o){var a,s=n+o,l=t[s];if(l!==e){var c=aTt.values(l);(a="l"===o?i-aTt.min(c):r-aTt.max(c))&&(t[s]=aTt.mapValues(l,(function(t){return t+a})))}}))}))})(a,s),(function u(t,e){return aTt.mapValues(t.ul,(function(n,i){if(e)return t[e.toLowerCase()][i];var r=aTt.sortBy(aTt.map(t,i));return(r[1]+r[2])/2}))})(a,t.graph().align)})(e),(function(t,n){e.node(n).x=t}))})(e)})),n("    positionSelfEdges",(function(){!(function t(e){aTt.forEach(e.nodes(),(function(t){var n=e.node(t);if("selfedge"===n.dummy){var i=e.node(n.e.v),r=i.x+i.width/2,o=i.y,a=n.x-r,s=i.height/2;e.setEdge(n.e,n.label),e.removeNode(t),n.label.points=[{x:r+2*a/3,y:o-s},{x:r+5*a/6,y:o-s},{x:r+a,y:o},{x:r+5*a/6,y:o+s},{x:r+2*a/3,y:o+s}],n.label.x=n.x,n.label.y=n.y}}))})(e)})),n("    removeBorderNodes",(function(){!(function t(e){aTt.forEach(e.nodes(),(function(t){if(e.children(t).length){var n=e.node(t),i=e.node(n.borderTop),r=e.node(n.borderBottom),o=e.node(aTt.last(n.borderLeft)),a=e.node(aTt.last(n.borderRight));n.width=Math.abs(a.x-o.x),n.height=Math.abs(r.y-i.y),n.x=o.x+n.width/2,n.y=i.y+n.height/2}})),aTt.forEach(e.nodes(),(function(t){"border"===e.node(t).dummy&&e.removeNode(t)}))})(e)})),n("    normalize.undo",(function(){!(function t(e){aTt.forEach(e.graph().dummyChains,(function(t){var n,i=e.node(t),r=i.edgeLabel;for(e.setEdge(i.edgeObj,r);i.dummy;)n=e.successors(t)[0],e.removeNode(t),r.points.push({x:i.x,y:i.y}),"edge-label"===i.dummy&&(r.x=i.x,r.y=i.y,r.width=i.width,r.height=i.height),i=e.node(t=n)}))})(e)})),n("    fixupEdgeLabelCoords",(function(){!(function t(e){aTt.forEach(e.edges(),(function(t){var n=e.edge(t);if(aTt.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))})(e)})),n("    undoCoordinateSystem",(function(){!(function t(e){var n=e.graph().rankdir.toLowerCase();"bt"!==n&&"rl"!==n||(function i(t){aTt.forEach(t.nodes(),(function(e){dCt(t.node(e))})),aTt.forEach(t.edges(),(function(e){var n=t.edge(e);aTt.forEach(n.points,dCt),aTt.has(n,"y")&&dCt(n)}))})(e),"lr"!==n&&"rl"!==n||((function r(t){aTt.forEach(t.nodes(),(function(e){pCt(t.node(e))})),aTt.forEach(t.edges(),(function(e){var n=t.edge(e);aTt.forEach(n.points,pCt),aTt.has(n,"x")&&pCt(n)}))})(e),uCt(e))})(e)})),n("    translateGraph",(function(){!(function t(e){var n=Number.POSITIVE_INFINITY,i=0,r=Number.POSITIVE_INFINITY,o=0,a=e.graph(),s=a.marginx||0,l=a.marginy||0;function c(t){var e=t.x,a=t.y,s=t.width,l=t.height;n=Math.min(n,e-s/2),i=Math.max(i,e+s/2),r=Math.min(r,a-l/2),o=Math.max(o,a+l/2)}aTt.forEach(e.nodes(),(function(t){c(e.node(t))})),aTt.forEach(e.edges(),(function(t){var n=e.edge(t);aTt.has(n,"x")&&c(n)})),n-=s,r-=l,aTt.forEach(e.nodes(),(function(t){var i=e.node(t);i.x-=n,i.y-=r})),aTt.forEach(e.edges(),(function(t){var i=e.edge(t);aTt.forEach(i.points,(function(t){t.x-=n,t.y-=r})),aTt.has(i,"x")&&(i.x-=n),aTt.has(i,"y")&&(i.y-=r)})),a.width=i-n+s,a.height=o-r+l})(e)})),n("    assignNodeIntersects",(function(){!(function t(e){aTt.forEach(e.edges(),(function(t){var n,i,r=e.edge(t),o=e.node(t.v),a=e.node(t.w);r.points?(n=r.points[0],i=r.points[r.points.length-1]):(r.points=[],n=a,i=o),r.points.unshift(kCt.intersectRect(o,n)),r.points.push(kCt.intersectRect(a,i))}))})(e)})),n("    reversePoints",(function(){!(function t(e){aTt.forEach(e.edges(),(function(t){var n=e.edge(t);n.reversed&&n.points.reverse()}))})(e)})),n("    acyclic.undo",(function(){!(function t(e){aTt.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.reversed){e.removeEdge(t);var i=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,i)}}))})(e)}))})(e,n)})),n("  updateInputGraph",(function(){!(function n(t,e){aTt.forEach(t.nodes(),(function(n){var i=t.node(n),r=e.node(n);i&&(i.x=r.x,i.y=r.y,e.children(n).length&&(i.width=r.width,i.height=r.height))})),aTt.forEach(t.edges(),(function(n){var i=t.edge(n),r=e.edge(n);i.points=r.points,aTt.has(r,"x")&&(i.x=r.x,i.y=r.y)})),t.graph().width=e.graph().width,t.graph().height=e.graph().height})(t,e)}))}))},debug:{debugOrdering:function qCt(t){var e=gTt.buildLayerMatrix(t),n=new jCt({compound:!0,multigraph:!0}).setGraph({});return aTt.forEach(t.nodes(),(function(e){n.setNode(e,{label:e}),n.setParent(e,"layer"+t.node(e).rank)})),aTt.forEach(t.edges(),(function(t){n.setEdge(t.v,t.w,{},t.name)})),aTt.forEach(e,(function(t,e){n.setNode("layer"+e,{rank:"same"}),aTt.reduce(t,(function(t,e){return n.setEdge(t,e,{style:"invis"}),e}))})),n}},util:{time:gTt.time,notime:gTt.notime},version:"0.8.5"};!(function(t){t.FETCH_PBTXT_BYTES="FETCH_PBTXT_BYTES",t.FETCH_PBTXT_BYTES_FROM_FILESYSTEM="FETCH_PBTXT_BYTES_FROM_FILESYSTEM",t.FETCH_PBTXT_BYTES_FROM_SERVER="FETCH_PBTXT_BYTES_FROM_SERVER",t.PARSE_PBTXT_INTO_OBJECT="PARSE_PBTXT_INTO_OBJECT",t.FETCH_METADATA_PBTXT_BYTES="FETCH_METADATA_PBTXT_BYTES",t.PARSE_METADATA_PBTXT_INTO_OBJECT="PARSE_METADATA_PBTXT_INTO_OBJECT",t.NORMALIZING_NAMES="NORMALIZING_NAMES",t.BUILD_SLIM_GRAPH="BUILD_SLIM_GRAPH",t.HIERARCHY_ADD_NODES="HIERARCHY_ADD_NODES",t.HIERARCHY_DETECT_SERIES="HIERARCHY_DETECT_SERIES",t.HIERARCHY_ADD_EDGES="HIERARCHY_ADD_EDGES",t.HIERARCHY_FIND_SIMILAR_SUBGRAPHS="HIERARCHY_FIND_SIMILAR_SUBGRAPHS",t.RENDER_BUILD_HIERARCHY="RENDER_BUILD_HIERARCHY",t.RENDER_SCENE_LAYOUT="RENDER_SCENE_LAYOUT",t.RENDER_SCENE_BUILD_SCENE="RENDER_SCENE_BUILD_SCENE",t.GRAPH_LOAD_SUCCEEDED="GRAPH_LOAD_SUCCEEDED",t.GRAPH_LOAD_FAILED="GRAPH_LOAD_FAILED"})(VCt||(VCt={})),(function(t){t.NODE_EXPANSION_TOGGLED="NODE_EXPANSION_TOGGLED",t.NODE_SEARCH_RESULT_FOCUSED="NODE_SEARCH_RESULT_FOCUSED",t.NODE_AUXILIARY_EXTRACTION_CHANGED="NODE_AUXILIARY_EXTRACTION_CHANGED",t.GRAPH_TYPE_CHANGED="GRAPH_TYPE_CHANGED",t.TRACE_INPUT_MODE_TOGGLED="TRACE_INPUT_MODE_TOGGLED",t.NODE_COLOR_MODE_CHANGED="NODE_COLOR_MODE_CHANGED",t.UPLOADED_GRAPH_FROM_FILESYSTEM="UPLOADED_GRAPH_FROM_FILESYSTEM"})(UCt||(UCt={}));const YCt=Object.assign(Object.assign({},VCt),UCt);var XCt;!(function(t){t.OP_GRAPH="op_graph",t.CONCEPTUAL_GRAPH="conceptual_graph",t.PROFILE="profile"})(XCt||(XCt={}));let $Ct={Node:{CONTAINER:"nodes",GROUP:"node",SHAPE:"nodeshape",COLOR_TARGET:"nodecolortarget",LABEL:"nodelabel",BUTTON_CONTAINER:"buttoncontainer",BUTTON_CIRCLE:"buttoncircle",EXPAND_BUTTON:"expandbutton",COLLAPSE_BUTTON:"collapsebutton"},Edge:{CONTAINER:"edges",GROUP:"edge",LINE:"edgeline",REFERENCE_EDGE:"referenceedge",REF_LINE:"refline",SELECTABLE:"selectableedge",SELECTED:"selectededge",STRUCTURAL:"structural"},Annotation:{OUTBOX:"out-annotations",INBOX:"in-annotations",GROUP:"annotation",NODE:"annotation-node",EDGE:"annotation-edge",CONTROL_EDGE:"annotation-control-edge",LABEL:"annotation-label",ELLIPSIS:"annotation-ellipsis"},Scene:{GROUP:"scene",CORE:"core",FUNCTION_LIBRARY:"function-library",INEXTRACT:"in-extract",OUTEXTRACT:"out-extract"},Subscene:{GROUP:"subscene"},OPNODE:"op",METANODE:"meta",SERIESNODE:"series",BRIDGENODE:"bridge",ELLIPSISNODE:"ellipsis"};const KCt="http://www.w3.org/2000/svg";function ZCt(t,e,n){let i=t.node().childNodes;for(let t=0;t<i.length;t++){let r=i[t];if(r.tagName===e)if(n instanceof Array){let t=!0;for(let e=0;e<n.length;e++)t=t&&r.classList.contains(n[e]);if(t)return wu(r)}else if(!n||r.classList.contains(n))return wu(r)}return wu(null)}function JCt(t,e,n,i){let r=ZCt(t,e,n);if(!r.empty())return r;let o=document.createElementNS("http://www.w3.org/2000/svg",e);if(n instanceof Array)for(let t=0;t<n.length;t++)o.classList.add(n[t]);else o.classList.add(n);return i?t.node().insertBefore(o,i):t.node().appendChild(o),wu(o).datum(t.datum())}class QCt{constructor(t){this.totalBytes=0,this.outputSize=t}addExecutionTime(t,e){this.startTime=null!=this.startTime?Math.min(this.startTime,t):t,this.endTime=null!=this.endTime?Math.max(this.endTime,e):e}addBytesAllocation(t){this.totalBytes=null!=this.totalBytes?Math.max(this.totalBytes,t):t}combine(t){null!=t.totalBytes&&(this.totalBytes+=t.totalBytes),null!=t.getTotalMicros()&&this.addExecutionTime(t.startTime,t.endTime)}getTotalMicros(){return null==this.startTime||null==this.endTime?null:this.endTime-this.startTime}}const tAt=.75,eAt=tE().exponent(.3).domain([1,5e6]).range([tAt,12]).clamp(!0);function nAt(t){!(function e(t){t.hasOwnProperty("timingId")})(t)}function iAt(t,e,n){let i=Date.now(),r=e();const o=Date.now()-i;return console.log(t,":",o,"ms"),n&&nAt({timingId:n,eventValue:o}),r}function rAt(t){return{setMessage:function(e){t.set("progress",{value:t.progress.value,msg:e})},updateProgress:function(e){t.set("progress",{value:t.progress.value+e,msg:t.progress.msg})},reportError:function(e,n){console.error(n.stack),t.set("progress",{value:t.progress.value,msg:e,error:!0})}}}function oAt(t,e,n){return{setMessage:function(e){t.setMessage(n+": "+e)},updateProgress:function(n){t.updateProgress(n*e/100)},reportError:function(e,i){t.reportError(n+": "+e,i)}}}function aAt(t,e,n,i,r){return new Promise(((o,a)=>{i.setMessage(t),setTimeout((function(){try{let a=iAt(t,n,r);i.updateProgress(e),o(a)}catch(e){i.reportError("Failed "+t,e)}}),20)}))}function sAt(t,e,n,i,r){return new Promise(((o,a)=>{let s=function(e){i.reportError("Failed "+t,e),a(e)};i.setMessage(t),setTimeout((function(){try{let a=Date.now();n().then((function(n){const s=Date.now()-a;console.log(t,":",s,"ms"),i.updateProgress(e),nAt({timingId:r,eventValue:s}),o(n)})).catch(s)}catch(t){s(t)}}),20)}))}const lAt=[{symbol:"B"},{symbol:"KB",numUnits:1024},{symbol:"MB",numUnits:1024},{symbol:"GB",numUnits:1024},{symbol:"TB",numUnits:1024},{symbol:"PB",numUnits:1024}],cAt=[{symbol:"µs"},{symbol:"ms",numUnits:1e3},{symbol:"s",numUnits:1e3},{symbol:"min",numUnits:60},{symbol:"hr",numUnits:60},{symbol:"days",numUnits:24}];function uAt(t,e,n=0){return n+1<e.length&&t>=e[n+1].numUnits?uAt(t/e[n+1].numUnits,e,n+1):Number(t.toPrecision(3))+" "+e[n].symbol}function hAt(t){return!(!t||!(t.totalBytes>0||t.getTotalMicros()>0||t.outputSize))}function dAt(t){if(t.length<2)return t;let e=0,n=0,i=we.min(we.map(t,(t=>t.length)));for(;;){e++;let r=we.map(t,(t=>t.substring(0,e)));if(!r.every(((t,e)=>0===e||t===r[e-1])))break;if(e>=i)return t;n=e}return we.map(t,(t=>t.substring(n)))}const pAt=document.createElement("canvas").getContext("2d");function fAt(t,e){return pAt.font=`${e}px Roboto, sans-serif`,pAt.measureText(t).width}const mAt="/",gAt="__root__",_At="__function_library__";var yAt,vAt,bAt,xAt;!(function(t){t[t.FULL=0]="FULL",t[t.EMBEDDED=1]="EMBEDDED",t[t.META=2]="META",t[t.SERIES=3]="SERIES",t[t.CORE=4]="CORE",t[t.SHADOW=5]="SHADOW",t[t.BRIDGE=6]="BRIDGE",t[t.EDGE=7]="EDGE"})(yAt||(yAt={})),(function(t){t[t.META=0]="META",t[t.OP=1]="OP",t[t.SERIES=2]="SERIES",t[t.BRIDGE=3]="BRIDGE",t[t.ELLIPSIS=4]="ELLIPSIS"})(vAt||(vAt={})),(function(t){t[t.INCLUDE=0]="INCLUDE",t[t.EXCLUDE=1]="EXCLUDE",t[t.UNSPECIFIED=2]="UNSPECIFIED"})(bAt||(bAt={})),(function(t){t[t.GROUP=0]="GROUP",t[t.UNGROUP=1]="UNGROUP"})(xAt||(xAt={}));class wAt{constructor(){this.nodes={},this.edges=[]}}class SAt{constructor(t){this.type=vAt.ELLIPSIS,this.isGroupNode=!1,this.cardinality=1,this.parentNode=null,this.stats=null,this.setNumMoreNodes(t),this.include=bAt.UNSPECIFIED}setNumMoreNodes(t){this.numMoreNodes=t,this.name="... "+t+" more"}}class MAt{constructor(t){this.op=t.op,this.name=t.name,this.device=t.device,this.attr=t.attr,this.inputs=(function e(t){const e=[];let n=null;for(let i of t||[]){const t=i.startsWith("^");t&&(i=i.substring(1));let r=i,o="0";const a=i.includes(":")&&i.match(NAt);a&&(r=a[1],o=a[2]),n!==r&&(n=r,e.push({name:r,outputTensorKey:o,isControlDependency:t}))}return e})(t.input),this.outputShapes=(function n(t){if(!t)return null;for(let e=0;e<t.length;e++){let{key:n,value:i}=t[e];if("_output_shapes"===n){if(!i.list||!i.list.shape)return null;let n=i.list.shape.map((t=>t.unknown_rank?null:null==t.dim||1===t.dim.length&&null==t.dim[0].size?[]:t.dim.map((t=>t.size))));return t.splice(e,1),n}}return null})(t.attr),this.xlaCluster=(function i(t){if(!t)return null;for(let e=0;e<t.length;e++)if("_XlaCluster"===t[e].key)return t[e].value.s||null;return null})(t.attr),this.compatible=!1,this.type=vAt.OP,this.isGroupNode=!1,this.cardinality=1,this.inEmbeddings=[],this.outEmbeddings=[],this.parentNode=null,this.include=bAt.UNSPECIFIED,this.owningSeries=null}}function EAt(t,e={}){return new TAt(t,e)}class TAt{constructor(t,e={}){this.name=t,this.type=vAt.META,this.depth=1,this.isGroupNode=!0,this.cardinality=0,this.metagraph=RAt(t,yAt.META,e),this.bridgegraph=null,this.opHistogram={},this.deviceHistogram={},this.xlaClusterHistogram={},this.compatibilityHistogram={compatible:0,incompatible:0},this.templateId=null,this.parentNode=null,this.hasNonControlEdges=!1,this.include=bAt.UNSPECIFIED,this.associatedFunction=""}getFirstChild(){return this.metagraph.node(this.metagraph.nodes()[0])}getRootOp(){let t=this.name.split("/");return this.metagraph.node(this.name+"/("+t[t.length-1]+")")}leaves(){let t,e=[],n=[this];for(;n.length;){let i=n.shift();i.isGroupNode?(t=i.metagraph,we.each(t.nodes(),(e=>n.push(t.node(e))))):e.push(i.name)}return e}}function CAt(t,e){return new AAt(t,e)}class AAt{constructor(t,e){this.v=t,this.w=e,this.baseEdgeList=[],this.inbound=null,this.numRegularEdges=0,this.numControlEdges=0,this.numRefEdges=0,this.totalSize=0}addBaseEdge(t,e){this.baseEdgeList.push(t),t.isControlDependency?this.numControlEdges+=1:this.numRegularEdges+=1,t.isReferenceEdge&&(this.numRefEdges+=1),this.totalSize+=AAt.computeSizeOfEdge(t,e),e.maxMetaEdgeSize=Math.max(e.maxMetaEdgeSize,this.totalSize)}static computeSizeOfEdge(t,e){let n=e.node(t.v);if(!n.outputShapes)return 1;e.hasShapeInfo=!0;const i=Object.keys(n.outputShapes).map((t=>n.outputShapes[t])).map((t=>null==t?1:t.reduce(((t,e)=>(-1===e&&(e=1),t*e)),1)));return we.sum(i)}}function kAt(t,e,n,i,r,o){return new PAt(t,e,n,i,r,o)}function LAt(t,e,n,i,r){return(n?n+"/":"")+t+(void 0!==i&&void 0!==r?"["+i+"-"+r+"]":"#")+e}class PAt{constructor(t,e,n,i,r,o){this.name=r||LAt(t,e,n),this.type=vAt.SERIES,this.hasLoop=!1,this.prefix=t,this.suffix=e,this.clusterId=i,this.ids=[],this.parent=n,this.isGroupNode=!0,this.cardinality=0,this.metagraph=RAt(r,yAt.SERIES,o),this.bridgegraph=null,this.parentNode=null,this.deviceHistogram={},this.xlaClusterHistogram={},this.compatibilityHistogram={compatible:0,incompatible:0},this.hasNonControlEdges=!1,this.include=bAt.UNSPECIFIED}}const NAt=/^([^:]+):((\w+:|)\d+)$/;function IAt(t,e,n,i,r,o){e!==n.name&&t.edges.push({v:e,w:n.name,outputTensorKey:i.outputTensorKey,isControlDependency:i.isControlDependency,isReferenceEdge:!0===r.refEdges[n.op+" "+o]})}const OAt={enableEmbedding:!0,inEmbeddingTypes:["Const"],outEmbeddingTypes:["^[a-zA-Z]+Summary$"],refEdges:{"Assign 0":!0,"AssignAdd 0":!0,"AssignSub 0":!0,"assign 0":!0,"assign_add 0":!0,"assign_sub 0":!0,"count_up_to 0":!0,"ScatterAdd 0":!0,"ScatterSub 0":!0,"ScatterUpdate 0":!0,"scatter_add 0":!0,"scatter_sub 0":!0,"scatter_update 0":!0}};function RAt(t,e,n={}){const i=new GCt.graphlib.Graph(n);return i.setGraph({name:t,rankdir:n.rankdir||"BT",type:e}),i}function zAt(t){return function(e){for(let n=0;n<t.length;n++){let i=new RegExp(t[n]);if("string"==typeof e.op&&e.op.match(i))return!0}return!1}}function DAt(t){let e=t.split(mAt);return t+mAt+"("+e[e.length-1]+")"}function BAt(t){let e=t.nodes().map((function(e){return t.neighbors(e).length}));return e.sort(),e}function HAt(t,e){let n=[],i=t.indexOf(mAt);for(;i>=0;)n.push(t.substring(0,i)),i=t.indexOf(mAt,i+1);if(e){let i=e[t];i&&n.push(i)}return n.push(t),n}function FAt(t){return t===bAt.EXCLUDE?"Add to main graph":"Remove from main graph"}let VAt="#0f9d58",UAt="#db4437",jAt={DEFAULT_FILL:"#d9d9d9",DEFAULT_STROKE:"#a6a6a6",SATURATION:.6,LIGHTNESS:.85,EXPANDED_COLOR:"#f0f0f0",HUES:[220,100,180,40,20,340,260,300,140,60],STRUCTURE_PALETTE(t,e){let n=jAt.HUES,i=n[t%n.length],r=Math.sin(i*Math.PI/360);return Xh(i,.01*(e?30:90-60*r),.01*(e?95:80)).toString()},DEVICE_PALETTE:t=>jAt.STRUCTURE_PALETTE(t),XLA_CLUSTER_PALETTE:t=>jAt.STRUCTURE_PALETTE(t),UNKNOWN:"#eee",GRADIENT_OUTLINE:"#888"};const GAt=["NoOp"],WAt=[],qAt=["#fff5f0","#fb6a4a"],YAt=new RegExp("^(?:__function_library__)?(\\w+)_[a-z0-9]{8}(?:_\\d+)?$");class XAt{constructor(t,e,n){this.hierarchy=t,this.displayingStats=e,this.autoExtractNodes=n,this.index={},this.renderedOpNames=[],this.computeScales(),this.hasSubhierarchy={},this.root=new nkt(t.root,t.graphOptions),this.index[t.root.name]=this.root,this.renderedOpNames.push(t.root.name),this.buildSubhierarchy(t.root.name),this.root.expanded=!0,this.traceInputs=!1}computeScales(){this.deviceColorMap=xM().domain(this.hierarchy.devices).range(we.map(Rl(this.hierarchy.devices.length),jAt.DEVICE_PALETTE)),this.xlaClusterColorMap=xM().domain(this.hierarchy.xlaClusters).range(we.map(Rl(this.hierarchy.xlaClusters.length),jAt.XLA_CLUSTER_PALETTE));let t=this.hierarchy.root.metagraph,e=Gl(t.nodes(),((e,n)=>{let i=t.node(e);if(null!=i.stats)return i.stats.totalBytes}));this.memoryUsageScale=DM().domain([0,e]).range(qAt);let n=Gl(t.nodes(),((e,n)=>{let i=t.node(e);if(null!=i.stats)return i.stats.getTotalMicros()}));this.computeTimeScale=DM().domain([0,n]).range(qAt),this.edgeWidthSizedBasedScale=this.hierarchy.hasShapeInfo?eAt:DM().domain([1,this.hierarchy.maxMetaEdgeSize]).range([tAt,12])}getRenderNodeByName(t){return this.index[t]}getNodeByName(t){return this.hierarchy.node(t)}colorHistogram(t,e){if(Object.keys(t).length>0){const n=we.sum(Object.keys(t).map((e=>t[e])));return Object.keys(t).map((i=>({color:e(i),proportion:t[i]/n})))}return null}getOrCreateRenderNodeByName(t){if(!t)return null;if(t in this.index)return this.index[t];let e=this.hierarchy.node(t);if(!e)return null;let n=e.isGroupNode?new nkt(e,this.hierarchy.graphOptions):new JAt(e);this.index[t]=n,this.renderedOpNames.push(t),e.stats&&(n.memoryColor=this.memoryUsageScale(e.stats.totalBytes),n.computeTimeColor=this.computeTimeScale(e.stats.getTotalMicros())),n.isFadedOut=this.displayingStats&&!hAt(e.stats);var i=null,r=null,o=null;if(e.isGroupNode){i=e.deviceHistogram,r=e.xlaClusterHistogram;let t=e.compatibilityHistogram.compatible,n=e.compatibilityHistogram.incompatible;0==t&&0==n||(o=t/(t+n))}else{let t=n.node.device;t&&(i={[t]:1});let e=n.node.xlaCluster;e&&(r={[e]:1}),n.node.type===vAt.OP&&(o=n.node.compatible?1:0)}return i&&(n.deviceColors=this.colorHistogram(i,this.deviceColorMap)),r&&(n.xlaClusterColors=this.colorHistogram(r,this.xlaClusterColorMap)),null!=o&&(n.compatibilityColors=[{color:VAt,proportion:o},{color:UAt,proportion:1-o}]),this.index[t]}getNearestVisibleAncestor(t){let e=HAt(t),n=0,i=null,r=t;for(;n<e.length&&(r=e[n],i=this.getRenderNodeByName(r),i.expanded);n++);if(n==e.length-2){let t=e[n+1];if(i.inAnnotations.nodeNames[t])return t;if(i.outAnnotations.nodeNames[t])return t}return r}setDepth(t){ikt(this.root,+t)}isNodeAuxiliary(t){let e=this.getRenderNodeByName(t.node.parentNode.name),n=we.find(e.isolatedInExtract,(e=>e.node.name===t.node.name));return!!n||(n=we.find(e.isolatedOutExtract,(e=>e.node.name===t.node.name)),!!n)}getNamesOfRenderedOps(){return this.renderedOpNames}cloneAndAddFunctionOpNode(t,e,n,i){const r=n.name.replace(e,i);let o=t.metagraph.node(r);if(o)return o;o=new MAt({name:r,input:[],device:n.device,op:n.op,attr:we.cloneDeep(n.attr)}),o.cardinality=n.cardinality,o.include=n.include,o.outputShapes=we.cloneDeep(n.outputShapes),o.xlaCluster=n.xlaCluster,o.functionInputIndex=n.functionInputIndex,o.functionOutputIndex=n.functionOutputIndex,o.inputs=n.inputs.map((t=>{const n=we.clone(t);return n.name=t.name.replace(e,i),n})),o.parentNode=t,t.metagraph.setNode(o.name,o),this.hierarchy.setNode(o.name,o);const a=n=>this.cloneAndAddFunctionOpNode(t,e,n,i);return o.inEmbeddings=n.inEmbeddings.map(a),o.outEmbeddings=n.outEmbeddings.map(a),o}cloneFunctionLibraryMetanode(t,e,n,i,r){const o={},a=this.cloneFunctionLibraryMetanodeHelper(t,e,n,i,r,o);return we.isEmpty(o)||this.patchEdgesFromFunctionOutputs(e,o),a}cloneFunctionLibraryMetanodeHelper(t,e,n,i,r,o){const a=EAt(n.name.replace(i,r));return a.depth=n.depth,a.cardinality=n.cardinality,a.templateId=n.templateId,a.opHistogram=we.clone(n.opHistogram),a.deviceHistogram=we.clone(n.deviceHistogram),a.xlaClusterHistogram=we.clone(n.xlaClusterHistogram),a.hasNonControlEdges=n.hasNonControlEdges,a.include=n.include,a.nodeAttributes=we.clone(n.nodeAttributes),a.associatedFunction=n.associatedFunction,we.each(n.metagraph.nodes(),(s=>{const l=n.metagraph.node(s);switch(l.type){case vAt.META:const n=this.cloneFunctionLibraryMetanodeHelper(t,e,l,i,r,o);n.parentNode=a,a.metagraph.setNode(n.name,n),this.hierarchy.setNode(n.name,n);break;case vAt.OP:const s=this.cloneAndAddFunctionOpNode(a,i,l,r);we.isNumber(s.functionInputIndex)&&this.patchEdgesIntoFunctionInputs(e,s),we.isNumber(s.functionOutputIndex)&&(o[s.functionOutputIndex]=s);break;default:console.warn(l.name+" is oddly neither a metanode nor an opnode.")}})),this.cloneLibraryMetanodeEdges(n,a,i,r),a}cloneLibraryMetanodeEdges(t,e,n,i){we.each(t.metagraph.edges(),(r=>{const o=t.metagraph.edge(r),a=o.v.replace(n,i),s=o.w.replace(n,i),l=new AAt(a,s);l.inbound=o.inbound,l.numRegularEdges=o.numRegularEdges,l.numControlEdges=o.numControlEdges,l.numRefEdges=o.numRefEdges,l.totalSize=o.totalSize,o.baseEdgeList&&(l.baseEdgeList=o.baseEdgeList.map((t=>{const e=we.clone(t);return e.v=t.v.replace(n,i),e.w=t.w.replace(n,i),e}))),e.metagraph.node(s)?e.metagraph.setEdge(a,s,l):e.metagraph.setEdge(s,a,l)}))}patchEdgesIntoFunctionInputs(t,e){let n=Math.min(e.functionInputIndex,t.inputs.length-1),i=we.clone(t.inputs[n]);for(;i.isControlDependency;)n++,i=t.inputs[n];e.inputs.push(i);const r=this.hierarchy.getPredecessors(t.name);let o,a=0;we.each(r.regular,(t=>{if(a+=t.numRegularEdges,a>n)return o=t,!1})),we.each(o.baseEdgeList,(n=>{n.w===t.name&&(n.w=e.name),n.v===t.name&&(n.v=e.name)}))}patchEdgesFromFunctionOutputs(t,e){const n=this.hierarchy.getSuccessors(t.name);we.each(n.regular,(n=>{we.each(n.baseEdgeList,(n=>{const i=this.hierarchy.node(n.w);we.each(i.inputs,(i=>{i.name===t.name&&(i.name=e[i.outputTensorKey].name,i.outputTensorKey=n.outputTensorKey)}))})),we.each(n.baseEdgeList,(t=>{t.v=e[t.outputTensorKey].name,t.outputTensorKey="0"}))}))}buildSubhierarchy(t){if(t in this.hasSubhierarchy)return;this.hasSubhierarchy[t]=!0;let e=this.index[t];if(e.node.type!==vAt.META&&e.node.type!==vAt.SERIES)return;let n=e,i=n.node.metagraph,r=n.coreGraph;const o=[],a=[];we.isEmpty(this.hierarchy.libraryFunctions)||(we.each(i.nodes(),(t=>{const e=i.node(t),n=this.hierarchy.libraryFunctions[e.op];if(!n)return;if(0===t.indexOf(_At))return;const r=this.cloneFunctionLibraryMetanode(i,e,n.node,n.node.name,e.name);o.push(e),a.push(r)})),we.each(a,((t,e)=>{const n=o[e];t.parentNode=n.parentNode,i.setNode(n.name,t),this.hierarchy.setNode(n.name,t)}))),we.each(i.nodes(),(t=>{let e=this.getOrCreateRenderNodeByName(t),n=e.node;r.setNode(t,e),n.isGroupNode||(we.each(n.inEmbeddings,(t=>{let n=new QAt(null),i=new JAt(t);tkt(e,t,i,n,KAt.CONSTANT),this.index[t.name]=i})),we.each(n.outEmbeddings,(t=>{let n=new QAt(null),i=new JAt(t);ekt(e,t,i,n,KAt.SUMMARY),this.index[t.name]=i})))})),we.each(i.edges(),(t=>{let e=i.edge(t),n=new QAt(e);n.isFadedOut=this.index[t.v].isFadedOut||this.index[t.w].isFadedOut,r.setEdge(t.v,t.w,n)})),n.node.type===vAt.META&&(function s(t,e){(function n(t){let e=t.coreGraph;we.each(e.nodes(),(n=>{e.node(n).node.include!==bAt.EXCLUDE||n.startsWith(_At)||(t.coreGraph.outEdges(n).length>t.coreGraph.inEdges(n).length?okt(t,n):akt(t,n))}))})(t),GAt.length&&(function i(t){let e=t.coreGraph;we.each(e.nodes(),(n=>{let i=e.node(n);i.node.include===bAt.UNSPECIFIED&&skt(i.node,GAt)&&okt(t,n)}))})(t),WAt.length&&(function r(t){let e=t.coreGraph;we.each(e.nodes(),(n=>{let i=e.node(n);i.node.include===bAt.UNSPECIFIED&&skt(i.node,WAt)&&akt(t,n)}))})(t),e&&(function o(t){let e=t.coreGraph,n={},i={},r=0;if(we.each(e.nodes(),(t=>{if(e.node(t).node.include!==bAt.UNSPECIFIED)return;let o=we.reduce(e.predecessors(t),((n,i)=>n+(e.edge(i,t).metaedge.numRegularEdges?1:0)),0);0===o&&e.predecessors(t).length>0&&(o=e.predecessors(t).length);let a=we.reduce(e.successors(t),((n,i)=>n+(e.edge(t,i).metaedge.numRegularEdges?1:0)),0);0===a&&e.successors(t).length>0&&(a=e.successors(t).length),n[t]=o,i[t]=a,r++})),r<15)return;let o=Math.round(.75*r),a=Math.round(.25*r),s=Object.keys(n).sort(((t,e)=>n[t]-n[e])),l=n[s[o]],c=l+l-n[s[a]];c=Math.max(c,4);for(let e=r-1;n[s[e]]>c;e--)akt(t,s[e]);let u=Object.keys(i).sort(((t,e)=>i[t]-i[e])),h=i[u[o]],d=h+4*(h-i[u[a]]);d=Math.max(d,4);for(let n=r-1;i[u[n]]>d;n--){let i=e.node(u[n]);i&&!i.isInExtract&&okt(t,u[n])}})(t),(function a(t){let e=t.coreGraph,n={};we.each(e.edges(),(t=>{e.edge(t).metaedge.numRegularEdges||((n[t.v]=n[t.v]||[]).push(t),(n[t.w]=n[t.w]||[]).push(t))})),we.each(n,((t,n)=>{t.length>4&&we.each(t,(t=>rkt(e,t.v,t.w)))}))})(t);let s=t.coreGraph;we.each(s.nodes(),(e=>{let n=s.node(e),i=s.neighbors(e).length;if(n.node.include===bAt.UNSPECIFIED&&0===i){let i=n.outAnnotations.list.length>0,r=n.inAnnotations.list.length>0;n.isInExtract?(t.isolatedInExtract.push(n),n.node.include=bAt.EXCLUDE,s.removeNode(e)):n.isOutExtract?(t.isolatedOutExtract.push(n),n.node.include=bAt.EXCLUDE,s.removeNode(e)):i&&!r?(n.isInExtract=!0,t.isolatedInExtract.push(n),n.node.include=bAt.EXCLUDE,s.removeNode(e)):r&&!i&&(n.isOutExtract=!0,t.isolatedOutExtract.push(n),n.node.include=bAt.EXCLUDE,s.removeNode(e))}}))})(n,this.autoExtractNodes),we.isEmpty(this.hierarchy.libraryFunctions)||this.buildSubhierarchiesForNeededFunctions(i),t===gAt&&we.forOwn(this.hierarchy.libraryFunctions,((t,e)=>{const i=t.node,o=this.getOrCreateRenderNodeByName(i.name);n.libraryFunctionsExtract.push(o),o.node.include=bAt.EXCLUDE,r.removeNode(i.name)}));let l=n.node.parentNode;if(!l)return;let c=this.index[l.name],u=(t,...e)=>e.concat([t?"IN":"OUT"]).join("~~"),h=this.hierarchy.getBridgegraph(t),d={in:{},out:{},control:{}};we.each(h.edges(),(t=>{let e=!!i.node(t.w),n=e?t.v:t.w;h.edge(t).numRegularEdges?e?d.out[n]=(d.out[n]||0)+1:d.in[n]=(d.in[n]||0)+1:d.control[n]=(d.control[n]||0)+1}));let p=this.hierarchy.getNodeMap();we.each(h.edges(),(n=>{let o=h.edge(n),a=!!i.node(n.w),[s,f]=a?[n.w,n.v]:[n.v,n.w],m=this.index[s],g=this.index[f],_=g?g.node:p[f],y=!o.numRegularEdges&&d.control[f]>4,[,v]=a?[e.inAnnotations,m.inAnnotations]:[e.outAnnotations,m.outAnnotations],b=null,x=!1;if(!((a?d.out:d.in)[f]>4)&&!y&&m.isInCore()){let e=e=>c.coreGraph.edge(a?{v:e,w:t}:{v:t,w:e});b=e(f),b||(b=e(u(a,f,l.name))),x=!!b}let w=!1;if(b&&!o.numRegularEdges){let t=b,e=c.node;for(;t.adjoiningMetaedge;)t=t.adjoiningMetaedge,e=e.parentNode;let n=this.hierarchy.getTopologicalOrdering(e.name),i=t.metaedge;w=n[i.v]>n[i.w]}if(x=x&&!w,!x)return void v.push(new $At(_,g,new QAt(o),KAt.SHORTCUT,a));let S=u(a,t),M=u(a,f,t),E=r.node(M);if(!E){let t=r.node(S);t||(t=new JAt({name:S,type:vAt.BRIDGE,isGroupNode:!1,cardinality:0,parentNode:null,stats:null,include:bAt.UNSPECIFIED,inbound:a,nodeAttributes:{}}),this.index[S]=t,r.setNode(S,t)),E=new JAt({name:M,type:vAt.BRIDGE,isGroupNode:!1,cardinality:1,parentNode:null,stats:null,include:bAt.UNSPECIFIED,inbound:a,nodeAttributes:{}}),this.index[M]=E,r.setNode(M,E),r.setParent(M,S),t.node.cardinality++}let T=new QAt(o);T.adjoiningMetaedge=b,a?r.setEdge(M,s,T):r.setEdge(s,M,T)})),we.each([!0,!1],(e=>{let n=u(e,t),i=r.node(n);i&&we.each(r.nodes(),(o=>{if(r.node(o).node.type===vAt.BRIDGE)return;if(!(e?!r.predecessors(o).length:!r.successors(o).length))return;let a=u(e,t,"STRUCTURAL_TARGET"),s=r.node(a);s||(s=new JAt({name:a,type:vAt.BRIDGE,isGroupNode:!1,cardinality:1,parentNode:null,stats:null,include:bAt.UNSPECIFIED,inbound:e,nodeAttributes:{}}),s.structural=!0,this.index[a]=s,r.setNode(a,s),i.node.cardinality++,r.setParent(a,n));let l=new QAt(null);l.structural=!0,l.weight--,e?r.setEdge(a,o,l):r.setEdge(o,a,l)}))}))}buildSubhierarchiesForNeededFunctions(t){we.each(t.edges(),(e=>{let n=t.edge(e),i=new QAt(n);we.forEach(i.metaedge.baseEdgeList,(t=>{const e=t.v.split(mAt);for(let t=e.length;t>=0;t--){const n=e.slice(0,t),i=this.hierarchy.node(n.join(mAt));if(i){if(i.type===vAt.OP&&this.hierarchy.libraryFunctions[i.op])for(let t=1;t<n.length;t++){const e=n.slice(0,t).join(mAt);e&&this.buildSubhierarchy(e)}break}}}))}))}}class $At{constructor(t,e,n,i,r){this.node=t,this.renderNodeInfo=e,this.renderMetaedgeInfo=n,this.annotationType=i,this.dx=0,this.dy=0,this.width=0,this.height=0,n&&n.metaedge&&(this.v=n.metaedge.v,this.w=n.metaedge.w),this.isIn=r,this.points=[]}}var KAt;!(function(t){t[t.SHORTCUT=0]="SHORTCUT",t[t.CONSTANT=1]="CONSTANT",t[t.SUMMARY=2]="SUMMARY",t[t.ELLIPSIS=3]="ELLIPSIS"})(KAt||(KAt={}));class ZAt{constructor(){this.list=[],this.nodeNames={}}push(t){if(t.node.name in this.nodeNames)return;if(this.nodeNames[t.node.name]=!0,this.list.length<5)return void this.list.push(t);let e=this.list[this.list.length-1];if(e.annotationType===KAt.ELLIPSIS){let t=e.node;return void t.setNumMoreNodes(++t.numMoreNodes)}let n=new SAt(1);this.list.push(new $At(n,new JAt(n),null,KAt.ELLIPSIS,t.isIn))}}class JAt{constructor(t){if(this.node=t,this.expanded=!1,this.inAnnotations=new ZAt,this.outAnnotations=new ZAt,this.x=0,this.y=0,this.width=0,this.height=0,this.inboxWidth=0,this.outboxWidth=0,this.excluded=!1,this.structural=!1,this.labelOffset=0,this.radius=0,this.labelHeight=0,this.paddingTop=0,this.paddingLeft=0,this.paddingRight=0,this.paddingBottom=0,this.isInExtract=!1,this.isOutExtract=!1,this.coreBox={width:0,height:0},this.isFadedOut=!1,this.displayName=t.name.substring(t.name.lastIndexOf(mAt)+1),t.type===vAt.META&&t.associatedFunction){const t=this.displayName.match(YAt);t?this.displayName=t[1]:we.startsWith(this.displayName,_At)&&(this.displayName=this.displayName.substring(_At.length))}}isInCore(){return!this.isInExtract&&!this.isOutExtract&&!this.isLibraryFunction}}class QAt{constructor(t){this.metaedge=t,this.adjoiningMetaedge=null,this.structural=!1,this.weight=1,this.isFadedOut=!1}}function tkt(t,e,n,i,r){let o=new $At(e,n,i,r,!0);t.inAnnotations.push(o)}function ekt(t,e,n,i,r){let o=new $At(e,n,i,r,!1);t.outAnnotations.push(o)}class nkt extends JAt{constructor(t,e){super(t);let n=t.metagraph.graph();this.coreGraph=RAt(n.name,yAt.CORE,e),this.inExtractBox={width:0,height:0},this.outExtractBox={width:0,height:0},this.libraryFunctionsBox={width:0,height:0},this.isolatedInExtract=[],this.isolatedOutExtract=[],this.libraryFunctionsExtract=[]}}function ikt(t,e){t.coreGraph&&(function n(t,e){we.each(t.nodes(),(n=>{let i=t.node(n);if(i.expanded=e>1,e>0)switch(i.node.type){case vAt.META:case vAt.SERIES:ikt(i,e-1)}}))})(t.coreGraph,e)}function rkt(t,e,n){let i=t.node(e),r=t.node(n),o=t.edge(e,n);(i.node.include!==bAt.INCLUDE&&r.node.include!==bAt.INCLUDE||i.node.include===bAt.EXCLUDE||r.node.include===bAt.EXCLUDE)&&(ekt(i,r.node,r,o,KAt.SHORTCUT),tkt(r,i.node,i,o,KAt.SHORTCUT),t.removeEdge(e,n))}function okt(t,e,n){let i=t.coreGraph,r=i.node(e);r.isOutExtract=!0,we.each(i.predecessors(e),((t,n)=>{rkt(i,t,e)})),we.each(i.successors(e),((t,n)=>{rkt(i,e,t)})),0===i.neighbors(e).length&&(r.node.include=bAt.EXCLUDE,t.isolatedOutExtract.push(r),i.removeNode(e))}function akt(t,e,n){let i=t.coreGraph,r=i.node(e);r.isInExtract=!0,we.each(i.successors(e),((t,n)=>{rkt(i,e,t)})),we.each(i.predecessors(e),((t,n)=>{rkt(i,t,e)})),0===i.neighbors(e).length&&(r.node.include=bAt.EXCLUDE,t.isolatedInExtract.push(r),i.removeNode(e))}function skt(t,e){if(t.type===vAt.OP){for(let n=0;n<e.length;n++)if(t.op===e[n])return!0}else if(t.type===vAt.META){let n=t.getRootOp();if(n)for(let t=0;t<e.length;t++)if(n.op===e[t])return!0}return!1}const lkt={animation:{duration:250},graph:{meta:{nodeSep:5,rankSep:25,edgeSep:5},series:{nodeSep:5,rankSep:25,edgeSep:5},padding:{paddingTop:40,paddingLeft:20}},subscene:{meta:{paddingTop:10,paddingBottom:10,paddingLeft:10,paddingRight:10,labelHeight:20,extractXOffset:15,extractYOffset:20},series:{paddingTop:10,paddingBottom:10,paddingLeft:10,paddingRight:10,labelHeight:10}},nodeSize:{meta:{radius:5,width:60,maxLabelWidth:52,height:DM().domain([1,200]).range([15,60]).clamp(!0),expandButtonRadius:3},op:{width:15,height:6,radius:3,labelOffset:-8,maxLabelWidth:30},series:{expanded:{radius:10,labelOffset:0},vertical:{width:16,height:13,labelOffset:-13},horizontal:{width:24,height:8,radius:10,labelOffset:-10}},bridge:{width:20,height:20,radius:2,labelOffset:0}},shortcutSize:{op:{width:10,height:4},meta:{width:12,height:4,radius:1},series:{width:14,height:4}},annotations:{inboxWidth:50,outboxWidth:50,xOffset:10,yOffset:3,labelOffset:2,maxLabelWidth:40},constant:{size:{width:4,height:4}},series:{maxStackCount:3,parallelStackOffsetRatio:.2,towerStackOffsetRatio:.5},minimap:{size:150}},ckt=140;function ukt(t){t.node.isGroupNode&&(function e(t){let e=t.coreGraph.nodes().map((e=>t.coreGraph.node(e))).concat(t.isolatedInExtract,t.isolatedOutExtract,t.libraryFunctionsExtract);we.each(e,(t=>{switch(t.node.type){case vAt.OP:we.extend(t,lkt.nodeSize.op);break;case vAt.BRIDGE:we.extend(t,lkt.nodeSize.bridge);break;case vAt.META:t.expanded?ukt(t):(we.extend(t,lkt.nodeSize.meta),t.height=lkt.nodeSize.meta.height(t.node.cardinality));break;case vAt.SERIES:t.expanded?(we.extend(t,lkt.nodeSize.series.expanded),ukt(t)):we.extend(t,t.node.hasNonControlEdges?lkt.nodeSize.series.vertical:lkt.nodeSize.series.horizontal);break;default:throw Error("Unrecognized node type: "+t.node.type)}t.expanded||(function e(t){t.inboxWidth=t.inAnnotations.list.length>0?lkt.annotations.inboxWidth:0,t.outboxWidth=t.outAnnotations.list.length>0?lkt.annotations.outboxWidth:0,t.coreBox.width=t.width,t.coreBox.height=t.height,t.width=Math.max(t.coreBox.width+t.inboxWidth+t.outboxWidth,3*t.displayName.length)})(t),(function n(t){if(t.expanded)return;let e=t.inAnnotations.list,n=t.outAnnotations.list;we.each(e,(t=>dkt(t))),we.each(n,(t=>dkt(t)));let i=lkt.annotations,r=we.reduce(e,((e,n,r)=>{let o=r>0?i.yOffset:0;return n.dx=-(t.coreBox.width+n.width)/2-i.xOffset,n.dy=e+o+n.height/2,e+o+n.height}),0);we.each(e,(t=>{t.dy-=r/2,t.labelOffset=i.labelOffset}));let o=we.reduce(n,((e,n,r)=>{let o=r>0?i.yOffset:0;return n.dx=(t.coreBox.width+n.width)/2+i.xOffset,n.dy=e+o+n.height/2,e+o+n.height}),0);we.each(n,(t=>{t.dy-=o/2,t.labelOffset=i.labelOffset}));let a=Math.min(t.height/2-t.radius,r/2);a=a<0?0:a;let s=DM().domain([0,e.length-1]).range([-a,a]);we.each(e,((n,i)=>{n.points=[{dx:n.dx+n.width/2,dy:n.dy},{dx:-t.coreBox.width/2,dy:e.length>1?s(i):0}]}));let l=Math.min(t.height/2-t.radius,o/2);l=l<0?0:l;let c=DM().domain([0,n.length-1]).range([-l,l]);we.each(n,((e,i)=>{e.points=[{dx:t.coreBox.width/2,dy:n.length>1?c(i):0},{dx:e.dx-e.width/2,dy:e.dy}]})),t.height=Math.max(t.height,r,o)})(t)}))})(t),t.node.type===vAt.META?(function n(t){let e=lkt.subscene.meta;we.extend(t,e),we.extend(t.coreBox,hkt(t.coreGraph,lkt.graph.meta));let n=t.isolatedInExtract.length?we.maxBy(t.isolatedInExtract,(t=>t.width)).width:null;t.inExtractBox.width=null!=n?n:0,t.inExtractBox.height=we.reduce(t.isolatedInExtract,((t,n,i)=>{let r=i>0?e.extractYOffset:0;return n.x=0,n.y=t+r+n.height/2,t+r+n.height}),0);let i=t.isolatedOutExtract.length?we.maxBy(t.isolatedOutExtract,(t=>t.width)).width:null;t.outExtractBox.width=null!=i?i:0,t.outExtractBox.height=we.reduce(t.isolatedOutExtract,((t,n,i)=>{let r=i>0?e.extractYOffset:0;return n.x=0,n.y=t+r+n.height/2,t+r+n.height}),0);let r=t.libraryFunctionsExtract.length?we.maxBy(t.libraryFunctionsExtract,(t=>t.width)).width:null;t.libraryFunctionsBox.width=null!=r?r:0,t.libraryFunctionsBox.height=we.reduce(t.libraryFunctionsExtract,((t,n,i)=>{let r=i>0?e.extractYOffset:0;return n.x=0,n.y=t+r+n.height/2,t+r+n.height}),0);let o=0;t.isolatedInExtract.length>0&&o++,t.isolatedOutExtract.length>0&&o++,t.libraryFunctionsExtract.length>0&&o++,t.coreGraph.nodeCount()>0&&o++;let a=o<=1?0:o*lkt.subscene.meta.extractXOffset;const s=Math.max(ckt,t.inExtractBox.width+t.outExtractBox.width);t.coreBox.width+=s+a+t.libraryFunctionsBox.width+a,t.coreBox.height=e.labelHeight+Math.max(t.inExtractBox.height,t.coreBox.height,t.libraryFunctionsBox.height,t.outExtractBox.height),t.width=t.coreBox.width+e.paddingLeft+e.paddingRight,t.height=t.paddingTop+t.coreBox.height+t.paddingBottom})(t):t.node.type===vAt.SERIES&&(function i(t){let e=t.coreGraph,n=lkt.subscene.series;we.extend(t,n),we.extend(t.coreBox,hkt(t.coreGraph,lkt.graph.series)),we.each(e.nodes(),(t=>{e.node(t).excluded=!1})),t.width=t.coreBox.width+n.paddingLeft+n.paddingRight,t.height=t.coreBox.height+n.paddingTop+n.paddingBottom})(t)}function hkt(t,e){we.extend(t.graph(),{nodesep:e.nodeSep,ranksep:e.rankSep,edgesep:e.edgeSep});let n=[];if(we.each(t.nodes(),(e=>{t.node(e).node.type===vAt.BRIDGE||n.push(e)})),!n.length)return{width:0,height:0};GCt.layout(t);let i=1/0,r=1/0,o=-1/0,a=-1/0;return we.each(n,(e=>{let n=t.node(e),s=.5*n.width,l=n.x-s,c=n.x+s;i=l<i?l:i,o=c>o?c:o;let u=.5*n.height,h=n.y-u,d=n.y+u;r=h<r?h:r,a=d>a?d:a})),we.each(t.edges(),(e=>{let n=t.edge(e);if(n.structural)return;let s=t.node(n.metaedge.v),l=t.node(n.metaedge.w);if(3===n.points.length&&(function c(t){let e=fkt(t[0],t[1]);for(let n=1;n<t.length-1;n++){let i=fkt(t[n],t[n+1]);if(Math.abs(i-e)>1)return!1;e=i}return!0})(n.points)){if(null!=s){let t=s.expanded?s.x:pkt(s);n.points[0].x=t}if(null!=l){let t=l.expanded?l.x:pkt(l);n.points[2].x=t}n.points=[n.points[0],n.points[1]]}null!=l&&(n.points[n.points.length-1]=mkt(n.points[n.points.length-2],l)),null!=s&&(n.points[0]=mkt(n.points[1],s)),we.each(n.points,(t=>{i=t.x<i?t.x:i,o=t.x>o?t.x:o,r=t.y<r?t.y:r,a=t.y>a?t.y:a}))})),we.each(t.nodes(),(e=>{let n=t.node(e);n.x-=i,n.y-=r})),we.each(t.edges(),(e=>{we.each(t.edge(e).points,(t=>{t.x-=i,t.y-=r}))})),{width:o-i,height:a-r}}function dkt(t){switch(t.annotationType){case KAt.CONSTANT:we.extend(t,lkt.constant.size);break;case KAt.SHORTCUT:if(t.node.type===vAt.OP)we.extend(t,lkt.shortcutSize.op);else if(t.node.type===vAt.META)we.extend(t,lkt.shortcutSize.meta);else{if(t.node.type!==vAt.SERIES)throw Error("Invalid node type: "+t.node.type);we.extend(t,lkt.shortcutSize.series)}break;case KAt.SUMMARY:we.extend(t,lkt.constant.size)}}function pkt(t){return t.expanded?t.x:t.x-t.width/2+(t.inAnnotations.list.length?t.inboxWidth:0)+t.coreBox.width/2}function fkt(t,e){return 180*Math.atan((e.y-t.y)/(e.x-t.x))/Math.PI}function mkt(t,e){let n,i,r=e.expanded?e.x:pkt(e),o=e.y,a=t.x-r,s=t.y-o,l=e.expanded?e.width:e.coreBox.width,c=e.expanded?e.height:e.coreBox.height;return Math.abs(s)*l/2>Math.abs(a)*c/2?(s<0&&(c=-c),n=0===s?0:c/2*a/s,i=c/2):(a<0&&(l=-l),n=l/2,i=0===a?0:l/2*s/a),{x:r+n,y:o+i}}const gkt=ZCt,_kt=$Ct;let ykt=[{background_color:"#CC2F2C",label:"NaN"},{background_color:"#FF8D00",label:"-∞"},{background_color:"#EAEAEA",label:"-"},{background_color:"#A5A5A5",label:"0"},{background_color:"#262626",label:"+"},{background_color:"#003ED4",label:"+∞"}];function vkt(t,e,n){null!=t.attr("transform")&&(t=t.transition("position")),t.attr("transform","translate("+e+","+n+")")}function bkt(t,e,n,i,r){t.transition().attr("x",e-i/2).attr("y",n-r/2).attr("width",i).attr("height",r)}function xkt(t,e,n,i,r){t.transition().attr("cx",e).attr("cy",n).attr("rx",i/2).attr("ry",r/2)}function wkt(t,e){return e?t.toFixed(0):Math.abs(t)>=1?t.toFixed(1):t.toExponential(1)}let Skt=class extends(tr(ye)){constructor(){super(...arguments),this.specificHealthPillStep=0,this.healthPillEntries=ykt}ready(){super.ready();var t=document.getElementById("mainContainer"),e=document.querySelector("tf-dashboard-layout .scrollbar");t&&e&&(t.style.overflow="hidden",e.style.overflow="hidden")}_healthPillsAvailable(t,e){return t&&e}_computeTensorCountString(t,e){return t?t[e].toFixed(0):""}get healthPillValuesForSelectedNode(){var t=this.selectedNode;if(this.areHealthPillsLoading)return null;if(!t)return null;const e=this.nodeNamesToHealthPills[t];if(!e)return null;const n=e[this.allStepsModeEnabled?0:this.healthPillStepIndex];return n?n.value.slice(2,8):null}get _currentStepDisplayValue(){var t=this.nodeNamesToHealthPills,e=this.healthPillStepIndex,n=this.areHealthPillsLoading;if(this.allStepsModeEnabled)return this.specificHealthPillStep.toFixed(0);if(n)return 0;for(let n in t)return t[n][e].step.toFixed(0);return 0}get _biggestStepEverSeen(){var t=this.nodeNamesToHealthPills;for(let n in t){var e=t[n];return Math.max(this._biggestStepEverSeen,e[e.length-1].step)}return this._biggestStepEverSeen||0}get _maxStepIndex(){var t=this.nodeNamesToHealthPills;for(let e in t)return t[e].length-1;return 0}_hasDebuggerNumericAlerts(t){return t&&t.length}_updateAlertsList(){var t=this.debuggerNumericAlerts,e=this.$$("#numeric-alerts-body");if(e){e.innerText="";for(var n=0;n<t.length;n++){var i=t[n],r=document.createElement("tr"),o=document.createElement("td");o.innerText=(f=i.first_timestamp,(m=+new Date-+new Date(f/1e3))<3e4?"just now":m<6e4?Math.floor(m/1e3)+" seconds ago":m<12e4?"a minute ago":m<36e5?Math.floor(m/6e4)+" minutes ago":1==Math.floor(m/36e5)?"an hour ago":m<864e5?Math.floor(m/36e5)+" hours ago":m<1728e5?"yesterday":Math.floor(m/864e5)+" days ago"),o.classList.add("first-offense-td"),r.appendChild(o);var a=document.createElement("td");a.classList.add("tensor-device-td");var s=document.createElement("div");s.classList.add("tensor-section-within-table"),s.innerText=i.tensor_name,this._addOpExpansionListener(s,i.tensor_name),a.appendChild(s);var l=document.createElement("div");l.classList.add("device-section-within-table"),l.innerText="("+i.device_name+")",a.appendChild(l),r.appendChild(a);var c=document.createElement("div");c.classList.add("mini-health-pill");var u=document.createElement("td");if(u.classList.add("mini-health-pill-td"),u.appendChild(c),r.appendChild(u),i.neg_inf_event_count){var h=document.createElement("div");h.classList.add("negative-inf-mini-health-pill-section"),h.innerText=i.neg_inf_event_count,h.setAttribute("title",i.neg_inf_event_count+" events with -∞"),c.appendChild(h)}if(i.pos_inf_event_count){var d=document.createElement("div");d.classList.add("positive-inf-mini-health-pill-section"),d.innerText=i.pos_inf_event_count,d.setAttribute("title",i.pos_inf_event_count+" events with +∞"),c.appendChild(d)}if(i.nan_event_count){var p=document.createElement("div");p.classList.add("nan-mini-health-pill-section"),p.innerText=i.nan_event_count,p.setAttribute("title",i.nan_event_count+" events with NaN"),c.appendChild(p)}qi(e).appendChild(r)}var f,m}}_addOpExpansionListener(t,e){t.addEventListener("click",(()=>{var t,n=(function i(t,e,n){const i=n.split("/"),r=i[i.length-1].match(/(.*):\w+/);2===r.length&&(i[i.length-1]=r[1]);let o=i[0],a=e.getRenderNodeByName(o);for(let n=1;n<i.length&&a.node.type!==vAt.OP;n++)e.buildSubhierarchy(o),a.expanded=!0,t.setNodeExpanded(a),o+="/"+i[n],a=e.getRenderNodeByName(o);return a.node.name})(document.getElementById("scene"),this.renderHierarchy,e),r=document.querySelector("tf-graph-info#graph-info");r&&(t=r.scrollHeight-r.scrollTop);var o=this.selectedNode;this.set("selectedNode",n);var a=()=>{r.scrollTop=r.scrollHeight-t};r&&(o?a():window.setTimeout(a,20))}))}};var Mkt;Skt.template=_e`
    <style>
      :host {
        font-size: 12px;
        margin: 0;
        padding: 0;
        display: block;
      }

      h2 {
        padding: 0;
        text-align: center;
        margin: 0;
      }

      .health-pill-legend {
        padding: 15px;
      }

      .health-pill-legend h2 {
        text-align: left;
      }

      .health-pill-entry {
        margin: 10px 10px 10px 0;
      }

      .health-pill-entry .color-preview {
        width: 26px;
        height: 26px;
        border-radius: 3px;
        display: inline-block;
        margin: 0 10px 0 0;
      }

      .health-pill-entry .color-label,
      .health-pill-entry .tensor-count {
        color: #777;
        display: inline-block;
        height: 26px;
        font-size: 22px;
        line-height: 26px;
        vertical-align: top;
      }

      .health-pill-entry .tensor-count {
        float: right;
      }

      #health-pill-step-slider {
        width: 100%;
        margin: 0 0 0 -15px;
        /* 31 comes from adding a padding of 15px from both sides of the paper-slider, subtracting
   * 1px so that the slider width aligns with the image (the last slider marker takes up 1px),
   * and adding 2px to account for a border of 1px on both sides of the image. 30 - 1 + 2.
   * Apparently, the paper-slider lacks a mixin for those padding values. */
        width: calc(100% + 31px);
      }

      #health-pills-loading-spinner {
        width: 20px;
        height: 20px;
        vertical-align: top;
      }

      #health-pill-step-number-input {
        text-align: center;
        vertical-align: top;
      }

      #numeric-alerts-table-container {
        max-height: 400px;
        overflow-x: hidden;
        overflow-y: auto;
      }

      #numeric-alerts-table {
        text-align: left;
      }

      #numeric-alerts-table td {
        vertical-align: top;
      }

      #numeric-alerts-table .first-offense-td {
        display: inline-block;
      }

      .first-offense-td {
        width: 80px;
      }

      .tensor-device-td {
        max-width: 140px;
        word-wrap: break-word;
      }

      .tensor-section-within-table {
        color: #266236;
        cursor: pointer;
        opacity: 0.8;
        text-decoration: underline;
      }

      .tensor-section-within-table:hover {
        opacity: 1;
      }

      .device-section-within-table {
        color: #666;
      }

      .mini-health-pill {
        width: 130px;
      }

      .mini-health-pill > div {
        height: 100%;
        width: 60px;
        border-radius: 3px;
      }

      #event-counts-th {
        padding: 0 0 0 10px;
      }

      .negative-inf-mini-health-pill-section {
        background: rgb(255, 141, 0);
        width: 20px;
      }

      .positive-inf-mini-health-pill-section {
        background: rgb(0, 62, 212);
        width: 20px;
      }

      .nan-mini-health-pill-section {
        background: rgb(204, 47, 44);
        width: 20px;
      }

      .negative-inf-mini-health-pill-section,
      .positive-inf-mini-health-pill-section,
      .nan-mini-health-pill-section {
        color: #fff;
        display: inline-block;
        height: 100%;
        line-height: 20px;
        margin: 0 0 0 10px;
        text-align: center;
      }

      .no-numeric-alerts-notification {
        margin: 0;
      }
    </style>
    <paper-material elevation="1" class="card health-pill-legend">
      <div class="title">
        Enable all (not just sampled) steps. Requires slow disk read.
      </div>
      <paper-toggle-button
        id="enableAllStepsModeToggle"
        checked="{{allStepsModeEnabled}}"
      >
      </paper-toggle-button>
      <h2>
        Step of Health Pills:
        <template is="dom-if" if="[[allStepsModeEnabled]]">
          <input
            type="number"
            id="health-pill-step-number-input"
            min="0"
            max="[[_biggestStepEverSeen]]"
            value="{{specificHealthPillStep::input}}"
          />
        </template>
        <template is="dom-if" if="[[!allStepsModeEnabled]]">
          [[_currentStepDisplayValue]]
        </template>
        <paper-spinner-lite
          active
          hidden$="[[!areHealthPillsLoading]]"
          id="health-pills-loading-spinner"
        ></paper-spinner-lite>
      </h2>
      <template is="dom-if" if="[[allStepsModeEnabled]]">
        <paper-slider
          id="health-pill-step-slider"
          immediate-value="{{specificHealthPillStep}}"
          max="[[_biggestStepEverSeen]]"
          snaps
          step="1"
          value="{{specificHealthPillStep}}"
        ></paper-slider>
      </template>
      <template is="dom-if" if="[[!allStepsModeEnabled]]">
        <template is="dom-if" if="[[_maxStepIndex]]">
          <paper-slider
            id="health-pill-step-slider"
            immediate-value="{{healthPillStepIndex}}"
            max="[[_maxStepIndex]]"
            snaps
            step="1"
            value="{{healthPillStepIndex}}"
          ></paper-slider>
        </template>
      </template>
      <h2>
        Health Pill
        <template is="dom-if" if="[[healthPillValuesForSelectedNode]]">
          Counts for Selected Node
        </template>
        <template is="dom-if" if="[[!healthPillValuesForSelectedNode]]">
          Legend
        </template>
      </h2>
      <template is="dom-repeat" items="[[healthPillEntries]]">
        <div class="health-pill-entry">
          <div
            class="color-preview"
            style="background:[[item.background_color]]"
          ></div>
          <div class="color-label">[[item.label]]</div>
          <div class="tensor-count">
            [[_computeTensorCountString(healthPillValuesForSelectedNode,
            index)]]
          </div>
        </div>
      </template>
      <div hidden$="[[!_hasDebuggerNumericAlerts(debuggerNumericAlerts)]]">
        <h2 id="numeric-alerts-header">Numeric Alerts</h2>
        <p>Alerts are sorted from top to bottom by increasing timestamp.</p>
        <div id="numeric-alerts-table-container">
          <table id="numeric-alerts-table">
            <thead>
              <tr>
                <th>First Offense</th>
                <th>Tensor (Device)</th>
                <th id="event-counts-th">Event Counts</th>
              </tr>
            </thead>
            <tbody id="numeric-alerts-body"></tbody>
          </table>
        </div>
      </div>
      <template
        is="dom-if"
        if="[[!_hasDebuggerNumericAlerts(debuggerNumericAlerts)]]"
      >
        <p class="no-numeric-alerts-notification">
          No numeric alerts so far. That is likely good. Alerts indicate the
          presence of NaN or (+/-) Infinity values, which may be concerning.
        </p>
      </template>
    </paper-material>
  `,t([o({type:Object}),e("design:type",XAt)],Skt.prototype,"renderHierarchy",void 0),t([o({type:Array,notify:!0}),e("design:type",Object)],Skt.prototype,"debuggerNumericAlerts",void 0),t([o({type:Object}),e("design:type",Object)],Skt.prototype,"nodeNamesToHealthPills",void 0),t([o({type:Number,notify:!0}),e("design:type",Object)],Skt.prototype,"healthPillStepIndex",void 0),t([o({type:Number,notify:!0}),e("design:type",Number)],Skt.prototype,"specificHealthPillStep",void 0),t([o({type:String,notify:!0}),e("design:type",Object)],Skt.prototype,"selectedNode",void 0),t([o({type:String,notify:!0}),e("design:type",Object)],Skt.prototype,"highlightedNode",void 0),t([o({type:Number,notify:!0}),e("design:type",Object)],Skt.prototype,"selectedNodeInclude",void 0),t([o({type:Boolean}),e("design:type",Object)],Skt.prototype,"areHealthPillsLoading",void 0),t([o({type:Array}),e("design:type",Array)],Skt.prototype,"healthPillEntries",void 0),t([o({type:Boolean,notify:!0}),e("design:type",Object)],Skt.prototype,"allStepsModeEnabled",void 0),t([s("nodeNamesToHealthPills","healthPillStepIndex","selectedNode","allStepsModeEnabled","areHealthPillsLoading"),e("design:type",Array),e("design:paramtypes",[])],Skt.prototype,"healthPillValuesForSelectedNode",null),t([s("nodeNamesToHealthPills","healthPillStepIndex","allStepsModeEnabled","specificHealthPillStep","areHealthPillsLoading"),e("design:type",Object),e("design:paramtypes",[])],Skt.prototype,"_currentStepDisplayValue",null),t([s("nodeNamesToHealthPills"),e("design:type",Number),e("design:paramtypes",[])],Skt.prototype,"_biggestStepEverSeen",null),t([s("nodeNamesToHealthPills"),e("design:type",Number),e("design:paramtypes",[])],Skt.prototype,"_maxStepIndex",null),t([a("debuggerNumericAlerts"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],Skt.prototype,"_updateAlertsList",null),Skt=t([i("tf-graph-debugger-data-card")],Skt),(function(t){t.CONST="CONST",t.META="META",t.OP="OP",t.SERIES="SERIES",t.SUMMARY="SUMMARY"})(Mkt||(Mkt={}));let Ekt=class extends(tr(nl(ye))){constructor(){super(...arguments),this.vertical=!1,this.fillOverride=null,this.strokeOverride=null,this.height=20,this.faded=!1}getSvgDefinableElement(){return this.$.svgDefs}get _fill(){var t=this.fillOverride;if(null!=t)return t;switch(this.type){case Mkt.META:return jAt.DEFAULT_FILL;case Mkt.SERIES:return"white";default:return"#ffffff"}}get _stroke(){var t=this.strokeOverride;if(null!=t)return t;switch(this.type){case Mkt.META:return jAt.DEFAULT_STROKE;case Mkt.SERIES:default:return"#b2b2b2"}}_isType(t,e){return t===e}_fadedClass(t,e){return t?"faded-"+e:""}};Ekt.template=_e`
    <style>
      :host {
        font-size: 0;
      }

      :host(.dark-mode) svg {
        filter: invert(1);
      }

      .faded-rect {
        fill: url(#rectHatch);
      }

      .faded-ellipse {
        fill: url(#ellipseHatch);
      }

      .faded-rect,
      .faded-ellipse,
      .faded-series {
        stroke: var(--tb-graph-faded) !important;
      }
      #rectHatch line,
      #ellipseHatch line {
        color: #e0d4b3 !important;
        fill: white;
        stroke: #e0d4b3 !important;
      }
    </style>
    <!-- SVG for definitions -->
    <svg height="0" width="0" id="svgDefs">
      <defs>
        <!-- Hatch patterns for faded out nodes. -->
        <pattern
          id="rectHatch"
          patternTransform="rotate(45 0 0)"
          width="5"
          height="5"
          patternUnits="userSpaceOnUse"
        >
          <line x1="0" y1="0" x2="0" y2="5" style="stroke-width: 1"></line>
        </pattern>
        <pattern
          id="ellipseHatch"
          patternTransform="rotate(45 0 0)"
          width="2"
          height="2"
          patternUnits="userSpaceOnUse"
        >
          <line x1="0" y1="0" x2="0" y2="2" style="stroke-width: 1"></line>
        </pattern>
        <!-- Template for an Op node ellipse. -->
        <ellipse
          id="op-node-stamp"
          rx="7.5"
          ry="3"
          stroke="inherit"
          fill="inherit"
        ></ellipse>
        <!-- Template for an Op node annotation ellipse (smaller). -->
        <ellipse
          id="op-node-annotation-stamp"
          rx="5"
          ry="2"
          stroke="inherit"
          fill="inherit"
        ></ellipse>
        <!-- Vertically stacked series of Op nodes when unexpanded. -->
        <g id="op-series-vertical-stamp">
          <use xlink:href="#op-node-stamp" x="8" y="9"></use>
          <use xlink:href="#op-node-stamp" x="8" y="6"></use>
          <use xlink:href="#op-node-stamp" x="8" y="3"></use>
        </g>
        <g id="op-series-horizontal-stamp">
          <use xlink:href="#op-node-stamp" x="16" y="4"></use>
          <use xlink:href="#op-node-stamp" x="12" y="4"></use>
          <use xlink:href="#op-node-stamp" x="8" y="4"></use>
        </g>
        <g
          id="summary-icon"
          fill="#848484"
          height="12"
          viewBox="0 0 24 24"
          width="12"
        >
          <path
            d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"
          ></path>
        </g>
      </defs>
    </svg>
    <template is="dom-if" if="[[_isType(type, 'CONST')]]">
      <svg
        height$="[[height]]"
        preserveAspectRatio="xMinYMid meet"
        viewBox="0 0 10 10"
      >
        <circle
          cx="5"
          cy="5"
          r="3"
          fill$="[[_fill]]"
          stroke$="[[_stroke]]"
        ></circle>
      </svg>
    </template>
    <template is="dom-if" if="[[_isType(type, 'SUMMARY')]]">
      <svg
        width$="[[height]]"
        height$="[[height]]"
        viewBox="0 0 24 24"
        fill="#848484"
      >
        <path
          d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"
        ></path>
      </svg>
    </template>
    <template is="dom-if" if="[[_isType(type, 'OP')]]">
      <svg
        height$="[[height]]"
        preserveAspectRatio="xMinYMid meet"
        viewBox="0 0 16 8"
      >
        <use
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xlink:href="#op-node-stamp"
          fill$="[[_fill]]"
          stroke$="[[_stroke]]"
          class$="{{_fadedClass(faded, 'ellipse')}}"
          x="8"
          y="4"
        ></use>
      </svg>
    </template>
    <template is="dom-if" if="[[_isType(type, 'META')]]">
      <svg
        height$="[[height]]"
        preserveAspectRatio="xMinYMid meet"
        viewBox="0 0 37 16"
      >
        <rect
          x="1"
          y="1"
          fill$="[[_fill]]"
          stroke$="[[_stroke]]"
          class$="{{_fadedClass(faded, 'rect')}}"
          stroke-width="2px"
          height="14"
          width="35"
          rx="5"
          ry="5"
        ></rect>
      </svg>
    </template>
    <template is="dom-if" if="[[_isType(type, 'SERIES')]]">
      <template is="dom-if" if="[[vertical]]">
        <svg
          height$="[[height]]"
          preserveAspectRatio="xMinYMid meet"
          viewBox="0 0 16 15"
        >
          <use
            xmlns:xlink="http://www.w3.org/1999/xlink"
            xlink:href="#op-series-vertical-stamp"
            fill$="[[_fill]]"
            stroke$="[[_stroke]]"
            class$="{{_fadedClass(faded, 'series')}}"
            x="0"
            y="2"
          ></use>
        </svg>
      </template>
      <template is="dom-if" if="[[!vertical]]">
        <svg
          height$="[[height]]"
          preserveAspectRatio="xMinYMid meet"
          viewBox="0 0 24 10"
        >
          <use
            xmlns:xlink="http://www.w3.org/1999/xlink"
            xlink:href="#op-series-horizontal-stamp"
            fill$="[[_fill]]"
            stroke$="[[_stroke]]"
            class$="{{_fadedClass(faded, 'series')}}"
            x="0"
            y="1"
          ></use>
        </svg>
      </template>
    </template>
  `,t([o({type:String}),e("design:type",String)],Ekt.prototype,"type",void 0),t([o({type:Boolean}),e("design:type",Boolean)],Ekt.prototype,"vertical",void 0),t([o({type:String}),e("design:type",String)],Ekt.prototype,"fillOverride",void 0),t([o({type:String}),e("design:type",String)],Ekt.prototype,"strokeOverride",void 0),t([o({type:Number}),e("design:type",Number)],Ekt.prototype,"height",void 0),t([o({type:Boolean}),e("design:type",Boolean)],Ekt.prototype,"faded",void 0),t([s("type","fillOverride"),e("design:type",String),e("design:paramtypes",[])],Ekt.prototype,"_fill",null),t([s("type","strokeOverride"),e("design:type",String),e("design:paramtypes",[])],Ekt.prototype,"_stroke",null),Ekt=t([i("tf-graph-icon")],Ekt);var Tkt=Object.freeze({__proto__:null,get GraphIconType(){return Mkt}});function Ckt(t,e){const n=t.getContextMenu(),i=wu(t.getContextMenu());return function(r,o){let a=cu;const s=(function l(t){let e=0,n=0,i=t;for(;i&&i.offsetLeft>=0&&i.offsetTop>=0;)e+=i.offsetLeft-i.scrollLeft,n+=i.offsetTop-i.scrollTop,i=i.offsetParent;return{left:e,top:n}})(t);function c(t){t&&t.composedPath().includes(n)||(i.style("display","none"),document.body.removeEventListener("mousedown",c,{capture:!0}))}i.style("display","block").style("left",a.clientX-s.left+1+"px").style("top",a.clientY-s.top+1+"px"),a.preventDefault(),a.stopPropagation(),document.body.addEventListener("mousedown",c,{capture:!0}),i.html(""),i.append("ul").selectAll("li").data(e).enter().append("li").on("click",((t,e)=>{t.action(this,r,o),c()})).html((function(t){return t.title(r)}))}}let Akt=nE().domain([tAt,12]).range(["small","medium","large","xlarge"]);function kkt(t){return t.v+"--"+t.w}function Lkt(t,e){let n=e.getNodeByName(t.v);if(null==n.outputShapes||we.isEmpty(n.outputShapes))return null;let i=n.outputShapes[t.outputTensorKey];return null==i?null:0===i.length?"scalar":i.map((t=>-1===t?"?":t)).join("×")}function Pkt(t,e){return e.edgeLabelFunction?e.edgeLabelFunction(t,e):t.baseEdgeList.length>1?t.baseEdgeList.length+" tensors":Lkt(t.baseEdgeList[0],e)}function Nkt(t,e,n){const i=document.createElementNS(KCt,"path");for(let r=1;r<t.length;r++)if(i.setAttribute("d",n(t.slice(0,r))),i.getTotalLength()>e)return r-1;return t.length-1}function Ikt(t,e,n){let i=Xk().x((t=>t.x)).y((t=>t.y)),r=wu(document.createElementNS("http://www.w3.org/2000/svg","path")).attr("d",i(t)),o=+e.attr("markerWidth"),a=e.attr("viewBox").split(" ").map(Number),s=a[2]-a[0],l=+e.attr("refX"),c=r.node();if(n){const e=o*(1-l/s),n=c.getPointAtLength(e),r=Nkt(t,e,i);return t[r-1]={x:n.x,y:n.y},t.slice(r-1)}{const e=1-l/s,n=c.getTotalLength()-o*e,r=c.getPointAtLength(n),a=Nkt(t,n,i);return t[a]={x:r.x,y:r.y},t.slice(0,a+1)}}function Okt(t,e,n,i){i=i||$Ct.Edge.LINE,e.label&&e.label.structural&&(i+=" "+$Ct.Edge.STRUCTURAL),e.label&&e.label.metaedge&&e.label.metaedge.numRefEdges&&(i+=" "+$Ct.Edge.REFERENCE_EDGE),n.handleEdgeSelected&&(i+=" "+$Ct.Edge.SELECTABLE);let r,o="path_"+kkt(e);if(n.renderHierarchy.edgeWidthFunction)r=n.renderHierarchy.edgeWidthFunction(e,i);else{let t=1;null!=e.label&&null!=e.label.metaedge&&(t=e.label.metaedge.totalSize),r=n.renderHierarchy.edgeWidthSizedBasedScale(t)}let a=t.append("path").attr("id",o).attr("class",i).style("stroke-width",r+"px");if(e.label&&e.label.metaedge)if(e.label.metaedge.numRefEdges){const t=`reference-arrowhead-${Akt(r)}`;a.style("marker-start",`url(#${t})`),e.label.startMarkerId=t}else{const t=`dataflow-arrowhead-${Akt(r)}`;a.style("marker-end",`url(#${t})`),e.label.endMarkerId=t}if(null==e.label||null==e.label.metaedge)return;let s=Pkt(e.label.metaedge,n.renderHierarchy);null!=s&&t.append("text").append("textPath").attr("xlink:href","#"+o).attr("startOffset","50%").attr("text-anchor","middle").attr("dominant-baseline","central").text(s)}let Rkt=Xk().curve(IL).x((t=>t.x)).y((t=>t.y));var zkt;function Dkt(t,e,n){let i=JCt(t,"g",$Ct.Node.CONTAINER).selectAll((function(){return this.childNodes})).data(e,(t=>t.node.name+":"+t.node.type));return i.enter().append("g").attr("data-name",(t=>t.node.name)).each((function(t){let e=wu(this);n.addNodeGroup(t.node.name,e)})).merge(i).attr("class",(t=>$Ct.Node.GROUP+" "+Xkt(t))).each((function(t){let e=wu(this);rLt(JCt(e,"g",$Ct.Annotation.INBOX),t.inAnnotations,t,n),rLt(JCt(e,"g",$Ct.Annotation.OUTBOX),t.outAnnotations,t,n);let i=Ykt(e,t,$Ct.Node.SHAPE);t.node.isGroupNode&&(function r(t,e,n){let i=JCt(t,"g",$Ct.Node.BUTTON_CONTAINER);JCt(i,"circle",$Ct.Node.BUTTON_CIRCLE),JCt(i,"path",$Ct.Node.EXPAND_BUTTON).attr("d","M0,-2.2 V2.2 M-2.2,0 H2.2"),JCt(i,"path",$Ct.Node.COLLAPSE_BUTTON).attr("d","M-2.2,0 H2.2"),i.on("click",(t=>{cu.stopPropagation(),n.fire("node-toggle-expand",{name:t.node.name})})),(function r(t,e){let n=pkt(e)+(e.expanded?e.width:e.coreBox.width)/2-6,i=e.y-(e.expanded?e.height:e.coreBox.height)/2+6;e.node.type!==vAt.SERIES||e.expanded||(n+=10,i-=2);let r="translate("+n+","+i+")";t.selectAll("path").transition().attr("transform",r),t.select("circle").transition().attr({cx:n,cy:i,r:lkt.nodeSize.meta.expandButtonRadius})})(i,e)})(i,t,n),Hkt(i,t,n),(function o(t,e,n){if(e.node.isGroupNode){if(e.expanded)return aLt(t,e,n,$Ct.Subscene.GROUP);gkt(t,"g",$Ct.Subscene.GROUP).remove()}})(e,t,n),Hkt((function a(t,e,n){let i=e.displayName,r=e.node.type===vAt.META&&!e.expanded,o=JCt(t,"text",$Ct.Node.LABEL),a=o.node();a.parentNode.appendChild(a),o.attr("dy",".35em").attr("text-anchor","middle");let s=8;switch(e.node.type){case vAt.META:s=e.expanded?9:8;break;case vAt.OP:s=6}if(r){i.length>n.maxMetanodeLabelLength&&(i=i.substr(0,n.maxMetanodeLabelLength-2)+"…");let t=(function l(t){return Wkt||(Wkt=DM().domain([t.maxMetanodeLabelLengthLargeFont,t.maxMetanodeLabelLength]).range([t.maxMetanodeLabelLengthFontSize,t.minMetanodeLabelLengthFontSize]).clamp(!0)),Wkt})(n);o.attr("font-size",t(i.length)+"px"),s=t(i.length)}return Gkt(o.text(i),e.node.type,s,e),o})(e,t,n),t,n,t.node.type===vAt.META),Jkt(e,t,n),(function s(t,e){let n=gkt(t,"g",$Ct.Node.SHAPE),i=pkt(e);switch(e.node.type){case vAt.OP:{const r=e.node;we.isNumber(r.functionInputIndex)||we.isNumber(r.functionOutputIndex)?(function r(t,e,n,i,o){const a=o/2,s=i/2,l=[[e,n-a],[e+s,n+a],[e-s,n+a]];t.transition().attr("points",l.map((t=>t.join(","))).join(" "))})(gkt(n,"polygon"),e.x,e.y,e.coreBox.width,e.coreBox.height):xkt(gkt(n,"ellipse"),i,e.y,e.coreBox.width,e.coreBox.height),qkt(t,i,e.y,e.labelOffset);break}case vAt.META:{let r=n.selectAll("rect");e.expanded?(bkt(r,e.x,e.y,e.width,e.height),Bkt(t,e),qkt(t,i,e.y,-e.height/2+e.labelHeight/2)):(bkt(r,i,e.y,e.coreBox.width,e.coreBox.height),qkt(t,i,e.y,0));break}case vAt.SERIES:{let r=gkt(n,"use");e.expanded?(bkt(r,e.x,e.y,e.width,e.height),Bkt(t,e),qkt(t,i,e.y,-e.height/2+e.labelHeight/2)):(bkt(r,i,e.y,e.coreBox.width,e.coreBox.height),qkt(t,i,e.y,e.labelOffset));break}case vAt.BRIDGE:bkt(gkt(n,"rect"),e.x,e.y,e.width,e.height);break;default:throw Error("Unrecognized node type: "+e.node.type)}})(e,t)})),i.exit().each((function(t){n.removeNodeGroup(t.node.name);let e=wu(this);t.inAnnotations.list.length>0&&e.select("."+$Ct.Annotation.INBOX).selectAll("."+$Ct.Annotation.GROUP).each((e=>{n.removeAnnotationGroup(e,t)})),t.outAnnotations.list.length>0&&e.select("."+$Ct.Annotation.OUTBOX).selectAll("."+$Ct.Annotation.GROUP).each((e=>{n.removeAnnotationGroup(e,t)}))})).remove(),i}function Bkt(t,e){let n=e.x-e.width/2+e.paddingLeft,i=e.y-e.height/2+e.paddingTop;vkt(gkt(t,"g",$Ct.Subscene.GROUP),n,i)}function Hkt(t,e,n,i){if(i)return void t.attr("pointer-events","none");let r=Ckt(n,Fkt(e.node,n));t.on("dblclick",(t=>{n.fire("node-toggle-expand",{name:t.node.name})})).on("mouseover",(t=>{n.isNodeExpanded(t)||n.fire("node-highlight",{name:t.node.name})})).on("mouseout",(t=>{n.isNodeExpanded(t)||n.fire("node-unhighlight",{name:t.node.name})})).on("click",(t=>{cu.stopPropagation(),n.fire("node-select",{name:t.node.name})})).on("contextmenu",((t,e)=>{n.fire("node-select",{name:t.node.name}),r.call(t,e)}))}function Fkt(t,e){let n=[{title:e=>FAt(t.include),action:(n,i,r)=>{e.fire("node-toggle-extract",{name:t.name})}}];return e.nodeContextMenuItems&&(n=n.concat(e.nodeContextMenuItems)),Vkt(t)&&n.push({title:e=>jkt(t),action:(n,i,r)=>{e.fire("node-toggle-seriesgroup",{name:Ukt(t)})}}),n}function Vkt(t){return null!==Ukt(t)}function Ukt(t){return t?t.type===vAt.SERIES?t.name:t.type===vAt.OP?t.owningSeries:null:null}function jkt(t){return(function n(t){return t===xAt.GROUP?"Ungroup this series of nodes":"Group this series of nodes"})(null!==(function e(t){let e=null;return t?(t.type===vAt.SERIES?e=t:t.parentNode&&t.parentNode.type===vAt.SERIES&&(e=t.parentNode),e):null})(t)?xAt.GROUP:xAt.UNGROUP)}function Gkt(t,e,n,i){let r=t.node(),o=r.textContent,a=null;switch(e){case vAt.META:i&&!i.expanded&&(a=lkt.nodeSize.meta.maxLabelWidth);break;case vAt.OP:a=lkt.nodeSize.op.maxLabelWidth;break;case-1:a=lkt.annotations.maxLabelWidth}if(null!==a)return r.textContent=(function s(t,e,n){if(!t)return"";if(fAt(t,e)<=n)return t;let i=0,r=t.length;for(;i<r;){const o=i+Math.round((r-i)/2);fAt(t.slice(0,o)+"…",e)<=n?i=o:r=o-1}return 0===i?t[0]:t.slice(0,i)+"…"})(r.textContent,n,a),t.append("title").text(o)}!(function(t){t.NONE="none",t.COMPUTE_TIME="compute_time",t.DEVICE="device",t.MEMORY="memory",t.OP_COMPATIBILITY="op_compatibility",t.STRUCTURE="structure",t.XLA_CLUSTER="xla_cluster"})(zkt||(zkt={}));let Wkt=null;function qkt(t,e,n,i){gkt(t,"text",$Ct.Node.LABEL).transition().attr("x",e).attr("y",n+i)}function Ykt(t,e,n){let i=JCt(t,"g",n);switch(e.node.type){case vAt.OP:const t=e.node;if(we.isNumber(t.functionInputIndex)||we.isNumber(t.functionOutputIndex)){JCt(i,"polygon",$Ct.Node.COLOR_TARGET);break}JCt(i,"ellipse",$Ct.Node.COLOR_TARGET);break;case vAt.SERIES:let n="annotation",r=e;r.coreGraph&&(n=r.node.hasNonControlEdges?"vertical":"horizontal");let o=[$Ct.Node.COLOR_TARGET];r.isFadedOut&&o.push("faded-ellipse"),JCt(i,"use",o).attr("xlink:href","#op-series-"+n+"-stamp"),JCt(i,"rect",$Ct.Node.COLOR_TARGET).attr("rx",e.radius).attr("ry",e.radius);break;case vAt.BRIDGE:case vAt.META:JCt(i,"rect",$Ct.Node.COLOR_TARGET).attr("rx",e.radius).attr("ry",e.radius);break;default:throw Error("Unrecognized node type: "+e.node.type)}return i}function Xkt(t){switch(t.node.type){case vAt.OP:return $Ct.OPNODE;case vAt.META:return $Ct.METANODE;case vAt.SERIES:return $Ct.SERIESNODE;case vAt.BRIDGE:return $Ct.BRIDGENODE;case vAt.ELLIPSIS:return $Ct.ELLIPSISNODE}throw Error("Unrecognized node type: "+t.node.type)}function $kt(t,e,n){let i=(function r(t){return t.replace(/([:.\[\],/\\\(\)])/g,"\\$1")})(t);if(!n)return`url(#${i})`;let o=wu(n),a=o.select("defs#_graph-gradients");a.empty()&&(a=o.append("defs").attr("id","_graph-gradients"));let s=a.select("linearGradient#"+i);if(s.empty()){s=a.append("linearGradient").attr("id",t),s.selectAll("*").remove();let n=0;we.each(e,(t=>{let e=t.color;s.append("stop").attr("offset",n).attr("stop-color",e),s.append("stop").attr("offset",n+t.proportion).attr("stop-color",e),n+=t.proportion}))}return`url(#${i})`}function Kkt(t){wu(t).select("defs#_graph-gradients").remove()}function Zkt(t,e,n,i,r){let o=jAt;switch(t=t||(()=>0),e){case zkt.NONE:case zkt.STRUCTURE:if(n.node.type===vAt.META){let r=n.node.templateId;return e===zkt.STRUCTURE&&null!==r?o.STRUCTURE_PALETTE(t(r),i):o.UNKNOWN}return n.node.type===vAt.SERIES?i?o.EXPANDED_COLOR:"white":n.node.type===vAt.BRIDGE?n.structural?"#f0e":n.node.inbound?"#0ef":"#fe0":we.isNumber(n.node.functionInputIndex)?"#795548":we.isNumber(n.node.functionOutputIndex)?"#009688":"white";case zkt.DEVICE:return null==n.deviceColors?o.UNKNOWN:i?o.EXPANDED_COLOR:$kt("device-"+n.node.name,n.deviceColors,r);case zkt.XLA_CLUSTER:return null==n.xlaClusterColors?o.UNKNOWN:i?o.EXPANDED_COLOR:$kt("xla-"+n.node.name,n.xlaClusterColors,r);case zkt.COMPUTE_TIME:return i?o.EXPANDED_COLOR:n.computeTimeColor||o.UNKNOWN;case zkt.MEMORY:return i?o.EXPANDED_COLOR:n.memoryColor||o.UNKNOWN;case zkt.OP_COMPATIBILITY:return null==n.compatibilityColors?o.UNKNOWN:i?o.EXPANDED_COLOR:$kt("op-compat-"+n.node.name,n.compatibilityColors,r);default:throw new Error("Unknown case to color nodes by")}}function Jkt(t,e,n,i){i=i||$Ct.Node.SHAPE;const r=n.isNodeHighlighted(e.node.name),o=n.isNodeSelected(e.node.name),a=e.isInExtract||e.isOutExtract||e.isLibraryFunction,s=e.expanded&&i!==$Ct.Annotation.NODE,l=e.isFadedOut;t.classed("highlighted",r),t.classed("selected",o),t.classed("extract",a),t.classed("expanded",s),t.classed("faded",l);const c=t.select("."+i+" ."+$Ct.Node.COLOR_TARGET),u=Zkt(n.templateIndex,n.colorBy,e,s,n.getGraphSvgRoot());c.style("fill",u),c.style("stroke",o?null:Qkt(u))}function Qkt(t){return"url"===t.substring(0,3)?jAt.GRADIENT_OUTLINE:Vh(t).darker().toString()}function tLt(t,e,n,i){const r=wu(t);if(r.selectAll(".input-highlight").classed("input-highlight",!1),r.selectAll(".non-input").classed("non-input",!1),r.selectAll(".input-parent").classed("input-parent",!1),r.selectAll(".input-child").classed("input-child",!1),r.selectAll(".input-edge-highlight").classed("input-edge-highlight",!1),r.selectAll(".non-input-edge-highlight").classed("non-input-edge-highlight",!1),r.selectAll(".input-highlight-selected").classed("input-highlight-selected",!1),!e||!i||!n)return;let o=eLt(n,e),a={};we.each(o,(function(n){a=nLt(t,e,n,a)}));let s=Object.keys(a),l=(function c(t,e){let n={};return we.each(e,(function(e){let i=t.getNodeByName(e),r=iLt(t,i);n[r.name]=r})),n})(e,s);!(function u(t,e){we.forOwn(e,(function(e){let n=e;for(;n.name!==gAt;){const e=wu(t).select(`.node[data-name="${n.name}"]`);!e.nodes().length||e.classed("input-highlight")||e.classed("selected")||e.classed("op")||e.classed("input-parent",!0),n=n.parentNode}}))})(t,l),r.selectAll("g.node:not(.selected):not(.input-highlight):not(.input-parent):not(.input-children)").classed("non-input",!0).each((function(t){r.selectAll(`[data-name="${t.node.name}"]`).classed("non-input",!0)})),r.selectAll("g.edge:not(.input-edge-highlight)").classed("non-input-edge-highlight",!0)}function eLt(t,e){let n=[],i=e.getNodeByName(t);if(i instanceof MAt)return[i].concat(i.inEmbeddings);let r=i.metagraph.nodes();return we.each(r,(function(t){n=n.concat(eLt(t,e))})),n}function nLt(t,e,n,i){if(i[n.name])return i;i[n.name]=!0;let r=n.inputs,o=iLt(e,n);wu(t).select(`.node[data-name="${o.name}"]`).classed("input-highlight",!0);let a={};we.each(r,(function(t){let n=e.getNodeByName(t.name);if(void 0===n)return;if(n instanceof TAt){let t=DAt(n.name);n=e.getNodeByName(t)}let i=iLt(e,n),r=a[i.name];r?r.opNodes.push(n):a[i.name]={visibleParent:i,opNodes:[n]}}));let s={},l=[o];s[o.name]={traced:!1,index:0,connectionEndpoints:[]};let c=o;for(let t=1;c.name!==gAt;t++)c=c.parentNode,s[c.name]={traced:!1,index:t,connectionEndpoints:[]},l[t]=c;return we.forOwn(a,(function(n,r){let a=n.visibleParent;we.each(n.opNodes,(function(n){i=nLt(t,e,n,i)})),a.name!==o.name&&(function c(t,e,n,i){let r=e,o=e,a=[];for(;!n[r.name];)o.name!==r.name&&a.push([o,r]),o=r,r=r.parentNode;let s=n[r.name].index,l=i[Math.max(s-1,0)].name,c=l,u=o.name,h=o.name;const d=wu(t);d.selectAll(`[data-edge="${h}--${l}"]`).classed("input-edge-highlight",!0),we.each(a,(function(t){d.selectAll(`[data-edge="${t[0].name}--${c}~~${t[1].name}~~OUT"]`).classed("input-edge-highlight",!0)}));for(let t=1;t<s;t++)d.selectAll(`[data-edge="${u}~~${i[t].name}~~IN--${i[t-1].name}"]`).classed("input-edge-highlight",!0)})(t,a,s,l)})),i}function iLt(t,e){let n=!1,i=e;for(;!n;)if(i=(e=i).parentNode,void 0===i)n=!0;else{let e=t.getRenderNodeByName(i.name);e&&(e.expanded||i instanceof MAt)&&(n=!0)}return e}function rLt(t,e,n,i){let r=t.selectAll((function(){return this.childNodes})).data(e.list,(t=>t.node.name));return r.enter().append("g").attr("data-name",(t=>t.node.name)).each((function(t){let e=wu(this);i.addAnnotationGroup(t,n,e);let r=$Ct.Annotation.EDGE,o=t.renderMetaedgeInfo&&t.renderMetaedgeInfo.metaedge;o&&!o.numRegularEdges&&(r+=" "+$Ct.Annotation.CONTROL_EDGE),o&&o.numRefEdges&&(r+=" "+$Ct.Edge.REF_LINE),Okt(e,t,i,r),t.annotationType!==KAt.ELLIPSIS?((function a(t,e){let n=e.node.name.split("/");oLt(t,n[n.length-1],e,null)})(e,t),(function s(t,e){e.annotationType===KAt.SUMMARY?JCt(t,"use").attr("class","summary").attr("xlink:href","#summary-icon").attr("cursor","pointer"):JCt(Ykt(t,e,$Ct.Annotation.NODE),"title").text(e.node.name)})(e,t)):oLt(e,t.node.name,t,$Ct.Annotation.ELLIPSIS)})).merge(r).attr("class",(t=>$Ct.Annotation.GROUP+" "+(function e(t){return(KAt[t]||"").toLowerCase()||null})(t.annotationType)+" "+Xkt(t))).each((function(t){let e=wu(this);!(function r(t,e,n,i){let r=pkt(e);n.renderNodeInfo&&n.annotationType!==KAt.ELLIPSIS&&Jkt(t,n.renderNodeInfo,i,$Ct.Annotation.NODE),n.annotationType===KAt.SUMMARY&&(n.width+=10),t.select("text."+$Ct.Annotation.LABEL).transition().attr("x",r+n.dx+(n.isIn?-1:1)*(n.width/2+n.labelOffset)).attr("y",e.y+n.dy),t.select("use.summary").transition().attr("x",r+n.dx-3).attr("y",e.y+n.dy-6),xkt(t.select("."+$Ct.Annotation.NODE+" ellipse"),r+n.dx,e.y+n.dy,n.width,n.height),bkt(t.select("."+$Ct.Annotation.NODE+" rect"),r+n.dx,e.y+n.dy,n.width,n.height),bkt(t.select("."+$Ct.Annotation.NODE+" use"),r+n.dx,e.y+n.dy,n.width,n.height),t.select("path."+$Ct.Annotation.EDGE).transition().attr("d",(t=>{let n=t.points.map((t=>({x:t.dx+r,y:t.dy+e.y})));return Rkt(n)}))})(e,n,t,i),t.annotationType!==KAt.ELLIPSIS&&(function o(t,e,n,i){t.on("mouseover",(t=>{i.fire("annotation-highlight",{name:t.node.name,hostName:e.node.name})})).on("mouseout",(t=>{i.fire("annotation-unhighlight",{name:t.node.name,hostName:e.node.name})})).on("click",(t=>{cu.stopPropagation(),i.fire("annotation-select",{name:t.node.name,hostName:e.node.name})})),n.annotationType!==KAt.SUMMARY&&n.annotationType!==KAt.CONSTANT&&t.on("contextmenu",Ckt(i,Fkt(n.node,i)))})(e,n,t,i)})),r.exit().each((function(t){i.removeAnnotationGroup(t,n)})).remove(),r}function oLt(t,e,n,i){let r=$Ct.Annotation.LABEL;return i&&(r+=" "+i),Gkt(t.append("text").attr("class",r).attr("dy",".35em").attr("text-anchor",n.isIn?"end":"start").text(e),-1,5)}function aLt(t,e,n,i){let r=ZCt(t,"g",i=i||$Ct.Scene.GROUP).empty(),o=JCt(t,"g",i),a=JCt(o,"g",$Ct.Scene.CORE),s=we.reduce(e.coreGraph.nodes(),((t,n)=>{let i=e.coreGraph.node(n);return i.excluded||t.push(i),t}),[]);return e.node.type===vAt.SERIES&&s.reverse(),(function l(t,e,n){const i=n;let r=[];r=we.reduce(e.edges(),((t,n)=>{let i=e.edge(n);return t.push({v:n.v,w:n.w,label:i}),t}),r);let o=JCt(t,"g",$Ct.Edge.CONTAINER).selectAll((function(){return this.childNodes})).data(r,kkt);o.enter().append("g").attr("class",$Ct.Edge.GROUP).attr("data-edge",kkt).each((function(t){let e=wu(this);t.label.edgeGroup=e,i._edgeGroupIndex[kkt(t)]=e,i.handleEdgeSelected&&e.on("click",(t=>{cu.stopPropagation(),i.fire("edge-select",{edgeData:t,edgeGroup:e})})),Okt(e,t,i)})).merge(o).each((function(){!(function t(e,n){wu(n).select("path."+$Ct.Edge.LINE).transition().attrTween("d",(function(t,n,i){return(function r(t,e,n,i,o){let a=n.label,s=a.adjoiningMetaedge,l=a.points;const{shadowRoot:c}=t;if(n.label.startMarkerId&&(l=Ikt(l,wu(c.querySelector("#"+n.label.startMarkerId)),!0)),n.label.endMarkerId&&(l=Ikt(l,wu(c.querySelector("#"+n.label.endMarkerId)),!1)),!s)return Ud(o,Rkt(l));let u=s.edgeGroup.node().firstChild,h=a.metaedge.inbound;return function(t){let n=u.getPointAtLength(h?u.getTotalLength():0).matrixTransform(u.getCTM()).matrixTransform(e.getCTM().inverse()),i=h?0:l.length-1;return l[i].x=n.x,l[i].y=n.y,Rkt(l)}})(e,this,t,0,i)}))})(n,this)})).each((function(t){!(function e(t,n,i){t.classed("faded",n.label.isFadedOut);let r=n.label.metaedge;t.select("path."+$Ct.Edge.LINE).classed("control-dep",r&&!r.numRegularEdges)})(wu(this),t)})),o.exit().each((t=>{delete i._edgeGroupIndex[kkt(t)]})).remove()})(a,e.coreGraph,n),Dkt(a,s,n),e.isolatedInExtract.length>0?Dkt(JCt(o,"g",$Ct.Scene.INEXTRACT),e.isolatedInExtract,n):ZCt(o,"g",$Ct.Scene.INEXTRACT).remove(),e.isolatedOutExtract.length>0?Dkt(JCt(o,"g",$Ct.Scene.OUTEXTRACT),e.isolatedOutExtract,n):ZCt(o,"g",$Ct.Scene.OUTEXTRACT).remove(),e.libraryFunctionsExtract.length>0?Dkt(JCt(o,"g",$Ct.Scene.FUNCTION_LIBRARY),e.libraryFunctionsExtract,n):ZCt(o,"g",$Ct.Scene.FUNCTION_LIBRARY).remove(),(function c(t,e){let n=e.node.type===vAt.SERIES?0:lkt.subscene.meta.labelHeight;vkt(gkt(t,"g",_kt.Scene.CORE),0,n);let i=e.isolatedInExtract.length>0,r=e.isolatedOutExtract.length>0,o=e.libraryFunctionsExtract.length>0,a=lkt.subscene.meta.extractXOffset,s=0;if(i&&(s+=e.outExtractBox.width),r&&(s+=e.outExtractBox.width),i){let i=e.coreBox.width;i=s<ckt?i-ckt+e.inExtractBox.width/2:i-e.inExtractBox.width/2-e.outExtractBox.width-(r?a:0),i=i-e.libraryFunctionsBox.width-(o?a:0),vkt(gkt(t,"g",_kt.Scene.INEXTRACT),i,n)}if(r){let i=e.coreBox.width;s<ckt?i=i-ckt+e.outExtractBox.width/2:i-=e.outExtractBox.width/2,i=i-e.libraryFunctionsBox.width-(o?a:0),vkt(gkt(t,"g",_kt.Scene.OUTEXTRACT),i,n)}if(o){let i=e.coreBox.width-e.libraryFunctionsBox.width/2;vkt(gkt(t,"g",_kt.Scene.FUNCTION_LIBRARY),i,n)}})(o,e),r&&o.attr("opacity",0).transition().attr("opacity",1),o}let sLt=class extends(tr(ye)){constructor(){super(...arguments),this.node=null,this.renderInfo=null,this.colorBy=zkt.STRUCTURE,this.templateIndex=null,this.type=null,this.vertical=!1,this.const=!1,this.summary=!1,this.fill=null,this.height=20}_computeFillOverride(t,e,n,i,r){return t&&e&&i?Zkt(i,n,e,!1):r}_getStrokeOverride(t){return t?Qkt(t):null}_getType(t,e,n,i){const{GraphIconType:r}=Tkt;if(t)switch(t.type){case vAt.OP:{const i=t.op;return"string"!=typeof i?r.OP:"Const"===i||n?r.CONST:i.endsWith("Summary")||e?r.SUMMARY:r.OP}case vAt.META:return r.META;case vAt.SERIES:return r.SERIES}return i}_isVertical(t,e){return t?t.hasNonControlEdges:!!e}_getFaded(t){return t&&t.isFadedOut}_onFillOverrideChanged(t,e){const{node:n,renderInfo:i,colorBy:r,templateIndex:o}=this;t!==e&&Kkt(this.$.icon.getSvgDefinableElement()),n&&i&&o&&Zkt(o,r,i,!1,this.$.icon.getSvgDefinableElement())}};sLt.template=_e`
    <style>
      tf-graph-icon {
        --tb-graph-faded: var(--tb-graph-faded);
      }
    </style>
    <tf-graph-icon
      id="icon"
      type="[[_getType(node, summary, const, type)]]"
      height="[[height]]"
      fill-override="[[_fillOverride]]"
      stroke-override="[[_getStrokeOverride(_fillOverride)]]"
      faded="[[_getFaded(renderInfo)]]"
      vertical="[[_isVertical(node, vertical)]]"
    ></tf-graph-icon>
  `,t([o({type:Object}),e("design:type",Object)],sLt.prototype,"node",void 0),t([o({type:Object}),e("design:type",Object)],sLt.prototype,"renderInfo",void 0),t([o({type:Object}),e("design:type",String)],sLt.prototype,"colorBy",void 0),t([o({type:Object}),e("design:type",Function)],sLt.prototype,"templateIndex",void 0),t([o({type:String}),e("design:type",String)],sLt.prototype,"type",void 0),t([o({type:Boolean}),e("design:type",Boolean)],sLt.prototype,"vertical",void 0),t([o({type:Boolean}),e("design:type",Boolean)],sLt.prototype,"const",void 0),t([o({type:Boolean}),e("design:type",Boolean)],sLt.prototype,"summary",void 0),t([o({type:String}),e("design:type",String)],sLt.prototype,"fill",void 0),t([o({type:Number}),e("design:type",Number)],sLt.prototype,"height",void 0),t([o({type:String,computed:"_computeFillOverride(node, renderInfo, colorBy, templateIndex, fill)",observer:"_onFillOverrideChanged"}),e("design:type",String)],sLt.prototype,"_fillOverride",void 0),sLt=t([i("tf-node-icon")],sLt);let lLt=class extends(tr(ye)){_itemTypeChanged(){"subnode"!==this.itemType?this.$["list-item"].classList.add("clickable"):this.$["list-item"].classList.remove("clickable")}_nodeListener(t){this.fire("node-list-item-"+t.type,{nodeName:this.name,type:this.itemType})}_fadedClass(t){return t&&t.isFadedOut?"faded":""}};function cLt(t,e,n){return we.sortBy(t,[t=>e.node(t).op,t=>e.node(t).templateId,t=>e.neighbors(t).length,t=>e.predecessors(t).length,t=>e.successors(t).length,t=>t.substr(n.length)])}function uLt(t,e){if(!(function n(t,e){let n=BAt(t),i=BAt(e);for(let t=0;t<n.length;t++)if(n[t]!==i[t])return!1;return!0})(t,e))return!1;let i=t.graph().name,r=e.graph().name,o={},a={},s=[];function l(t,e){let n=t.substr(i.length),l=e.substr(r.length);return o[n]^a[l]?(console.warn("different visit pattern","["+i+"]",n,"["+r+"]",l),!0):(o[n]||(o[n]=a[l]=!0,s.push({n1:t,n2:e})),!1)}let c=t.sources(),u=e.sources();if(c.length!==u.length)return console.log("different source length"),!1;c=cLt(c,t,i),u=cLt(u,e,r);for(let t=0;t<c.length;t++)if(l(c[t],u[t]))return!1;for(;s.length>0;){let n=s.pop();if(!hLt(t.node(n.n1),e.node(n.n2)))return!1;let o=t.successors(n.n1),a=e.successors(n.n2);if(o.length!==a.length)return console.log("# of successors mismatch",o,a),!1;o=cLt(o,t,i),a=cLt(a,e,r);for(let t=0;t<o.length;t++)if(l(o[t],a[t]))return!1}return!0}function hLt(t,e){if(t.type===vAt.META){let n=t,i=e;return n.templateId&&i.templateId&&n.templateId===i.templateId}if(t.type===vAt.OP&&e.type===vAt.OP)return t.op===e.op;if(t.type===vAt.SERIES&&e.type===vAt.SERIES){let n=t,i=e,r=n.metagraph.nodeCount();return r===i.metagraph.nodeCount()&&(0===r||n.metagraph.node(n.metagraph.nodes()[0]).op===i.metagraph.node(i.metagraph.nodes()[0]).op)}return!1}var dLt;lLt.template=_e`
    <style>
      #list-item {
        width: 100%;
        color: var(--secondary-text-color);
        font-size: 11pt;
        font-weight: 400;
        position: relative;
        display: inline-block;
      }

      #list-item:hover {
        background-color: var(--google-yellow-100);
      }

      .clickable {
        cursor: pointer;
      }

      #list-item span {
        margin-left: 40px;
      }

      #list-item.excluded span {
        color: #999;
      }

      #list-item span.edge-label {
        float: right;
        font-size: 10px;
        margin-left: 3px;
        margin-right: 5px;
      }

      .node-icon {
        position: absolute;
        top: 1px;
        left: 2px;
      }

      .faded span {
        color: var(--tb-graph-faded);
      }
    </style>

    <div
      id="list-item"
      on-mouseover="_nodeListener"
      on-mouseout="_nodeListener"
      on-click="_nodeListener"
    >
      <div class$="{{_fadedClass(itemRenderInfo)}}">
        <tf-node-icon
          class="node-icon"
          height="12"
          color-by="[[colorBy]]"
          color-by-params="[[colorByParams]]"
          node="[[itemNode]]"
          render-info="[[itemRenderInfo]]"
          template-index="[[templateIndex]]"
        >
        </tf-node-icon>
        <span title$="[[name]]">[[name]]</span>
      </div>
    </div>
  `,t([o({type:Object}),e("design:type",Object)],lLt.prototype,"cardNode",void 0),t([o({type:Object}),e("design:type",Object)],lLt.prototype,"itemNode",void 0),t([o({type:String}),e("design:type",String)],lLt.prototype,"edgeLabel",void 0),t([o({type:Object}),e("design:type",Object)],lLt.prototype,"itemRenderInfo",void 0),t([o({type:String}),e("design:type",String)],lLt.prototype,"name",void 0),t([o({type:String,observer:"_itemTypeChanged"}),e("design:type",String)],lLt.prototype,"itemType",void 0),t([o({type:String}),e("design:type",String)],lLt.prototype,"colorBy",void 0),t([o({type:Object}),e("design:type",Object)],lLt.prototype,"colorByParams",void 0),t([o({type:Object}),e("design:type",Function)],lLt.prototype,"templateIndex",void 0),lLt=t([i("tf-graph-op-compat-list-item")],lLt),(function(t){t[t.TEMPLATES_UPDATED=0]="TEMPLATES_UPDATED"})(dLt||(dLt={}));class pLt extends class{constructor(){this.eventTypeToListeners=new Map}getListeners(t){return this.eventTypeToListeners.has(t)||this.eventTypeToListeners.set(t,[]),this.eventTypeToListeners.get(t)}addListener(t,e){this.getListeners(t).push(e)}removeListener(t,e){const n=this.getListeners(t).filter((t=>t!==e));this.eventTypeToListeners.set(t,n)}dispatchEvent(t,e){for(const n of this.getListeners(t))n(e)}}{constructor(t){super(),this.hasShapeInfo=!1,this.maxMetaEdgeSize=1,this.graphOptions={},this.templates=null,this.graphOptions.compound=!0,this.graphOptions.rankdir=t.rankDirection,this.root=EAt(gAt,this.graphOptions),this.libraryFunctions={},this.seriesGroupMap=new Map(t.seriesMap),this.devices=null,this.xlaClusters=null,this.verifyTemplate=t.verifyTemplate,this.index={},this.index.__root__=this.root,this.orderings={}}getSeriesGroupType(t){var e;return null!==(e=this.seriesGroupMap.get(t))&&void 0!==e?e:xAt.GROUP}setSeriesGroupType(t,e){return this.seriesGroupMap.set(t,e)}buildSeriesGroupMapToggled(t){const e=this.getSeriesGroupType(t)===xAt.GROUP?xAt.UNGROUP:xAt.GROUP;return new Map([...this.seriesGroupMap,[t,e]])}getNodeMap(){return this.index}node(t){return this.index[t]}setNode(t,e){this.index[t]=e}getBridgegraph(t){let e=this.index[t];if(!e)throw Error("Could not find node in hierarchy: "+t);if(!("metagraph"in e))return null;if(e.bridgegraph)return e.bridgegraph;let n=e.bridgegraph=RAt("BRIDGEGRAPH",yAt.BRIDGE,this.graphOptions);if(!e.parentNode||!("metagraph"in e.parentNode))return n;let i=e.parentNode,r=i.metagraph,o=this.getBridgegraph(i.name);return we.each([r,o],(e=>{e.edges().filter((e=>e.v===t||e.w===t)).forEach((i=>{let r=i.w===t,o=e.edge(i);we.each(o.baseEdgeList,(e=>{let[o,a]=r?[e.w,i.v]:[e.v,i.w],s=this.getChildName(t,o),l={v:r?a:s,w:r?s:a},c=n.edge(l);c||(c=CAt(l.v,l.w),c.inbound=r,n.setEdge(l.v,l.w,c)),c.addBaseEdge(e,this)}))}))})),n}getChildName(t,e){let n=this.index[e];for(;n;){if(n.parentNode&&n.parentNode.name===t)return n.name;n=n.parentNode}throw Error("Could not find immediate child for descendant: "+e)}getPredecessors(t){let e=this.index[t];if(!e)throw Error("Could not find node with name: "+t);let n=this.getOneWayEdges(e,!0);return e.isGroupNode||we.each(e.inEmbeddings,(i=>{we.each(e.inputs,(e=>{if(e.name===i.name){let r=new AAt(i.name,t);r.addBaseEdge({isControlDependency:e.isControlDependency,outputTensorKey:e.outputTensorKey,isReferenceEdge:!1,v:i.name,w:t},this),n.regular.push(r)}}))})),n}getSuccessors(t){let e=this.index[t];if(!e)throw Error("Could not find node with name: "+t);let n=this.getOneWayEdges(e,!1);return e.isGroupNode||we.each(e.outEmbeddings,(e=>{we.each(e.inputs,(i=>{if(i.name===t){let r=new AAt(t,e.name);r.addBaseEdge({isControlDependency:i.isControlDependency,outputTensorKey:i.outputTensorKey,isReferenceEdge:!1,v:t,w:e.name},this),n.regular.push(r)}}))})),n}getOneWayEdges(t,e){let n={control:[],regular:[]};if(!t.parentNode||!t.parentNode.isGroupNode)return n;let i=t.parentNode,r=i.metagraph,o=this.getBridgegraph(i.name);return fLt(r,t,e,n),fLt(o,t,e,n),n}getTopologicalOrdering(t){let e=this.index[t];if(!e)throw Error("Could not find node with name: "+t);if(!e.isGroupNode)return null;if(t in this.orderings)return this.orderings[t];let n={},i={},r=e.metagraph;we.each(r.edges(),(t=>{r.edge(t).numRegularEdges&&(t.v in n||(n[t.v]=[]),n[t.v].push(t.w),i[t.w]=!0)}));let o=we.difference(we.keys(n),we.keys(i)),a=this.orderings[t]={},s=0;for(;o.length;){let t=o.shift();a[t]=s++,we.each(n[t],(t=>o.push(t))),delete n[t]}return a}getTemplateIndex(){if(!this.templates)return null;let t=kg(this.templates);if(!t.length)return null;let e=xM().domain(t).range(Rl(0,t.length));return t=>e(t)}updateTemplates(){iAt("Finding similar subgraphs",(()=>{this.templates=(function t(e,n){let i=(function o(t,e){return we.reduce(t,(function(t,n){let i=n[0],r=[];return n[1].nodes.forEach((function(t){for(let n=0;n<r.length;n++)if(!e||uLt(r[n].metanode.metagraph,t.metagraph))return t.templateId=r[n].metanode.templateId,void r[n].members.push(t.name);t.templateId=i+"["+r.length+"]",r.push({metanode:t,members:[t.name]})})),r.forEach((function(e){t[e.metanode.templateId]={level:n[1].level,nodes:e.members}})),t}),{})})((function r(t){const e=t.getNodeMap();let n=Object.keys(e).reduce(((t,n)=>{const i=e[n];if(i.type!==vAt.META)return t;let r=n.split("/").length-1,o=(function a(t){return we.map({depth:t.depth,"|V|":t.metagraph.nodes().length,"|E|":t.metagraph.edges().length},(function(t,e){return e+"="+t})).join(" ")+" [ops] "+we.map(t.opHistogram,(function(t,e){return e+"="+t})).join(",")})(i),s=t[o]||{nodes:[],level:r};return t[o]=s,s.nodes.push(i),s.level>r&&(s.level=r),t}),{});return Object.keys(n).map((t=>[t,n[t]])).filter((([t,e])=>{const{nodes:n}=e;if(n.length>1)return!0;const i=n[0];return i.type===vAt.META&&i.associatedFunction})).sort((([t,e])=>e.nodes[0].depth))})(e),n);return Object.keys(i).sort((t=>i[t].level)).reduce(((t,e)=>(t[e]=i[e],t)),{})})(this,this.verifyTemplate),this.dispatchEvent(dLt.TEMPLATES_UPDATED)}),YCt.HIERARCHY_FIND_SIMILAR_SUBGRAPHS)}}function fLt(t,e,n,i){let r=n?t.inEdges(e.name):t.outEdges(e.name);we.each(r,(e=>{let n=t.edge(e);(n.numRegularEdges?i.regular:i.control).push(n)}))}const mLt={verifyTemplate:!0,seriesNodeMinSize:5,seriesMap:new Map,rankDirection:"BT",useGeneralizedSeriesPatterns:!1};function gLt(t,e,n){const i=new pLt(e),r={};return aAt("Adding nodes",30,(()=>{let e={},n={};we.each(t.nodes,((t,i)=>{t.device&&(e[t.device]=!0),t.xlaCluster&&(n[t.xlaCluster]=!0)})),i.devices=we.keys(e),i.xlaClusters=we.keys(n),(function r(t,e){const n={};we.each(e.nodes,((e,i)=>{let r=HAt(e.name),o=t.root;o.depth=Math.max(r.length,o.depth),n[e.op]||(n[e.op]=[]),n[e.op].push(e);for(let i=0;i<r.length&&(o.depth=Math.max(o.depth,r.length-i),o.cardinality+=e.cardinality,o.opHistogram[e.op]=(o.opHistogram[e.op]||0)+1,null!=e.device&&(o.deviceHistogram[e.device]=(o.deviceHistogram[e.device]||0)+1),null!=e.xlaCluster&&(o.xlaClusterHistogram[e.xlaCluster]=(o.xlaClusterHistogram[e.xlaCluster]||0)+1),e.compatible?o.compatibilityHistogram.compatible=(o.compatibilityHistogram.compatible||0)+1:o.compatibilityHistogram.incompatible=(o.compatibilityHistogram.incompatible||0)+1,we.each(e.inEmbeddings,(t=>{t.compatible?o.compatibilityHistogram.compatible=(o.compatibilityHistogram.compatible||0)+1:o.compatibilityHistogram.incompatible=(o.compatibilityHistogram.incompatible||0)+1})),we.each(e.outEmbeddings,(t=>{t.compatible?o.compatibilityHistogram.compatible=(o.compatibilityHistogram.compatible||0)+1:o.compatibilityHistogram.incompatible=(o.compatibilityHistogram.incompatible||0)+1})),i!==r.length-1);i++){let e=r[i],a=t.node(e);if(!a&&(a=EAt(e,t.graphOptions),a.parentNode=o,t.setNode(e,a),o.metagraph.setNode(e,a),0===e.indexOf(_At)&&o.name===gAt)){const i=e.substring(_At.length);n[i]||(n[i]=[]),t.libraryFunctions[i]={node:a,usages:n[i]},a.associatedFunction=i}o=a}t.setNode(e.name,e),e.parentNode=o,o.metagraph.setNode(e.name,e),we.each(e.inEmbeddings,(function(n){t.setNode(n.name,n),n.parentNode=e})),we.each(e.outEmbeddings,(function(n){t.setNode(n.name,n),n.parentNode=e}))}))})(i,t)}),n,YCt.HIERARCHY_ADD_NODES).then((()=>aAt("Detect series",30,(()=>{e.seriesNodeMinSize>0&&_Lt(i.root,i,r,e.seriesNodeMinSize,e.seriesMap,e.useGeneralizedSeriesPatterns)}),n,YCt.HIERARCHY_DETECT_SERIES))).then((()=>aAt("Adding edges",40,(()=>{!(function e(t,n,i){let r=t.getNodeMap(),o=[],a=[],s=(t,e)=>{let n=0;for(;t;)e[n++]=t.name,t=t.parentNode;return n-1};we.each(n.edges,(e=>{let i=s(n.nodes[e.v],o),l=s(n.nodes[e.w],a);if(-1===i||-1===l)return;for(;o[i]===a[l];)if(i--,l--,i<0||l<0)throw Error("No difference found between ancestor paths.");let c=r[o[i+1]],u=o[i],h=a[l],d=c.metagraph.edge(u,h);d||(d=CAt(u,h),c.metagraph.setEdge(u,h,d)),c.hasNonControlEdges||e.isControlDependency||(c.hasNonControlEdges=!0),d.addBaseEdge(e,t)}))})(i,t)}),n,YCt.HIERARCHY_ADD_EDGES))).then((()=>i))}function _Lt(t,e,n,i,r,o){let a=t.metagraph;we.each(a.nodes(),(t=>{let s=a.node(t);s.type===vAt.META&&_Lt(s,e,n,i,r,o)}));let s=(function l(t){return we.reduce(t.nodes(),((e,n)=>{let i=t.node(n);if(i.type===vAt.META)return e;let r=i.op;return r&&(e[r]=e[r]||[],e[r].push(i.name)),e}),{})})(a),c=(o?vLt:yLt)(s,a,e.graphOptions);we.each(c,(function(t,r){let o=t.metagraph.nodes();we.each(o,(t=>{let e=a.node(t);e.owningSeries||(e.owningSeries=r)})),o.length<i&&e.getSeriesGroupType(t.name)===xAt.GROUP&&e.setSeriesGroupType(t.name,xAt.UNGROUP),e.getSeriesGroupType(t.name)!==xAt.UNGROUP&&(e.setNode(r,t),a.setNode(r,t),we.each(o,(e=>{let i=a.node(e);t.metagraph.setNode(e,i),t.parentNode=i.parentNode,t.cardinality++,null!=i.device&&(t.deviceHistogram[i.device]=(t.deviceHistogram[i.device]||0)+1),null!=i.xlaCluster&&(t.xlaClusterHistogram[i.xlaCluster]=(t.xlaClusterHistogram[i.xlaCluster]||0)+1),i.compatible?t.compatibilityHistogram.compatible=(t.compatibilityHistogram.compatible||0)+1:t.compatibilityHistogram.incompatible=(t.compatibilityHistogram.incompatible||0)+1,we.each(i.inEmbeddings,(e=>{e.compatible?t.compatibilityHistogram.compatible=(t.compatibilityHistogram.compatible||0)+1:t.compatibilityHistogram.incompatible=(t.compatibilityHistogram.incompatible||0)+1})),we.each(i.outEmbeddings,(e=>{e.compatible?t.compatibilityHistogram.compatible=(t.compatibilityHistogram.compatible||0)+1:t.compatibilityHistogram.incompatible=(t.compatibilityHistogram.incompatible||0)+1})),i.parentNode=t,n[e]=r,a.removeNode(e)})))}))}function yLt(t,e,n){let i={};return we.each(t,(function(t,r){if(t.length<=1)return;let o={};we.each(t,(function(t){const e="*"===t.charAt(t.length-1),i=t.split("/"),r=i[i.length-1],a=i.slice(0,i.length-1).join("/"),s=r.match(/^(\D*)(\d+)$/);let l,c,u="";s?(l=s[1],c=s[2]):(l=e?r.substr(0,r.length-1):r,c=0,u=e?"*":"");const h=LAt(l,u,a);o[h]=o[h]||[];const d=kAt(l,u,a,+c,t,n);o[h].push(d)})),we.each(o,(function(t,o){if(t.length<2)return;t.sort((function(t,e){return+t.clusterId-+e.clusterId}));let a=[t[0]];for(let o=1;o<t.length;o++){let s=t[o];s.clusterId!==a[a.length-1].clusterId+1?(bLt(a,i,+r,e,n),a=[s]):a.push(s)}bLt(a,i,+r,e,n)}))})),i}function vLt(t,e,n){let i={};return we.each(t,(function(t,r){if(t.length<=1)return;let o={},a={};we.each(t,(function(t){let e="*"===t.charAt(t.length-1),i=t.split("/"),r=i[i.length-1],s=i.slice(0,i.length-1).join("/");const l=/(\d+)/g;let c,u,h,d,p,f=0;for(;c=l.exec(r);)++f,u=r.slice(0,c.index),h=c[0],d=r.slice(c.index+c[0].length),p=LAt(u,d,s),o[p]=o[p],o[p]||(o[p]=kAt(u,d,s,+h,t,n)),o[p].ids.push(h),a[t]=a[t]||[],a[t].push([p,h]);f<1&&(u=e?r.substr(0,r.length-1):r,h=0,d=e?"*":"",p=LAt(u,d,s),o[p]=o[p],o[p]||(o[p]=kAt(u,d,s,+h,t,n)),o[p].ids.push(h),a[t]=a[t]||[],a[t].push([p,h]))}));var s={};we.each(a,(function(t,e){t.sort((function(t,e){return o[e[0]].ids.length-o[t[0]].ids.length}));var i=t[0][0],r=t[0][1];s[i]=s[i]||[];const a=e.split("/"),l=a.slice(0,a.length-1).join("/");var c=kAt(o[i].prefix,o[i].suffix,l,+r,e,n);s[i].push(c)})),we.each(s,(function(t,o){if(t.length<2)return;t.sort((function(t,e){return+t.clusterId-+e.clusterId}));let a=[t[0]];for(let o=1;o<t.length;o++){let s=t[o];s.clusterId!==a[a.length-1].clusterId+1?(bLt(a,i,+r,e,n),a=[s]):a.push(s)}bLt(a,i,+r,e,n)}))})),i}function bLt(t,e,n,i,r){if(t.length>1){let o=LAt(t[0].prefix,t[0].suffix,t[0].parent,t[0].clusterId,t[t.length-1].clusterId),a=kAt(t[0].prefix,t[0].suffix,t[0].parent,n,o,r);we.each(t,(function(t){a.ids.push(t.clusterId),a.metagraph.setNode(t.name,i.node(t.name))})),e[o]=a}}let xLt=class extends(tr(nl(ye))){constructor(){super(...arguments),this._expanded=!0,this._opCompatColor=VAt,this._opIncompatColor=UAt,this._templateIndex=null}_getNode(t,e){return e.node(t)}_getRenderInfo(t,e){return this.renderHierarchy.getOrCreateRenderNodeByName(t)}_toggleExpanded(){this._expanded=!this._expanded}_getToggleIcon(t){return t?"expand-less":"expand-more"}_resizeList(t){var e=document.querySelector(t);e&&e.fire("iron-resize")}get _incompatibleOpNodes(){const t=this.graphHierarchy;return t&&t.root?(this.async(this._resizeList.bind(this,"#incompatibleOpsList")),(function e(t){const e=[],n={};return we.each(t.root.leaves(),(i=>{let r=t.node(i);if(r.type==vAt.OP){let i=r;if(!i.compatible)if(i.owningSeries){if(t.getSeriesGroupType(i.owningSeries)===xAt.UNGROUP)e.push(i);else if(!n[i.owningSeries]){let r=t.node(i.owningSeries);r&&(n[i.owningSeries]=r,e.push(r))}}else e.push(i);we.each(i.inEmbeddings,(t=>{t.compatible||e.push(t)})),we.each(i.outEmbeddings,(t=>{t.compatible||e.push(t)}))}})),e})(t)):[]}get _opCompatScore(){var t=this.graphHierarchy;if(t&&t.root){var e=t.root,n=e.compatibilityHistogram.compatible,i=e.compatibilityHistogram.incompatible;return 0==n&&0==i?0:Math.floor(100*n/(n+i))/100}return 0}get _opCompatScoreLabel(){var t=this._opCompatScore;return fy(".0%")(t)}get _totalIncompatOps(){var t=this.graphHierarchy;return t&&t.root?t.root.compatibilityHistogram.incompatible:0}_graphHierarchyChanged(){this._templateIndex=this.graphHierarchy.getTemplateIndex(),this.graphHierarchy.addListener(dLt.TEMPLATES_UPDATED,(()=>{this._templateIndex=this.graphHierarchy.getTemplateIndex()}))}};xLt.template=_e`
    <style>
      :host {
        max-height: 500px;
      }

      .incompatible-ops-list {
        height: 350px;
        max-height: 400px;
        overflow-y: scroll;
        display: flex;
        flex-direction: column;
      }

      iron-list {
        flex: 1 1 auto;
      }

      paper-item {
        padding: 0;
        background: var(--secondary-background-color);
      }

      paper-item-body[two-line] {
        min-height: 0;
        padding: 8px 12px 4px;
      }

      .expandedInfo {
        padding: 8px 12px;
        font-weight: 500;
        font-size: 12pt;
        width: 100%;
      }

      .node-name {
        white-space: normal;
        word-wrap: break-word;
        font-size: 14pt;
        font-weight: 500;
      }

      .subtitle {
        color: var(--secondary-text-color);
        font-size: 12pt;
      }

      .toggle-button {
        float: right;
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .non-control-list-item {
        padding-left: 10px;
      }

      div.op-compat-display {
        margin-top: 10px;
        display: inline-block;
      }

      /**
       * Sadly, because the whole body is inverted in color, legends also need
       * to be inverted.
       **/
      :host(.dark-mode) div.op-compat-display {
        filter: invert(1);
      }

      svg.op-compat {
        width: 250px;
        height: 25px;
        float: left;
      }

      div.op-compat-value {
        float: right;
        height: 100%;
        font-size: 14px;
        color: black;
        margin-left: 10px;
      }
    </style>

    <paper-item>
      <paper-item-body two-line>
        <div>
          <paper-icon-button
            icon="{{_getToggleIcon(_expanded)}}"
            on-click="_toggleExpanded"
            class="toggle-button"
          >
          </paper-icon-button>
          <div class="node-name" id="nodetitle">[[nodeTitle]]</div>
        </div>
        <div secondary>
          <div class="subtitle">
            <div class="op-compat-display">
              <svg
                class="op-compat"
                preserveAspectRatio="xMinYMid meet"
                viewBox="0 0 250 25"
              >
                <defs>
                  <linearGradient id="op-compat-fill">
                    <stop offset="0" stop-color$="[[_opCompatColor]]"></stop>
                    <stop
                      offset$="[[_opCompatScore]]"
                      stop-color$="[[_opCompatColor]]"
                    ></stop>
                    <stop
                      offset$="[[_opCompatScore]]"
                      stop-color$="[[_opIncompatColor]]"
                    ></stop>
                    <stop offset="1" stop-color$="[[_opIncompatColor ]]"></stop>
                  </linearGradient>
                </defs>
                <rect
                  height="25"
                  width="250"
                  rx="5"
                  ry="5"
                  style="fill: url('#op-compat-fill');"
                ></rect>
              </svg>
              <div class="op-compat-value">[[_opCompatScoreLabel]]</div>
            </div>
          </div>
        </div>
      </paper-item-body>
    </paper-item>

    <iron-collapse opened="{{_expanded}}">
      <template is="dom-if" if="{{_expanded}}" restamp="true">
        <div class="expandedInfo">
          Incompatible Operations: (<span>[[_totalIncompatOps]]</span>)
          <iron-list
            class="incompatible-ops-list"
            id="incompatibleOpsList"
            items="[[_incompatibleOpNodes]]"
          >
            <template>
              <tf-graph-op-compat-list-item
                class="non-control-list-item"
                item-node="[[item]]"
                item-render-info="[[_getRenderInfo(item.name, renderHierarchy)]]"
                name="[[item.name]]"
                template-index="[[_templateIndex]]"
                color-by="[[colorBy]]"
                item-type="incompatible-ops"
              >
              </tf-graph-op-compat-list-item>
            </template>
          </iron-list>
        </div>
      </template>
    </iron-collapse>
  `,t([o({type:Object}),e("design:type",pLt)],xLt.prototype,"graphHierarchy",void 0),t([o({type:Object}),e("design:type",XAt)],xLt.prototype,"renderHierarchy",void 0),t([o({type:String}),e("design:type",String)],xLt.prototype,"nodeTitle",void 0),t([o({type:Boolean}),e("design:type",Boolean)],xLt.prototype,"_expanded",void 0),t([o({type:String}),e("design:type",String)],xLt.prototype,"_opCompatColor",void 0),t([o({type:String}),e("design:type",String)],xLt.prototype,"_opIncompatColor",void 0),t([o({type:Object}),e("design:type",Function)],xLt.prototype,"_templateIndex",void 0),t([s("graphHierarchy"),e("design:type",Array),e("design:paramtypes",[])],xLt.prototype,"_incompatibleOpNodes",null),t([s("graphHierarchy"),e("design:type",Number),e("design:paramtypes",[])],xLt.prototype,"_opCompatScore",null),t([s("_opCompatScore"),e("design:type",String),e("design:paramtypes",[])],xLt.prototype,"_opCompatScoreLabel",null),t([s("graphHierarchy"),e("design:type",Number),e("design:paramtypes",[])],xLt.prototype,"_totalIncompatOps",null),t([a("graphHierarchy"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],xLt.prototype,"_graphHierarchyChanged",null),xLt=t([i("tf-graph-op-compat-card")],xLt);let wLt=class extends(tr(nl(ye))){_itemTypeChanged(){"subnode"!==this.itemType?this.$["list-item"].classList.add("clickable"):this.$["list-item"].classList.remove("clickable")}_nodeListener(t){this.fire("node-list-item-"+t.type,{cardNode:this.cardNode.name,nodeName:this.name,type:this.itemType})}_fadedClass(t){return t&&t.isFadedOut?"faded":""}};wLt.template=_e`
    <style>
      #list-item {
        width: 100%;
        color: var(--secondary-text-color);
        font-size: 11pt;
        font-weight: 400;
        position: relative;
        display: inline-block;
      }

      #list-item:hover {
        background-color: var(--google-yellow-100);
      }

      :host(.dark-mode) #list-item:hover {
        background-color: var(--paper-yellow-900);
        color: #fff;
      }

      .clickable {
        cursor: pointer;
      }

      #list-item span {
        margin-left: 40px;
      }

      #list-item.excluded span {
        color: #999;
      }

      #list-item span.edge-label {
        float: right;
        font-size: 10px;
        margin-left: 3px;
        margin-right: 5px;
      }

      .node-icon {
        position: absolute;
        top: 1px;
        left: 2px;
      }

      .faded span {
        color: var(--tb-graph-faded);
      }
    </style>
    <div
      id="list-item"
      on-mouseover="_nodeListener"
      on-mouseout="_nodeListener"
      on-click="_nodeListener"
    >
      <div class$="{{_fadedClass(itemRenderInfo)}}">
        <tf-node-icon
          class="node-icon"
          height="12"
          color-by="[[colorBy]]"
          color-by-params="[[colorByParams]]"
          node="[[itemNode]]"
          render-info="[[itemRenderInfo]]"
          template-index="[[templateIndex]]"
        ></tf-node-icon>
        <span title$="[[name]]">[[name]]</span>
        <span class="edge-label">[[edgeLabel]]</span>
      </div>
    </div>
  `,t([o({type:Object}),e("design:type",Object)],wLt.prototype,"cardNode",void 0),t([o({type:Object}),e("design:type",Object)],wLt.prototype,"itemNode",void 0),t([o({type:String}),e("design:type",String)],wLt.prototype,"edgeLabel",void 0),t([o({type:Object}),e("design:type",Object)],wLt.prototype,"itemRenderInfo",void 0),t([o({type:String}),e("design:type",String)],wLt.prototype,"name",void 0),t([o({type:String,observer:"_itemTypeChanged"}),e("design:type",String)],wLt.prototype,"itemType",void 0),t([o({type:String}),e("design:type",String)],wLt.prototype,"colorBy",void 0),t([o({type:Object}),e("design:type",Object)],wLt.prototype,"colorByParams",void 0),t([o({type:Object}),e("design:type",Object)],wLt.prototype,"templateIndex",void 0),wLt=t([i("tf-node-list-item")],wLt);let SLt=class extends(tr(ye)){constructor(){super(...arguments),this._expanded=!0,this._openedControlPred=!1,this._openedControlSucc=!1,this._templateIndex=null}expandNode(){this.fire("_node.expand",this.node)}_getNode(t,e){return e.node(t)}_getNodeStats(t,e){var n=this._getNode(t,e);return n?n.stats:null}_getTotalMicros(t){return t?t.getTotalMicros():0}get _hasDisplayableNodeStats(){return hAt(this._nodeStats)}get _nodeStatsFormattedBytes(){var t=this._nodeStats;if(t&&t.totalBytes)return uAt(t.totalBytes,lAt)}get _nodeStatsFormattedComputeTime(){var t=this._nodeStats;if(t&&t.getTotalMicros())return uAt(t.getTotalMicros(),cAt)}get _nodeStatsFormattedOutputSizes(){var t=this._nodeStats;if(t&&t.outputSize&&t.outputSize.length)return we.map(t.outputSize,(function(t){return 0===t.length?"scalar":"["+t.join(", ")+"]"}))}_getRenderInfo(t,e){return this.renderHierarchy.getOrCreateRenderNodeByName(t)}get _attributes(){var t=this._node;if(this.async(this._resizeList.bind(this,"#attributesList")),!t||!t.attr)return[];var e=[];return we.each(t.attr,(function(t){"_too_large_attrs"===t.key?e=e.concat(t.value.list.s.map((function(t){return{key:t,value:"Too large to show..."}}))):e.push({key:t.key,value:JSON.stringify(t.value)})})),e}get _device(){var t=this._node;return t?t.device:null}get _successors(){var t=this._node,e=this.graphHierarchy;return this._refreshNodeItemList("inputsList"),t?this._convertEdgeListToEdgeInfoList(e.getSuccessors(t.name),!1,t.isGroupNode):{regular:[],control:[]}}get _predecessors(){var t=this._node,e=this.graphHierarchy;return this._refreshNodeItemList("outputsList"),t?this._convertEdgeListToEdgeInfoList(e.getPredecessors(t.name),!0,t.isGroupNode):{regular:[],control:[]}}get _functionUsages(){var t=this._node,e=this.graphHierarchy;if(this._refreshNodeItemList("functionUsagesList"),!t||t.type!==vAt.META)return[];const n=e.libraryFunctions[t.associatedFunction];return n?n.usages:[]}_refreshNodeItemList(t){this.async(this._resizeList.bind(this,`#${t}`))}_convertEdgeListToEdgeInfoList(t,e,n){var i=t=>we.map(t.baseEdgeList,(t=>{var n=e?t.v:t.w;return{name:n,node:this._getNode(n,this.graphHierarchy),edgeLabel:Lkt(t,this.renderHierarchy),renderInfo:this._getRenderInfo(n,this.renderHierarchy)}})),r=function(t){var r=[];return we.each(t,(t=>{var o=e?t.v:t.w;n&&1!=t.baseEdgeList.length?r.push({name:o,node:this._getNode(o,this.graphHierarchy),edgeLabel:Pkt(t,this.renderHierarchy),renderInfo:this._getRenderInfo(o,this.renderHierarchy)}):r=r.concat(i(t))})),r}.bind(this);return{regular:r(t.regular),control:r(t.control)}}get _subnodes(){var t=this._node;return t&&t.metagraph?t.metagraph.nodes():null}get _totalPredecessors(){var t=this._predecessors;return t.regular.length+t.control.length}get _totalSuccessors(){var t=this._successors;return t.regular.length+t.control.length}_toggleControlPred(){this._openedControlPred=!this._openedControlPred}_toggleControlSucc(){this._openedControlSucc=!this._openedControlSucc}_toggleExpanded(){this._expanded=!this._expanded}_getToggleIcon(t){return t?"expand-less":"expand-more"}_resetState(){this._openedControlPred=!1,this._openedControlSucc=!1,this.set("_groupButtonText",jkt(this._node))}_resizeList(t){var e=document.querySelector(t);e&&e.fire("iron-resize")}_toggleInclude(){this.fire("node-toggle-inclusion",{name:this.graphNodeName})}_nodeIncludeStateChanged(t,e){this.set("_auxButtonText",FAt(t))}_toggleGroup(){var t=Ukt(this._node);this.fire("node-toggle-seriesgroup",{name:t})}_isLibraryFunction(t){return t&&t.name.startsWith(_At)}_isInSeries(t){return Vkt(t)}_graphHierarchyChanged(){this._templateIndex=this.graphHierarchy.getTemplateIndex(),this.graphHierarchy.addListener(dLt.TEMPLATES_UPDATED,(()=>{this._templateIndex=this.graphHierarchy.getTemplateIndex()}))}};SLt.template=_e`
    <style>
      .sub-list-group {
        font-weight: 500;
        font-size: 12pt;
        padding-bottom: 8px;
        width: 100%;
      }

      .sub-list {
        max-height: 300px;
        overflow-y: scroll;
      }

      .attr-left {
        float: left;
        width: 30%;
        word-wrap: break-word;
        color: var(--secondary-text-color);
        font-size: 11pt;
        font-weight: 400;
      }

      .attr-right {
        margin-left: 30%;
        word-wrap: break-word;
        color: var(--secondary-text-color);
        font-weight: 400;
      }

      .sub-list-table {
        display: table;
        width: 100%;
      }

      .sub-list-table-row {
        display: table-row;
      }

      .sub-list-table-row .sub-list-table-cell:last-child {
        text-align: right;
      }

      .sub-list-table-cell {
        color: var(--secondary-text-color);
        display: table-cell;
        font-size: 11pt;
        font-weight: 400;
        max-width: 200px;
        padding: 0 4px;
      }

      paper-item {
        padding: 0;
        background: var(--primary-background-color);
      }

      paper-item-body[two-line] {
        min-height: 0;
        padding: 8px 12px 4px;
      }

      .expandedInfo {
        padding: 8px 12px;
      }

      .controlDeps {
        padding: 0 0 0 8px;
      }

      .node-name {
        white-space: normal;
        word-wrap: break-word;
        font-size: 14pt;
        font-weight: 500;
      }

      .node-icon {
        float: right;
      }

      .subtitle {
        color: var(--secondary-text-color);
        font-size: 12pt;
      }

      .controlLine {
        font-size: 11pt;
        font-weight: 400;
      }

      .toggle-button {
        float: right;
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .control-toggle-button {
        float: left;
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .toggle-include-group {
        padding-top: 4px;
      }

      .toggle-include {
        margin: 5px 6px;
        text-transform: none;
        padding: 4px 6px;
        font-size: 10pt;
        background-color: #fafafa;
        color: #666;
      }

      .toggle-include:hover {
        background-color: var(--google-yellow-100);
      }

      .non-control-list-item {
        padding-left: 10px;
      }
    </style>
    <paper-item>
      <paper-item-body two-line>
        <div>
          <paper-icon-button
            icon="{{_getToggleIcon(_expanded)}}"
            on-click="_toggleExpanded"
            class="toggle-button"
          >
          </paper-icon-button>
          <div class="node-name">
            <tf-wbr-string value="[[_node.name]]" delimiter-pattern="/">
            </tf-wbr-string>
          </div>
        </div>
        <div secondary>
          <tf-node-icon
            class="node-icon"
            node="[[_node]]"
            render-info="[[_getRenderInfo(graphNodeName, renderHierarchy)]]"
            color-by="[[colorBy]]"
            template-index="[[_templateIndex]]"
          ></tf-node-icon>
          <template is="dom-if" if="{{_node.op}}">
            <div class="subtitle">
              Operation:
              <span>[[_node.op]]</span>
            </div>
          </template>
          <template is="dom-if" if="{{_node.metagraph}}">
            <div class="subtitle">
              Subgraph:
              <span>[[_node.cardinality]]</span> nodes
            </div>
          </template>
        </div>
      </paper-item-body>
    </paper-item>
    <iron-collapse opened="{{_expanded}}">
      <template is="dom-if" if="{{_expanded}}" restamp="true">
        <div class="expandedInfo">
          <div class="sub-list-group attributes">
            Attributes (<span>[[_attributes.length]]</span>)
            <iron-list
              class="sub-list"
              id="attributesList"
              items="[[_attributes]]"
            >
              <template>
                <div>
                  <div class="attr-left">[[item.key]]</div>
                  <div class="attr-right">[[item.value]]</div>
                </div>
              </template>
            </iron-list>
          </div>

          <template is="dom-if" if="{{_device}}">
            <div class="sub-list-group device">
              <div class="attr-left">Device</div>
              <div class="attr-right">[[_device]]</div>
            </div>
          </template>

          <div class="sub-list-group predecessors">
            Inputs (<span>[[_totalPredecessors]]</span>)
            <iron-list
              class="sub-list"
              id="inputsList"
              items="[[_predecessors.regular]]"
            >
              <template>
                <tf-node-list-item
                  class="non-control-list-item"
                  card-node="[[_node]]"
                  item-node="[[item.node]]"
                  edge-label="[[item.edgeLabel]]"
                  item-render-info="[[item.renderInfo]]"
                  name="[[item.name]]"
                  item-type="predecessors"
                  color-by="[[colorBy]]"
                  template-index="[[_templateIndex]]"
                >
                </tf-node-list-item>
              </template>
            </iron-list>
            <template is="dom-if" if="[[_predecessors.control.length]]">
              <div class="controlDeps">
                <div class="controlLine">
                  <paper-icon-button
                    icon="{{_getToggleIcon(_openedControlPred)}}"
                    on-click="_toggleControlPred"
                    class="control-toggle-button"
                  >
                  </paper-icon-button>
                  Control dependencies
                </div>
                <iron-collapse opened="{{_openedControlPred}}" no-animation>
                  <template
                    is="dom-if"
                    if="{{_openedControlPred}}"
                    restamp="true"
                  >
                    <iron-list
                      class="sub-list"
                      items="[[_predecessors.control]]"
                    >
                      <template>
                        <tf-node-list-item
                          card-node="[[_node]]"
                          item-node="[[item.node]]"
                          item-render-info="[[item.renderInfo]]"
                          name="[[item.name]]"
                          item-type="predecessors"
                          color-by="[[colorBy]]"
                          template-index="[[_templateIndex]]"
                        >
                        </tf-node-list-item>
                      </template>
                    </iron-list>
                  </template>
                </iron-collapse>
              </div>
            </template>
          </div>

          <div class="sub-list-group successors">
            Outputs (<span>[[_totalSuccessors]]</span>)
            <iron-list
              class="sub-list"
              id="outputsList"
              items="[[_successors.regular]]"
            >
              <template>
                <tf-node-list-item
                  class="non-control-list-item"
                  card-node="[[_node]]"
                  item-node="[[item.node]]"
                  edge-label="[[item.edgeLabel]]"
                  item-render-info="[[item.renderInfo]]"
                  name="[[item.name]]"
                  item-type="successor"
                  color-by="[[colorBy]]"
                  template-index="[[_templateIndex]]"
                >
                </tf-node-list-item>
              </template>
            </iron-list>
            <template is="dom-if" if="[[_successors.control.length]]">
              <div class="controlDeps">
                <div class="controlLine">
                  <paper-icon-button
                    icon="{{_getToggleIcon(_openedControlSucc)}}"
                    on-click="_toggleControlSucc"
                    class="control-toggle-button"
                  >
                  </paper-icon-button>
                  Control dependencies
                </div>
                <iron-collapse opened="{{_openedControlSucc}}" no-animation>
                  <template
                    is="dom-if"
                    if="{{_openedControlSucc}}"
                    restamp="true"
                  >
                    <iron-list class="sub-list" items="[[_successors.control]]">
                      <template>
                        <tf-node-list-item
                          card-node="[[_node]]"
                          item-node="[[item.node]]"
                          item-render-info="[[item.renderInfo]]"
                          name="[[item.name]]"
                          item-type="successors"
                          color-by="[[colorBy]]"
                          template-index="[[_templateIndex]]"
                        >
                        </tf-node-list-item>
                      </template>
                    </iron-list>
                  </template>
                </iron-collapse>
              </div>
            </template>
          </div>
          <template is="dom-if" if="{{_hasDisplayableNodeStats}}">
            <div class="sub-list-group node-stats">
              Node Stats
              <div class="sub-list-table">
                <template is="dom-if" if="{{_nodeStats.totalBytes}}">
                  <div class="sub-list-table-row">
                    <div class="sub-list-table-cell">Memory</div>
                    <div class="sub-list-table-cell">
                      [[_nodeStatsFormattedBytes]]
                    </div>
                  </div>
                </template>
                <template is="dom-if" if="{{_getTotalMicros(_nodeStats)}}">
                  <div class="sub-list-table-row">
                    <div class="sub-list-table-cell">Compute Time</div>
                    <div class="sub-list-table-cell">
                      [[_nodeStatsFormattedComputeTime]]
                    </div>
                  </div>
                </template>
                <template is="dom-if" if="{{_nodeStats.outputSize}}">
                  <div class="sub-list-table-row">
                    <div class="sub-list-table-cell">Tensor Output Sizes</div>
                    <div class="sub-list-table-cell">
                      <template
                        is="dom-repeat"
                        items="{{_nodeStatsFormattedOutputSizes}}"
                      >
                        [[item]] <br />
                      </template>
                    </div>
                  </div>
                </template>
              </div>
            </div>
          </template>

          <template is="dom-if" if="[[_functionUsages.length]]">
            <div class="sub-list-group predecessors">
              Usages of the Function (<span>[[_functionUsages.length]]</span>)
              <iron-list
                class="sub-list"
                id="functionUsagesList"
                items="[[_functionUsages]]"
              >
                <template>
                  <tf-node-list-item
                    class="non-control-list-item"
                    card-node="[[_node]]"
                    item-node="[[item]]"
                    name="[[item.name]]"
                    item-type="functionUsages"
                    color-by="[[colorBy]]"
                    template-index="[[_templateIndex]]"
                  >
                  </tf-node-list-item>
                </template>
              </iron-list>
            </div>
          </template>

          <template is="dom-if" if="[[!_isLibraryFunction(_node)]]">
            <div class="toggle-include-group">
              <paper-button
                raised
                class="toggle-include"
                on-click="_toggleInclude"
              >
                <span>[[_auxButtonText]]</span>
              </paper-button>
            </div>
          </template>

          <template is="dom-if" if="{{_isInSeries(_node)}}">
            <div class="toggle-include-group">
              <paper-button
                raised
                class="toggle-include"
                on-click="_toggleGroup"
              >
                <span>[[_groupButtonText]]</span>
              </paper-button>
            </div>
          </template>
        </div>
      </template>
    </iron-collapse>
  `,t([o({type:String}),e("design:type",String)],SLt.prototype,"graphNodeName",void 0),t([o({type:Object}),e("design:type",pLt)],SLt.prototype,"graphHierarchy",void 0),t([o({type:Object}),e("design:type",Object)],SLt.prototype,"renderHierarchy",void 0),t([o({type:String}),e("design:type",String)],SLt.prototype,"colorBy",void 0),t([o({type:Object,computed:"_getNode(graphNodeName, graphHierarchy)",observer:"_resetState"}),e("design:type",Object)],SLt.prototype,"_node",void 0),t([o({type:Object,computed:"_getNodeStats(graphNodeName, graphHierarchy)",observer:"_resetState"}),e("design:type",Object)],SLt.prototype,"_nodeStats",void 0),t([o({type:Number,observer:"_nodeIncludeStateChanged"}),e("design:type",Number)],SLt.prototype,"nodeInclude",void 0),t([o({type:Boolean}),e("design:type",Boolean)],SLt.prototype,"_expanded",void 0),t([o({type:Boolean}),e("design:type",Boolean)],SLt.prototype,"_openedControlPred",void 0),t([o({type:Boolean}),e("design:type",Boolean)],SLt.prototype,"_openedControlSucc",void 0),t([o({type:String}),e("design:type",String)],SLt.prototype,"_auxButtonText",void 0),t([o({type:String}),e("design:type",String)],SLt.prototype,"_groupButtonText",void 0),t([o({type:Object}),e("design:type",Function)],SLt.prototype,"_templateIndex",void 0),t([s("_nodeStats"),e("design:type",Boolean),e("design:paramtypes",[])],SLt.prototype,"_hasDisplayableNodeStats",null),t([s("_nodeStats"),e("design:type",String),e("design:paramtypes",[])],SLt.prototype,"_nodeStatsFormattedBytes",null),t([s("_nodeStats"),e("design:type",String),e("design:paramtypes",[])],SLt.prototype,"_nodeStatsFormattedComputeTime",null),t([s("_nodeStats"),e("design:type",Array),e("design:paramtypes",[])],SLt.prototype,"_nodeStatsFormattedOutputSizes",null),t([s("_node"),e("design:type",Array),e("design:paramtypes",[])],SLt.prototype,"_attributes",null),t([s("_node"),e("design:type",String),e("design:paramtypes",[])],SLt.prototype,"_device",null),t([s("_node","graphHierarchy"),e("design:type",Object),e("design:paramtypes",[])],SLt.prototype,"_successors",null),t([s("_node","graphHierarchy"),e("design:type",Object),e("design:paramtypes",[])],SLt.prototype,"_predecessors",null),t([s("_node","graphHierarchy"),e("design:type",Array),e("design:paramtypes",[])],SLt.prototype,"_functionUsages",null),t([s("_node"),e("design:type",Array),e("design:paramtypes",[])],SLt.prototype,"_subnodes",null),t([s("_predecessors"),e("design:type",Number),e("design:paramtypes",[])],SLt.prototype,"_totalPredecessors",null),t([s("_successors"),e("design:type",Number),e("design:paramtypes",[])],SLt.prototype,"_totalSuccessors",null),t([a("graphHierarchy"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],SLt.prototype,"_graphHierarchyChanged",null),SLt=t([i("tf-node-info")],SLt);let MLt=class extends(tr(ye)){ready(){super.ready(),this.addEventListener("node-list-item-click",this._nodeListItemClicked.bind(this)),this.addEventListener("node-list-item-mouseover",this._nodeListItemMouseover.bind(this)),this.addEventListener("node-list-item-mouseout",this._nodeListItemMouseout.bind(this))}_nodeListItemClicked(t){this.selectedNode=t.detail.nodeName}_nodeListItemMouseover(t){this.highlightedNode=t.detail.nodeName}_nodeListItemMouseout(){this.highlightedNode=null}_healthPillsAvailable(t,e){return t&&e&&Object.keys(e).length>0}_equals(t,e){return t===e}};MLt.template=_e`
    <style>
      :host {
        background: var(--secondary-background-color);
        font-size: 12px;
        margin: 0;
        padding: 0;
        display: block;
        max-height: 650px;
        overflow-x: hidden;
        overflow-y: auto;
      }

      h2 {
        padding: 0;
        text-align: center;
        margin: 0;
      }
    </style>
    <template is="dom-if" if="{{selectedNode}}">
      <paper-material elevation="1" class="card">
        <tf-node-info
          graph-hierarchy="[[graphHierarchy]]"
          render-hierarchy="[[renderHierarchy]]"
          flat-graph="[[graph]]"
          graph-node-name="[[selectedNode]]"
          node-include="[[selectedNodeInclude]]"
          highlighted-node="{{highlightedNode}}"
          color-by="[[colorBy]]"
        >
        </tf-node-info>
      </paper-material>
    </template>
    <template is="dom-if" if="[[_equals(colorBy, 'op_compatibility')]]">
      <tf-graph-op-compat-card
        graph-hierarchy="[[graphHierarchy]]"
        render-hierarchy="[[renderHierarchy]]"
        color-by="[[colorBy]]"
        node-title="[[compatNodeTitle]]"
      >
      </tf-graph-op-compat-card>
    </template>
    <template
      is="dom-if"
      if="[[_healthPillsAvailable(debuggerDataEnabled, nodeNamesToHealthPills)]]"
    >
      <tf-graph-debugger-data-card
        render-hierarchy="[[renderHierarchy]]"
        debugger-numeric-alerts="[[debuggerNumericAlerts]]"
        node-names-to-health-pills="[[nodeNamesToHealthPills]]"
        selected-node="{{selectedNode}}"
        highlighted-node="{{highlightedNode}}"
        are-health-pills-loading="[[areHealthPillsLoading]]"
        all-steps-mode-enabled="{{allStepsModeEnabled}}"
        specific-health-pill-step="{{specificHealthPillStep}}"
        health-pill-step-index="{{healthPillStepIndex}}"
      >
      </tf-graph-debugger-data-card>
    </template>
  `,t([o({type:String}),e("design:type",String)],MLt.prototype,"title",void 0),t([o({type:Object}),e("design:type",pLt)],MLt.prototype,"graphHierarchy",void 0),t([o({type:Object}),e("design:type",wAt)],MLt.prototype,"graph",void 0),t([o({type:Object}),e("design:type",XAt)],MLt.prototype,"renderHierarchy",void 0),t([o({type:Object}),e("design:type",Object)],MLt.prototype,"nodeNamesToHealthPills",void 0),t([o({type:Number,notify:!0}),e("design:type",Number)],MLt.prototype,"healthPillStepIndex",void 0),t([o({type:String}),e("design:type",String)],MLt.prototype,"colorBy",void 0),t([o({type:String}),e("design:type",String)],MLt.prototype,"compatNodeTitle",void 0),t([o({type:String,notify:!0}),e("design:type",String)],MLt.prototype,"selectedNode",void 0),t([o({type:String,notify:!0}),e("design:type",String)],MLt.prototype,"highlightedNode",void 0),t([o({type:Number,notify:!0}),e("design:type",Number)],MLt.prototype,"selectedNodeInclude",void 0),t([o({type:Boolean}),e("design:type",Boolean)],MLt.prototype,"debuggerDataEnabled",void 0),MLt=t([i("tf-graph-info")],MLt);class ELt{constructor(t,e,n,i,r,o){this.svg=t,this.labelPadding=o,this.zoomG=e,this.mainZoom=n,this.maxWandH=r;let a=wu(i.shadowRoot),s=a.select("svg"),l=s.select("rect");this.viewpointCoord={x:0,y:0};let c=yh().subject(Object).on("drag",(t=>{this.viewpointCoord.x=cu.x,this.viewpointCoord.y=cu.y,this.updateViewpoint()}));l.datum(this.viewpointCoord).call(c),s.on("click",(()=>{if(cu.defaultPrevented)return;let t=Number(l.attr("width")),e=Number(l.attr("height")),n=oh(s.node());this.viewpointCoord.x=n[0]-t/2,this.viewpointCoord.y=n[1]-e/2,this.updateViewpoint()})),this.viewpoint=l.node(),this.minimapSvg=s.node(),this.minimap=i,this.canvas=a.select("canvas.first").node(),this.canvasBuffer=a.select("canvas.second").node(),this.downloadCanvas=a.select("canvas.download").node(),wu(this.downloadCanvas).style("display","none"),this.update()}updateViewpoint(){wu(this.viewpoint).attr("x",this.viewpointCoord.x).attr("y",this.viewpointCoord.y);let t=-this.viewpointCoord.x*this.scaleMain/this.scaleMinimap,e=-this.viewpointCoord.y*this.scaleMain/this.scaleMinimap;wu(this.svg).call(this.mainZoom.transform,iN.translate(t,e).scale(this.scaleMain))}getImageBlob(){return new Promise((t=>{this.downloadCanvas.toBlob((e=>{t(e)}),"image/png")}))}update(){let t=null;try{if(t=this.zoomG.getBBox(),0===t.width)return}catch(t){return}let e=wu(this.svg),n="";const i=this.svg,r=(i.getRootNode?i.getRootNode():this.svg.parentNode).styleSheets;for(let t=0;t<r.length;t++)try{let e=r[t].cssRules||r[t].rules;if(null==e)continue;for(let t=0;t<e.length;t++)n+=e[t].cssText.replace(/ ?tf-[\w-]+ ?/g,"")+"\n"}catch(t){if("SecurityError"!==t.name)throw t}let o=e.append("style");o.text(n);let a=wu(this.zoomG),s=a.attr("transform");a.attr("transform",null),t.height+=t.y,t.width+=t.x,t.height+=2*this.labelPadding,t.width+=2*this.labelPadding,e.attr("width",t.width).attr("height",t.height),this.scaleMinimap=this.maxWandH/Math.max(t.width,t.height),this.minimapSize={width:t.width*this.scaleMinimap,height:t.height*this.scaleMinimap},wu(this.minimapSvg).attr(this.minimapSize),wu(this.canvasBuffer).attr(this.minimapSize);const l=wu(this.downloadCanvas);l.style("width",t.width),l.style("height",t.height),l.attr("width",3*t.width),l.attr("height",3*t.height),null!=this.translate&&null!=this.zoom&&requestAnimationFrame((()=>this.zoom()));let c=(new XMLSerializer).serializeToString(this.svg);o.remove(),e.attr("width",null).attr("height",null),a.attr("transform",s);let u=new Image;u.onload=()=>{let t=this.canvasBuffer.getContext("2d");t.clearRect(0,0,this.canvasBuffer.width,this.canvasBuffer.height),t.drawImage(u,0,0,this.minimapSize.width,this.minimapSize.height),requestAnimationFrame((()=>{wu(this.canvasBuffer).style("display",null),wu(this.canvas).style("display","none"),[this.canvas,this.canvasBuffer]=[this.canvasBuffer,this.canvas]}));let e=this.downloadCanvas.getContext("2d");e.clearRect(0,0,this.downloadCanvas.width,this.downloadCanvas.height),e.drawImage(u,0,0,this.downloadCanvas.width,this.downloadCanvas.height)},u.onerror=()=>{let t=new Blob([c],{type:"image/svg+xml;charset=utf-8"});u.src=URL.createObjectURL(t)},u.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(c)}zoom(t){if(null==this.scaleMinimap)return;t&&(this.translate=[t.x,t.y],this.scaleMain=t.k);let e=this.svg.getBoundingClientRect(),n=wu(this.viewpoint);this.viewpointCoord.x=-this.translate[0]*this.scaleMinimap/this.scaleMain,this.viewpointCoord.y=-this.translate[1]*this.scaleMinimap/this.scaleMain;let i=e.width*this.scaleMinimap/this.scaleMain,r=e.height*this.scaleMinimap/this.scaleMain;n.attr("x",this.viewpointCoord.x).attr("y",this.viewpointCoord.y).attr("width",i).attr("height",r);let o=this.minimapSize.width,a=this.minimapSize.height,s=this.viewpointCoord.x,l=this.viewpointCoord.y;(Math.min(Math.max(0,s+i),o)-Math.min(Math.max(0,s),o))*(Math.min(Math.max(0,l+r),a)-Math.min(Math.max(0,l),a))/(o*a)<.8?this.minimap.classList.remove("hidden"):this.minimap.classList.add("hidden")}}let TLt=class extends ye{init(t,e,n,i,r){return new ELt(t,e,n,this,i,r)}};TLt.template=_e`
    <style>
      :host {
        background-color: white;
        transition: opacity 0.3s linear;
        pointer-events: auto;
      }

      :host(.hidden) {
        opacity: 0;
        pointer-events: none;
      }

      canvas {
        border: 1px solid #999;
      }

      rect {
        fill: white;
        stroke: #111111;
        stroke-width: 1px;
        fill-opacity: 0;
        filter: url(#minimapDropShadow);
        cursor: move;
      }

      svg {
        position: absolute;
      }
    </style>
    <svg>
      <defs>
        <filter
          id="minimapDropShadow"
          x="-20%"
          y="-20%"
          width="150%"
          height="150%"
        >
          <feOffset result="offOut" in="SourceGraphic" dx="1" dy="1"></feOffset>
          <feColorMatrix
            result="matrixOut"
            in="offOut"
            type="matrix"
            values="0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.5 0"
          ></feColorMatrix>
          <feGaussianBlur
            result="blurOut"
            in="matrixOut"
            stdDeviation="2"
          ></feGaussianBlur>
          <feBlend in="SourceGraphic" in2="blurOut" mode="normal"></feBlend>
        </filter>
      </defs>
      <rect></rect>
    </svg>
    <canvas class="first"></canvas>
    <!-- Additional canvas to use as buffer to avoid flickering between updates -->
    <canvas class="second"></canvas>
    <canvas class="download"></canvas>
  `,TLt=t([i("tf-graph-minimap")],TLt);const CLt=_e`
  <style>
    :host(.dark-mode) {
      filter: invert(1);
    }

    :host {
      display: flex;
      font-size: 20px;
      height: 100%;
      width: 100%;
    }

    #svg {
      flex: 1;
      font-family: Roboto, sans-serif;
      height: 100%;
      overflow: hidden;
      width: 100%;
    }

    #hidden {
      position: fixed;
      top: 0px;
      visibility: hidden;
    }

    text {
      user-select: none;
    }

    /* --- Node and annotation-node for Metanode --- */

    .meta > .nodeshape > rect,
    .meta > .annotation-node > rect {
      cursor: pointer;
      fill: hsl(0, 0%, 70%);
    }
    .node.meta.highlighted > .nodeshape > rect,
    .node.meta.highlighted > .annotation-node > rect {
      stroke-width: 2;
    }
    .annotation.meta.highlighted > .nodeshape > rect,
    .annotation.meta.highlighted > .annotation-node > rect {
      stroke-width: 1;
    }
    .meta.selected > .nodeshape > rect,
    .meta.selected > .annotation-node > rect {
      stroke: red;
      stroke-width: 2;
    }
    .node.meta.selected.expanded > .nodeshape > rect,
    .node.meta.selected.expanded > .annotation-node > rect {
      stroke: red;
      stroke-width: 3;
    }
    .annotation.meta.selected > .nodeshape > rect,
    .annotation.meta.selected > .annotation-node > rect {
      stroke: red;
      stroke-width: 2;
    }
    .node.meta.selected.expanded.highlighted > .nodeshape > rect,
    .node.meta.selected.expanded.highlighted > .annotation-node > rect {
      stroke: red;
      stroke-width: 4;
    }

    .faded,
    .faded rect,
    .faded ellipse,
    .faded path,
    .faded use,
    #rectHatch line,
    #ellipseHatch line {
      color: #e0d4b3 !important;
      fill: white;
      stroke: #e0d4b3 !important;
    }

    .faded path {
      stroke-width: 1px !important;
    }

    .faded rect {
      fill: url(#rectHatch) !important;
    }

    .faded ellipse,
    .faded use {
      fill: url(#ellipseHatch) !important;
    }

    .faded text {
      opacity: 0;
    }

    /* Rules used for input-tracing. */
    .input-highlight > * > rect,
    .input-highlight > * > ellipse,
    .input-highlight > * > use {
      fill: white;
      stroke: #ff9800 !important;
    }

    /*  - Faded non-input styling */
    .non-input > * > rect,
.non-input > * > ellipse,
.non-input > * > use,
/* For Const nodes. */
.non-input > * > .constant:not([class*="input-highlight"]) >
  .annotation-node > ellipse,
/* For styling of annotation nodes of non-input nodes. */
.non-input > g > .annotation > .annotation-node > rect {
      stroke: #e0d4b3 !important;
      stroke-width: inherit;
      stroke-dasharray: inherit;
    }

    .non-input path {
      visibility: hidden;
    }

    .non-input > .nodeshape > rect,
.non-input > .annotation-node > rect,
/* For styling of annotation nodes of non-input nodes. */
.non-input > g > .annotation > .annotation-node > rect {
      fill: url(#rectHatch) !important;
    }

    .non-input ellipse,
    .non-input use {
      fill: url(#ellipseHatch) !important;
    }

    .non-input > text {
      opacity: 0;
    }

    .non-input .annotation > .annotation-edge {
      marker-end: url(#annotation-arrowhead-faded);
    }

    .non-input .annotation > .annotation-edge.refline {
      marker-start: url(#ref-annotation-arrowhead-faded);
    }

    /* Input edges. */
    .input-edge-highlight > text {
      fill: black !important;
    }
    .input-highlight > .in-annotations > .annotation > .annotation-edge,
    .input-highlight-selected
      > .in-annotations
      > .annotation
      > .annotation-edge {
      stroke: #999 !important;
    }

    /* Non-input edges. */
    .non-input-edge-highlight,
.non-input > g > .annotation > path,
/* Annotation styles (label and edges respectively). */
.non-input > g >
.annotation:not(.input-highlight):not(.input-highlight-selected) >
.annotation-label
/*.annotation-edge*/ {
      visibility: hidden;
    }

    /* --- Op Node --- */

    .op > .nodeshape > .nodecolortarget,
    .op > .annotation-node > .nodecolortarget {
      cursor: pointer;
      fill: #fff;
      stroke: #ccc;
    }

    .op.selected > .nodeshape > .nodecolortarget,
    .op.selected > .annotation-node > .nodecolortarget {
      stroke: red;
      stroke-width: 2;
    }

    .op.highlighted > .nodeshape > .nodecolortarget,
    .op.highlighted > .annotation-node > .nodecolortarget {
      stroke-width: 2;
    }

    /* --- Series Node --- */

    /* By default, don't show the series background <rect>. */
    .series > .nodeshape > rect {
      fill: hsl(0, 0%, 70%);
      fill-opacity: 0;
      stroke-dasharray: 5, 5;
      stroke-opacity: 0;
      cursor: pointer;
    }

    /* Once expanded, show the series background <rect> and hide the <use>. */
    .series.expanded > .nodeshape > rect {
      fill-opacity: 0.15;
      stroke: hsl(0, 0%, 70%);
      stroke-opacity: 1;
    }
    .series.expanded > .nodeshape > use {
      visibility: hidden;
    }

    /**
 * TODO: Simplify this by applying a stable class name to all <g>
 * elements that currently have either the nodeshape or annotation-node classes.
 */
    .series > .nodeshape > use,
    .series > .annotation-node > use {
      stroke: #ccc;
    }
    .series.highlighted > .nodeshape > use,
    .series.highlighted > .annotation-node > use {
      stroke-width: 2;
    }
    .series.selected > .nodeshape > use,
    .series.selected > .annotation-node > use {
      stroke: red;
      stroke-width: 2;
    }

    .series.selected > .nodeshape > rect {
      stroke: red;
      stroke-width: 2;
    }

    .annotation.series.selected > .annotation-node > use {
      stroke: red;
      stroke-width: 2;
    }

    /* --- Bridge Node --- */
    .bridge > .nodeshape > rect {
      stroke: #f0f;
      opacity: 0.2;
      display: none;
    }

    /* --- Structural Elements --- */
    .edge > path.edgeline.structural {
      stroke: #f0f;
      opacity: 0.2;
      display: none;
    }

    /* Reference Edge */
    .edge > path.edgeline.referenceedge {
      stroke: #ffb74d;
      opacity: 1;
    }

    /* --- Series Nodes --- */

    /* Hide the rect for a series' annotation. */
    .series > .annotation-node > rect {
      display: none;
    }

    /* --- Node label --- */

    .node {
      /* Provide a hint to browsers to avoid using their static rasterization
      at initial scale, which looks very pixelated on Chromium when zoomed in.
      Note that we intentionally do *not* use 'will-change: transform' and
      'translateZ(0) here, which introduce blurriness on Firefox.
      See https://github.com/tensorflow/tensorboard/issues/4744 */
      transform: translateZ(1px);
    }

    .node > text.nodelabel {
      cursor: pointer;
      fill: #444;
    }

    .meta.expanded > text.nodelabel {
      font-size: 9px;
    }

    .series > text.nodelabel {
      font-size: 8px;
    }

    .op > text.nodelabel {
      font-size: 6px;
    }

    .bridge > text.nodelabel {
      display: none;
    }

    .node.meta.expanded > text.nodelabel {
      cursor: normal;
    }

    .annotation.meta.highlighted > text.annotation-label {
      fill: #50a3f7;
    }

    .annotation.meta.selected > text.annotation-label {
      fill: #4285f4;
    }

    /* --- Annotation --- */

    /* only applied for annotations that are not summary or constant.
(.summary, .constant gets overridden below) */
    .annotation > .annotation-node > * {
      stroke-width: 0.5;
      stroke-dasharray: 1, 1;
    }

    .annotation.summary > .annotation-node > *,
    .annotation.constant > .annotation-node > * {
      stroke-width: 1;
      stroke-dasharray: none;
    }

    .annotation > .annotation-edge {
      fill: none;
      stroke: #aaa;
      stroke-width: 0.5;
      marker-end: url(#annotation-arrowhead);
    }

    .faded .annotation > .annotation-edge {
      marker-end: url(#annotation-arrowhead-faded);
    }

    .annotation > .annotation-edge.refline {
      marker-start: url(#ref-annotation-arrowhead);
    }

    .faded .annotation > .annotation-edge.refline {
      marker-start: url(#ref-annotation-arrowhead-faded);
    }

    .annotation > .annotation-control-edge {
      stroke-dasharray: 1, 1;
    }

    #annotation-arrowhead {
      fill: #aaa;
    }

    #annotation-arrowhead-faded {
      fill: #e0d4b3;
    }

    #ref-annotation-arrowhead {
      fill: #aaa;
    }

    #ref-annotation-arrowhead-faded {
      fill: #e0d4b3;
    }

    .annotation > .annotation-label {
      font-size: 5px;
      cursor: pointer;
    }
    .annotation > .annotation-label.annotation-ellipsis {
      cursor: default;
    }

    /* Hide annotations on expanded meta nodes since they're redundant. */
    .expanded > .in-annotations,
    .expanded > .out-annotations {
      display: none;
    }

    /* --- Annotation: Constant --- */

    .constant > .annotation-node > ellipse {
      cursor: pointer;
      fill: white;
      stroke: #848484;
    }

    .constant.selected > .annotation-node > ellipse {
      fill: white;
      stroke: red;
    }

    .constant.highlighted > .annotation-node > ellipse {
      stroke-width: 1.5;
    }

    /* --- Annotation: Summary --- */

    .summary > .annotation-node > ellipse {
      cursor: pointer;
      fill: #db4437;
      stroke: #db4437;
    }

    .summary.selected > .annotation-node > ellipse {
      fill: #a52714;
      stroke: #a52714;
    }

    .summary.highlighted > .annotation-node > ellipse {
      stroke-width: 1.5;
    }

    /* --- Edge --- */

    .edge > path.edgeline {
      fill: none;
      stroke: #bbb;
      stroke-linecap: round;
      stroke-width: 0.75;
    }

    .edge .selectableedge {
      cursor: pointer;
    }

    .selectededge > path.edgeline {
      cursor: default;
      stroke: #f00;
    }

    .edge.selectededge text {
      fill: #000;
    }

    /* Labels showing tensor shapes on edges */
    .edge > text {
      font-size: 3.5px;
      fill: #666;
    }

    .dataflow-arrowhead {
      fill: #bbb;
    }

    .reference-arrowhead {
      fill: #ffb74d;
    }

    .selected-arrowhead {
      fill: #f00;
    }

    .edge .control-dep {
      stroke-dasharray: 2, 2;
    }

    /* --- Group node expand/collapse button --- */

    /* Hides expand/collapse buttons when a node isn't expanded or highlighted. Using
   incredibly small opacity so that the bounding box of the <g> parent still takes
   this container into account even when it isn't visible */
    .node:not(.highlighted):not(.expanded) > .nodeshape > .buttoncontainer {
      opacity: 0.01;
    }
    .node.highlighted > .nodeshape > .buttoncontainer {
      cursor: pointer;
    }
    .buttoncircle {
      fill: #e7811d;
    }
    .buttoncircle:hover {
      fill: #b96717;
    }
    .expandbutton,
    .collapsebutton {
      stroke: white;
    }
    /* Do not let the path elements in the button take pointer focus */
    .node > .nodeshape > .buttoncontainer > .expandbutton,
    .node > .nodeshape > .buttoncontainer > .collapsebutton {
      pointer-events: none;
    }
    /* Only show the expand button when a node is collapsed and only show the
   collapse button when a node is expanded. */
    .node.expanded > .nodeshape > .buttoncontainer > .expandbutton {
      display: none;
    }
    .node:not(.expanded) > .nodeshape > .buttoncontainer > .collapsebutton {
      display: none;
    }

    .health-pill-stats {
      font-size: 4px;
      text-anchor: middle;
    }

    .health-pill rect {
      filter: url(#health-pill-shadow);
      rx: 3;
      ry: 3;
    }

    .titleContainer {
      position: relative;
      top: 20px;
    }

    .title,
    .auxTitle,
    .functionLibraryTitle {
      position: absolute;
    }

    #minimap {
      position: absolute;
      right: 20px;
      bottom: 20px;
    }

    .context-menu {
      position: absolute;
      display: none;
      background-color: #e2e2e2;
      border-radius: 2px;
      font-size: 14px;
      min-width: 150px;
      border: 1px solid #d4d4d4;
    }

    .context-menu ul {
      list-style-type: none;
      margin: 0;
      padding: 0;
      cursor: default;
    }

    .context-menu ul li {
      padding: 4px 16px;
    }

    .context-menu ul li:hover {
      background-color: #f3913e;
      color: white;
    }
  </style>
  <div class="titleContainer">
    <div id="title" class="title">Main Graph</div>
    <div id="auxTitle" class="auxTitle">Auxiliary Nodes</div>
    <div id="functionLibraryTitle" class="functionLibraryTitle">Functions</div>
  </div>
  <svg id="svg">
    <defs>
      <!-- Arrow heads for reference edge paths of different predefined sizes per color. -->
      <path
        id="reference-arrowhead-path"
        d="M 0,0 L 10,5 L 0,10 C 3,7 3,3 0,0"
      ></path>
      <marker
        class="reference-arrowhead"
        id="reference-arrowhead-small"
        viewBox="0 0 10 10"
        markerWidth="5"
        markerHeight="5"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#reference-arrowhead-path"></use>
      </marker>
      <marker
        class="reference-arrowhead"
        id="reference-arrowhead-medium"
        viewBox="0 0 10 10"
        markerWidth="13"
        markerHeight="13"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#reference-arrowhead-path"></use>
      </marker>
      <marker
        class="reference-arrowhead"
        id="reference-arrowhead-large"
        viewBox="0 0 10 10"
        markerWidth="16"
        markerHeight="16"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#reference-arrowhead-path"></use>
      </marker>
      <marker
        class="reference-arrowhead"
        id="reference-arrowhead-xlarge"
        viewBox="0 0 10 10"
        markerWidth="20"
        markerHeight="20"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#reference-arrowhead-path"></use>
      </marker>

      <!-- Arrow heads for dataflow edge paths of different predefined sizes per color. -->
      <path
        id="dataflow-arrowhead-path"
        d="M 0,0 L 10,5 L 0,10 C 3,7 3,3 0,0"
      ></path>
      <marker
        class="dataflow-arrowhead"
        id="dataflow-arrowhead-small"
        viewBox="0 0 10 10"
        markerWidth="5"
        markerHeight="5"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#dataflow-arrowhead-path"></use>
      </marker>
      <marker
        class="dataflow-arrowhead"
        id="dataflow-arrowhead-medium"
        viewBox="0 0 10 10"
        markerWidth="13"
        markerHeight="13"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#dataflow-arrowhead-path"></use>
      </marker>
      <marker
        class="dataflow-arrowhead"
        id="dataflow-arrowhead-large"
        viewBox="0 0 10 10"
        markerWidth="16"
        markerHeight="16"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#dataflow-arrowhead-path"></use>
      </marker>
      <marker
        class="dataflow-arrowhead"
        id="dataflow-arrowhead-xlarge"
        viewBox="0 0 10 10"
        markerWidth="20"
        markerHeight="20"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#dataflow-arrowhead-path"></use>
      </marker>

      <!-- Arrow head for annotation edge paths. -->
      <marker
        id="annotation-arrowhead"
        markerWidth="5"
        markerHeight="5"
        refX="5"
        refY="2.5"
        orient="auto"
      >
        <path d="M 0,0 L 5,2.5 L 0,5 L 0,0"></path>
      </marker>
      <marker
        id="annotation-arrowhead-faded"
        markerWidth="5"
        markerHeight="5"
        refX="5"
        refY="2.5"
        orient="auto"
      >
        <path d="M 0,0 L 5,2.5 L 0,5 L 0,0"></path>
      </marker>
      <marker
        id="ref-annotation-arrowhead"
        markerWidth="5"
        markerHeight="5"
        refX="0"
        refY="2.5"
        orient="auto"
      >
        <path d="M 5,0 L 0,2.5 L 5,5 L 5,0"></path>
      </marker>
      <marker
        id="ref-annotation-arrowhead-faded"
        markerWidth="5"
        markerHeight="5"
        refX="0"
        refY="2.5"
        orient="auto"
      >
        <path d="M 5,0 L 0,2.5 L 5,5 L 5,0"></path>
      </marker>
      <!-- Template for an Op node ellipse. -->
      <ellipse
        id="op-node-stamp"
        rx="7.5"
        ry="3"
        stroke="inherit"
        fill="inherit"
      ></ellipse>
      <!-- Template for an Op node annotation ellipse (smaller). -->
      <ellipse
        id="op-node-annotation-stamp"
        rx="5"
        ry="2"
        stroke="inherit"
        fill="inherit"
      ></ellipse>
      <!-- Vertically stacked series of Op nodes when unexpanded. -->
      <g id="op-series-vertical-stamp">
        <use xlink:href="#op-node-stamp" x="8" y="9"></use>
        <use xlink:href="#op-node-stamp" x="8" y="6"></use>
        <use xlink:href="#op-node-stamp" x="8" y="3"></use>
      </g>
      <!-- Horizontally stacked series of Op nodes when unexpanded. -->
      <g id="op-series-horizontal-stamp">
        <use xlink:href="#op-node-stamp" x="16" y="4"></use>
        <use xlink:href="#op-node-stamp" x="12" y="4"></use>
        <use xlink:href="#op-node-stamp" x="8" y="4"></use>
      </g>
      <!-- Horizontally stacked series of Op nodes for annotation. -->
      <g id="op-series-annotation-stamp">
        <use xlink:href="#op-node-annotation-stamp" x="9" y="2"></use>
        <use xlink:href="#op-node-annotation-stamp" x="7" y="2"></use>
        <use xlink:href="#op-node-annotation-stamp" x="5" y="2"></use>
      </g>
      <svg
        id="summary-icon"
        fill="#848484"
        height="12"
        viewBox="0 0 24 24"
        width="12"
      >
        <path
          d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"
        ></path>
      </svg>

      <!-- Hatch patterns for faded out nodes. -->
      <pattern
        id="rectHatch"
        patternTransform="rotate(45 0 0)"
        width="5"
        height="5"
        patternUnits="userSpaceOnUse"
      >
        <line x1="0" y1="0" x2="0" y2="5" style="stroke-width: 1"></line>
      </pattern>
      <pattern
        id="ellipseHatch"
        patternTransform="rotate(45 0 0)"
        width="2"
        height="2"
        patternUnits="userSpaceOnUse"
      >
        <line x1="0" y1="0" x2="0" y2="2" style="stroke-width: 1"></line>
      </pattern>

      <!-- A shadow for health pills. -->
      <filter
        id="health-pill-shadow"
        x="-40%"
        y="-40%"
        width="180%"
        height="180%"
      >
        <feGaussianBlur in="SourceAlpha" stdDeviation="0.8"></feGaussianBlur>
        <feOffset dx="0" dy="0" result="offsetblur"></feOffset>
        <feFlood flood-color="#000000"></feFlood>
        <feComposite in2="offsetblur" operator="in"></feComposite>
        <feMerge>
          <feMergeNode></feMergeNode>
          <feMergeNode in="SourceGraphic"></feMergeNode>
        </feMerge>
      </filter>
    </defs>
    <!-- Make a large rectangle that fills the svg space so that
  zoom events get captured on safari -->
    <rect fill="white" width="10000" height="10000"></rect>
    <g id="root"></g>
  </svg>
  <tf-graph-minimap id="minimap"></tf-graph-minimap>
  <div id="contextMenu" class="context-menu"></div>
`;let ALt=class extends(tr(nl(ye))){constructor(){super(...arguments),this._zoomed=!1,this._zoomStartCoords=null,this._zoomTransform=null,this._maxZoomDistanceForClick=20,this._nodeGroupIndex={},this._annotationGroupIndex={},this._edgeGroupIndex={},this.maxMetanodeLabelLengthFontSize=9,this.minMetanodeLabelLengthFontSize=6,this.maxMetanodeLabelLengthLargeFont=11,this.maxMetanodeLabelLength=18}getNode(t){return this.renderHierarchy.getRenderNodeByName(t)}isNodeExpanded(t){return t.expanded}setNodeExpanded(t){this._build(this.renderHierarchy),this._updateLabels(!this._zoomed)}panToNode(t){(function e(t,n,i,r){const o=wu(n).select(`[data-name="${t}"]`).node();if(!o)return console.warn(`panToNode() failed for node name "${t}"`),!1;let a=o.getBBox(),s=o.getScreenCTM(),l=n.createSVGPoint(),c=n.createSVGPoint();l.x=a.x,l.y=a.y,c.x=a.x+a.width,c.y=a.y+a.height,l=l.matrixTransform(s),c=c.matrixTransform(s);let u=(t,e,n,i)=>!(t>n&&e<i),h=n.getBoundingClientRect();const d=h.top+h.height-150;if(u(l.x,c.x,h.left,h.left+h.width-320)||u(l.y,c.y,h.top,d)){let t=h.left+h.width/2-(l.x+c.x)/2,e=h.top+h.height/2-(l.y+c.y)/2;const i=rN(n);return wu(n).transition().duration(500).call(r.translateBy,t/i.k,e/i.k),!0}return!1})(t,this.$.svg,0,this._zoom)&&(this._zoomed=!0)}getGraphSvgRoot(){return this.$.svg}getContextMenu(){return this.$.contextMenu}_resetState(){this._nodeGroupIndex={},this._annotationGroupIndex={},this._edgeGroupIndex={},this._updateLabels(!1),wu(this.$.svg).select("#root").selectAll("*").remove(),Kkt(this.$.svg)}_build(t){this.templateIndex=t.hierarchy.getTemplateIndex(),iAt("tf-graph-scene (layout):",function(){ukt(t.root)}.bind(this),YCt.RENDER_SCENE_LAYOUT),iAt("tf-graph-scene (build scene):",function(){aLt(wu(this.$.root),t.root,this),(function e(t,n){wu(t).on("click",(()=>{n.fire("graph-select")}))})(this.$.svg,this),this._updateInputTrace()}.bind(this),YCt.RENDER_SCENE_BUILD_SCENE),setTimeout(function(){this._updateHealthPills(this.nodeNamesToHealthPills,this.healthPillStepIndex),this.minimap.update()}.bind(this),lkt.animation.duration)}ready(){super.ready(),this._zoom=pN().on("end",function(){this._zoomStartCoords&&(Math.sqrt(Math.pow(this._zoomStartCoords.x-this._zoomTransform.x,2)+Math.pow(this._zoomStartCoords.y-this._zoomTransform.y,2))<this._maxZoomDistanceForClick?this._fireEnableClick():setTimeout(this._fireEnableClick.bind(this),50)),this._zoomStartCoords=null}.bind(this)).on("zoom",function(){this._zoomTransform=cu.transform,this._zoomStartCoords||(this._zoomStartCoords=this._zoomTransform,this.fire("disable-click")),this._zoomed=!0,wu(this.$.root).attr("transform",cu.transform),this.minimap.zoom(cu.transform)}.bind(this)),wu(this.$.svg).call(this._zoom).on("dblclick.zoom",null),wu(window).on("resize",function(){this.minimap.zoom()}.bind(this)),this.minimap=this.$.minimap.init(this.$.svg,this.$.root,this._zoom,lkt.minimap.size,lkt.subscene.meta.labelHeight)}attached(){this.set("_isAttached",!0)}detached(){this.set("_isAttached",!1)}_renderHierarchyChanged(){var t=this.renderHierarchy;this._hasRenderHierarchyBeenFitOnce=!1,this._resetState(),this._build(t)}_animateAndFit(){!this._hasRenderHierarchyBeenFitOnce&&this._isAttached&&setTimeout(this.fit.bind(this),lkt.animation.duration)}_updateLabels(t){var e=this.$$(".title"),n=e.style,i=this.$$(".auxTitle"),r=i.style,o=this.$$(".functionLibraryTitle").style;const a=wu(this.$.svg);var s=a.select("."+_kt.Scene.GROUP+">."+_kt.Scene.CORE).node();if(t&&s&&this.progress&&100===this.progress.value){var l=a.select("."+_kt.Scene.GROUP+">."+_kt.Scene.INEXTRACT).node()||a.select("."+_kt.Scene.GROUP+">."+_kt.Scene.OUTEXTRACT).node(),c=s.getCTM().e,u=l?l.getCTM().e:null;n.display="inline",n.left=c+"px",null!==u&&u!==c?(r.display="inline",u=Math.max(c+e.getBoundingClientRect().width,u),r.left=u+"px"):r.display="none";let t=a.select("."+_kt.Scene.GROUP+">."+_kt.Scene.FUNCTION_LIBRARY).node(),h=t?t.getCTM().e:null;null!==h&&h!==u?(o.display="inline",h=Math.max(u+i.getBoundingClientRect().width,h),o.left=h+"px"):o.display="none"}else n.display="none",r.display="none",o.display="none"}nodeColorsChanged(){null!=this.renderHierarchy&&(this.templateIndex=this.renderHierarchy.hierarchy.getTemplateIndex(),we.each(this._nodeGroupIndex,((t,e)=>{this._updateNodeState(e)})),this.minimap.update())}fit(){this._hasRenderHierarchyBeenFitOnce=!0,(function t(e,n,i,r){let o=e.getBoundingClientRect(),a=null;try{if(a=n.getBBox(),0===a.width)return}catch(t){return}let s=.9*Math.min(o.width/a.width,o.height/a.height,2),l=lkt.graph;const c=iN.scale(s).translate(l.padding.paddingLeft,l.padding.paddingTop);wu(e).transition().duration(500).call(i.transform,c).on("end.fitted",(()=>{i.on("end.fitted",null),r()}))})(this.$.svg,this.$.root,this._zoom,function(){this._zoomed=!1}.bind(this))}getImageBlob(){return this.minimap.getImageBlob()}isNodeSelected(t){return t===this.selectedNode}isNodeHighlighted(t){return t===this.highlightedNode}addAnnotationGroup(t,e,n){var i=t.node.name;this._annotationGroupIndex[i]=this._annotationGroupIndex[i]||{},this._annotationGroupIndex[i][e.node.name]=n}getAnnotationGroupsIndex(t){return this._annotationGroupIndex[t]}removeAnnotationGroup(t,e){delete this._annotationGroupIndex[t.node.name][e.node.name]}addNodeGroup(t,e){this._nodeGroupIndex[t]=e}getNodeGroup(t){return this._nodeGroupIndex[t]}removeNodeGroup(t){delete this._nodeGroupIndex[t]}addEdgeGroup(t,e){this._edgeGroupIndex[t]=e}getEdgeGroup(t){return this._edgeGroupIndex[t]}_updateHealthPills(){!(function t(e,n,i){if(!n)return;let r=1;wu(e).selectAll("g.nodeshape").each((function(t){const e=n[t.node.name];!(function o(t,e,n,i,r=60,a=10,s=0,l){if(wu(t.parentNode).selectAll(".health-pill").remove(),!e)return;const c=e.value,u=c.slice(2,8),h=u[0],d=u[1],p=u[5];let f=c[1];const m={min:c[8],max:c[9],mean:c[10],stddev:Math.sqrt(c[11])};null==r&&(r=60),null==a&&(a=10),null==s&&(s=0),null!=n&&n.node.type===vAt.OP&&(r/=2,a/=2);let g=document.createElementNS(KCt,"g");g.classList.add("health-pill");let _=document.createElementNS(KCt,"defs");g.appendChild(_);let y=document.createElementNS(KCt,"linearGradient");const v="health-pill-gradient-"+i;y.setAttribute("id",v);let b=0,x="0%";for(let t=0;t<u.length;t++){if(!u[t])continue;b+=u[t];let e=document.createElementNS(KCt,"stop");e.setAttribute("offset",x),e.setAttribute("stop-color",ykt[t].background_color),y.appendChild(e);let n=document.createElementNS(KCt,"stop"),i=100*b/f+"%";n.setAttribute("offset",i),n.setAttribute("stop-color",ykt[t].background_color),y.appendChild(n),x=i}_.appendChild(y);let w=document.createElementNS(KCt,"rect");w.setAttribute("fill","url(#"+v+")"),w.setAttribute("width",String(r)),w.setAttribute("height",String(a)),w.setAttribute("y",String(s)),g.appendChild(w);let S=document.createElementNS(KCt,"title");S.textContent=(function M(t,e,n,i){let r="Device: "+t.device_name+"\n";r+="dtype: "+t.dtype+"\n";let o="(scalar)";t.shape.length>0&&(o="("+t.shape.join(",")+")"),r+="\nshape: "+o+"\n\n",r+="#(elements): "+e+"\n";const a=[];for(let t=0;t<n.length;t++)n[t]>0&&a.push("#("+ykt[t].label+"): "+n[t]);return r+=a.join(", ")+"\n\n",i.max>=i.min&&(r+="min: "+i.min+", max: "+i.max+"\n",r+="mean: "+i.mean+", stddev: "+i.stddev),r})(e,f,u,m),g.appendChild(S);let E=!1;if(null!=n){let t=n.y-a-n.height/2-2;if(n.labelOffset<0&&(t+=n.labelOffset),g.setAttribute("transform","translate("+(n.x-r/2)+", "+t+")"),u[2]||u[3]||u[4]){let t=n.node.attr;if(t&&t.length)for(let e=0;e<t.length;e++)if("T"===t[e].key){let n=t[e].value.type;E=n&&/^DT_(BOOL|INT|UINT)/.test(n);break}}}let T=document.createElementNS(KCt,"text");if(Number.isFinite(m.min)&&Number.isFinite(m.max)){const t=wkt(m.min,E),e=wkt(m.max,E);if(T.textContent=f>1?t+" ~ "+e:t,h>0||d>0||p>0){T.textContent+=" (";const t=[];h>0&&t.push(`NaN×${h}`),d>0&&t.push(`-∞×${d}`),p>0&&t.push(`+∞×${p}`),T.textContent+=t.join("; ")+")"}}else T.textContent="(No finite elements)";T.classList.add("health-pill-stats"),null==l&&(l=r/2),T.setAttribute("x",String(l)),T.setAttribute("y",String(s-2)),g.appendChild(T),qi(t.parentNode).appendChild(g)})(this,e?e[i]:null,t,r++)}))})(this.$.svg,this.nodeNamesToHealthPills,this.healthPillStepIndex)}_updateNodeState(t){var e=this.getNode(t),n=this.getNodeGroup(t);n&&Jkt(n,e,this),e.node.type===vAt.META&&e.node.associatedFunction&&!e.isLibraryFunction&&Jkt(wu("."+_kt.Scene.GROUP+">."+_kt.Scene.FUNCTION_LIBRARY+' g[data-name="'+(_At+e.node.associatedFunction)+'"]'),e,this);var i=this.getAnnotationGroupsIndex(t);we.each(i,((t,n)=>{Jkt(t,e,this,_kt.Annotation.NODE)}))}_selectedNodeChanged(t,e){if(t!==e&&(e&&this._updateNodeState(e),t)){this.minimap.update();for(var n,i=this.renderHierarchy.hierarchy.node(t),r=[];null!=i.parentNode&&i.parentNode.name!=gAt;)r.push((i=i.parentNode).name);we.forEachRight(r,(t=>{this.renderHierarchy.buildSubhierarchy(t);var e=this.renderHierarchy.getRenderNodeByName(t);e.node.isGroupNode&&!e.expanded&&(e.expanded=!0,n||(n=e))})),n&&(this.setNodeExpanded(n),this._zoomed=!0),t&&this._updateNodeState(t),setTimeout((()=>{this.panToNode(t)}),lkt.animation.duration)}}_highlightedNodeChanged(t,e){t!==e&&(t&&this._updateNodeState(t),e&&this._updateNodeState(e))}_onZoomChanged(){this._updateLabels(!this._zoomed)}_fireEnableClick(){this.fire("enable-click")}_updateInputTrace(){tLt(this.getGraphSvgRoot(),this.renderHierarchy,this.selectedNode,this.traceInputs)}};ALt.template=CLt,t([o({type:Object}),e("design:type",XAt)],ALt.prototype,"renderHierarchy",void 0),t([o({type:String}),e("design:type",String)],ALt.prototype,"name",void 0),t([o({type:String}),e("design:type",String)],ALt.prototype,"colorBy",void 0),t([o({type:Boolean}),e("design:type",Boolean)],ALt.prototype,"traceInputs",void 0),t([o({type:Boolean}),e("design:type",Boolean)],ALt.prototype,"_hasRenderHierarchyBeenFitOnce",void 0),t([o({type:Boolean}),e("design:type",Boolean)],ALt.prototype,"_isAttached",void 0),t([o({type:Object}),e("design:type",Object)],ALt.prototype,"_zoom",void 0),t([o({type:String,observer:"_highlightedNodeChanged"}),e("design:type",String)],ALt.prototype,"highlightedNode",void 0),t([o({type:String,observer:"_selectedNodeChanged"}),e("design:type",String)],ALt.prototype,"selectedNode",void 0),t([o({type:Object}),e("design:type",Object)],ALt.prototype,"handleEdgeSelected",void 0),t([o({type:Boolean,observer:"_onZoomChanged"}),e("design:type",Boolean)],ALt.prototype,"_zoomed",void 0),t([o({type:Object}),e("design:type",Object)],ALt.prototype,"_zoomStartCoords",void 0),t([o({type:Object}),e("design:type",Object)],ALt.prototype,"_zoomTransform",void 0),t([o({type:Number}),e("design:type",Number)],ALt.prototype,"_maxZoomDistanceForClick",void 0),t([o({type:Object}),e("design:type",Function)],ALt.prototype,"templateIndex",void 0),t([o({type:Object}),e("design:type",Object)],ALt.prototype,"_nodeGroupIndex",void 0),t([o({type:Object}),e("design:type",Object)],ALt.prototype,"_annotationGroupIndex",void 0),t([o({type:Object}),e("design:type",Object)],ALt.prototype,"_edgeGroupIndex",void 0),t([o({type:Number}),e("design:type",Number)],ALt.prototype,"maxMetanodeLabelLengthFontSize",void 0),t([o({type:Number}),e("design:type",Number)],ALt.prototype,"minMetanodeLabelLengthFontSize",void 0),t([o({type:Number}),e("design:type",Number)],ALt.prototype,"maxMetanodeLabelLengthLargeFont",void 0),t([o({type:Number}),e("design:type",Number)],ALt.prototype,"maxMetanodeLabelLength",void 0),t([o({type:Object}),e("design:type",Object)],ALt.prototype,"progress",void 0),t([o({type:Array}),e("design:type",Array)],ALt.prototype,"nodeContextMenuItems",void 0),t([o({type:Object}),e("design:type",Object)],ALt.prototype,"nodeNamesToHealthPills",void 0),t([o({type:Number}),e("design:type",Number)],ALt.prototype,"healthPillStepIndex",void 0),t([a("renderHierarchy"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],ALt.prototype,"_renderHierarchyChanged",null),t([a("_isAttached","renderHierarchy"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],ALt.prototype,"_animateAndFit",null),t([a("colorBy"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],ALt.prototype,"nodeColorsChanged",null),t([a("nodeNamesToHealthPills","healthPillStepIndex"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],ALt.prototype,"_updateHealthPills",null),t([a("traceInputs","selectedNode"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],ALt.prototype,"_updateInputTrace",null),ALt=t([i("tf-graph-scene")],ALt);let kLt=class extends(tr(ye)){constructor(){super(...arguments),this._renderDepth=1,this._allowGraphSelect=!0,this.edgeWidthFunction="",this.handleNodeSelected="",this.edgeLabelFunction="",this.handleEdgeSelected=""}panToNode(t){this.$$("tf-graph-scene").panToNode(t)}_autoExtractNodesChanged(){var t=this.graphHierarchy;if(t){for(const e of Object.values(t.getNodeMap()))e.include=bAt.UNSPECIFIED;this._buildRenderHierarchy(t)}}_buildNewRenderHierarchy(){var t=this.graphHierarchy;t&&this._buildRenderHierarchy(t)}_statsChanged(){var t=this.stats,e=this.devicesForStats;this.graphHierarchy&&(t&&e&&((function n(t,e,i){we.each(t.nodes,(t=>{t.stats=null})),we.each(e.dev_stats,(e=>{i&&!i[e.device]||we.each(e.node_stats,(n=>{let i=n.node_name in t.nodes?n.node_name:DAt(n.node_name);if(!(i in t.nodes))return;let r=0;n.memory&&we.each(n.memory,(t=>{t.total_bytes&&(t.total_bytes>0?r+=Number(t.total_bytes):console.log("ignoring negative memory allocation for "+i))}));let o=null;n.output&&(o=we.map(n.output,(t=>we.map(t.tensor_description.shape.dim,(t=>Number(t.size)))))),t.nodes[i].device=e.device,null==t.nodes[i].stats&&(t.nodes[i].stats=new QCt(o)),t.nodes[i].stats.addBytesAllocation(r),n.all_end_rel_micros&&(n.all_end_rel_micros>0?t.nodes[i].stats.addExecutionTime(n.all_start_micros,n.all_start_micros+n.all_end_rel_micros):console.log("ignoring negative runtime for "+i))}))}))})(this.basicGraph,t,e),(function i(t,e){let n={},i={};we.each(t.root.leaves(),(e=>{let r=t.node(e);null!=r.device&&(n[r.device]=!0),null!=r.xlaCluster&&(i[r.xlaCluster]=!0)})),t.devices=we.keys(n),t.xlaClusters=we.keys(i),we.each(t.getNodeMap(),((t,e)=>{t.isGroupNode&&(t.stats=new QCt(null),t.deviceHistogram={})})),we.each(t.root.leaves(),(e=>{let n=t.node(e),i=n;for(;null!=i.parentNode;){if(null!=n.device){let t=i.parentNode.deviceHistogram;t[n.device]=(t[n.device]||0)+1}if(null!=n.xlaCluster){let t=i.parentNode.xlaClusterHistogram;t[n.xlaCluster]=(t[n.xlaCluster]||0)+1}null!=n.stats&&i.parentNode.stats.combine(n.stats),i=i.parentNode}}))})(this.graphHierarchy)),this._buildRenderHierarchy(this.graphHierarchy))}ready(){super.ready(),this.addEventListener("graph-select",this._graphSelected.bind(this)),this.addEventListener("disable-click",this._disableClick.bind(this)),this.addEventListener("enable-click",this._enableClick.bind(this)),this.addEventListener("node-toggle-expand",this._nodeToggleExpand.bind(this)),this.addEventListener("node-select",this._nodeSelected.bind(this)),this.addEventListener("node-highlight",this._nodeHighlighted.bind(this)),this.addEventListener("node-unhighlight",this._nodeUnhighlighted.bind(this)),this.addEventListener("node-toggle-extract",this._nodeToggleExtract.bind(this)),this.addEventListener("node-toggle-seriesgroup",this._nodeToggleSeriesGroup.bind(this)),this.addEventListener("edge-select",this._edgeSelected.bind(this)),this.addEventListener("annotation-select",this._nodeSelected.bind(this)),this.addEventListener("annotation-highlight",this._nodeHighlighted.bind(this)),this.addEventListener("annotation-unhighlight",this._nodeUnhighlighted.bind(this))}_buildRenderHierarchy(t){if(t.root.type!==vAt.META)return;const e=this,n=iAt("new tf_graph_render.Hierarchy",(()=>{const n=new XAt(t,!!this.stats,this.autoExtractNodes);function i(t){return{minValue:t.domain()[0],maxValue:t.domain()[1],startColor:t.range()[0],endColor:t.range()[1]}}return n.edgeLabelFunction=this.edgeLabelFunction,n.edgeWidthFunction=this.edgeWidthFunction,e._setColorByParams({compute_time:i(n.computeTimeScale),memory:i(n.memoryUsageScale),device:we.map(n.deviceColorMap.domain(),(function(t){return{device:t,color:n.deviceColorMap(t)}})),xla_cluster:we.map(n.xlaClusterColorMap.domain(),(function(t){return{xla_cluster:t,color:n.xlaClusterColorMap(t)}}))}),n}),YCt.RENDER_BUILD_HIERARCHY);e._setRenderHierarchy(n)}_getVisible(t){return t?this.renderHierarchy.getNearestVisibleAncestor(t):t}fit(){this.$.scene.fit()}getImageBlob(){return this.$.scene.getImageBlob()}_graphChanged(){this.graphHierarchy&&(this.graphHierarchy.addListener(dLt.TEMPLATES_UPDATED,(()=>{this.$.scene.nodeColorsChanged()})),this.fire("graph-select"))}_graphSelected(t){this._allowGraphSelect&&(this.set("selectedNode",null),this.set("selectedEdge",null)),this._allowGraphSelect=!0}_disableClick(t){this._allowGraphSelect=!1}_enableClick(t){this._allowGraphSelect=!0}_selectedNodeChanged(){this.handleNodeSelected&&this.handleNodeSelected(this.selectedNode)}_selectedEdgeChanged(){var t=this.selectedEdge;this._deselectPreviousEdge(),t&&(this._lastSelectedEdgeGroup.classed(_kt.Edge.SELECTED,!0),this._updateMarkerOfSelectedEdge(t)),this.handleEdgeSelected&&this.handleEdgeSelected(t)}_nodeSelected(t){this._allowGraphSelect&&this.set("selectedNode",t.detail.name),this._allowGraphSelect=!0}_edgeSelected(t){this._allowGraphSelect&&(this.set("_lastSelectedEdgeGroup",t.detail.edgeGroup),this.set("selectedEdge",t.detail.edgeData)),this._allowGraphSelect=!0}_nodeHighlighted(t){this.set("highlightedNode",t.detail.name)}_nodeUnhighlighted(t){this.set("highlightedNode",null)}_nodeToggleExpand(t){this._nodeSelected(t);var e=t.detail.name,n=this.renderHierarchy.getRenderNodeByName(e);n.node.type!==vAt.OP&&(this.renderHierarchy.buildSubhierarchy(e),n.expanded=!n.expanded,this.async((function(){this.$.scene.setNodeExpanded(n)}),75),nAt({actionId:YCt.NODE_EXPANSION_TOGGLED,eventLabel:n.expanded?"expanded":"collapsed"}))}_nodeToggleExtract(t){this.nodeToggleExtract(t.detail.name)}nodeToggleExtract(t){const e=this.renderHierarchy.getRenderNodeByName(t);e.node.include=e.node.include==bAt.INCLUDE?bAt.EXCLUDE:e.node.include==bAt.EXCLUDE||this.renderHierarchy.isNodeAuxiliary(e)?bAt.INCLUDE:bAt.EXCLUDE,this._buildRenderHierarchy(this.graphHierarchy),nAt({actionId:YCt.NODE_AUXILIARY_EXTRACTION_CHANGED,eventLabel:e.node.include===bAt.INCLUDE?"Auxiliary to Main":"Main to Auxiliary"})}_nodeToggleSeriesGroup(t){this.nodeToggleSeriesGroup(t.detail.name)}nodeToggleSeriesGroup(t){this.set("progress",{value:0,msg:""});var e=oAt(rAt(this),100,"Namespace hierarchy");const n=Object.assign(Object.assign({},this.hierarchyParams),{seriesMap:this.graphHierarchy.buildSeriesGroupMapToggled(t)});gLt(this.basicGraph,n,e).then(function(t){this.set("graphHierarchy",t),this._buildRenderHierarchy(this.graphHierarchy)}.bind(this))}_deselectPreviousEdge(){wu("."+_kt.Edge.SELECTED).classed(_kt.Edge.SELECTED,!1).each(((t,e)=>{if(t.label){const e=wu(this).selectAll("path.edgeline");t.label.startMarkerId&&e.style("marker-start",`url(#${t.label.startMarkerId})`),t.label.endMarkerId&&e.style("marker-end",`url(#${t.label.endMarkerId})`)}}))}_updateMarkerOfSelectedEdge(t){if(t.label){const e=t.label.startMarkerId||t.label.endMarkerId;if(e){const n=e.replace("dataflow-","selected-");let i=this.$$("#"+n);if(!i){const t=this.$.scene.querySelector("#"+e);i=t.cloneNode(!0),i.setAttribute("id",n),i.classList.add("selected-arrowhead"),t.parentNode.appendChild(i)}const r=t.label.startMarkerId?"marker-start":"marker-end";this._lastSelectedEdgeGroup.selectAll("path.edgeline").style(r,`url(#${n})`)}}}not(t){return!t}};kLt.template=_e`
    <style>
      .container {
        width: 100%;
        height: 100%;
        background: white;
        box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
      }

      .vertical {
        width: 100%;
        height: 100%;
        @apply --layout-vertical;
      }

      .auto {
        @apply --layout-flex-auto;
        @apply --layout-vertical;
      }

      h2 {
        text-align: center;
      }

      paper-button {
        text-transform: none;
      }
    </style>
    <div class="container">
      <div class="vertical">
        <template is="dom-if" if="[[title]]">
          <h2>[[title]]</h2>
        </template>
        <tf-graph-scene
          id="scene"
          class="auto"
          render-hierarchy="[[renderHierarchy]]"
          highlighted-node="[[_getVisible(highlightedNode)]]"
          selected-node="{{selectedNode}}"
          selected-edge="{{selectedEdge}}"
          color-by="[[colorBy]]"
          progress="[[progress]]"
          node-context-menu-items="[[nodeContextMenuItems]]"
          node-names-to-health-pills="[[nodeNamesToHealthPills]]"
          health-pill-step-index="{{healthPillStepIndex}}"
          handle-edge-selected="[[handleEdgeSelected]]"
          trace-inputs="[[traceInputs]]"
        ></tf-graph-scene>
      </div>
    </div>
  `,t([o({type:Object,notify:!0,observer:"_graphChanged"}),e("design:type",pLt)],kLt.prototype,"graphHierarchy",void 0),t([o({type:Object}),e("design:type",wAt)],kLt.prototype,"basicGraph",void 0),t([o({type:Object}),e("design:type",Object)],kLt.prototype,"stats",void 0),t([o({type:Object}),e("design:type",Object)],kLt.prototype,"devicesForStats",void 0),t([o({type:Object}),e("design:type",Object)],kLt.prototype,"hierarchyParams",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],kLt.prototype,"progress",void 0),t([o({type:String}),e("design:type",String)],kLt.prototype,"title",void 0),t([o({type:String,notify:!0}),e("design:type",String)],kLt.prototype,"selectedNode",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],kLt.prototype,"selectedEdge",void 0),t([o({type:Object}),e("design:type",Object)],kLt.prototype,"_lastSelectedEdgeGroup",void 0),t([o({type:String,notify:!0}),e("design:type",String)],kLt.prototype,"highlightedNode",void 0),t([o({type:String}),e("design:type",String)],kLt.prototype,"colorBy",void 0),t([o({type:Object,notify:!0,readOnly:!0}),e("design:type",Object)],kLt.prototype,"colorByParams",void 0),t([o({type:Object,readOnly:!0,notify:!0}),e("design:type",XAt)],kLt.prototype,"renderHierarchy",void 0),t([o({type:Boolean}),e("design:type",Boolean)],kLt.prototype,"traceInputs",void 0),t([o({type:Boolean}),e("design:type",Boolean)],kLt.prototype,"autoExtractNodes",void 0),t([o({type:Array}),e("design:type",Array)],kLt.prototype,"nodeContextMenuItems",void 0),t([o({type:Number}),e("design:type",Number)],kLt.prototype,"_renderDepth",void 0),t([o({type:Boolean}),e("design:type",Boolean)],kLt.prototype,"_allowGraphSelect",void 0),t([o({type:Object}),e("design:type",Object)],kLt.prototype,"nodeNamesToHealthPills",void 0),t([o({type:Number}),e("design:type",Number)],kLt.prototype,"healthPillStepIndex",void 0),t([o({type:Object}),e("design:type",Object)],kLt.prototype,"edgeWidthFunction",void 0),t([o({type:Object}),e("design:type",Object)],kLt.prototype,"handleNodeSelected",void 0),t([o({type:Object}),e("design:type",Object)],kLt.prototype,"edgeLabelFunction",void 0),t([o({type:Object}),e("design:type",Object)],kLt.prototype,"handleEdgeSelected",void 0),t([a("autoExtractNodes"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],kLt.prototype,"_autoExtractNodesChanged",null),t([a("graphHierarchy","edgeWidthFunction","handleNodeSelected","edgeLabelFunction","handleEdgeSelected"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],kLt.prototype,"_buildNewRenderHierarchy",null),t([a("stats","devicesForStats"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],kLt.prototype,"_statsChanged",null),t([a("selectedNode"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],kLt.prototype,"_selectedNodeChanged",null),t([a("selectedEdge"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],kLt.prototype,"_selectedEdgeChanged",null),kLt=t([i("tf-graph")],kLt);const LLt={MAX_NODE_COUNT:1e4,MAX_EDGE_COUNT:1e4};let PLt=class extends(tr(ye)){constructor(){super(...arguments),this.hierarchyParams=mLt,this.allStepsModeEnabled=!1,this.specificHealthPillStep=0,this.compatNodeTitle="TPU Compatibility"}fit(){this.$.graph.fit()}downloadAsImage(t){return n(this,void 0,void 0,(function*(){const e=yield this.$.graph.getImageBlob(),n=document.createElement("a");n.href=URL.createObjectURL(e),n.download=t,n.click(),URL.revokeObjectURL(n.href)}))}_isNotComplete(t){return t.value<100}_getContainerClass(t){var e="container";return t.error&&(e+=" error"),this._isNotComplete(t)&&(e+=" loading"),e}_onNodeInclusionToggled(t){this.$.graph.nodeToggleExtract(t.detail.name)}_onNodeSeriesGroupToggled(t){this.$.graph.nodeToggleSeriesGroup(t.detail.name)}_updateNodeInclude(){const t=this.renderHierarchy?this.renderHierarchy.getNodeByName(this.selectedNode):null;this._selectedNodeInclude=t?t.include:bAt.UNSPECIFIED}_slimGraphChanged(){if(!this.graph)return;const{MAX_NODE_COUNT:t,MAX_EDGE_COUNT:e}=LLt;Object.keys(this.graph.nodes).length>t&&this.graph.edges.length>e&&this.colorBy===zkt.STRUCTURE&&(this.colorBy=zkt.NONE)}_ensureTemplates(){this.graphHierarchy&&this.colorBy===zkt.STRUCTURE&&(this.graphHierarchy.getTemplateIndex()||this.graphHierarchy.updateTemplates())}};PLt.template=_e`
    <style>
      ::host {
        display: block;
      }

      /deep/ .close {
        position: absolute;
        cursor: pointer;
        left: 15px;
        bottom: 15px;
      }

      .container {
        width: 100%;
        height: 100%;
        opacity: 1;
      }

      .container.loading {
        cursor: progress;
        opacity: 0.1;
      }

      .container.loading.error {
        cursor: auto;
      }

      #info {
        position: absolute;
        right: 5px;
        top: 5px;
        padding: 0px;
        max-width: 380px;
        min-width: 320px;
        background-color: rgba(255, 255, 255, 0.9);
        @apply --shadow-elevation-2dp;
      }

      #main {
        width: 100%;
        height: 100%;
      }

      #progress-bar {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
        position: absolute;
        top: 40px;
        left: 0;
        font-size: 13px;
      }

      #progress-msg {
        margin-bottom: 5px;
        white-space: pre-wrap;
        width: 400px;
      }

      paper-progress {
        width: 400px;
        --paper-progress-height: 6px;
        --paper-progress-active-color: #f3913e;
      }

      .context-menu {
        position: absolute;
        display: none;
        background-color: #e2e2e2;
        border-radius: 2px;
        font-size: 14px;
        min-width: 150px;
        border: 1px solid #d4d4d4;
      }

      /deep/ .context-menu ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        cursor: default;
      }

      /deep/ .context-menu ul li {
        padding: 4px 16px;
      }

      /deep/ .context-menu ul li:hover {
        background-color: #f3913e;
        color: white;
      }
    </style>
    <template is="dom-if" if="[[_isNotComplete(progress)]]">
      <div id="progress-bar">
        <div id="progress-msg">[[progress.msg]]</div>
        <paper-progress value="[[progress.value]]"></paper-progress>
      </div>
    </template>
    <div class$="[[_getContainerClass(progress)]]">
      <div id="main">
        <tf-graph
          id="graph"
          graph-hierarchy="{{graphHierarchy}}"
          basic-graph="[[graph]]"
          hierarchy-params="[[hierarchyParams]]"
          render-hierarchy="{{renderHierarchy}}"
          devices-for-stats="[[devicesForStats]]"
          stats="[[stats]]"
          selected-node="{{selectedNode}}"
          highlighted-node="{{_highlightedNode}}"
          color-by="[[colorBy]]"
          color-by-params="{{colorByParams}}"
          progress="{{progress}}"
          edge-label-function="[[edgeLabelFunction]]"
          edge-width-function="[[edgeWidthFunction]]"
          node-names-to-health-pills="[[nodeNamesToHealthPills]]"
          health-pill-step-index="[[healthPillStepIndex]]"
          handle-node-selected="[[handleNodeSelected]]"
          handle-edge-selected="[[handleEdgeSelected]]"
          trace-inputs="[[traceInputs]]"
          auto-extract-nodes="[[autoExtractNodes]]"
        ></tf-graph>
      </div>
      <div id="info">
        <tf-graph-info
          id="graph-info"
          title="selected"
          graph-hierarchy="[[graphHierarchy]]"
          render-hierarchy="[[renderHierarchy]]"
          graph="[[graph]]"
          selected-node="{{selectedNode}}"
          selected-node-include="{{_selectedNodeInclude}}"
          highlighted-node="{{_highlightedNode}}"
          color-by="[[colorBy]]"
          color-by-params="[[colorByParams]]"
          debugger-data-enabled="[[debuggerDataEnabled]]"
          are-health-pills-loading="[[areHealthPillsLoading]]"
          debugger-numeric-alerts="[[debuggerNumericAlerts]]"
          node-names-to-health-pills="[[nodeNamesToHealthPills]]"
          all-steps-mode-enabled="{{allStepsModeEnabled}}"
          specific-health-pill-step="{{specificHealthPillStep}}"
          health-pill-step-index="{{healthPillStepIndex}}"
          compat-node-title="[[compatNodeTitle]]"
          on-node-toggle-inclusion="_onNodeInclusionToggled"
          on-node-toggle-seriesgroup="_onNodeSeriesGroupToggled"
        ></tf-graph-info>
      </div>
    </div>
  `,t([o({type:Object}),e("design:type",pLt)],PLt.prototype,"graphHierarchy",void 0),t([o({type:Object}),e("design:type",wAt)],PLt.prototype,"graph",void 0),t([o({type:Object}),e("design:type",Object)],PLt.prototype,"hierarchyParams",void 0),t([o({type:Object}),e("design:type",Object)],PLt.prototype,"stats",void 0),t([o({type:Object}),e("design:type",Object)],PLt.prototype,"progress",void 0),t([o({type:Boolean}),e("design:type",Boolean)],PLt.prototype,"traceInputs",void 0),t([o({type:Boolean}),e("design:type",Boolean)],PLt.prototype,"autoExtractNodes",void 0),t([o({type:String,notify:!0}),e("design:type",String)],PLt.prototype,"colorBy",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],PLt.prototype,"colorByParams",void 0),t([o({type:Object,notify:!0}),e("design:type",XAt)],PLt.prototype,"renderHierarchy",void 0),t([o({type:Boolean}),e("design:type",Boolean)],PLt.prototype,"debuggerDataEnabled",void 0),t([o({type:Boolean}),e("design:type",Boolean)],PLt.prototype,"areHealthPillsLoading",void 0),t([o({type:Array,notify:!0}),e("design:type",Array)],PLt.prototype,"debuggerNumericAlerts",void 0),t([o({type:Object}),e("design:type",Object)],PLt.prototype,"nodeNamesToHealthPills",void 0),t([o({type:Boolean,notify:!0}),e("design:type",Boolean)],PLt.prototype,"allStepsModeEnabled",void 0),t([o({type:Number,notify:!0}),e("design:type",Number)],PLt.prototype,"specificHealthPillStep",void 0),t([o({type:Number}),e("design:type",Number)],PLt.prototype,"healthPillStepIndex",void 0),t([o({type:String,notify:!0}),e("design:type",String)],PLt.prototype,"selectedNode",void 0),t([o({type:String}),e("design:type",String)],PLt.prototype,"compatNodeTitle",void 0),t([o({type:Object}),e("design:type",Object)],PLt.prototype,"edgeWidthFunction",void 0),t([o({type:Number}),e("design:type",Number)],PLt.prototype,"_selectedNodeInclude",void 0),t([o({type:String}),e("design:type",String)],PLt.prototype,"_highlightedNode",void 0),t([o({type:Object}),e("design:type",Object)],PLt.prototype,"handleNodeSelected",void 0),t([o({type:Object}),e("design:type",Object)],PLt.prototype,"edgeLabelFunction",void 0),t([o({type:Object}),e("design:type",Object)],PLt.prototype,"handleEdgeSelected",void 0),t([a("selectedNode","renderHierarchy"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],PLt.prototype,"_updateNodeInclude",null),t([a("graph"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],PLt.prototype,"_slimGraphChanged",null),t([a("colorBy","graphHierarchy"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],PLt.prototype,"_ensureTemplates",null),PLt=t([i("tf-graph-board")],PLt);let NLt=class extends(tr(ye)){constructor(){super(...arguments),this._rawRegexInput="",this._previousRegexInput="",this._searchTimeoutDelay=150,this._maxRegexResults=42}get _regexInput(){return this._rawRegexInput.trim()}_regexInputChanged(){this._requestSearch()}_clearSearchResults(){this.set("_regexMatches",[])}_requestSearch(){this._searchPending||(this._regexInput!==this._previousRegexInput?(this._searchPending=!0,this._executeSearch(),this.async((()=>{this._searchPending=!1,this._requestSearch()}),this._searchTimeoutDelay)):this._searchPending=!1)}_executeSearch(){if(this._previousRegexInput=this._regexInput,!this._regexInput)return void this._clearSearchResults();try{var t=new RegExp(this._regexInput)}catch(t){return void this._clearSearchResults()}const e=[],n=this.renderHierarchy.hierarchy.getNodeMap();we.each(n,((n,i)=>{if(e.length>=this._maxRegexResults)return!1;t.test(i)&&e.push(i)})),this.set("_regexMatches",e)}_matchClicked(t){this.set("selectedNode",t.model.item),nAt({actionId:YCt.NODE_SEARCH_RESULT_FOCUSED})}};NLt.template=_e`
    <div id="search-container">
      <paper-input
        id="runs-regex"
        label="Search nodes (regex)"
        value="{{_rawRegexInput}}"
      >
      </paper-input>
      <div id="search-results-anchor">
        <div id="search-results">
          <template is="dom-repeat" items="[[_regexMatches]]">
            <div id="search-match" on-click="_matchClicked">[[item]]</div>
          </template>
        </div>
      </div>
    </div>
    <style>
      #search-container {
        width: 100%;
        overflow: visible;
      }

      #runs-regex {
        width: 100%;
      }

      #search-results-anchor {
        position: relative;
      }

      #search-results {
        color: #fff;
        position: absolute;
        max-height: 200px;
        overflow-x: hidden;
        overflow-y: auto;
        text-align: right;
        max-width: 100%;
        box-sizing: border-box;
      }

      #search-match {
        background: var(--tb-orange-strong);
        padding: 3px;
        float: right;
        width: 100%;
        box-sizing: border-box;
        direction: rtl;
      }

      #search-match:hover {
        background: var(--tb-orange-weak);
        cursor: pointer;
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],NLt.prototype,"renderHierarchy",void 0),t([o({type:String,notify:!0}),e("design:type",String)],NLt.prototype,"selectedNode",void 0),t([o({type:String}),e("design:type",String)],NLt.prototype,"_rawRegexInput",void 0),t([o({type:String}),e("design:type",String)],NLt.prototype,"_previousRegexInput",void 0),t([o({type:Number}),e("design:type",Number)],NLt.prototype,"_searchTimeoutDelay",void 0),t([o({type:Boolean}),e("design:type",Boolean)],NLt.prototype,"_searchPending",void 0),t([o({type:Number}),e("design:type",Number)],NLt.prototype,"_maxRegexResults",void 0),t([o({type:Array}),e("design:type",Array)],NLt.prototype,"_regexMatches",void 0),t([s("renderHierarchy","_rawRegexInput"),e("design:type",String),e("design:paramtypes",[])],NLt.prototype,"_regexInput",null),t([a("_regexInput"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],NLt.prototype,"_regexInputChanged",null),NLt=t([i("tf-graph-node-search")],NLt);const ILt=/device:([^:]+:[0-9]+)$/,OLt=[{regex:ILt}],RLt=[],zLt=new Set([zkt.COMPUTE_TIME,zkt.MEMORY]);let DLt=class extends(tr(nl(ye))){constructor(){super(...arguments),this.ColorBy=zkt,this.stats=null,this.devicesForStats=null,this.colorBy=zkt.STRUCTURE,this.datasets=[],this._selectedRunIndex=0,this.traceInputs=!1,this.autoExtractNodes=!0,this._selectedTagIndex=0,this._selectedGraphType=XCt.OP_GRAPH,this.showSessionRunsDropdown=!0,this.showUploadButton=!0,this._legendOpened=!0,this._downloadFilename="graph.png"}_onGraphTypeChangedByUserGesture(){nAt({actionId:YCt.GRAPH_TYPE_CHANGED,eventLabel:this._selectedGraphType})}_onColorByChangedByUserGesture(){nAt({actionId:YCt.NODE_COLOR_MODE_CHANGED,eventLabel:this.colorBy})}_onTraceInputsChangedByUserGesture(){nAt({actionId:YCt.TRACE_INPUT_MODE_TOGGLED})}_xlaClustersProvided(t){return t&&t.hierarchy&&t.hierarchy.xlaClusters.length>0}_statsChanged(t){if(null!=t){var e={};we.each(t.dev_stats,(function(t){var n=we.some(OLt,(function(e){return e.regex.test(t.device)})),i=we.some(RLt,(function(e){return e.regex.test(t.device)}));n&&!i&&(e[t.device]=!0)})),this.set("devicesForStats",e)}}get _currentDevices(){var t=this.devicesForStats;const e=this.stats,n=(e?e.dev_stats:[]).map((t=>t.device)).filter((t=>OLt.some((e=>e.regex.test(t))))),i=dAt(n);if(1==i.length){const t=i[0].match(ILt);t&&(i[0]=t[1])}return n.map(((e,n)=>{let r=null;return RLt.forEach((t=>{t.regex.test(e)&&(r=t.msg)})),{device:e,suffix:i[n],used:t[e],ignoredMsg:r}}))}_deviceCheckboxClicked(t){const e=t.target,n=Object.assign({},this.devicesForStats),i=e.value;e.checked?n[i]=!0:delete n[i],this.set("devicesForStats",n)}_numTags(t,e){return this._getTags(t,e).length}_getTags(t,e){return t&&t[e]?t[e].tags:[]}_fit(){this.fire("fit-tap")}_isGradientColoring(t,e){return zLt.has(e)&&null!=t}_equals(t,e){return t===e}get _currentDeviceParams(){const t=this.colorByParams.device.filter((t=>OLt.some((e=>e.regex.test(t.device))))),e=dAt(t.map((t=>t.device)));if(1==e.length){var n=e[0].match(ILt);n&&(e[0]=n[1])}return t.map(((t,n)=>({device:e[n],color:t.color})))}get _currentXlaClusterParams(){return this.colorByParams.xla_cluster}get _currentGradientParams(){var t=this.colorByParams,e=this.colorBy;if(!this._isGradientColoring(this.stats,e))return;const n=t[e];let i=n.minValue,r=n.maxValue;return e===zkt.MEMORY?(i=uAt(i,lAt),r=uAt(r,lAt)):e===zkt.COMPUTE_TIME&&(i=uAt(i,cAt),r=uAt(r,cAt)),{minValue:i,maxValue:r,startColor:n.startColor,endColor:n.endColor}}download(){this.fire("download-image-requested",this._downloadFilename)}_updateFileInput(t){const e=t.target.files[0];if(!e)return;let n=e.name;const i=n.lastIndexOf(".");i>=0&&(n=n.substring(0,i));const r=n.lastIndexOf("/");r>=0&&(n=n.substring(r+1)),this._setDownloadFilename(n),this.set("selectedFile",t),nAt({actionId:YCt.UPLOADED_GRAPH_FROM_FILESYSTEM})}_datasetsChanged(t,e){var n;null!=e&&(this._selectedRunIndex=0),this._setDownloadFilename(null===(n=this.datasets[this._selectedRunIndex])||void 0===n?void 0:n.name)}_computeSelection(t,e,n,i){return t[e]&&t[e].tags[n]?{run:t[e].name,tag:t[e].tags[n].tag,type:i}:null}_selectedRunIndexChanged(t){var e;this.datasets&&(this.colorBy=zkt.STRUCTURE,this._selectedTagIndex=0,this._selectedGraphType=this._getDefaultSelectionType(),this.traceInputs=!1,this._setDownloadFilename(null===(e=this.datasets[t])||void 0===e?void 0:e.name))}_selectedTagIndexChanged(){this._selectedGraphType=this._getDefaultSelectionType()}_getDefaultSelectionType(){const{datasets:t,_selectedRunIndex:e,_selectedTagIndex:n}=this;if(!t||!t[e]||!t[e].tags[n]||t[e].tags[n].opGraph)return XCt.OP_GRAPH;const i=t[e];return i.tags[n].profile?XCt.PROFILE:i.tags[n].conceptualGraph?XCt.CONCEPTUAL_GRAPH:XCt.OP_GRAPH}_getFile(){this.$$("#file").click()}_setDownloadFilename(t){this._downloadFilename=(t||"graph")+".png"}_statsNotNull(t){return null!==t}_toggleLegendOpen(){this.set("_legendOpened",!this._legendOpened)}_getToggleLegendIcon(t){return t?"expand-more":"expand-less"}_getSelectionOpGraphDisabled(t,e,n){return!t[e]||!t[e].tags[n]||!t[e].tags[n].opGraph}_getSelectionProfileDisabled(t,e,n){return!t[e]||!t[e].tags[n]||!t[e].tags[n].profile}_getSelectionConceptualGraphDisabled(t,e,n){return!t[e]||!t[e].tags[n]||!t[e].tags[n].conceptualGraph}};DLt.template=_e`
    <style>
      :host {
        color: #555;
        display: flex;
        flex-direction: column;
        font-size: 12px;
        width: 100%;
        --tb-graph-controls-title-color: #000;
        --tb-graph-controls-legend-text-color: #000;
        --tb-graph-controls-text-color: #555;
        --tb-graph-controls-title-font-size: 14px;
        --tb-graph-controls-subtitle-font-size: 14px;
        --paper-input-container-shared-input-style_-_font-size: 14px;
        --paper-font-subhead_-_font-size: 14px;
      }

      :host(.dark-mode) {
        --tb-graph-controls-title-color: #fff;
        --tb-graph-controls-legend-text-color: #f3f3f3;
        --tb-graph-controls-text-color: #eee;
      }

      paper-dropdown-menu {
        --paper-dropdown-menu-input: {
          padding: 0;
          color: gray;
        }
        --iron-icon-width: 15px;
        --iron-icon-height: 15px;
        --primary-text-color: gray;
        --paper-item-min-height: 30px;
      }

      paper-button[raised].keyboard-focus {
        font-weight: normal;
      }

      .run-dropdown {
        --paper-input-container: {
          padding: 5px 0 5px 5px;
        }
      }

      table {
        border-collapse: collapse;
        border-spacing: 0;
      }

      table tr {
        height: 20px;
      }

      table td {
        padding: 0;
        margin: 0;
      }

      .allcontrols {
        padding: 0 20px 20px;
        flex-grow: 1;
        overflow-y: auto;
      }

      .legend-holder {
        background: var(--secondary-background-color);
        box-sizing: border-box;
        color: var(--tb-graph-controls-text-color);
        width: 100%;
      }

      .legend-toolbar {
        appearance: none;
        background-color: inherit;
        border-top: 1px solid #ccc;
        border-bottom: 1px solid #ccc;
        border-right: none;
        border-left: none;
        cursor: pointer;
        color: var(--tb-graph-controls-legend-text-color);
        font: inherit;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
      }

      .legend-toolbar,
      .legend-content {
        padding: 8px 20px;
      }

      .toggle-legend-button {
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .toggle-legend-text {
        font-size: var(--tb-graph-controls-subtitle-font-size);
      }

      paper-radio-button {
        display: block;
        padding: 5px;
      }
      svg.icon,
      tf-graph-icon {
        width: 60px;
        height: 18px;
      }
      .domainValues {
        margin-bottom: 10px;
        width: 165px;
      }
      .domainStart {
        float: left;
      }
      .domainEnd {
        float: right;
      }
      .colorBox {
        width: 20px;
      }

      .image-icon {
        width: 24px;
        height: 24px;
      }

      .help-icon {
        height: 15px;
        margin: 0;
        padding: 0;
      }

      .gray {
        color: #666;
      }

      .title {
        font-size: var(--tb-graph-controls-title-font-size);
        margin: 8px 5px 8px 0;
        color: var(--tb-graph-controls-title-color);
      }
      .title small {
        font-weight: normal;
      }
      .deviceList,
      .xlaClusterList {
        max-height: 200px;
        overflow-y: auto;
      }

      #file {
        padding: 8px 0;
      }

      .color-legend-row {
        align-items: center;
        clear: both;
        display: flex;
        height: 20px;
        margin-top: 5px;
      }

      .color-legend-row .label,
      .color-legend-row svg,
      .color-legend-row tf-graph-icon {
        flex: 0 0 40px;
        margin-right: 20px;
      }

      .devices-checkbox input {
        text-align: left;
        vertical-align: middle;
      }

      .control-holder .icon-button {
        font-size: var(--tb-graph-controls-subtitle-font-size);
        margin: 0 -5px;
        padding: 5px;
        display: flex;
        justify-content: flex-start;
        color: var(--tb-graph-controls-text-color);
      }

      .button-text {
        padding-left: 20px;
        text-transform: none;
      }

      .upload-button {
        width: 165px;
        height: 25px;
        text-transform: none;
        margin-top: 4px;
      }

      .button-icon {
        width: 26px;
        height: 26px;
        color: var(--paper-orange-500);
      }

      .hidden-input {
        display: none;
      }

      .allcontrols .control-holder {
        clear: both;
        display: flex;
        justify-content: space-between;
      }

      .allcontrols .control-holder.control-options {
        padding: 0 0 15px 15px;
        flex-direction: column;
      }

      .allcontrols .control-holder paper-toggle-button {
        margin-bottom: 5px;
      }

      span.counter {
        font-size: var(--tb-graph-controls-subtitle-font-size);
        color: gray;
        margin-left: 4px;
      }

      .runs-row .title,
      .tags-row .title {
        display: flex;
        align-items: baseline;
      }

      .runs-row paper-item,
      .tags-row paper-item {
        --paper-item: {
          white-space: nowrap;
        }
      }

      table.control-holder {
        border: 0;
        border-collapse: collapse;
      }

      table.tf-graph-controls td.input-element-table-data {
        padding: 0 0 0 20px;
      }

      .spacer {
        flex-grow: 1;
      }

      .color-text {
        overflow: hidden;
      }

      .color-text.gradient-container {
        margin: 0 5px;
      }

      /** Override inline styles that suppress pointer events for disabled buttons. Otherwise, the */
      /*  tooltips do not appear. */
      paper-radio-group paper-radio-button {
        pointer-events: auto !important;
      }

      .legend-clarifier {
        color: #266236;
        cursor: help;
        display: inline-block;
        text-decoration: underline;
      }

      .legend-clarifier paper-tooltip {
        width: 150px;
      }

      /** Otherwise, polymer UI controls appear atop node search. */
      tf-graph-node-search {
        z-index: 1;
        width: 100%;
      }

      paper-dropdown-menu {
        flex-grow: 1;
      }
    </style>

    <div class="allcontrols">
      <div class="control-holder">
        <tf-graph-node-search
          selected-node="{{selectedNode}}"
          render-hierarchy="[[renderHierarchy]]"
        ></tf-graph-node-search>
      </div>
      <div class="control-holder">
        <paper-button class="icon-button" on-tap="_fit" alt="Fit to screen">
          <iron-icon icon="aspect-ratio" class="button-icon"></iron-icon>
          <span class="button-text">Fit to screen</span>
        </paper-button>
      </div>
      <div class="control-holder">
        <paper-button
          class="icon-button"
          on-click="download"
          alt="Download PNG"
        >
          <iron-icon icon="file-download" class="button-icon"></iron-icon>
          <span class="button-text">Download PNG</span>
        </paper-button>
      </div>
      <template is="dom-if" if="[[showUploadButton]]">
        <div class="control-holder">
          <paper-button
            class="icon-button"
            on-click="_getFile"
            alt="Upload file"
            title="Upload a pbtxt file to view a graph from the local filesystem"
          >
            <iron-icon icon="file-upload" class="button-icon"></iron-icon>
            <span class="button-text">Upload file</span>
          </paper-button>

          <div class="hidden-input">
            <input
              type="file"
              id="file"
              name="file"
              on-change="_updateFileInput"
              accept=".pbtxt"
            />
          </div>
        </div>
      </template>
      <div class="control-holder runs-row">
        <div class="title">
          Run <span class="counter">([[datasets.length]])</span>
        </div>
        <paper-dropdown-menu
          no-label-float
          no-animations
          noink
          horizontal-align="left"
          class="run-dropdown"
        >
          <paper-listbox
            class="dropdown-content"
            selected="{{_selectedRunIndex}}"
            slot="dropdown-content"
          >
            <template is="dom-repeat" items="[[datasets]]">
              <paper-item>[[item.name]]</paper-item>
            </template>
          </paper-listbox>
        </paper-dropdown-menu>
      </div>
      <template is="dom-if" if="[[showSessionRunsDropdown]]">
        <div class="control-holder tags-row">
          <div class="title">
            Tag
            <span class="counter"
              >([[_numTags(datasets, _selectedRunIndex)]])</span
            >
          </div>
          <paper-dropdown-menu
            no-label-float
            no-animations
            horizontal-align="left"
            noink
            class="run-dropdown"
          >
            <paper-listbox
              class="dropdown-content"
              selected="{{_selectedTagIndex}}"
              slot="dropdown-content"
            >
              <template
                is="dom-repeat"
                items="[[_getTags(datasets, _selectedRunIndex)]]"
              >
                <paper-item>[[item.displayName]]</paper-item>
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
        </div>
      </template>
      <div class="title">Graph type</div>
      <div class="control-holder control-options">
        <paper-radio-group
          selected="{{_selectedGraphType}}"
          on-paper-radio-group-changed="_onGraphTypeChangedByUserGesture"
        >
          <!-- Note that the name has to match that of tf_graph_common.SelectionType. -->
          <paper-radio-button
            name="op_graph"
            disabled="[[_getSelectionOpGraphDisabled(datasets, _selectedRunIndex, _selectedTagIndex)]]"
            >Op graph</paper-radio-button
          >
          <paper-radio-button
            name="conceptual_graph"
            disabled="[[_getSelectionConceptualGraphDisabled(datasets, _selectedRunIndex, _selectedTagIndex)]]"
            >Conceptual graph</paper-radio-button
          >
          <paper-radio-button
            name="profile"
            disabled="[[_getSelectionProfileDisabled(datasets, _selectedRunIndex, _selectedTagIndex)]]"
            >Profile</paper-radio-button
          >
        </paper-radio-group>
      </div>
      <div class="title">Node options</div>
      <div class="control-holder control-options">
        <paper-toggle-button
          checked="{{traceInputs}}"
          on-change="_onTraceInputsChangedByUserGesture"
        >
          Trace inputs
        </paper-toggle-button>
        <paper-toggle-button checked="{{autoExtractNodes}}">
          Auto-extract high-degree nodes
        </paper-toggle-button>
      </div>
      <template is="dom-if" if="[[healthPillsFeatureEnabled]]">
        <div class="control-holder">
          <paper-toggle-button checked="{{healthPillsToggledOn}}"
            >Show health pills</paper-toggle-button
          >
        </div>
      </template>
      <div class="title">Color by</div>
      <div class="control-holder control-options">
        <paper-radio-group
          selected="{{colorBy}}"
          on-paper-radio-group-changed="_onColorByChangedByUserGesture"
        >
          <paper-radio-button name="[[ColorBy.NONE]]">None</paper-radio-button>

          <paper-radio-button name="[[ColorBy.STRUCTURE]]"
            >Structure</paper-radio-button
          >

          <paper-radio-button name="[[ColorBy.DEVICE]]"
            >Device</paper-radio-button
          >

          <paper-radio-button
            id="xla-cluster-radio-button"
            name="[[ColorBy.XLA_CLUSTER]]"
            disabled="[[!_xlaClustersProvided(renderHierarchy)]]"
          >
            XLA cluster
          </paper-radio-button>
          <paper-tooltip
            animation-delay="0"
            for="xla-cluster-radio-button"
            position="right"
            offset="0"
          >
            Coloring by XLA cluster is only enabled if at least 1 op specifies
            an XLA cluster.
          </paper-tooltip>

          <paper-radio-button
            id="compute-time-radio-button"
            name="[[ColorBy.COMPUTE_TIME]]"
            disabled="[[!stats]]"
          >
            Compute time
          </paper-radio-button>
          <paper-tooltip
            animation-delay="0"
            for="compute-time-radio-button"
            position="right"
            offset="0"
          >
            Coloring by compute time is only enabled if the RunMetadata proto is
            passed to the FileWriter when a specific session is run.
          </paper-tooltip>

          <paper-radio-button
            id="memory-radio-button"
            name="[[ColorBy.MEMORY]]"
            disabled="[[!stats]]"
          >
            Memory
          </paper-radio-button>
          <paper-tooltip
            animation-delay="0"
            for="memory-radio-button"
            position="right"
            offset="0"
          >
            Coloring by memory is only enabled if the RunMetadata proto is
            passed to the FileWriter when a specific session is run.
          </paper-tooltip>

          <paper-radio-button
            id="tpu-compatibility-radio-button"
            name="[[ColorBy.OP_COMPATIBILITY]]"
          >
            TPU compatibility
          </paper-radio-button>
          <paper-tooltip
            animation-delay="0"
            for="tpu-compatibility-radio-button"
            position="right"
            offset="0"
          >
            Coloring by whether an operation is compatible for the TPU device.
          </paper-tooltip>
        </paper-radio-group>
        <span class="spacer"></span>
      </div>
    </div>
    <div class="legend-holder">
      <button class="legend-toolbar" on-click="_toggleLegendOpen">
        <span class="toggle-legend-text">Legend</span>
        <iron-icon
          icon="[[_getToggleLegendIcon(_legendOpened)]]"
          class="toggle-legend-button"
        >
        </iron-icon>
      </button>
      <iron-collapse opened="[[_legendOpened]]" class="legend-content">
        <!-- Color-mode-specific legend items -->
        <div>
          <template is="dom-if" if="[[_isGradientColoring(stats, colorBy)]]">
            <svg width="140" height="20" class="color-text gradient-container">
              <defs>
                <linearGradient
                  id="linearGradient"
                  x1="0%"
                  y1="0%"
                  x2="100%"
                  y2="0%"
                >
                  <stop
                    class="start"
                    offset="0%"
                    stop-color$="[[_currentGradientParams.startColor]]"
                  ></stop>
                  <stop
                    class="end"
                    offset="100%"
                    stop-color$="[[_currentGradientParams.endColor]]"
                  ></stop>
                </linearGradient>
              </defs>
              <rect
                x="0"
                y="0"
                width="135"
                height="20"
                fill="url(#linearGradient)"
                stroke="black"
              ></rect>
            </svg>
            <div class="domainValues color-text">
              <div class="domainStart">[[_currentGradientParams.minValue]]</div>
              <div class="domainEnd">[[_currentGradientParams.maxValue]]</div>
            </div>
            <br style="clear: both" />
            <div>Devices included in stats:</div>
            <div class="deviceList">
              <template is="dom-repeat" items="[[_currentDevices]]">
                <div class="color-legend-row devices-checkbox">
                  <span
                    ><input
                      type="checkbox"
                      value$="[[item.device]]"
                      checked$="[[item.used]]"
                      on-click="_deviceCheckboxClicked"
                  /></span>
                  <span>[[item.suffix]]</span>
                  <template is="dom-if" if="[[item.ignoredMsg]]">
                    <paper-icon-button
                      icon="help"
                      class="help-icon"
                    ></paper-icon-button>
                    <paper-tooltip
                      position="right"
                      offset="0"
                      animation-delay="0"
                      >[[item.ignoredMsg]]</paper-tooltip
                    >
                  </template>
                </div>
              </template>
            </div>
          </template>
          <template is="dom-if" if="[[_equals(colorBy, 'structure')]]">
            <div class="color-text">
              <div class="color-legend-row">
                <span class="label"> colors </span>
                <span class="color-legend-value">same substructure</span>
              </div>
              <div class="color-legend-row">
                <tf-graph-icon
                  type="META"
                  height="16"
                  fill-override="#eee"
                  stroke-override="#a6a6a6"
                ></tf-graph-icon>
                <span class="color-legend-value">unique substructure</span>
              </div>
            </div>
          </template>
          <template is="dom-if" if="[[_equals(colorBy, 'device')]]">
            <div>
              <template is="dom-repeat" items="[[_currentDeviceParams]]">
                <div class="color-legend-row">
                  <tf-graph-icon
                    type="META"
                    height="16"
                    fill-override="[[item.color]]"
                    stroke-override="#a6a6a6"
                  ></tf-graph-icon>
                  <span class="color-legend-value">[[item.device]]</span>
                </div>
              </template>
              <div class="color-legend-row">
                <tf-graph-icon
                  type="META"
                  height="16"
                  fill-override="#eee"
                  stroke-override="#a6a6a6"
                ></tf-graph-icon>
                <span class="color-legend-value">unknown device</span>
              </div>
            </div>
          </template>
          <template is="dom-if" if="[[_equals(colorBy, 'xla_cluster')]]">
            <div>
              <template is="dom-repeat" items="[[_currentXlaClusterParams]]">
                <div class="color-legend-row">
                  <svg>
                    <use
                      xmlns:xlink="http://www.w3.org/1999/xlink"
                      xlink:href="#unfilled-rect"
                      x="0"
                      y="0"
                      style="fill:[[item.color]]"
                    ></use>
                  </svg>
                  <span class="color-legend-value">[[item.xla_cluster]]</span>
                </div>
              </template>
              <div class="color-legend-row">
                <svg>
                  <use
                    xmlns:xlink="http://www.w3.org/1999/xlink"
                    xlink:href="#grey-rect"
                    x="0"
                    y="0"
                  ></use>
                </svg>
                <span class="color-legend-value">unknown XLA cluster</span>
              </div>
            </div>
          </template>
          <template is="dom-if" if="[[_equals(colorBy, 'op_compatibility')]]">
            <div class="color-text">
              <div class="color-legend-row">
                <tf-graph-icon
                  type="OP"
                  height="16"
                  fill-override="#0f9d58"
                  stroke-override="#ccc"
                ></tf-graph-icon>
                <span class="color-legend-value">Valid Op</span>
              </div>
              <div class="color-legend-row">
                <tf-graph-icon
                  type="OP"
                  height="16"
                  fill-override="#db4437"
                  stroke-override="#ccc"
                ></tf-graph-icon>
                <span class="color-legend-value">Invalid Op</span>
              </div>
            </div>
          </template>
          <template is="dom-if" if="[[_statsNotNull(stats)]]">
            <div class="color-legend-row">
              <tf-graph-icon type="META" height="16" faded></tf-graph-icon>
              <span class="color-legend-value">unused substructure</span>
            </div>
          </template>
        </div>

        <!-- Common legend items -->
        <div>
          <table>
            <tbody>
              <tr>
                <td></td>
                <td>(* = expandable)</td>
              </tr>
              <tr>
                <td>
                  <tf-graph-icon
                    type="META"
                    height="16"
                    fill-override="#d9d9d9"
                    stroke-override="#ccc"
                  ></tf-graph-icon>
                </td>
                <td>
                  Namespace<span class="gray">*</span>
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip
                      animation-delay="0"
                      position="right"
                      offset="0"
                    >
                      Encapsulates a set of nodes. Namespace is hierarchical and
                      based on scope.
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <tf-graph-icon type="OP" height="16"></tf-graph-icon>
                </td>
                <td>
                  OpNode
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip
                      animation-delay="0"
                      position="right"
                      offset="0"
                    >
                      Node that performs an operation. These nodes cannot
                      expand.
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <tf-graph-icon type="SERIES" height="16"></tf-graph-icon>
                </td>
                <td>
                  Unconnected series<span class="gray">*</span>
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip
                      animation-delay="0"
                      position="right"
                      offset="0"
                    >
                      Sequence of numbered nodes that are not connected to each
                      other.
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <tf-graph-icon
                    type="SERIES"
                    height="16"
                    vertical
                  ></tf-graph-icon>
                </td>
                <td>
                  Connected series<span class="gray">*</span>
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip
                      animation-delay="0"
                      position="right"
                      offset="0"
                    >
                      Sequence of numbered nodes that are connected to each
                      other.
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <svg class="icon">
                    <circle
                      fill="white"
                      stroke="#848484"
                      cx="10"
                      cy="10"
                      r="5"
                    ></circle>
                  </svg>
                </td>
                <td>
                  Constant
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip
                      animation-delay="0"
                      position="right"
                      offset="0"
                    >
                      Node that outputs a constant value.
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <tf-graph-icon type="SUMMARY" height="20"></tf-graph-icon>
                </td>
                <td>
                  Summary
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip
                      animation-delay="0"
                      position="right"
                      offset="0"
                    >
                      Node that collects data for visualization within
                      TensorBoard.
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <svg
                    class="icon"
                    height="15px"
                    preserveAspectRatio="xMinYMid meet"
                    viewBox="0 0 15 15"
                  >
                    <defs>
                      <marker
                        id="dataflow-arrowhead-legend"
                        fill="#bbb"
                        markerWidth="10"
                        markerHeight="10"
                        refX="9"
                        refY="5"
                        orient="auto-start-reverse"
                      >
                        <path d="M 0,0 L 10,5 L 0,10 C 3,7 3,3 0,0"></path>
                      </marker>
                    </defs>
                    <path
                      marker-end="url(#dataflow-arrowhead-legend)"
                      stroke="#bbb"
                      d="M2 9 l 29 0"
                      stroke-linecap="round"
                    ></path>
                  </svg>
                </td>
                <td>
                  Dataflow edge
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip
                      animation-delay="0"
                      position="right"
                      offset="0"
                    >
                      Edge showing the data flow between operations. Edges flow
                      upwards unless arrowheads specify otherwise.
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <svg
                    class="icon"
                    height="15px"
                    preserveAspectRatio="xMinYMid meet"
                    viewBox="0 0 15 15"
                  >
                    <path
                      stroke="#bbb"
                      d="M2 9 l 29 0"
                      stroke-linecap="round"
                      stroke-dasharray="2, 2"
                    ></path>
                  </svg>
                </td>
                <td>
                  Control dependency edge
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip
                      animation-delay="0"
                      position="right"
                      offset="0"
                    >
                      Edge showing the control dependency between operations.
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <svg
                    class="icon"
                    height="15px"
                    preserveAspectRatio="xMinYMid meet"
                    viewBox="0 0 15 15"
                  >
                    <defs>
                      <marker
                        id="reference-arrowhead-legend"
                        fill="#FFB74D"
                        markerWidth="10"
                        markerHeight="10"
                        refX="9"
                        refY="5"
                        orient="auto-start-reverse"
                      >
                        <path d="M 0,0 L 10,5 L 0,10 C 3,7 3,3 0,0"></path>
                      </marker>
                    </defs>
                    <path
                      marker-end="url(#reference-arrowhead-legend)"
                      stroke="#FFB74D"
                      d="M2 9 l 29 0"
                      stroke-linecap="round"
                    ></path>
                  </svg>
                </td>
                <td>
                  Reference edge
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip
                      animation-delay="0"
                      position="right"
                      offset="0"
                    >
                      Edge showing that the outgoing operation node can mutate
                      the incoming tensor.
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </iron-collapse>
    </div>
  `,t([o({type:Object,observer:"_statsChanged"}),e("design:type",Object)],DLt.prototype,"stats",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],DLt.prototype,"devicesForStats",void 0),t([o({type:String,notify:!0}),e("design:type",String)],DLt.prototype,"colorBy",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],DLt.prototype,"colorByParams",void 0),t([o({type:Array,observer:"_datasetsChanged"}),e("design:type",Object)],DLt.prototype,"datasets",void 0),t([o({type:Object}),e("design:type",XAt)],DLt.prototype,"renderHierarchy",void 0),t([o({type:Object,notify:!0,readOnly:!0,computed:"_computeSelection(datasets, _selectedRunIndex, _selectedTagIndex, _selectedGraphType)"}),e("design:type",Object)],DLt.prototype,"selection",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],DLt.prototype,"selectedFile",void 0),t([o({type:Number,observer:"_selectedRunIndexChanged"}),e("design:type",Number)],DLt.prototype,"_selectedRunIndex",void 0),t([o({type:Boolean,notify:!0}),e("design:type",Boolean)],DLt.prototype,"traceInputs",void 0),t([o({type:Boolean,notify:!0}),e("design:type",Boolean)],DLt.prototype,"autoExtractNodes",void 0),t([o({type:Number,observer:"_selectedTagIndexChanged"}),e("design:type",Number)],DLt.prototype,"_selectedTagIndex",void 0),t([o({type:String}),e("design:type",String)],DLt.prototype,"_selectedGraphType",void 0),t([o({type:String,notify:!0}),e("design:type",String)],DLt.prototype,"selectedNode",void 0),t([o({type:Boolean}),e("design:type",Boolean)],DLt.prototype,"showSessionRunsDropdown",void 0),t([o({type:Boolean}),e("design:type",Boolean)],DLt.prototype,"showUploadButton",void 0),t([o({type:Boolean}),e("design:type",Boolean)],DLt.prototype,"healthPillsFeatureEnabled",void 0),t([o({type:Boolean,notify:!0}),e("design:type",Boolean)],DLt.prototype,"healthPillsToggledOn",void 0),t([o({type:Boolean}),e("design:type",Boolean)],DLt.prototype,"_legendOpened",void 0),t([s("devicesForStats"),e("design:type",Array),e("design:paramtypes",[])],DLt.prototype,"_currentDevices",null),t([s("colorByParams"),e("design:type",Array),e("design:paramtypes",[])],DLt.prototype,"_currentDeviceParams",null),t([s("colorByParams"),e("design:type",Array),e("design:paramtypes",[])],DLt.prototype,"_currentXlaClusterParams",null),t([s("colorByParams","colorBy"),e("design:type",Object),e("design:paramtypes",[])],DLt.prototype,"_currentGradientParams",null),DLt=t([i("tf-graph-controls")],DLt);class BLt{isNotTpuOp(t){return-1!=t.toLowerCase().search("cpu:")||-1!=t.toLowerCase().search("gpu:")||-1==t.toLowerCase().search("tpu")}opValid(t){return 0==t.name.search(_At)||!t.op||!(!t.device||!this.isNotTpuOp(t.device))||!(!t.device||-1==t.device.search("TPU_SYSTEM"))||we.includes(BLt.WHITELIST,t.op)}}function HLt(t){return new Promise(((e,n)=>{fetch(t).then((t=>{t.ok?t.arrayBuffer().then(e,n):t.text().then(n,n)}))}))}BLt.WHITELIST=["Abs","Acos","Acosh","Add","AddN","AddV2","AdjustContrastv2","AdjustHue","AdjustSaturation","All","AllToAll","Angle","Any","ApproximateEqual","ArgMax","ArgMin","Asin","Asinh","Assert","AssignAddVariableOp","AssignSubVariableOp","AssignVariableOp","Atan","Atan2","Atanh","AvgPool","AvgPool3D","AvgPool3DGrad","AvgPoolGrad","BatchMatMul","BatchMatMulV2","BatchToSpace","BatchToSpaceND","BesselI0e","BesselI1e","Betainc","BiasAdd","BiasAddGrad","BiasAddV1","Bitcast","BitwiseAnd","BitwiseOr","BitwiseXor","BroadcastArgs","BroadcastGradientArgs","BroadcastTo","Bucketize","Case","Cast","Ceil","CheckNumerics","Cholesky","ClipByValue","CollectivePermute","CollectiveReduceV2","Complex","ComplexAbs","Concat","ConcatOffset","ConcatV2","Conj","ConjugateTranspose","Const","ControlTrigger","Conv2D","Conv2DBackpropFilter","Conv2DBackpropInput","Conv3D","Conv3DBackpropFilterV2","Conv3DBackpropInputV2","Cos","Cosh","Cross","CrossReplicaSum","Cumprod","Cumsum","DataFormatDimMap","DataFormatVecPermute","DepthToSpace","DepthwiseConv2dNative","DepthwiseConv2dNativeBackpropFilter","DepthwiseConv2dNativeBackpropInput","Dequantize","DeviceIndex","Diag","DiagPart","Digamma","Div","DivNoNan","DynamicStitch","Einsum","Elu","EluGrad","Empty","EmptyTensorList","EnsureShape","Equal","Erf","Erfc","Erfinv","Exp","ExpandDims","Expm1","ExtractImagePatches","FFT","FFT2D","FFT3D","FakeParam","FakeQuantWithMinMaxArgs","FakeQuantWithMinMaxArgsGradient","FakeQuantWithMinMaxVars","FakeQuantWithMinMaxVarsGradient","Fill","Floor","FloorDiv","FloorMod","FusedBatchNorm","FusedBatchNormGrad","FusedBatchNormGradV2","FusedBatchNormGradV3","FusedBatchNormV2","FusedBatchNormV3","Gather","GatherNd","GatherV2","GetItem","Greater","GreaterEqual","HSVToRGB","IFFT","IFFT2D","IFFT3D","IRFFT","IRFFT2D","IRFFT3D","Identity","IdentityN","If","Igamma","IgammaGradA","Igammac","Imag","InTopKV2","InfeedDequeue","InfeedDequeueTuple","InplaceAdd","InplaceUpdate","Inv","Invert","InvertPermutation","IsFinite","IsInf","IsNan","KthOrderStatistic","L2Loss","LRN","LRNGrad","LeakyRelu","LeakyReluGrad","LeftShift","Less","LessEqual","Lgamma","LinSpace","ListDiff","Log","Log1p","LogSoftmax","LogicalAnd","LogicalNot","LogicalOr","LowerBound","MakeUnique","MatMul","MatrixBandPart","MatrixDiag","MatrixDiagPart","MatrixDiagPartV2","MatrixDiagPartV3","MatrixDiagV2","MatrixDiagV3","MatrixInverse","MatrixSetDiag","MatrixSetDiagV2","MatrixSetDiagV3","MatrixSolve","MatrixTriangularSolve","Max","MaxPool","MaxPool3D","MaxPool3DGrad","MaxPool3DGradGrad","MaxPoolGrad","MaxPoolGradGrad","MaxPoolGradGradV2","MaxPoolGradV2","MaxPoolV2","Maximum","Mean","Min","Minimum","MirrorPad","MirrorPadGrad","Mod","Mul","MulNoNan","Multinomial","Ndtri","Neg","NextAfter","NoOp","NonMaxSuppressionV4","NotEqual","OneHot","OnesLike","OutfeedEnqueue","OutfeedEnqueueTuple","Pack","Pad","PadV2","ParallelDynamicStitch","ParameterizedTruncatedNormal","PartitionedCall","PlaceholderWithDefault","Polygamma","PopulationCount","Pow","PreventGradient","Prod","Qr","QuantizeAndDequantizeV2","QuantizeAndDequantizeV3","RFFT","RFFT2D","RFFT3D","RGBToHSV","RandomGammaGrad","RandomShuffle","RandomStandardNormal","RandomUniform","RandomUniformInt","Range","Rank","ReadVariableOp","Real","RealDiv","Reciprocal","ReciprocalGrad","Relu","Relu6","Relu6Grad","ReluGrad","Reshape","ResizeBilinear","ResizeBilinearGrad","ResizeNearestNeighbor","ResizeNearestNeighborGrad","ResourceApplyAdaMax","ResourceApplyAdadelta","ResourceApplyAdagrad","ResourceApplyAdagradDA","ResourceApplyAdagradV2","ResourceApplyAdam","ResourceApplyAddSign","ResourceApplyCenteredRMSProp","ResourceApplyFtrl","ResourceApplyFtrlV2","ResourceApplyGradientDescent","ResourceApplyKerasMomentum","ResourceApplyMomentum","ResourceApplyPowerSign","ResourceApplyProximalAdagrad","ResourceApplyProximalGradientDescent","ResourceApplyRMSProp","ResourceGather","ResourceScatterAdd","ResourceScatterDiv","ResourceScatterMax","ResourceScatterMin","ResourceScatterMul","ResourceScatterNdAdd","ResourceScatterNdSub","ResourceScatterNdUpdate","ResourceScatterSub","ResourceScatterUpdate","ResourceStridedSliceAssign","Reverse","ReverseSequence","ReverseV2","RightShift","Rint","RngReadAndSkip","RngSkip","Roll","Round","Rsqrt","RsqrtGrad","ScatterNd","Select","SelectV2","SelfAdjointEigV2","Selu","SeluGrad","Shape","ShapeN","Sigmoid","SigmoidGrad","Sign","Sin","Sinh","Size","Slice","Snapshot","Softmax","SoftmaxCrossEntropyWithLogits","Softplus","SoftplusGrad","Softsign","SoftsignGrad","SpaceToBatch","SpaceToBatchND","SpaceToDepth","SparseMatMul","SparseSoftmaxCrossEntropyWithLogits","SparseToDense","Split","SplitV","Sqrt","SqrtGrad","Square","SquaredDifference","Squeeze","StackCloseV2","StackPopV2","StackPushV2","StackV2","StatefulPartitionedCall","StatefulStandardNormalV2","StatefulTruncatedNormal","StatefulUniform","StatefulUniformFullInt","StatefulUniformInt","StatelessCase","StatelessIf","StatelessMultinomial","StatelessRandomGetAlg","StatelessRandomGetKeyCounter","StatelessRandomGetKeyCounterAlg","StatelessRandomNormal","StatelessRandomNormalV2","StatelessRandomUniform","StatelessRandomUniformFullInt","StatelessRandomUniformFullIntV2","StatelessRandomUniformInt","StatelessRandomUniformIntV2","StatelessRandomUniformV2","StatelessTruncatedNormal","StatelessTruncatedNormalV2","StatelessWhile","StopGradient","StridedSlice","StridedSliceGrad","Sub","Sum","Svd","SymbolicGradient","TPUEmbeddingActivations","Tan","Tanh","TanhGrad","TensorArrayCloseV3","TensorArrayConcatV3","TensorArrayGatherV3","TensorArrayGradV3","TensorArrayReadV3","TensorArrayScatterV3","TensorArraySizeV3","TensorArraySplitV3","TensorArrayV3","TensorArrayWriteV3","TensorListConcatV2","TensorListElementShape","TensorListFromTensor","TensorListGather","TensorListGetItem","TensorListLength","TensorListPopBack","TensorListPushBack","TensorListReserve","TensorListSetItem","TensorListSplit","TensorListStack","TensorScatterAdd","TensorScatterMax","TensorScatterMin","TensorScatterSub","TensorScatterUpdate","TensorStridedSliceUpdate","Tile","TopKUnique","TopKV2","TopKWithUnique","Transpose","TridiagonalSolve","TruncateDiv","TruncateMod","TruncatedNormal","Unique","Unpack","UnsortedSegmentMax","UnsortedSegmentMin","UnsortedSegmentProd","UnsortedSegmentSum","UpperBound","VarIsInitializedOp","VariableShape","Where","While","Xdivy","XlaBroadcastHelper","XlaConv","XlaConvV2","XlaDequantize","XlaDot","XlaDotV2","XlaDynamicSlice","XlaDynamicUpdateSlice","XlaEinsum","XlaGather","XlaHostCompute","XlaIf","XlaKeyValueSort","XlaPad","XlaRecv","XlaRecvFromHost","XlaReduce","XlaReduceWindow","XlaReplicaId","XlaScatter","XlaSelectAndScatter","XlaSelfAdjointEig","XlaSend","XlaSendToHost","XlaSetBound","XlaSetDynamicDimensionSize","XlaSharding","XlaSort","XlaSpmdFullToShardShape","XlaSpmdShardToFullShape","XlaSvd","XlaVariadicReduce","XlaVariadicSort","XlaWhile","Xlog1py","Xlogy","ZerosLike","Zeta","Enter","Exit","LoopCond","Merge","NextIteration","Switch","_Arg","_ArrayToList","_FusedBatchNormEx","_ListToArray","_ParallelConcatUpdate","_RecvTPUEmbeddingActivations","_RecvTPUEmbeddingDeduplicationData","_Retval","_SendTPUEmbeddingGradients","_TPUCompile","_TPUExecute","_UnaryOpsComposition","TPUCompilationResult","TPUReplicatedInput","TPUReplicatedOutput","TPUReplicateMetadata","MergeV2Checkpoints","RestoreV2","SaveV2","Abort","Assert","Assign","Placeholder","PlaceholderV2","ShardedFilename","StringJoin","Variable","VariableV2","VarHandleOp","AudioSummary","AudioSummaryV2","DebugNumericSummary","HistogramSummary","ImageSummary","MergeSummary","ScalarSummary","StatsAggregatorSummary"];const FLt={"library.function":!0,"library.function.node_def":!0,"library.function.node_def.input":!0,"library.function.node_def.attr":!0,"library.function.node_def.attr.value.list.b":!0,"library.function.node_def.attr.value.list.f":!0,"library.function.node_def.attr.value.list.func":!0,"library.function.node_def.attr.value.list.i":!0,"library.function.node_def.attr.value.list.s":!0,"library.function.node_def.attr.value.list.shape":!0,"library.function.node_def.attr.value.list.shape.dim":!0,"library.function.node_def.attr.value.list.tensor":!0,"library.function.node_def.attr.value.list.type":!0,"library.function.node_def.attr.value.shape.dim":!0,"library.function.node_def.attr.value.tensor.string_val":!0,"library.function.node_def.attr.value.tensor.tensor_shape.dim":!0,"library.function.signature.input_arg":!0,"library.function.signature.output_arg":!0,"library.versions":!0,node:!0,"node.input":!0,"node.attr":!0,"node.attr.value.list.b":!0,"node.attr.value.list.f":!0,"node.attr.value.list.func":!0,"node.attr.value.list.i":!0,"node.attr.value.list.s":!0,"node.attr.value.list.shape":!0,"node.attr.value.list.shape.dim":!0,"node.attr.value.list.tensor":!0,"node.attr.value.list.type":!0,"node.attr.value.shape.dim":!0,"node.attr.value.tensor.string_val":!0,"node.attr.value.tensor.tensor_shape.dim":!0},VLt={"step_stats.dev_stats":!0,"step_stats.dev_stats.node_stats":!0,"step_stats.dev_stats.node_stats.output":!0,"step_stats.dev_stats.node_stats.memory":!0,"step_stats.dev_stats.node_stats.output.tensor_description.shape.dim":!0};function ULt(t,e){let n={},i=[],r=[],o=n;function a(t,n,i,r){let o=t[n];null==o?t[n]=r.join(".")in e?[i]:i:Array.isArray(o)?o.push(i):t[n]=[o,i]}return(function s(t,e,n=1e6,i="\n"){return new Promise((function(r,o){!(function a(s,l,c){const u=c>=t.byteLength,h=l.split(i);h[0]=s+h[0];const d=u?"":h.pop();for(let t of h)try{e(t)}catch(t){return void o(t)}if(u)return void r(!0);const p=new Blob([t.slice(c,c+n)]),f=new FileReader;f.onload=function(t){a(d,t.target.result,c+n)},f.readAsText(p)})("","",0)}))})(t,(function(t){if(t=t.trim())switch(t[t.length-1]){case"{":let e=t.substring(0,t.length-2).trim(),n={};i.push(o),r.push(e),a(o,e,n,r),o=n;break;case"}":o=i.pop(),r.pop();break;default:let s=(function e(t){let e=t.indexOf(":");return{name:t.substring(0,e).trim(),value:(function n(t){if("true"===t)return!0;if("false"===t)return!1;if('"'===t[0])return t.substring(1,t.length-1);let e=parseFloat(t);return isNaN(e)?t:e})(t.substring(e+2).trim())}})(t);a(o,s.name,s.value,r.concat(s.name))}})).then((function(){return n}))}let jLt=class extends(tr(ye)){constructor(){super(...arguments),this.compatibilityProvider=new BLt,this.hierarchyParams=mLt,this._template=null}_selectionChanged(){this.selection&&this.debounce("selectionchange",(()=>{this._load(this.selection)}))}_load(t){const{run:e,tag:n,type:i}=t;switch(i){case XCt.OP_GRAPH:case XCt.CONCEPTUAL_GRAPH:{(function(){this._setOutStats(null)}).bind(this)();const t=new URLSearchParams;t.set("run",e),t.set("conceptual",String(i===XCt.CONCEPTUAL_GRAPH)),n&&t.set("tag",n);const r=gr().pluginRoute("graphs","/graph",t);return this._fetchAndConstructHierarchicalGraph(r).then((()=>{this._graphRunTag={run:e,tag:n}}))}case XCt.PROFILE:{const{tags:t}=this.datasets.find((({name:t})=>t===e)),i=t.find((t=>t.tag===n)).opGraph?n:null;console.assert(t.find((t=>t.tag===i)),`Required tag (${i}) is missing.`);const r=this._graphRunTag&&this._graphRunTag.run===e&&this._graphRunTag.tag===i?Promise.resolve():this._load({run:e,tag:i,type:XCt.OP_GRAPH}),o=new URLSearchParams;o.set("tag",n),o.set("run",e);const a=gr().pluginRoute("graphs","/run_metadata",o);return r.then((()=>this._readAndParseMetadata(a)))}default:return Promise.reject(new Error(`Unknown selection type: ${i}`))}}_readAndParseMetadata(t){this.set("progress",{value:0,msg:""}),(function e(t,n){return(function i(t,e,n,r,o){r.setMessage(t);try{let i=iAt(t,n,o);return r.updateProgress(e),i}catch(e){r.reportError("Failed "+t,e)}})("Reading metadata pbtxt",40,(()=>null==t?Promise.resolve(null):HLt(t)),n,YCt.FETCH_METADATA_PBTXT_BYTES).then((t=>sAt("Parsing metadata.pbtxt",60,(()=>null!=t?(function e(t){return ULt(t,VLt).then((t=>t.step_stats))})(t):Promise.resolve(null)),n,YCt.PARSE_METADATA_PBTXT_INTO_OBJECT)))})(t,rAt(this)).then(function(t){this._setOutStats(t)}.bind(this))}_fetchAndConstructHierarchicalGraph(t,e){return this.set("progress",{value:0,msg:""}),(function i(t,e,r,o=new BLt,a=mLt){const s=oAt(t,30,"Data"),l=oAt(t,20,"Graph"),c=oAt(t,50,"Namespace hierarchy"),u=Date.now();return(function h(t,e,i){return sAt("Reading graph pbtxt",40,(()=>n(this,void 0,void 0,(function*(){const n=Date.now();if(e){const t=yield new Promise((function(t,n){let i=new FileReader;i.onload=()=>t(i.result),i.onerror=()=>n(i.error),i.readAsArrayBuffer(e)}));return nAt({timingId:YCt.FETCH_PBTXT_BYTES_FROM_FILESYSTEM,eventValue:Date.now()-n}),t}const i=yield HLt(t);return nAt({timingId:YCt.FETCH_PBTXT_BYTES_FROM_SERVER,eventValue:Date.now()-n}),i}))),i,YCt.FETCH_PBTXT_BYTES).then((t=>sAt("Parsing graph.pbtxt",60,(()=>(function e(t){return ULt(t,FLt)})(t)),i,YCt.PARSE_PBTXT_INTO_OBJECT)))})(e,r,s).then((function(t){if(!t.node)throw new Error("The graph is empty. This can happen when TensorFlow could not trace any graph. Please refer to https://github.com/tensorflow/tensorboard/issues/1961 for more information.");return(function e(t,n,i){let r={},o={},a={},s=zAt(n.inEmbeddingTypes),l=zAt(n.outEmbeddingTypes),c=[],u=t.node,h=new Array(u.length);return aAt("Normalizing names",30,(()=>{let e=new Array(u.length),n=0;const i=t=>{let i=new MAt(t);return s(i)?(c.push(i.name),r[i.name]=i,i):l(i)?(c.push(i.name),o[i.name]=i,we.each(i.inputs,(t=>{let e=t.name;a[e]=a[e]||[],a[e].push(i)})),i):(e[n]=i,h[n]=i.name,n++,i)};return we.each(u,i),t.library&&t.library.function&&we.each(t.library.function,(t=>{const e=_At+t.signature.name;if(i({name:e,input:[],device:"",op:"",attr:[]}),t.signature.input_arg){let n=0;const r=t=>{i({name:e+mAt+t.name,input:[],device:"",op:"input_arg",attr:[{key:"T",value:{type:t.type}}]}).functionInputIndex=n,n++};t.signature.input_arg.name?r(t.signature.input_arg):we.each(t.signature.input_arg,r)}let n=0;const r={};if(t.signature.output_arg){const i=t=>{r[e+mAt+t.name]=n,n++};t.signature.output_arg.name?i(t.signature.output_arg):we.each(t.signature.output_arg,i)}we.each(t.node_def,(t=>{t.name=e+"/"+t.name,"string"==typeof t.input&&(t.input=[t.input]);const n=i(t);we.isNumber(r[t.name])&&(n.functionOutputIndex=r[t.name]),we.each(n.inputs,(t=>{t.name=e+mAt+t.name}))}))})),e.splice(n),h.splice(n),e}),i,YCt.NORMALIZING_NAMES).then((t=>aAt("Building the data structure",70,(()=>{let e=(function i(t,e){let n={},i={};t.sort();for(let e=0;e<t.length-1;++e){let r=t[e];we.each(HAt(r).slice(0,-1),(t=>{i[t]=!0}));for(let i=e+1;i<t.length;++i){let e=t[i];if(!we.startsWith(e,r))break;if(e.length>r.length&&e.charAt(r.length)===mAt){n[r]=DAt(r);break}}}return we.each(e,(t=>{t in i&&(n[t]=DAt(t))})),n})(h,c),s=new wAt;return we.each(t,(t=>{let n=e[t.name]||t.name;s.nodes[n]=t,t.name in a&&(t.outEmbeddings=a[t.name],we.each(t.outEmbeddings,(t=>{t.name=e[t.name]||t.name}))),t.name=n})),we.each(t,(t=>{we.each(t.inputs,((i,a)=>{let l=i.name;if(l in r){let i=r[l];t.inEmbeddings.push(i);for(let r of i.inputs)IAt(s,e[r.name]||r.name,t,r,n,a)}else if(l in o){let r=o[l];for(let o of r.inputs)IAt(s,e[o.name]||o.name,t,i,n,a)}else IAt(s,e[l]||l,t,i,n,a)}))})),we.each(r,((t,n)=>{t.name=e[t.name]||t.name})),s}),i,YCt.BUILD_SLIM_GRAPH)))})(t,OAt,l)}),(()=>{throw new Error("Malformed GraphDef. This can sometimes be caused by a bad network connection or difficulty reconciling multiple GraphDefs; for the latter case, please refer to https://github.com/tensorflow/tensorboard/issues/1929.")})).then((t=>n(this,void 0,void 0,(function*(){!(function e(t,n){if(null===n)throw new Error("Compatibility provider required, but got: "+n);we.each(t.nodes,(t=>{t.compatible=n.opValid(t),we.each(t.inEmbeddings,(t=>{t.compatible=n.opValid(t)})),we.each(t.outEmbeddings,(t=>{t.compatible=n.opValid(t)}))}))})(t,o);const n=yield gLt(t,a,c);return nAt({timingId:YCt.GRAPH_LOAD_SUCCEEDED,eventValue:Date.now()-u}),{graph:t,graphHierarchy:n}})))).catch((e=>{throw t.reportError(`Graph visualization failed.\n\n${e}`,e),nAt({timingId:YCt.GRAPH_LOAD_FAILED,eventValue:Date.now()-u}),e}))})(rAt(this),t,e,this.compatibilityProvider,this.hierarchyParams).then(function({graph:t,graphHierarchy:e}){this._setOutGraph(t),this._setOutGraphHierarchy(e)}.bind(this))}_selectedFileChanged(){var t=this.selectedFile;if(!t)return;const e=t.target,n=e.files[0];n&&(e.value="",this._fetchAndConstructHierarchicalGraph(null,n))}};t([o({type:Array}),e("design:type",Array)],jLt.prototype,"datasets",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],jLt.prototype,"progress",void 0),t([o({type:Object}),e("design:type",Object)],jLt.prototype,"selection",void 0),t([o({type:Object}),e("design:type",Object)],jLt.prototype,"selectedFile",void 0),t([o({type:Object}),e("design:type",Object)],jLt.prototype,"compatibilityProvider",void 0),t([o({type:Object}),e("design:type",Object)],jLt.prototype,"hierarchyParams",void 0),t([o({type:Object,readOnly:!0,notify:!0}),e("design:type",pLt)],jLt.prototype,"outGraphHierarchy",void 0),t([o({type:Object,readOnly:!0,notify:!0}),e("design:type",wAt)],jLt.prototype,"outGraph",void 0),t([o({type:Object,readOnly:!0,notify:!0}),e("design:type",Object)],jLt.prototype,"outStats",void 0),t([o({type:Object}),e("design:type",Object)],jLt.prototype,"_graphRunTag",void 0),t([a("selection","compatibilityProvider"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],jLt.prototype,"_selectionChanged",null),t([a("selectedFile","compatibilityProvider"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],jLt.prototype,"_selectedFileChanged",null),jLt=t([i("tf-graph-dashboard-loader")],jLt);let GLt=class extends(tr(ye)){constructor(){super(...arguments),this._datasets=[],this._datasetsFetched=!1,this._selectedDataset=0,this._requestManager=new hr,this._canceller=new NO,this.specificHealthPillStep=0,this.healthPillsToggledOn=!1,this._debuggerNumericAlerts=[],this._nodeNamesToHealthPills={},this._healthPillRequestId=1,this._healthPillStepRequestTimerDelay=500,this.run=Is("run",{defaultValue:"",useLocalStorage:!1}).call(this),this._runObserver=Os("run",{defaultValue:"",polymerProperty:"run",useLocalStorage:!1})}attached(){this.set("_isAttached",!0)}detached(){this.set("_isAttached",!1)}ready(){super.ready(),this.addEventListener("node-toggle-expand",this._handleNodeToggleExpand.bind(this))}reload(){this._debuggerDataEnabled||this._requestManager.request(gr().pluginsListing()).then(this._canceller.cancellable((t=>{t.cancelled||t.value.debugger&&this.set("_debuggerDataEnabled",!0)}))),this._maybeFetchHealthPills()}_fit(){this.$$("#graphboard").fit()}_onDownloadImageRequested(t){this.$$("#graphboard").downloadAsImage(t.detail)}_getGraphDisplayClassName(t,e){return t||e.length?"":"no-graph"}_fetchDataset(){return this._requestManager.request(gr().pluginRoute("graphs","/info"))}_fetchHealthPills(t,e){const n={node_names:JSON.stringify(t),run:"__debugger_data__"};void 0!==e&&(n.step=e);const i=gr().pluginRoute("debugger","/health_pills");return this._requestManager.request(i,n)}_fetchDebuggerNumericsAlerts(){return this._requestManager.request(gr().pluginRoute("debugger","/numerics_alert_report"))}_graphUrl(t,e,n){return gr().pluginRoute("graphs","/graph",new URLSearchParams({run:t,limit_attr_size:e,large_attrs_key:n}))}_shouldRequestHealthPills(){return this._debuggerDataEnabled&&this.healthPillsToggledOn&&this._renderHierarchy&&this._datasetsState(this._datasetsFetched,this._datasets,"PRESENT")}_maybeInitializeDashboard(){!this._initialized&&this._isAttached&&(this.set("_compatibilityProvider",new BLt),this._initialized=!0,this._fetchDataset().then((t=>{const e=Object.keys(t);this._datasets=e.sort(er).map((e=>{const n=t[e],i=Object.keys(n.tags).sort(er).map((t=>n.tags[t])).map((({tag:t,conceptual_graph:e,op_graph:n,profile:i})=>({tag:t,displayName:t,conceptualGraph:e,opGraph:n,profile:i})));return{name:e,tags:n.run_graph?[{tag:null,displayName:"Default",conceptualGraph:!1,opGraph:!0,profile:!1},...i]:i}})),this._datasetsFetched=!0})))}_determineSelectedDataset(){var t=this._datasetsFetched,e=this._datasets,n=this.run;if(!n)return void this.set("_selectedDataset",0);const i=e.findIndex((t=>t.name===n));if(-1!==i)this.set("_selectedDataset",i);else if(t){const t=this.$$("#error-dialog");t.textContent=`No dataset named "${n}" could be found.`,t.open()}}_updateSelectedDatasetName(){var t=this._datasets,e=this._selectedDataset;this._datasetsFetched&&(t.length<=e||this.set("run",t[e].name))}_requestHealthPills(){this.set("_areHealthPillsLoading",!0);var t=++this._healthPillRequestId;null!==this._healthPillStepRequestTimerId&&(window.clearTimeout(this._healthPillStepRequestTimerId),this._healthPillStepRequestTimerId=null),this.allStepsModeEnabled?this._healthPillStepRequestTimerId=setTimeout(function(){this._healthPillStepRequestTimerId=null,this._initiateNetworkRequestForHealthPills(t)}.bind(this),this._healthPillStepRequestTimerDelay):this._initiateNetworkRequestForHealthPills(t)}_initiateNetworkRequestForHealthPills(t){if(this._healthPillRequestId!==t)return;const e=this.allStepsModeEnabled?this.specificHealthPillStep:void 0,n=this._fetchHealthPills(this._renderHierarchy.getNamesOfRenderedOps(),e),i=this._fetchDebuggerNumericsAlerts();Promise.all([n,i]).then(function(e){var n=e[0],i=e[1];if(this.healthPillsToggledOn&&t===this._healthPillRequestId){for(var r in n){this.set("_healthPillStepIndex",n[r].length-1);break}this.set("_debuggerNumericAlerts",i),this.set("_nodeNamesToHealthPills",n),this.set("_areHealthPillsLoading",!1),this.set("_healthPillStepRequestTimerId",null)}}.bind(this))}_datasetsState(t,e,n){return t?e&&e.length?"PRESENT"===n:"EMPTY"===n:"NOT_LOADED"===n}_renderHierarchyChanged(t){this.reload()}_handleNodeToggleExpand(){this._maybeFetchHealthPills()}_healthPillsToggledOnChanged(t){t?this.reload():this.set("_nodeNamesToHealthPills",{})}_maybeFetchHealthPills(){this._shouldRequestHealthPills()&&this._requestHealthPills()}};GLt.template=_e`
    <paper-dialog id="error-dialog" with-backdrop></paper-dialog>
    <tf-dashboard-layout>
      <tf-graph-controls
        id="controls"
        class="sidebar"
        slot="sidebar"
        devices-for-stats="{{_devicesForStats}}"
        color-by-params="[[_colorByParams]]"
        stats="[[_stats]]"
        color-by="{{_colorBy}}"
        datasets="[[_datasets]]"
        render-hierarchy="[[_renderHierarchy]]"
        selection="{{_selection}}"
        selected-file="{{_selectedFile}}"
        selected-node="{{_selectedNode}}"
        health-pills-feature-enabled="[[_debuggerDataEnabled]]"
        health-pills-toggled-on="{{healthPillsToggledOn}}"
        on-fit-tap="_fit"
        trace-inputs="{{_traceInputs}}"
        auto-extract-nodes="{{_autoExtractNodes}}"
        on-download-image-requested="_onDownloadImageRequested"
      ></tf-graph-controls>
      <div
        class$="center [[_getGraphDisplayClassName(_selectedFile, _datasets)]]"
        slot="center"
      >
        <tf-graph-dashboard-loader
          id="loader"
          datasets="[[_datasets]]"
          selection="[[_selection]]"
          selected-file="[[_selectedFile]]"
          out-graph-hierarchy="{{_graphHierarchy}}"
          out-graph="{{_graph}}"
          out-stats="{{_stats}}"
          progress="{{_progress}}"
          hierarchy-params="[[_hierarchyParams]]"
          compatibility-provider="[[_compatibilityProvider]]"
        ></tf-graph-dashboard-loader>
        <div class="no-data-message">
          <h3>No graph definition files were found.</h3>
          <p>
            To store a graph, create a
            <code>tf.summary.FileWriter</code>
            and pass the graph either via the constructor, or by calling its
            <code>add_graph()</code> method. You may want to check out the
            <a href="https://www.tensorflow.org/tensorboard/graphs"
              >examining the TensorFlow graph tutorial</a
            >.
          </p>

          <p>
            If you’re new to using TensorBoard, and want to find out how to add
            data and set up your event files, check out the
            <a
              href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
              >README</a
            >
            and perhaps the
            <a
              href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
              >TensorBoard tutorial</a
            >.
          </p>

          <p>
            If you think TensorBoard is configured properly, please see
            <a
              href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
              >the section of the README devoted to missing data problems</a
            >
            and consider filing an issue on GitHub.
          </p>
        </div>
        <div class="graphboard">
          <tf-graph-board
            id="graphboard"
            devices-for-stats="[[_devicesForStats]]"
            color-by="{{_colorBy}}"
            color-by-params="{{_colorByParams}}"
            graph-hierarchy="[[_graphHierarchy]]"
            graph="[[_graph]]"
            hierarchy-params="[[_hierarchyParams]]"
            progress="[[_progress]]"
            debugger-data-enabled="[[_debuggerDataEnabled]]"
            are-health-pills-loading="[[_areHealthPillsLoading]]"
            debugger-numeric-alerts="[[_debuggerNumericAlerts]]"
            node-names-to-health-pills="[[_nodeNamesToHealthPills]]"
            all-steps-mode-enabled="{{allStepsModeEnabled}}"
            specific-health-pill-step="{{specificHealthPillStep}}"
            health-pill-step-index="[[_healthPillStepIndex]]"
            render-hierarchy="{{_renderHierarchy}}"
            selected-node="{{_selectedNode}}"
            stats="[[_stats]]"
            trace-inputs="[[_traceInputs]]"
            auto-extract-nodes="[[_autoExtractNodes]]"
          ></tf-graph-board>
        </div>
      </div>
    </tf-dashboard-layout>
    <style>
      :host /deep/ {
        font-family: 'Roboto', sans-serif;
      }

      .sidebar {
        display: flex;
        height: 100%;
      }

      .center {
        position: relative;
        height: 100%;
      }

      paper-dialog {
        padding: 20px;
      }

      .no-data-message {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }

      .graphboard {
        height: 100%;
      }

      .no-graph .graphboard {
        display: none;
      }

      .center:not(.no-graph) .no-data-message {
        display: none;
      }
    </style>
  `,t([o({type:Array}),e("design:type",Array)],GLt.prototype,"_datasets",void 0),t([o({type:Boolean}),e("design:type",Boolean)],GLt.prototype,"_datasetsFetched",void 0),t([o({type:Number}),e("design:type",Number)],GLt.prototype,"_selectedDataset",void 0),t([o({type:Object,observer:"_renderHierarchyChanged"}),e("design:type",XAt)],GLt.prototype,"_renderHierarchy",void 0),t([o({type:Object}),e("design:type",hr)],GLt.prototype,"_requestManager",void 0),t([o({type:Object}),e("design:type",NO)],GLt.prototype,"_canceller",void 0),t([o({type:Boolean}),e("design:type",Boolean)],GLt.prototype,"_debuggerDataEnabled",void 0),t([o({type:Boolean}),e("design:type",Boolean)],GLt.prototype,"allStepsModeEnabled",void 0),t([o({type:Number}),e("design:type",Number)],GLt.prototype,"specificHealthPillStep",void 0),t([o({type:Boolean,observer:"_healthPillsToggledOnChanged"}),e("design:type",Boolean)],GLt.prototype,"healthPillsToggledOn",void 0),t([o({type:String,notify:!0}),e("design:type",String)],GLt.prototype,"selectedNode",void 0),t([o({type:Boolean}),e("design:type",Boolean)],GLt.prototype,"_isAttached",void 0),t([o({type:Boolean}),e("design:type",Boolean)],GLt.prototype,"_initialized",void 0),t([o({type:Boolean}),e("design:type",Boolean)],GLt.prototype,"_areHealthPillsLoading",void 0),t([o({type:Array,notify:!0}),e("design:type",Array)],GLt.prototype,"_debuggerNumericAlerts",void 0),t([o({type:Object}),e("design:type",Object)],GLt.prototype,"_nodeNamesToHealthPills",void 0),t([o({type:Number}),e("design:type",Number)],GLt.prototype,"_healthPillStepIndex",void 0),t([o({type:Number}),e("design:type",Number)],GLt.prototype,"_healthPillRequestId",void 0),t([o({type:Number}),e("design:type",Number)],GLt.prototype,"_healthPillStepRequestTimerId",void 0),t([o({type:Number}),e("design:type",Number)],GLt.prototype,"_healthPillStepRequestTimerDelay",void 0),t([o({type:Array}),e("design:type",Array)],GLt.prototype,"runs",void 0),t([o({type:String,notify:!0,observer:"_runObserver"}),e("design:type",String)],GLt.prototype,"run",void 0),t([o({type:Object}),e("design:type",Object)],GLt.prototype,"_selection",void 0),t([o({type:Object}),e("design:type",Object)],GLt.prototype,"_compatibilityProvider",void 0),t([o({type:Boolean}),e("design:type",Boolean)],GLt.prototype,"_traceInputs",void 0),t([o({type:Boolean}),e("design:type",Boolean)],GLt.prototype,"_autoExtractNodes",void 0),t([o({type:Object}),e("design:type",Object)],GLt.prototype,"_selectedFile",void 0),t([a("_isAttached"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],GLt.prototype,"_maybeInitializeDashboard",null),t([a("_datasetsFetched","_datasets","run"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],GLt.prototype,"_determineSelectedDataset",null),t([a("_datasetsFetched","_datasets","_selectedDataset"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],GLt.prototype,"_updateSelectedDatasetName",null),GLt=t([i("tf-graph-dashboard")],GLt);const WLt=fN;let qLt=class extends(tr(nl(ye))){constructor(){super(...arguments),this.mode="offset",this.timeProperty="step",this.bins="bins",this.x="x",this.dx="dx",this.y="y",this.colorScale=WLt.scaleOrdinal(WLt.schemeCategory10),this.modeTransitionDuration=500,this._name=null,this._data=null}ready(){super.ready(),this.scopeSubtree(this.$.svg,!0)}attached(){this._attached=!0}detached(){this._attached=!1}setSeriesData(t,e){this._name=t,this._data=e,this.redraw()}_redrawOnChange(){this.redraw()}redraw(){this._draw(0)}_modeRedraw(){this._draw(this.modeTransitionDuration)}_draw(t){if(!this._attached||!this._data)return;if(void 0===t)throw new Error("vz-histogram-timeseries _draw needs duration");if(this._data.length<=0)throw new Error("Not enough steps in the data");if(!this._data[0].hasOwnProperty(this.bins))throw new Error("No bins property of '"+this.bins+"' in data");if(this._data[0][this.bins].length<=0)throw new Error("Must have at least one bin in bins in data");if(!this._data[0][this.bins][0].hasOwnProperty(this.x))throw new Error("No x property '"+this.x+"' on bins data");if(!this._data[0][this.bins][0].hasOwnProperty(this.dx))throw new Error("No dx property '"+this.dx+"' on bins data");if(!this._data[0][this.bins][0].hasOwnProperty(this.y))throw new Error("No y property '"+this.y+"' on bins data");var e=this.timeProperty,n=this.x,i=this.bins,r=this.dx,o=this.y,a=this._data,s=this.mode,l=WLt.hcl(this.colorScale(this._name)),c=WLt.select(this.$.tooltip),u=function(t){return t[n]},h=function(t){return t[o]},d=function(t){return t[n]+t[r]},p=function(t){return t[e]};"relative"===e&&(p=function(t){return t.wall_time-a[0].wall_time});var f,m=this.$.svg.getBoundingClientRect(),g=m.width,_=m.height,y={top:5,right:60,bottom:20,left:24};"offset"===s?y.top=5+(f=_/2.5):f=_-y.top-y.bottom;var v=g-y.left-y.right,b=_-y.top-y.bottom;WLt.min(a,u),WLt.max(a,d);var x=WLt.format(".3n"),w=WLt.format(".0f");"wall_time"===e?w=WLt.timeFormat("%m/%d %X"):"relative"===e&&(w=function(t){return WLt.format(".1r")(t/36e5)+"h"});var S=a.map((function(t,e){return[WLt.min(t[i],u),WLt.max(t[i],d)]})),M=a.map((function(t){return WLt.extent(t[i],h)})),E=500,T=WLt.extent(a,p),C=("wall_time"===e?WLt.scaleTime():WLt.scaleLinear()).domain(T).range([0,"offset"===s?b:0]),A=WLt.scaleLinear().domain([0,WLt.max(a,(function(t,e){return M[e][1]}))]).range([f,0]),k=WLt.scaleLinear().domain(A.domain()).range([E,0]),L=WLt.scaleLinear().domain([WLt.min(a,(function(t,e){return S[e][0]})),WLt.max(a,(function(t,e){return S[e][1]}))]).nice().range([0,v]),P=WLt.scaleLinear().domain(L.domain()).range([0,E]);const N=WLt.scaleLinear().domain(WLt.extent(a,p)).range([l.brighter(),l.darker()]).interpolate(WLt.interpolateHcl);var I=WLt.axisBottom(L).ticks(Math.max(2,v/20)),O=WLt.axisRight(C).ticks(Math.max(2,b/15)).tickFormat(w),R=WLt.axisRight(A).ticks(Math.max(2,b/15)).tickSize(v+5).tickFormat(x),z=function(t){return t[n]+t[r]/2},D=WLt.line().x((function(t){return P(z(t))})).y((function(t){return k(t[o])})),B=this.$.svg,H=WLt.select(B),F=H.transition().duration(t),V=H.select("g").classed("small",(function(){return v>0&&v<=150})).classed("medium",(function(){return v>150&&v<=300})).classed("large",(function(){return v>300})),U=F.select("g").attr("transform","translate("+y.left+","+y.top+")"),j=WLt.bisector(d).left,G=V.select(".stage").on("mouseover",(function(){J.style("opacity",1),et.style("opacity",1),rt.style("opacity",1),st.style("opacity",1),c.style("opacity",1)})).on("mouseout",(function(){J.style("opacity",0),et.style("opacity",0),rt.style("opacity",0),st.style("opacity",0),J.classed("hover-closest",!1),K.classed("outline-hover",!1),c.style("opacity",0)})).on("mousemove",(function W(){var t,a=WLt.mouse(this),l=L.invert(a[0]);function u(t){return Math.min(t[i].length-1,j(t[i],l))}C.invert(a[1]);var h,d=1/0;J.attr("transform",(function(e,l){var c=u(e);h=e;var m=L(e[i][c][n]+e[i][c][r]/2),g=A(e[i][c][o]),_="offset"===s?C(p(e))-(f-g):g,y=Math.abs(a[1]-_);return y<d&&(d=y,t=e),"translate("+m+","+g+")"})),J.select("text").text((function(t){var e=u(t);return t[i][e][o]})),J.classed("hover-closest",(function(e){return e===t})),K.classed("outline-hover",(function(e){return e===t}));var m=u(h);et.attr("transform",(function(t){return"translate("+L(h[i][m][n]+h[i][m][r]/2)+", "+b+")"})).select("text").text((function(t){return x(h[i][m][n]+h[i][m][r]/2)}));var g=O.tickFormat();rt.attr("transform",(function(e){return"translate("+v+", "+("offset"===s?C(p(t)):0)+")"})).style("display","offset"===s?"":"none").select("text").text((function(e){return g(p(t))}));var _=R.tickFormat();st.attr("transform",(function(e){return"translate("+v+", "+("offset"===s?0:A(t[i][m][o]))+")"})).style("display","offset"===s?"none":"").select("text").text((function(e){return _(t[i][m][o])}));var y=WLt.mouse(B);c.style("transform","translate("+(y[0]+15)+"px,"+(y[1]-15)+"px)").select("span").text("offset"===s?_(t[i][m][o]):("step"===e?"step ":"")+g(p(t)))}));G.select(".background").attr("transform","translate("+-y.left+","+-y.top+")").attr("width",g).attr("height",_);var q=G.selectAll(".histogram").data(a);q.exit().remove();var Y=q.enter().append("g").attr("class","histogram"),X=Y.merge(q).sort((function(t,e){return p(t)-p(e)})),$=U.selectAll(".histogram").attr("transform",(function(t){return"translate(0, "+("offset"===s?C(p(t))-f:0)+")"}));Y.append("line").attr("class","baseline"),$.select(".baseline").style("stroke-opacity",(function(t){return"offset"===s?.1:0})).attr("y1",f).attr("y2",f).attr("x2",v),Y.append("path").attr("class","outline");var K=X.select(".outline").attr("vector-effect","non-scaling-stroke").attr("d",(function(t){return(function(t){return"M"+P(z(t[0]))+","+k(0)+"L"+D(t).slice(1)+"L"+P(z(t[t.length-1]))+","+k(0)})(t[i])})).style("stroke-width",1);$.select(".outline").attr("transform","scale("+v/E+", "+f/E+")").style("stroke",(function(t){return"offset"===s?"":N(p(t))})).style("fill-opacity",(function(t){return"offset"===s?1:0})).style("fill",(function(t){return N(p(t))}));var Z=Y.append("g").attr("class","hover"),J=X.select(".hover").style("fill",(function(t){return N(p(t))}));Z.append("circle").attr("r",2),Z.append("text").style("display","none").attr("dx",4);var Q=V.select(".x-axis-hover").selectAll(".label").data(["x"]),tt=Q.enter().append("g").attr("class","label"),et=Q.merge(tt);tt.append("rect").attr("x",-20).attr("y",6).attr("width",40).attr("height",14),tt.append("line").attr("x1",0).attr("x2",0).attr("y1",0).attr("y2",6),tt.append("text").attr("dy",18);var nt=V.select(".y-axis-hover").selectAll(".label").data(["y"]),it=nt.enter().append("g").attr("class","label"),rt=nt.merge(it);it.append("rect").attr("x",8).attr("y",-6).attr("width",40).attr("height",14),it.append("line").attr("x1",0).attr("x2",6).attr("y1",0).attr("y2",0),it.append("text").attr("dx",8).attr("dy",4);var ot=V.select(".y-slice-axis-hover").selectAll(".label").data(["y"]),at=ot.enter().append("g").attr("class","label"),st=ot.merge(at);at.append("rect").attr("x",8).attr("y",-6).attr("width",40).attr("height",14),at.append("line").attr("x1",0).attr("x2",6).attr("y1",0).attr("y2",0),at.append("text").attr("dx",8).attr("dy",4),U.select(".y.axis.slice").style("opacity","offset"===s?0:1).attr("transform","translate(0, "+("offset"===s?-f:0)+")").call(R),U.select(".x.axis").attr("transform","translate(0, "+b+")").call(I),U.select(".y.axis").style("opacity","offset"===s?1:0).attr("transform","translate("+v+", "+("offset"===s?0:b)+")").call(O),U.selectAll(".tick text").attr("fill","#aaa"),U.selectAll(".axis path.domain").attr("stroke","none")}};function YLt(t){const[e,n,i]=t;return{wall_time:e,step:n,min:ql(i.map((([t,,])=>t))),max:Gl(i.map((([,t])=>t))),buckets:i.map((([t,e,n])=>({left:t,right:e,count:n})))}}function XLt(t,e,n,i=30){n===e&&(n=1.1*e+1,e=e/1.1-1);const r=(n-e)/i;let o=0;return Rl(e,n,r).map((i=>{const a=i+r;let s=0;for(;o<t.buckets.length;){const r=Math.min(n,t.buckets[o].right),l=Math.max(e,t.buckets[o].left),c=Math.min(r,a)-Math.max(l,i),u=c/(r-l)*t.buckets[o].count;if(s+=c>0?u:0,r>a)break;o++}return{x:i,dx:r,y:s}}))}qLt.template=_e`
    <div id="tooltip"><span></span></div>
    <svg id="svg">
      <g>
        <g class="axis x"></g>
        <g class="axis y"></g>
        <g class="axis y slice"></g>
        <g class="stage">
          <rect class="background"></rect>
        </g>
        <g class="x-axis-hover"></g>
        <g class="y-axis-hover"></g>
        <g class="y-slice-axis-hover"></g>
      </g>
    </svg>

    <style>
      :host {
        color: #aaa;
        display: flex;
        flex-direction: column;
        flex-grow: 1;
        flex-shrink: 1;
        position: relative;
        --vz-histogram-timeseries-hover-bg-color: #fff;
        --vz-histogram-timeseries-outline-color: #fff;
        --vz-histogram-timeseries-hover-outline-color: #000;
      }

      :host(.dark-mode) {
        --vz-histogram-timeseries-hover-bg-color: var(
          --primary-background-color
        );
        --vz-histogram-timeseries-outline-color: var(--paper-grey-600);
        --vz-histogram-timeseries-hover-outline-color: #fff;
      }

      svg {
        font-family: roboto, sans-serif;
        overflow: visible;
        display: block;
        width: 100%;
        flex-grow: 1;
        flex-shrink: 1;
      }

      text {
        fill: currentColor;
      }

      #tooltip {
        position: absolute;
        display: block;
        opacity: 0;
        font-weight: bold;
        font-size: 11px;
      }

      .background {
        fill-opacity: 0;
        fill: red;
      }

      .histogram {
        pointer-events: none;
      }

      .hover {
        font-size: 9px;
        dominant-baseline: middle;
        opacity: 0;
      }

      .hover circle {
        stroke: white;
        stroke-opacity: 0.5;
        stroke-width: 1px;
      }

      .hover text {
        fill: black;
        opacity: 0;
      }

      .hover.hover-closest circle {
        fill: var(--vz-histogram-timeseries-hover-outline-color) !important;
      }

      .hover.hover-closest text {
        opacity: 1;
      }

      .baseline {
        stroke: black;
        stroke-opacity: 0.1;
      }

      .outline {
        fill: none;
        stroke: var(--vz-histogram-timeseries-outline-color);
        stroke-opacity: 0.5;
      }

      .outline.outline-hover {
        stroke: var(--vz-histogram-timeseries-hover-outline-color) !important;
        stroke-opacity: 1;
      }

      .x-axis-hover,
      .y-axis-hover,
      .y-slice-axis-hover {
        pointer-events: none;
      }

      .x-axis-hover .label,
      .y-axis-hover .label,
      .y-slice-axis-hover .label {
        opacity: 0;
        font-weight: bold;
        font-size: 11px;
        text-anchor: end;
      }

      .x-axis-hover text {
        text-anchor: middle;
      }

      .y-axis-hover text,
      .y-slice-axis-hover text {
        text-anchor: start;
      }

      .x-axis-hover line,
      .y-axis-hover line,
      .y-slice-axis-hover line {
        stroke: currentColor;
      }

      .x-axis-hover rect,
      .y-axis-hover rect,
      .y-slice-axis-hover rect {
        fill: var(--vz-histogram-timeseries-hover-bg-color);
      }

      #tooltip,
      .x-axis-hover text,
      .y-axis-hover text,
      .y-slice-axis-hover text {
        color: var(--vz-histogram-timeseries-hover-outline-color);
      }

      .axis {
        font-size: 11px;
      }

      .axis path.domain {
        fill: none;
      }

      .axis .tick line {
        stroke: #ddd;
      }

      .axis.slice {
        opacity: 0;
      }

      .axis.slice .tick line {
        stroke-dasharray: 2;
      }

      .small .axis text {
        display: none;
      }
      .small .axis .tick:first-of-type text {
        display: block;
      }
      .small .axis .tick:last-of-type text {
        display: block;
      }
      .medium .axis text {
        display: none;
      }
      .medium .axis .tick:nth-child(2n + 1) text {
        display: block;
      }
      .large .axis text {
        display: none;
      }
      .large .axis .tick:nth-child(2n + 1) text {
        display: block;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],qLt.prototype,"mode",void 0),t([o({type:String}),e("design:type",String)],qLt.prototype,"timeProperty",void 0),t([o({type:String}),e("design:type",String)],qLt.prototype,"bins",void 0),t([o({type:String}),e("design:type",String)],qLt.prototype,"x",void 0),t([o({type:String}),e("design:type",String)],qLt.prototype,"dx",void 0),t([o({type:String}),e("design:type",String)],qLt.prototype,"y",void 0),t([o({type:Object}),e("design:type",Object)],qLt.prototype,"colorScale",void 0),t([o({type:Number}),e("design:type",Number)],qLt.prototype,"modeTransitionDuration",void 0),t([o({type:Boolean}),e("design:type",Boolean)],qLt.prototype,"_attached",void 0),t([o({type:String}),e("design:type",String)],qLt.prototype,"_name",void 0),t([o({type:Array}),e("design:type",Array)],qLt.prototype,"_data",void 0),t([a("timeProperty","colorScale","_attached"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],qLt.prototype,"_redrawOnChange",null),t([a("mode"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],qLt.prototype,"_modeRedraw",null),qLt=t([i("vz-histogram-timeseries")],qLt);let $Lt=class extends(p_t(tr(ye))){constructor(){super(...arguments),this.getDataLoadName=({run:t})=>t,this.requestData=(t,e,n)=>{const i=gr().pluginRoute("histograms","/histograms");Promise.all(t.map((t=>{const n=VO(i,{tag:t.tag,run:t.run});return this.requestManager.request(n).then((n=>{e({item:t,data:n})}))}))).finally((()=>{n()}))},this.loadDataCallback=(t,e,n)=>{const i=(function r(t){const e=t.map(YLt),n=ql(e,(t=>t.min)),i=Gl(e,(t=>t.max));return e.map((t=>({wall_time:t.wall_time,step:t.step,bins:XLt(t,n,i)})))})(n),o=this.getDataLoadName(e);this.$.chart.setSeriesData(o,i)},this._colorScaleFunction=AO,this._expanded=!1}_reloadOnRunTagRequestManagerChange(){this.reload()}_updateDataToLoad(){this.dataToLoad=[{run:this.run,tag:this.tag}]}get _runColor(){return this._colorScaleFunction(this.run)}redraw(){this.$.chart.redraw()}_toggleExpanded(t){this.set("_expanded",!this._expanded),this.redraw()}};$Lt.template=_e`
    <tf-card-heading
      tag="[[tag]]"
      run="[[run]]"
      display-name="[[tagMetadata.displayName]]"
      description="[[tagMetadata.description]]"
      color="[[_runColor]]"
    ></tf-card-heading>
    <!--
      The main histogram that we render. Data is set directly with
      \`setSeriesData\`, not with a bound property.
    -->
    <vz-histogram-timeseries
      id="chart"
      time-property="[[timeProperty]]"
      mode="[[histogramMode]]"
      color-scale="[[_colorScaleFunction]]"
    ></vz-histogram-timeseries>
    <div style="display: flex; flex-direction: row;">
      <paper-icon-button
        selected$="[[_expanded]]"
        icon="fullscreen"
        on-tap="_toggleExpanded"
      ></paper-icon-button>
    </div>
    <style>
      :host {
        display: flex;
        flex-direction: column;
        width: 330px;
        height: 235px;
        margin-right: 10px;
        margin-bottom: 15px;
      }
      :host([_expanded]) {
        width: 700px;
        height: 500px;
      }

      vz-histogram-timeseries {
        -moz-user-select: none;
        -webkit-user-select: none;
        will-change: transform;
      }

      paper-icon-button {
        color: #2196f3;
        border-radius: 100%;
        width: 32px;
        height: 32px;
        padding: 4px;
      }

      paper-icon-button[selected] {
        background: var(--tb-ui-light-accent);
      }

      tf-card-heading {
        margin-bottom: 10px;
        width: 90%;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],$Lt.prototype,"run",void 0),t([o({type:String}),e("design:type",String)],$Lt.prototype,"tag",void 0),t([o({type:Object}),e("design:type",Object)],$Lt.prototype,"getDataLoadName",void 0),t([o({type:Object}),e("design:type",hr)],$Lt.prototype,"requestManager",void 0),t([o({type:Object}),e("design:type",Object)],$Lt.prototype,"loadDataCallback",void 0),t([o({type:Object}),e("design:type",Object)],$Lt.prototype,"tagMetadata",void 0),t([o({type:String}),e("design:type",String)],$Lt.prototype,"timeProperty",void 0),t([o({type:String}),e("design:type",String)],$Lt.prototype,"histogramMode",void 0),t([o({type:Object}),e("design:type",Function)],$Lt.prototype,"_colorScaleFunction",void 0),t([o({type:Boolean,reflectToAttribute:!0}),e("design:type",Boolean)],$Lt.prototype,"_expanded",void 0),t([a("run","tag","requestManager"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],$Lt.prototype,"_reloadOnRunTagRequestManagerChange",null),t([a("run","tag"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],$Lt.prototype,"_updateDataToLoad",null),t([s("run"),e("design:type",String),e("design:paramtypes",[])],$Lt.prototype,"_runColor",null),$Lt=t([i("tf-histogram-loader")],$Lt);let KLt=class extends(tr(ye)){constructor(){super(...arguments),this.reloadOnReady=!0,this._histogramMode="offset",this._timeProperty="step",this._restamp=!1,this._requestManager=new hr}_redrawCategoryPane(t,e){e&&t.target.querySelectorAll("tf-histogram-loader").forEach((t=>t.redraw()))}ready(){super.ready(),this.reloadOnReady&&this.reload()}reload(){this._fetchTags().then((()=>{this._reloadHistograms()}))}_fetchTags(){const t=gr().pluginRoute("histograms","/tags");return this._requestManager.request(t).then((t=>{if(we.isEqual(t,this._runToTagInfo))return;const e=we.mapValues(t,(t=>Object.keys(t))),n=or(e);this.set("_dataNotFound",0===n.length),this.set("_runToTag",e),this.set("_runToTagInfo",t),this.async((()=>{this.set("_categoriesDomReady",!0)}))}))}_reloadHistograms(){this.root.querySelectorAll("tf-histogram-loader").forEach((t=>{t.reload()}))}_shouldOpen(t){return t<=2}get _categories(){return Sr(this._runToTag,this._selectedRuns,this._tagFilter)}_tagMetadata(t,e,n){return t[e][n]}};function ZLt(t){return""!==t.displayName&&void 0!==t.displayName?t.displayName:t.name}function JLt(t){if(""!==t.displayName&&void 0!==t.displayName)return t.displayName;let e=t.name.group,n=t.name.tag;return void 0===e&&(e=""),void 0===n&&(n=""),""===e?n:e+"."+n}function QLt(t,e){return e<t.hparamColumns.length?ZLt(t.hparamColumns[e].hparamInfo):JLt(t.metricColumns[e-t.hparamColumns.length].metricInfo)}function tPt(t){return t.hparamColumns.length}function ePt(t){return t.metricColumns.length}function nPt(t){return tPt(t)+ePt(t)}function iPt(t,e){return t[e]}function rPt(t,e){return t.find((t=>we.isEqual(t.name,e)))}function oPt(t,e,n){return e.hparams[t.hparamColumns[n].hparamInfo.name]}function aPt(t,e,n){const i=rPt(e.metricValues,t.metricColumns[n].metricInfo.name);return void 0===i?void 0:i.value}function sPt(t,e,n){return n<t.hparamColumns.length?oPt(t,e,n):aPt(t,e,n-t.hparamColumns.length)}function lPt(t,e,n){return kl(e,(e=>sPt(t,e,n)))}function cPt(t,e,n){let i;if(n<e.hparamInfos.length)i=t.hparamColumns.findIndex((t=>t.hparamInfo.name===e.hparamInfos[n].name));else{const r=e.metricInfos[n-e.hparamInfos.length].name;i=t.hparamColumns.length+t.metricColumns.findIndex((t=>t.metricInfo.name===r))}return console.assert(-1!==i),i}function uPt(t){return t.hparamInfos.length}function hPt(t){return t.metricInfos.length}function dPt(t,e,n){return kl(e,(e=>gPt(t,e,n)))}function pPt(t,e){return t.find((t=>t.name===e))}function fPt(t,e,n){return e.hparams[t.hparamInfos[n].name]}function mPt(t,e,n){const i=rPt(e.metricValues,t.metricInfos[n].name);return void 0===i?void 0:i.value}function gPt(t,e,n){return n<t.hparamInfos.length?fPt(t,e,n):mPt(t,e,n-t.hparamInfos.length)}function _Pt(t){return we.isNumber(t)?t.toPrecision(5):void 0===t?"":t.toString()}function yPt(t,e){return t*t+e*e}function vPt(t,e,n,i){return Math.sqrt(yPt(t-n,e-i))}function bPt(t,e,n,i,r,o){if(t<n&&e<i)return vPt(t,e,n,i);if(n<=t&&t<r&&e<i)return i-e;if(r<=t&&e<i)return vPt(t,e,r,i);if(t<n&&i<=e&&e<o)return n-t;if(n<=t&&t<r&&i<=e&&e<o)return 0;if(r<=t&&i<=e&&e<o)return t-r;if(t<n&&o<=e)return vPt(t,e,n,o);if(n<=t&&t<r&&o<=e)return e-o;if(r<=t&&o<=e)return vPt(t,e,r,o);throw"Point (x,y) must be in one of the regions defined above."}function xPt(t,e){return void 0===e?"translate("+t+")":"translate("+t+","+e+")"}function wPt(t,e,n){const i=t.get(e,t);Array.isArray(i)?t.splice.apply(t,[e,0,i.length].concat(n)):t.set(e,n)}function SPt(t){let e=0;for(let n=0;n<t.length;++n)e=31*e+t.charCodeAt(n)&4294967295;return e+Math.pow(2,31)}KLt.template=_e`
    <tf-dashboard-layout>
      <div slot="sidebar">
        <div class="settings">
          <div class="sidebar-section">
            <tf-option-selector
              id="histogramModeSelector"
              name="Histogram mode"
              selected-id="{{_histogramMode}}"
            >
              <paper-button id="overlay">overlay</paper-button>
              <paper-button id="offset">offset</paper-button>
            </tf-option-selector>
          </div>
          <div class="sidebar-section">
            <tf-option-selector
              id="timePropertySelector"
              name="Offset time axis"
              selected-id="{{_timeProperty}}"
            >
              <paper-button id="step">step</paper-button>
              <paper-button id="relative">relative</paper-button>
              <paper-button id="wall_time">wall</paper-button>
            </tf-option-selector>
          </div>
        </div>
        <div class="sidebar-section runs-selector">
          <tf-runs-selector selected-runs="{{_selectedRuns}}">
          </tf-runs-selector>
        </div>
      </div>
      <div slot="center">
        <template is="dom-if" if="[[_dataNotFound]]">
          <div class="no-data-warning">
            <h3>No histogram data was found.</h3>
            <p>Probable causes:</p>
            <ul>
              <li>
                You haven’t written any histogram data to your event files.
              </li>
              <li>TensorBoard can’t find your event files.</li>
            </ul>

            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>

            <p>
              If you think TensorBoard is configured properly, please see
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
                >the section of the README devoted to missing data problems</a
              >
              and consider filing an issue on GitHub.
            </p>
          </div>
        </template>
        <template is="dom-if" if="[[!_dataNotFound]]">
          <tf-tag-filterer tag-filter="{{_tagFilter}}"></tf-tag-filterer>
          <template is="dom-repeat" items="[[_categories]]" as="category">
            <tf-category-paginated-view
              category="[[category]]"
              initial-opened="[[_shouldOpen(index)]]"
            >
              <template>
                <tf-histogram-loader
                  run="[[item.run]]"
                  tag="[[item.tag]]"
                  active="[[active]]"
                  tag-metadata="[[_tagMetadata(_runToTagInfo, item.run, item.tag)]]"
                  time-property="[[_timeProperty]]"
                  histogram-mode="[[_histogramMode]]"
                  request-manager="[[_requestManager]]"
                ></tf-histogram-loader>
              </template>
            </tf-category-paginated-view>
          </template>
        </template>
      </div>
    </tf-dashboard-layout>

    <style include="dashboard-style"></style>
    <style>
      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }
    </style>
  `,t([o({type:Boolean}),e("design:type",Boolean)],KLt.prototype,"reloadOnReady",void 0),t([o({type:String}),e("design:type",String)],KLt.prototype,"_histogramMode",void 0),t([o({type:String}),e("design:type",String)],KLt.prototype,"_timeProperty",void 0),t([o({type:Array}),e("design:type",Array)],KLt.prototype,"_selectedRuns",void 0),t([o({type:Object}),e("design:type",Object)],KLt.prototype,"_runToTag",void 0),t([o({type:Object}),e("design:type",Object)],KLt.prototype,"_runToTagInfo",void 0),t([o({type:Boolean}),e("design:type",Boolean)],KLt.prototype,"_dataNotFound",void 0),t([o({type:String}),e("design:type",String)],KLt.prototype,"_tagFilter",void 0),t([o({type:Boolean}),e("design:type",Boolean)],KLt.prototype,"_restamp",void 0),t([o({type:Boolean}),e("design:type",Boolean)],KLt.prototype,"_categoriesDomReady",void 0),t([o({type:Object}),e("design:type",hr)],KLt.prototype,"_requestManager",void 0),t([s("_runToTag","_selectedRuns","_tagFilter","_categoriesDomReady"),e("design:type",Array),e("design:paramtypes",[])],KLt.prototype,"_categories",null),KLt=t([i("tf-histogram-dashboard")],KLt);var MPt=Object.freeze({__proto__:null,hparamName:ZLt,metricName:JLt,schemaColumnName:QLt,numHParams:tPt,numMetrics:ePt,numColumns:nPt,hparamValueByName:iPt,metricValueByName:rPt,hparamValueByIndex:oPt,metricValueByIndex:aPt,columnValueByIndex:sPt,numericColumnExtent:lPt,getAbsoluteColumnIndex:cPt,schemaVisibleColumnName:function EPt(t,e){return e<t.hparamInfos.length?ZLt(t.hparamInfos[e]):JLt(t.metricInfos[e-t.hparamInfos.length])},numVisibleHParams:uPt,numVisibleMetrics:hPt,numVisibleColumns:function TPt(t){return uPt(t)+hPt(t)},visibleNumericColumnExtent:dPt,prettyPrintHParamValueByName:function CPt(t,e){return _Pt(iPt(t,e))},prettyPrintMetricValueByName:function APt(t,e){return _Pt(rPt(t,e))},sessionGroupWithName:pPt,hparamValueByVisibleIndex:fPt,metricValueByVisibleIndex:mPt,columnValueByVisibleIndex:gPt,prettyPrint:_Pt,l2NormSquared:yPt,euclideanDist:vPt,pointToRectangleDist:bPt,translateStr:xPt,rotateStr:function kPt(t,e,n){let i="rotate("+t;return void 0!==e&&void 0!==n&&(i=i+","+e+","+n),i+=")",i},isNullOrUndefined:function LPt(t){return null==t},quadTreeVisitPointsInRect:function PPt(t,e,n,i,r,o){t.visit(((a,s,l,c,u)=>{if(void 0===a.length){do{const s=t.x()(a.data),l=t.y()(a.data);e<=s&&s<i&&n<=l&&l<r&&o(a.data)}while(a=a.next);return!0}return s>=i||c<=e||l>=r||u<=n}))},quadTreeVisitPointsInDisk:function NPt(t,e,n,i,r){t.visit(((o,a,s,l,c)=>{if(void 0===o.length){do{const a=t.x()(o.data),s=t.y()(o.data),l=vPt(e,n,a,s);l<=i&&r(o.data,l)}while(o=o.next);return!0}return bPt(e,n,a,s,l,c)>i}))},filterSet:function IPt(t,e){const n=new Set;return t.forEach((t=>{e(t)&&n.add(t)})),n},setArrayObservably:wPt,hashOfString:SPt});let OPt=class extends ye{constructor(){super(...arguments),this.orientation="horizontal"}};OPt.template=_e`
    <slot name="content"></slot>

    <style>
      :host {
        display: block;
      }

      :host slot {
        display: flex;
        height: 100%;
        width: 100%;
      }

      :host ::slotted(*) {
        flex: 0 0 auto;
      }

      :host([orientation='horizontal']) slot {
        flex-direction: row;
        overflow-x: auto;
      }

      :host([orientation='vertical']) slot {
        flex-direction: column;
        overflow-y: auto;
      }

      :host ::slotted(*:not(:last-child)) {
        border: 0 solid var(--divider-color, #ccc);
      }

      :host([orientation='vertical']) ::slotted(*:not(:last-child)) {
        border-bottom-width: 5px;
      }

      :host([orientation='horizontal']) ::slotted(*:not(:last-child)) {
        border-right-width: 5px;
      }
    </style>
  `,t([o({type:String,reflectToAttribute:!0}),e("design:type",String)],OPt.prototype,"orientation",void 0),OPt=t([i("hparams-split-layout")],OPt);let RPt=class extends(tr(ye)){constructor(){super(...arguments),this.configuration={schema:{hparamColumns:[],metricColumns:[]},columnsVisibility:[],visibleSchema:{hparamInfos:[],metricInfos:[]}},this.sessionGroups=[],this.dataLoadedWithNonEmptyHparams=!1,this.dataLoadedWithEmptyHparams=!1,this._statuses=[{value:"STATUS_UNKNOWN",displayName:"Unknown",allowed:!0},{value:"STATUS_SUCCESS",displayName:"Success",allowed:!0},{value:"STATUS_FAILURE",displayName:"Failure",allowed:!0},{value:"STATUS_RUNNING",displayName:"Running",allowed:!0}],this._getExperimentResolved=new Promise((t=>{this._resolveGetExperiment=t})),this._listSessionGroupsCanceller=new NO,this._pageSizeInput={value:"100",invalid:!1},this._pageNumberInput={value:"1",invalid:!1},this._pageCountStr="?",this._hparamName=ZLt,this._metricName=JLt,this._prettyPrint=_Pt}reload(){this._queryServer()}_csvUrl(t,e){return this._downloadDataUrl(t,e,"csv")}_jsonUrl(t,e){return this._downloadDataUrl(t,e,"json")}_latexUrl(t,e){return this._downloadDataUrl(t,e,"latex")}_downloadDataUrl(t,e,n){return this.backend.getDownloadUrl(n,t,e.columnsVisibility)}_computeExperimentAndRelatedProps(){const t=MPt;t.isNullOrUndefined(this.backend)||t.isNullOrUndefined(this.experimentName)||this.backend.getExperiment({experimentName:this.experimentName}).then((t=>{we.isEqual(t,this._experiment)||(this.set("_experiment",t),this._computeHParams(),this._computeMetrics(),this._queryServer(),this._resolveGetExperiment())})).finally((()=>{this._computeDataFound()}))}_computeDataFound(){const t=Boolean(this._experiment&&this._experiment.hparamInfos&&this._experiment.hparamInfos.length>0&&this._experiment.metricInfos&&this._experiment.metricInfos.length>0);this.set("dataLoadedWithNonEmptyHparams",t),this.set("dataLoadedWithEmptyHparams",!t)}_computeHParams(){const t=[];this._experiment.hparamInfos.forEach(((e,n)=>{const i={info:e,displayed:n<5,filter:{}};i.info.hasOwnProperty("domainDiscrete")?(i.filter.domainDiscrete=[],i.info.domainDiscrete.forEach((t=>{i.filter.domainDiscrete.push({value:t,checked:!0})}))):"DATA_TYPE_BOOL"===i.info.type?i.filter.domainDiscrete=[{value:!1,checked:!0},{value:!0,checked:!0}]:"DATA_TYPE_FLOAT64"===i.info.type?i.filter.interval={min:{value:"",invalid:!1},max:{value:"",invalid:!1}}:"DATA_TYPE_STRING"===i.info.type?i.filter.regexp="":console.warn("unknown hparam.info.type: %s",i.info.type),t.push(i)})),this.set("_hparams",t)}_computeMetrics(){const t=[];this._experiment.metricInfos.forEach(((e,n)=>{t.push({info:e,filter:{interval:{min:{value:"",invalid:!1},max:{value:"",invalid:!1}}},displayed:n<5})})),this.set("_metrics",t)}_computeSchema(){return this._hparams&&this._metrics?{hparamColumns:this._hparams.map((t=>({hparamInfo:t.info}))),metricColumns:this._metrics.map((t=>({metricInfo:t.info})))}:{hparamColumns:[],metricColumns:[]}}_updateConfiguration(){this.debounce("_updateConfiguration",(()=>{this.configuration={schema:this._computeSchema(),columnsVisibility:this._computeColumnsVisibility(),visibleSchema:this._computeVisibleSchema()}}))}_computeColumnsVisibility(){return this._hparams&&this._metrics?this._hparams.map((t=>t.displayed)).concat(this._metrics.map((t=>t.displayed))):[]}_computeVisibleSchema(){return this._hparams&&this._metrics?{hparamInfos:this._hparams.filter((t=>t.displayed)).map((t=>t.info)),metricInfos:this._metrics.filter((t=>t.displayed)).map((t=>t.info))}:{hparamInfos:[],metricInfos:[]}}_queryServer(){this.debounce("queryServer",(()=>this._queryServerNoDebounce()),100)}_queryServerNoDebounce(){if(this._hparams&&this._metrics)return this._sendListSessionGroupsRequest().then(this._listSessionGroupsCanceller.cancellable((({value:t,cancelled:e})=>{e||(t.totalSize>=0?(this.set("_pageCountStr",String(Math.ceil(t.totalSize/+this._pageSizeInput.value))),this.set("_totalSessionGroupsCountStr",t.totalSize)):(this.set("_pageCountStr","?"),this.set("_totalSessionGroupsCountStr","Unknown")),wPt(this,"sessionGroups",t.sessionGroups))})))}_sendListSessionGroupsRequest(){const t=this._buildListSessionGroupsRequest();if(null!==t)return this.set("_sessionGroupsRequest",t),this._listSessionGroupsCanceller.cancelAll(),this.backend.listSessionGroups(t)}_buildListSessionGroupsRequest(){const t=this;let e=!0;function n(n){const i=t.get(n+".min.value");console.assert(void 0!==i);const r=""===i?"-Infinity":+i;t.set(n+".min.invalid",isNaN(r)),e=e&&!isNaN(r);const o=t.get(n+".max.value");console.assert(void 0!==o);const a=""===o?"Infinity":+o;return t.set(n+".max.invalid",isNaN(a)),e=e&&!isNaN(a),isNaN(r)||isNaN(a)?null:{minValue:r,maxValue:a}}function i(n){const i=t.get(n+".value");console.assert(void 0!==i);const r=+i,o=Number.isInteger(r)&&r>0;return t.set(n+".invalid",!o),e=e&&o,o?r:null}const r=this._statuses.filter((t=>t.allowed)).map((t=>t.value));let o=[];if(this._hparams.forEach(((t,e)=>{let i={hparam:t.info.name};if(t.filter.domainDiscrete)i.filterDiscrete=[],t.filter.domainDiscrete.forEach((t=>{t.checked&&i.filterDiscrete.push(t.value)}));else if(t.filter.interval)i.filterInterval=n("_hparams."+e+".filter.interval");else{if(!t.filter.regexp)return console.error("hparam.filter with no domainDiscrete, interval or regexp properties set: %s",t),null;i.filterRegexp=t.filter.regexp}o.push(i)})),this._metrics.forEach(((t,e)=>{let i={metric:t.info.name,filterInterval:n("_metrics."+e+".filter.interval")};o.push(i)})),void 0!==this._sortByIndex&&void 0!==this._sortDirection){if(!(this._sortByIndex in o))return console.error("No column in colParams with index sortByIndex: %s",this._sortByIndex),null;o[this._sortByIndex].order=0===this._sortDirection?"ORDER_ASC":"ORDER_DESC"}const a=i("_pageNumberInput"),s=i("_pageSizeInput");return e?{experimentName:this.experimentName,allowedStatuses:r,colParams:o,startIndex:s*(a-1),sliceSize:s}:null}_metricSortByIndex(t){return t+this._hparams.length}};RPt.template=_e`
    <hparams-split-layout orientation="vertical">
      <div slot="content" class="section hyperparameters">
        <div class="section-title">Hyperparameters</div>
        <template is="dom-repeat" items="{{_hparams}}" as="hparam">
          <div class="hparam">
            <paper-checkbox
              checked="{{hparam.displayed}}"
              class="hparam-checkbox"
            >
              [[_hparamName(hparam.info)]]
            </paper-checkbox>
            <!-- Precisely one of the templates below will be stamped.-->
            <!-- 1. A list of checkboxes -->
            <template is="dom-if" if="[[hparam.filter.domainDiscrete]]">
              <template
                is="dom-repeat"
                items="[[hparam.filter.domainDiscrete]]"
              >
                <paper-checkbox
                  checked="{{item.checked}}"
                  class="discrete-value-checkbox"
                  on-change="_queryServer"
                >
                  [[_prettyPrint(item.value)]]
                </paper-checkbox>
              </template>
            </template>
            <!-- 2. A numeric interval -->
            <template is="dom-if" if="[[hparam.filter.interval]]">
              <paper-input
                label="Min"
                value="{{hparam.filter.interval.min.value}}"
                allowed_pattern="[0-9.e\\-]"
                on-value-changed="_queryServer"
                error-message="Invalid input"
                invalid="[[hparam.filter.interval.min.invalid]]"
                placeholder="-infinity"
              >
              </paper-input>
              <paper-input
                label="Max"
                value="{{hparam.filter.interval.max.value}}"
                allowed_pattern="[0-9.e\\-]"
                on-value-changed="_queryServer"
                error-message="Invalid input"
                invalid="[[hparam.filter.interval.max.invalid]]"
                placeholder="+infinity"
              >
              </paper-input>
            </template>
            <!-- 3. A regexp -->
            <template is="dom-if" if="[[hparam.filter.regexp]]">
              <paper-input
                label="Regular expression"
                value="{{hparam.filter.regexp}}"
                on-value-changed="_queryServer"
              >
              </paper-input>
            </template>
          </div>
        </template>
      </div>
      <div slot="content" class="section metrics">
        <div class="section-title">Metrics</div>
        <template is="dom-repeat" items="{{_metrics}}" as="metric">
          <div class="metric">
            <!-- TODO(erez): Make it easier to handle a large number of
                  metrics:
                  1. Add an 'isolator' radio-button to select just one
                  metric and
                  hide all the rest
                  2. Add a 'toggle-all' button that will hide/unhide
                    all the
                  metrics.
                  Use similar logic/appearance to the run-selector of
                  scalars.-->
            <paper-checkbox
              checked="{{metric.displayed}}"
              class="metric-checkbox"
            >
              [[_metricName(metric.info)]]
            </paper-checkbox>
            <div class="inline-element">
              <paper-input
                label="Min"
                value="{{metric.filter.interval.min.value}}"
                allowed-pattern="[0-9.e\\-]"
                on-value-changed="_queryServer"
                error-message="Invalid input"
                invalid="{{metric.filter.interval.min.invalid}}"
                placeholder="-infinity"
              >
              </paper-input>
            </div>
            <div class="inline-element">
              <paper-input
                label="Max"
                allowed-pattern="[0-9.e\\-]"
                value="{{metric.filter.interval.max.value}}"
                on-value-changed="_queryServer"
                error-message="Invalid input"
                invalid="{{metric.filter.interval.max.invalid}}"
                placeholder="+infinity"
              >
              </paper-input>
            </div>
          </div>
        </template>
      </div>
      <div slot="content" class="section status">
        <div class="section-title">Status</div>
        <template is="dom-repeat" items="[[_statuses]]" as="status">
          <paper-checkbox checked="{{status.allowed}}" on-change="_queryServer">
            [[status.displayName]]
          </paper-checkbox>
        </template>
      </div>
      <div slot="content" class="section sorting">
        <div class="section-title">Sorting</div>
        <paper-dropdown-menu
          label="Sort by"
          on-selected-item-changed="_queryServer"
          horizontal-align="left"
        >
          <paper-listbox
            class="dropdown-content"
            slot="dropdown-content"
            selected="{{_sortByIndex}}"
            on-selected-item-changed="_queryServer"
          >
            <template is="dom-repeat" items="[[_hparams]]" as="hparam">
              <paper-item> [[_hparamName(hparam.info)]] </paper-item>
            </template>
            <template is="dom-repeat" items="[[_metrics]]" as="metric">
              <paper-item> [[_metricName(metric.info)]] </paper-item>
            </template>
          </paper-listbox>
        </paper-dropdown-menu>
        <paper-dropdown-menu
          label="Direction"
          on-selected-item-changed="_queryServer"
          horizontal-align="left"
        >
          <paper-listbox
            class="dropdown-content"
            slot="dropdown-content"
            selected="{{_sortDirection}}"
          >
            <paper-item>Ascending</paper-item>
            <paper-item>Descending</paper-item>
          </paper-listbox>
        </paper-dropdown-menu>
      </div>
      <div slot="content" class="section paging">
        <div class="section-title">Paging</div>
        <div>
          Number of matching session groups: [[_totalSessionGroupsCountStr]]
        </div>
        <div class="inline-element page-number-input">
          <paper-input
            label="Page #"
            value="{{_pageNumberInput.value}}"
            allowed-pattern="[0-9]"
            error-message="Invalid input"
            invalid="[[_pageNumberInput.invalid]]"
            on-value-changed="_queryServer"
          >
            <div slot="suffix" class="page-suffix">/ [[_pageCountStr]]</div>
          </paper-input>
        </div>
        <div class="inline-element page-size-input">
          <paper-input
            label="Max # of session groups per page:"
            value="{{_pageSizeInput.value}}"
            allowed-pattern="[0-9]"
            error-message="Invalid input"
            invalid="[[_pageSizeInput.invalid]]"
            on-value-changed="_queryServer"
          >
          </paper-input>
        </div>
      </div>
      <div slot="content" class="section download">
        <template is="dom-if" if="[[_sessionGroupsRequest]]">
          Download data as
          <span>
            <a
              id="csvLink"
              download="hparams_table.csv"
              href="[[_csvUrl(_sessionGroupsRequest, configuration)]]"
              >CSV</a
            >
            <a
              id="jsonLink"
              download="hparams_table.json"
              href="[[_jsonUrl(_sessionGroupsRequest, configuration)]]"
              >JSON</a
            >
            <a
              id="latexLink"
              download="hparams_table.tex"
              href="[[_latexUrl(_sessionGroupsRequest, configuration)]]"
              >LaTeX</a
            >
          </span>
        </template>
      </div>
    </hparams-split-layout>
    <style>
      .section {
        padding: 10px;
      }
      .section-title {
        display: block;
        font-weight: bold;
        text-decoration: underline;
        margin-bottom: 7px;
      }
      .discrete-value-checkbox,
      .metric-checkbox,
      .hparam-checkbox {
        display: block;
      }
      .discrete-value-checkbox {
        margin-left: 20px;
      }
      .hparam,
      .metric {
        display: block;
      }
      .inline-element {
        display: inline-block;
        width: 40%;
        margin-left: 10px;
      }
      .page-number-input {
        width: 20%;
      }
      .page-size-input {
        width: 60%;
      }
      vaadin-split-layout {
        height: 100%;
      }
      paper-listbox {
        max-height: 15em;
      }
      .page-suffix {
        white-space: nowrap;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],RPt.prototype,"experimentName",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],RPt.prototype,"configuration",void 0),t([o({type:Array,notify:!0}),e("design:type",Object)],RPt.prototype,"sessionGroups",void 0),t([o({type:Boolean,notify:!0}),e("design:type",Boolean)],RPt.prototype,"dataLoadedWithNonEmptyHparams",void 0),t([o({type:Boolean,notify:!0}),e("design:type",Boolean)],RPt.prototype,"dataLoadedWithEmptyHparams",void 0),t([o({type:Object}),e("design:type",Object)],RPt.prototype,"_experiment",void 0),t([o({type:Array}),e("design:type",Array)],RPt.prototype,"_hparams",void 0),t([o({type:Array}),e("design:type",Array)],RPt.prototype,"_metrics",void 0),t([o({type:Array}),e("design:type",Object)],RPt.prototype,"_statuses",void 0),t([o({type:Object}),e("design:type",Object)],RPt.prototype,"_getExperimentResolved",void 0),t([o({type:Object}),e("design:type",Function)],RPt.prototype,"_resolveGetExperiment",void 0),t([o({type:Object}),e("design:type",Object)],RPt.prototype,"_listSessionGroupsCanceller",void 0),t([o({type:Number}),e("design:type",Number)],RPt.prototype,"_sortByIndex",void 0),t([o({type:Number}),e("design:type",Number)],RPt.prototype,"_sortDirection",void 0),t([o({type:Object}),e("design:type",Object)],RPt.prototype,"_pageSizeInput",void 0),t([o({type:Object}),e("design:type",Object)],RPt.prototype,"_pageNumberInput",void 0),t([o({type:String}),e("design:type",String)],RPt.prototype,"_pageCountStr",void 0),t([o({type:String}),e("design:type",String)],RPt.prototype,"_totalSessionGroupsCountStr",void 0),t([o({type:Object}),e("design:type",Object)],RPt.prototype,"_sessionGroupsRequest",void 0),t([a("backend","experimentName"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],RPt.prototype,"_computeExperimentAndRelatedProps",null),t([a("_hparams.*","_metrics.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],RPt.prototype,"_updateConfiguration",null),RPt=t([i("tf-hparams-query-pane")],RPt);let zPt=class extends ye{constructor(){super(...arguments),this.options=null}_configurationChanged(){const t=this.configuration.visibleSchema,e=this.configuration.schema,n={columns:t.hparamInfos.map(((n,i)=>({name:ZLt(n),index:i,absoluteIndex:cPt(e,t,i),scale:this._isNumericColumn(i)?"LINEAR":"NON_NUMERIC"}))).concat(t.metricInfos.map(((n,i)=>{const r=i+t.hparamInfos.length;return{scale:"LINEAR",name:JLt(n),index:r,absoluteIndex:cPt(e,t,r)}}))),minColor:"#0000FF",maxColor:"#FF0000",configuration:this.configuration};this.set("options",n),zi(),this.set("options.colorByColumnIndex",this._defaultColorByColumnIndex())}_unselectDisabledLogScales(){null!==this.options&&this.options.columns.forEach((t=>{const e="options.columns."+t.index;this._allowLogScale(t)||"LOG"!==t.scale||this.set(e+".scale","LINEAR")}))}_allowLogScale(t){if(!this._isNumericColumn(t.index)||!this.sessionGroups)return!1;const[e,n]=dPt(this.configuration.visibleSchema,this.sessionGroups,t.index);return e>0||n<0}_isNumericColumn(t){return t>=this.configuration.visibleSchema.hparamInfos.length||"DATA_TYPE_FLOAT64"===this.configuration.visibleSchema.hparamInfos[t].type}_defaultColorByColumnIndex(){if(this.configuration.visibleSchema.metricInfos.length>0)return this.configuration.visibleSchema.hparamInfos.length;const t=this.configuration.visibleSchema.hparamInfos.findIndex((t=>"DATA_TYPE_FLOAT64"===t.type));return-1!==t?t:void 0}};zPt.template=_e`
    <div class="control-panel">
      <!-- 'Color by' drop down menu -->
      <paper-dropdown-menu
        label="Color by"
        id="colorByDropDownMenu"
        horizontal-align="left"
      >
        <paper-listbox
          class="dropdown-content"
          slot="dropdown-content"
          selected="{{options.colorByColumnIndex}}"
          id="colorByListBox"
        >
          <template
            is="dom-repeat"
            items="[[options.columns]]"
            as="column"
            id="colorByColumnTemplate"
          >
            <paper-item disabled="[[!_isNumericColumn(column.index)]]">
              [[column.name]]
            </paper-item>
          </template>
        </paper-listbox>
      </paper-dropdown-menu>

      <!-- Columns scales -->
      <div class="columns-container">
        <!-- Scale options for each numeric feature -->
        <template is="dom-repeat" items="{{options.columns}}" as="column">
          <template is="dom-if" if="[[_isNumericColumn(column.index)]]">
            <div class="column">
              <div class="column-title">[[column.name]]</div>
              <div>
                <paper-radio-group
                  class="scale-radio-group"
                  selected="{{column.scale}}"
                >
                  <paper-radio-button name="LINEAR">
                    Linear
                  </paper-radio-button>
                  <!-- The id here is used to access this button in unit
                       tests.-->
                  <paper-radio-button
                    id="logScaleButton_[[column.name]]"
                    name="LOG"
                    disabled="[[!_allowLogScale(column, sessionGroups.*)]]"
                  >
                    Logarithmic
                  </paper-radio-button>
                  <paper-radio-button name="QUANTILE">
                    Quantile
                  </paper-radio-button>
                </paper-radio-group>
              </div>
            </div>
          </template>
        </template>
      </div>
    </div>

    <style>
      :host {
        display: block;
      }
      .control-panel {
        overflow: auto;
      }
      .column {
        flex-grow: 1;
        flex-shrink: 1;
        margin-right: 5px;
        border: solid 1px darkgray;
        padding: 3px;
      }
      .column-title {
        /* Fit every title in one line so the radio boxes align vertically. */
        white-space: nowrap;
        text-decoration: underline;
      }
      .columns-container {
        display: flex;
        flex-direction: row;
      }
      .scale-radio-group paper-radio-button {
        padding: 2px;
        display: block;
      }
      paper-listbox {
        max-height: 15em;
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],zPt.prototype,"configuration",void 0),t([o({type:Array}),e("design:type",Array)],zPt.prototype,"sessionGroups",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],zPt.prototype,"options",void 0),t([a("configuration.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],zPt.prototype,"_configurationChanged",null),t([a("sessionGroups.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],zPt.prototype,"_unselectDisabledLogScales",null),zPt=t([i("tf-hparams-scale-and-color-controls")],zPt);class DPt extends HTMLElement{static get version(){return"1.6.1"}}customElements.define("vaadin-lumo-styles",DPt);const BPt=document.createElement("template");BPt.innerHTML='<custom-style>\n  <style>\n    html {\n      /* Base (background) */\n      --lumo-base-color: #FFF;\n\n      /* Tint */\n      --lumo-tint-5pct: hsla(0, 0%, 100%, 0.3);\n      --lumo-tint-10pct: hsla(0, 0%, 100%, 0.37);\n      --lumo-tint-20pct: hsla(0, 0%, 100%, 0.44);\n      --lumo-tint-30pct: hsla(0, 0%, 100%, 0.5);\n      --lumo-tint-40pct: hsla(0, 0%, 100%, 0.57);\n      --lumo-tint-50pct: hsla(0, 0%, 100%, 0.64);\n      --lumo-tint-60pct: hsla(0, 0%, 100%, 0.7);\n      --lumo-tint-70pct: hsla(0, 0%, 100%, 0.77);\n      --lumo-tint-80pct: hsla(0, 0%, 100%, 0.84);\n      --lumo-tint-90pct: hsla(0, 0%, 100%, 0.9);\n      --lumo-tint: #FFF;\n\n      /* Shade */\n      --lumo-shade-5pct: hsla(214, 61%, 25%, 0.05);\n      --lumo-shade-10pct: hsla(214, 57%, 24%, 0.1);\n      --lumo-shade-20pct: hsla(214, 53%, 23%, 0.16);\n      --lumo-shade-30pct: hsla(214, 50%, 22%, 0.26);\n      --lumo-shade-40pct: hsla(214, 47%, 21%, 0.38);\n      --lumo-shade-50pct: hsla(214, 45%, 20%, 0.5);\n      --lumo-shade-60pct: hsla(214, 43%, 19%, 0.61);\n      --lumo-shade-70pct: hsla(214, 42%, 18%, 0.72);\n      --lumo-shade-80pct: hsla(214, 41%, 17%, 0.83);\n      --lumo-shade-90pct: hsla(214, 40%, 16%, 0.94);\n      --lumo-shade: hsl(214, 35%, 15%);\n\n      /* Contrast */\n      --lumo-contrast-5pct: var(--lumo-shade-5pct);\n      --lumo-contrast-10pct: var(--lumo-shade-10pct);\n      --lumo-contrast-20pct: var(--lumo-shade-20pct);\n      --lumo-contrast-30pct: var(--lumo-shade-30pct);\n      --lumo-contrast-40pct: var(--lumo-shade-40pct);\n      --lumo-contrast-50pct: var(--lumo-shade-50pct);\n      --lumo-contrast-60pct: var(--lumo-shade-60pct);\n      --lumo-contrast-70pct: var(--lumo-shade-70pct);\n      --lumo-contrast-80pct: var(--lumo-shade-80pct);\n      --lumo-contrast-90pct: var(--lumo-shade-90pct);\n      --lumo-contrast: var(--lumo-shade);\n\n      /* Text */\n      --lumo-header-text-color: var(--lumo-contrast);\n      --lumo-body-text-color: var(--lumo-contrast-90pct);\n      --lumo-secondary-text-color: var(--lumo-contrast-70pct);\n      --lumo-tertiary-text-color: var(--lumo-contrast-50pct);\n      --lumo-disabled-text-color: var(--lumo-contrast-30pct);\n\n      /* Primary */\n      --lumo-primary-color: hsl(214, 90%, 52%);\n      --lumo-primary-color-50pct: hsla(214, 90%, 52%, 0.5);\n      --lumo-primary-color-10pct: hsla(214, 90%, 52%, 0.1);\n      --lumo-primary-text-color: var(--lumo-primary-color);\n      --lumo-primary-contrast-color: #FFF;\n\n      /* Error */\n      --lumo-error-color: hsl(3, 100%, 61%);\n      --lumo-error-color-50pct: hsla(3, 100%, 60%, 0.5);\n      --lumo-error-color-10pct: hsla(3, 100%, 60%, 0.1);\n      --lumo-error-text-color: hsl(3, 92%, 53%);\n      --lumo-error-contrast-color: #FFF;\n\n      /* Success */\n      --lumo-success-color: hsl(145, 80%, 42%); /* hsl(144,82%,37%); */\n      --lumo-success-color-50pct: hsla(145, 76%, 44%, 0.55);\n      --lumo-success-color-10pct: hsla(145, 76%, 44%, 0.12);\n      --lumo-success-text-color: hsl(145, 100%, 32%);\n      --lumo-success-contrast-color: #FFF;\n    }\n  </style>\n</custom-style><dom-module id="lumo-color">\n  <template>\n    <style>\n      [theme~="dark"] {\n        /* Base (background) */\n        --lumo-base-color: hsl(214, 35%, 21%);\n\n        /* Tint */\n        --lumo-tint-5pct: hsla(214, 65%, 85%, 0.06);\n        --lumo-tint-10pct: hsla(214, 60%, 80%, 0.14);\n        --lumo-tint-20pct: hsla(214, 64%, 82%, 0.23);\n        --lumo-tint-30pct: hsla(214, 69%, 84%, 0.32);\n        --lumo-tint-40pct: hsla(214, 73%, 86%, 0.41);\n        --lumo-tint-50pct: hsla(214, 78%, 88%, 0.5);\n        --lumo-tint-60pct: hsla(214, 82%, 90%, 0.6);\n        --lumo-tint-70pct: hsla(214, 87%, 92%, 0.7);\n        --lumo-tint-80pct: hsla(214, 91%, 94%, 0.8);\n        --lumo-tint-90pct: hsla(214, 96%, 96%, 0.9);\n        --lumo-tint: hsl(214, 100%, 98%);\n\n        /* Shade */\n        --lumo-shade-5pct: hsla(214, 0%, 0%, 0.07);\n        --lumo-shade-10pct: hsla(214, 4%, 2%, 0.15);\n        --lumo-shade-20pct: hsla(214, 8%, 4%, 0.23);\n        --lumo-shade-30pct: hsla(214, 12%, 6%, 0.32);\n        --lumo-shade-40pct: hsla(214, 16%, 8%, 0.41);\n        --lumo-shade-50pct: hsla(214, 20%, 10%, 0.5);\n        --lumo-shade-60pct: hsla(214, 24%, 12%, 0.6);\n        --lumo-shade-70pct: hsla(214, 28%, 13%, 0.7);\n        --lumo-shade-80pct: hsla(214, 32%, 13%, 0.8);\n        --lumo-shade-90pct: hsla(214, 33%, 13%, 0.9);\n        --lumo-shade: hsl(214, 33%, 13%);\n\n        /* Contrast */\n        --lumo-contrast-5pct: var(--lumo-tint-5pct);\n        --lumo-contrast-10pct: var(--lumo-tint-10pct);\n        --lumo-contrast-20pct: var(--lumo-tint-20pct);\n        --lumo-contrast-30pct: var(--lumo-tint-30pct);\n        --lumo-contrast-40pct: var(--lumo-tint-40pct);\n        --lumo-contrast-50pct: var(--lumo-tint-50pct);\n        --lumo-contrast-60pct: var(--lumo-tint-60pct);\n        --lumo-contrast-70pct: var(--lumo-tint-70pct);\n        --lumo-contrast-80pct: var(--lumo-tint-80pct);\n        --lumo-contrast-90pct: var(--lumo-tint-90pct);\n        --lumo-contrast: var(--lumo-tint);\n\n        /* Text */\n        --lumo-header-text-color: var(--lumo-contrast);\n        --lumo-body-text-color: var(--lumo-contrast-90pct);\n        --lumo-secondary-text-color: var(--lumo-contrast-70pct);\n        --lumo-tertiary-text-color: var(--lumo-contrast-50pct);\n        --lumo-disabled-text-color: var(--lumo-contrast-30pct);\n\n        /* Primary */\n        --lumo-primary-color: hsl(214, 86%, 55%);\n        --lumo-primary-color-50pct: hsla(214, 86%, 55%, 0.5);\n        --lumo-primary-color-10pct: hsla(214, 90%, 63%, 0.1);\n        --lumo-primary-text-color: hsl(214, 100%, 70%);\n        --lumo-primary-contrast-color: #FFF;\n\n        /* Error */\n        --lumo-error-color: hsl(3, 90%, 63%);\n        --lumo-error-color-50pct: hsla(3, 90%, 63%, 0.5);\n        --lumo-error-color-10pct: hsla(3, 90%, 63%, 0.1);\n        --lumo-error-text-color: hsl(3, 100%, 67%);\n\n        /* Success */\n        --lumo-success-color: hsl(145, 65%, 42%);\n        --lumo-success-color-50pct: hsla(145, 65%, 42%, 0.5);\n        --lumo-success-color-10pct: hsla(145, 65%, 42%, 0.1);\n        --lumo-success-text-color: hsl(145, 85%, 47%);\n      }\n\n      html {\n        color: var(--lumo-body-text-color);\n        background-color: var(--lumo-base-color);\n      }\n\n      [theme~="dark"] {\n        color: var(--lumo-body-text-color);\n        background-color: var(--lumo-base-color);\n      }\n\n      h1,\n      h2,\n      h3,\n      h4,\n      h5,\n      h6 {\n        color: var(--lumo-header-text-color);\n      }\n\n      a {\n        color: var(--lumo-primary-text-color);\n      }\n\n      blockquote {\n        color: var(--lumo-secondary-text-color);\n      }\n\n      code,\n      pre {\n        background-color: var(--lumo-contrast-10pct);\n        border-radius: var(--lumo-border-radius-m);\n      }\n    </style>\n  </template>\n</dom-module><dom-module id="lumo-color-legacy">\n  <template>\n    <style include="lumo-color">\n      :host {\n        color: var(--lumo-body-text-color) !important;\n        background-color: var(--lumo-base-color) !important;\n      }\n    </style>\n  </template>\n</dom-module>',document.head.appendChild(BPt.content);const HPt=document.createElement("template");HPt.innerHTML='<custom-style>\n  <style>\n    @font-face {\n      font-family: \'lumo-icons\';\n      src: url(data:application/font-woff;charset=utf-8;base64, ) format(\'woff\');\n      font-weight: normal;\n      font-style: normal;\n    }\n\n    html {\n      --lumo-icons-align-center: "\\ea01";\n      --lumo-icons-align-left: "\\ea02";\n      --lumo-icons-align-right: "\\ea03";\n      --lumo-icons-angle-down: "\\ea04";\n      --lumo-icons-angle-left: "\\ea05";\n      --lumo-icons-angle-right: "\\ea06";\n      --lumo-icons-angle-up: "\\ea07";\n      --lumo-icons-arrow-down: "\\ea08";\n      --lumo-icons-arrow-left: "\\ea09";\n      --lumo-icons-arrow-right: "\\ea0a";\n      --lumo-icons-arrow-up: "\\ea0b";\n      --lumo-icons-bar-chart: "\\ea0c";\n      --lumo-icons-bell: "\\ea0d";\n      --lumo-icons-calendar: "\\ea0e";\n      --lumo-icons-checkmark: "\\ea0f";\n      --lumo-icons-chevron-down: "\\ea10";\n      --lumo-icons-chevron-left: "\\ea11";\n      --lumo-icons-chevron-right: "\\ea12";\n      --lumo-icons-chevron-up: "\\ea13";\n      --lumo-icons-clock: "\\ea14";\n      --lumo-icons-cog: "\\ea15";\n      --lumo-icons-cross: "\\ea16";\n      --lumo-icons-download: "\\ea17";\n      --lumo-icons-dropdown: "\\ea18";\n      --lumo-icons-edit: "\\ea19";\n      --lumo-icons-error: "\\ea1a";\n      --lumo-icons-eye: "\\ea1b";\n      --lumo-icons-eye-disabled: "\\ea1c";\n      --lumo-icons-menu: "\\ea1d";\n      --lumo-icons-minus: "\\ea1e";\n      --lumo-icons-ordered-list: "\\ea1f";\n      --lumo-icons-phone: "\\ea20";\n      --lumo-icons-photo: "\\ea21";\n      --lumo-icons-play: "\\ea22";\n      --lumo-icons-plus: "\\ea23";\n      --lumo-icons-redo: "\\ea24";\n      --lumo-icons-reload: "\\ea25";\n      --lumo-icons-search: "\\ea26";\n      --lumo-icons-undo: "\\ea27";\n      --lumo-icons-unordered-list: "\\ea28";\n      --lumo-icons-upload: "\\ea29";\n      --lumo-icons-user: "\\ea2a";\n    }\n  </style>\n</custom-style>',document.head.appendChild(HPt.content);const FPt=document.createElement("template");FPt.innerHTML="<custom-style>\n  <style>\n    html {\n      --lumo-size-xs: 1.625rem;\n      --lumo-size-s: 1.875rem;\n      --lumo-size-m: 2.25rem;\n      --lumo-size-l: 2.75rem;\n      --lumo-size-xl: 3.5rem;\n\n      /* Icons */\n      --lumo-icon-size-s: 1.25em;\n      --lumo-icon-size-m: 1.5em;\n      --lumo-icon-size-l: 2.25em;\n      /* For backwards compatibility */\n      --lumo-icon-size: var(--lumo-icon-size-m);\n    }\n  </style>\n</custom-style>",document.head.appendChild(FPt.content);const VPt=document.createElement("template");VPt.innerHTML="<custom-style>\n  <style>\n    html {\n      /* Square */\n      --lumo-space-xs: 0.25rem;\n      --lumo-space-s: 0.5rem;\n      --lumo-space-m: 1rem;\n      --lumo-space-l: 1.5rem;\n      --lumo-space-xl: 2.5rem;\n\n      /* Wide */\n      --lumo-space-wide-xs: calc(var(--lumo-space-xs) / 2) var(--lumo-space-xs);\n      --lumo-space-wide-s: calc(var(--lumo-space-s) / 2) var(--lumo-space-s);\n      --lumo-space-wide-m: calc(var(--lumo-space-m) / 2) var(--lumo-space-m);\n      --lumo-space-wide-l: calc(var(--lumo-space-l) / 2) var(--lumo-space-l);\n      --lumo-space-wide-xl: calc(var(--lumo-space-xl) / 2) var(--lumo-space-xl);\n\n      /* Tall */\n      --lumo-space-tall-xs: var(--lumo-space-xs) calc(var(--lumo-space-xs) / 2);\n      --lumo-space-tall-s: var(--lumo-space-s) calc(var(--lumo-space-s) / 2);\n      --lumo-space-tall-m: var(--lumo-space-m) calc(var(--lumo-space-m) / 2);\n      --lumo-space-tall-l: var(--lumo-space-l) calc(var(--lumo-space-l) / 2);\n      --lumo-space-tall-xl: var(--lumo-space-xl) calc(var(--lumo-space-xl) / 2);\n    }\n  </style>\n</custom-style>",document.head.appendChild(VPt.content);const UPt=document.createElement("template");UPt.innerHTML="<custom-style>\n  <style>\n    html {\n      /* Border radius */\n      --lumo-border-radius-s: 0.25em; /* Checkbox, badge, date-picker year indicator, etc */\n      --lumo-border-radius-m: var(--lumo-border-radius, 0.25em); /* Button, text field, menu overlay, etc */\n      --lumo-border-radius-l: 0.5em; /* Dialog, notification, etc */\n      --lumo-border-radius: 0.25em; /* Deprecated */\n\n      /* Shadow */\n      --lumo-box-shadow-xs: 0 1px 4px -1px var(--lumo-shade-50pct);\n      --lumo-box-shadow-s: 0 2px 4px -1px var(--lumo-shade-20pct), 0 3px 12px -1px var(--lumo-shade-30pct);\n      --lumo-box-shadow-m: 0 2px 6px -1px var(--lumo-shade-20pct), 0 8px 24px -4px var(--lumo-shade-40pct);\n      --lumo-box-shadow-l: 0 3px 18px -2px var(--lumo-shade-20pct), 0 12px 48px -6px var(--lumo-shade-40pct);\n      --lumo-box-shadow-xl: 0 4px 24px -3px var(--lumo-shade-20pct), 0 18px 64px -8px var(--lumo-shade-40pct);\n\n      /* Clickable element cursor */\n      --lumo-clickable-cursor: default;\n    }\n  </style>\n</custom-style>",document.head.appendChild(UPt.content);const jPt=document.createElement("template");jPt.innerHTML='<custom-style>\n  <style>\n    html {\n      /* Font families */\n      --lumo-font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n\n      /* Font sizes */\n      --lumo-font-size-xxs: .75rem;\n      --lumo-font-size-xs: .8125rem;\n      --lumo-font-size-s: .875rem;\n      --lumo-font-size-m: 1rem;\n      --lumo-font-size-l: 1.125rem;\n      --lumo-font-size-xl: 1.375rem;\n      --lumo-font-size-xxl: 1.75rem;\n      --lumo-font-size-xxxl: 2.5rem;\n\n      /* Line heights */\n      --lumo-line-height-xs: 1.25;\n      --lumo-line-height-s: 1.375;\n      --lumo-line-height-m: 1.625;\n    }\n\n  </style>\n</custom-style><dom-module id="lumo-typography">\n  <template>\n    <style>\n      html {\n        font-family: var(--lumo-font-family);\n        font-size: var(--lumo-font-size, var(--lumo-font-size-m));\n        line-height: var(--lumo-line-height-m);\n        -webkit-text-size-adjust: 100%;\n        -webkit-font-smoothing: antialiased;\n        -moz-osx-font-smoothing: grayscale;\n      }\n\n      /* Can’t combine with the above selector because that doesn’t work in browsers without native shadow dom */\n      :host {\n        font-family: var(--lumo-font-family);\n        font-size: var(--lumo-font-size, var(--lumo-font-size-m));\n        line-height: var(--lumo-line-height-m);\n        -webkit-text-size-adjust: 100%;\n        -webkit-font-smoothing: antialiased;\n        -moz-osx-font-smoothing: grayscale;\n      }\n\n      small,\n      [theme~="font-size-s"] {\n        font-size: var(--lumo-font-size-s);\n        line-height: var(--lumo-line-height-s);\n      }\n\n      [theme~="font-size-xs"] {\n        font-size: var(--lumo-font-size-xs);\n        line-height: var(--lumo-line-height-xs);\n      }\n\n      h1,\n      h2,\n      h3,\n      h4,\n      h5,\n      h6 {\n        font-weight: 600;\n        line-height: var(--lumo-line-height-xs);\n        margin-top: 1.25em;\n      }\n\n      h1 {\n        font-size: var(--lumo-font-size-xxxl);\n        margin-bottom: 0.75em;\n      }\n\n      h2 {\n        font-size: var(--lumo-font-size-xxl);\n        margin-bottom: 0.5em;\n      }\n\n      h3 {\n        font-size: var(--lumo-font-size-xl);\n        margin-bottom: 0.5em;\n      }\n\n      h4 {\n        font-size: var(--lumo-font-size-l);\n        margin-bottom: 0.5em;\n      }\n\n      h5 {\n        font-size: var(--lumo-font-size-m);\n        margin-bottom: 0.25em;\n      }\n\n      h6 {\n        font-size: var(--lumo-font-size-xs);\n        margin-bottom: 0;\n        text-transform: uppercase;\n        letter-spacing: 0.03em;\n      }\n\n      p,\n      blockquote {\n        margin-top: 0.5em;\n        margin-bottom: 0.75em;\n      }\n\n      a {\n        text-decoration: none;\n      }\n\n      a:hover {\n        text-decoration: underline;\n      }\n\n      hr {\n        display: block;\n        align-self: stretch;\n        height: 1px;\n        border: 0;\n        padding: 0;\n        margin: var(--lumo-space-s) calc(var(--lumo-border-radius-m) / 2);\n        background-color: var(--lumo-contrast-10pct);\n      }\n\n      blockquote {\n        border-left: 2px solid var(--lumo-contrast-30pct);\n      }\n\n      b,\n      strong {\n        font-weight: 600;\n      }\n\n      /* RTL specific styles */\n\n      blockquote[dir="rtl"] {\n        border-left: none;\n        border-right: 2px solid var(--lumo-contrast-30pct);\n      }\n\n    </style>\n  </template>\n</dom-module>',document.head.appendChild(jPt.content);const GPt=_e`<dom-module id="lumo-checkbox" theme-for="vaadin-checkbox">
  <template>
    <style include="lumo-checkbox-style lumo-checkbox-effects">
      /* IE11 only */
      ::-ms-backdrop,
      [part="checkbox"] {
        line-height: 1;
      }
    </style>
  </template>
</dom-module><dom-module id="lumo-checkbox-style">
  <template>
    <style>
      :host {
        -webkit-tap-highlight-color: transparent;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        cursor: default;
        outline: none;
      }

      [part="label"]:not([empty]) {
        margin: 0.1875em 0.875em 0.1875em 0.375em;
      }

      [part="checkbox"] {
        width: calc(1em + 2px);
        height: calc(1em + 2px);
        margin: 0.1875em;
        position: relative;
        border-radius: var(--lumo-border-radius-s);
        background-color: var(--lumo-contrast-20pct);
        transition: transform 0.2s cubic-bezier(.12, .32, .54, 2), background-color 0.15s;
        pointer-events: none;
        line-height: 1.2;
      }

      :host([indeterminate]) [part="checkbox"],
      :host([checked]) [part="checkbox"] {
        background-color: var(--lumo-primary-color);
      }

      /* Needed to align the checkbox nicely on the baseline */
      [part="checkbox"]::before {
        content: "\\2003";
      }

      /* Checkmark */
      [part="checkbox"]::after {
        content: "";
        display: inline-block;
        width: 0;
        height: 0;
        border: 0 solid var(--lumo-primary-contrast-color);
        border-width: 0.1875em 0 0 0.1875em;
        box-sizing: border-box;
        transform-origin: 0 0;
        position: absolute;
        top: 0.8125em;
        left: 0.5em;
        transform: scale(0.55) rotate(-135deg);
        opacity: 0;
      }

      :host([checked]) [part="checkbox"]::after {
        opacity: 1;
        width: 0.625em;
        height: 1.0625em;
      }

      /* Indeterminate checkmark */

      :host([indeterminate]) [part="checkbox"]::after {
        transform: none;
        opacity: 1;
        top: 45%;
        height: 10%;
        left: 22%;
        right: 22%;
        width: auto;
        border: 0;
        background-color: var(--lumo-primary-contrast-color);
        transition: opacity 0.25s;
      }

      /* Focus ring */

      :host([focus-ring]) [part="checkbox"] {
        box-shadow: 0 0 0 3px var(--lumo-primary-color-50pct);
      }

      /* Disabled */

      :host([disabled]) {
        pointer-events: none;
        color: var(--lumo-disabled-text-color);
      }

      :host([disabled]) [part="label"] ::slotted(*) {
        color: inherit;
      }

      :host([disabled]) [part="checkbox"] {
        background-color: var(--lumo-contrast-10pct);
      }

      :host([disabled]) [part="checkbox"]::after {
        border-color: var(--lumo-contrast-30pct);
      }

      :host([indeterminate][disabled]) [part="checkbox"]::after {
        background-color: var(--lumo-contrast-30pct);
      }

      /* RTL specific styles */

      :host([dir="rtl"]) [part="label"]:not([empty]) {
        margin: 0.1875em 0.375em 0.1875em 0.875em;
      }
    </style>
  </template>
</dom-module><dom-module id="lumo-checkbox-effects">
  <template>
    <style>
      /* Transition the checkmark if activated with the mouse (disabled for grid select-all this way) */
      :host(:hover) [part="checkbox"]::after {
        transition: width 0.1s, height 0.25s;
      }

      /* Used for activation "halo" */
      [part="checkbox"]::before {
        color: transparent;
        display: inline-block;
        width: 100%;
        height: 100%;
        border-radius: inherit;
        background-color: inherit;
        transform: scale(1.4);
        opacity: 0;
        transition: transform 0.1s, opacity 0.8s;
      }

      /* Hover */

      :host(:not([checked]):not([indeterminate]):not([disabled]):hover) [part="checkbox"] {
        background-color: var(--lumo-contrast-30pct);
      }

      /* Disable hover for touch devices */
      @media (pointer: coarse) {
        :host(:not([checked]):not([indeterminate]):not([disabled]):hover) [part="checkbox"] {
          background-color: var(--lumo-contrast-20pct);
        }
      }

      /* Active */

      :host([active]) [part="checkbox"] {
        transform: scale(0.9);
        transition-duration: 0.05s;
      }

      :host([active][checked]) [part="checkbox"] {
        transform: scale(1.1);
      }

      :host([active]:not([checked])) [part="checkbox"]::before {
        transition-duration: 0.01s, 0.01s;
        transform: scale(0);
        opacity: 0.4;
      }
    </style>
  </template>
</dom-module>`;document.head.appendChild(GPt.content);const WPt=t=>class extends t{static get properties(){return{theme:{type:String,readOnly:!0}}}attributeChangedCallback(t,e,n){super.attributeChangedCallback(t,e,n),"theme"===t&&this._setTheme(n)}},qPt=t=>class extends(WPt(t)){static finalize(){super.finalize();const t=this.prototype._template,e=this.template&&this.template.parentElement&&this.template.parentElement.id===this.is,n=Object.getPrototypeOf(this.prototype)._template;n&&!e&&Array.from(n.content.querySelectorAll("style[include]")).forEach((e=>{this._includeStyle(e.getAttribute("include"),t)})),this._includeMatchingThemes(t)}static _includeMatchingThemes(t){const e=B.prototype.modules;let n=!1;const i=this.is+"-default-theme";Object.keys(e).sort(((t,e)=>{const n=0===t.indexOf("vaadin-"),i=0===e.indexOf("vaadin-"),r=["lumo-","material-"],o=r.filter((e=>0===t.indexOf(e))).length>0,a=r.filter((t=>0===e.indexOf(t))).length>0;return n!==i?n?-1:1:o!==a?o?-1:1:0})).forEach((r=>{if(r!==i){const i=e[r].getAttribute("theme-for");i&&i.split(" ").forEach((e=>{new RegExp("^"+e.split("*").join(".*")+"$").test(this.is)&&(n=!0,this._includeStyle(r,t))}))}})),!n&&e[i]&&this._includeStyle(i,t)}static _includeStyle(t,e){if(e&&!e.content.querySelector(`style[include="${t}"]`)){const n=document.createElement("style");n.setAttribute("include",t),e.content.appendChild(n)}}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */;let YPt=!1;window.addEventListener("keydown",(()=>{YPt=!0}),{capture:!0}),window.addEventListener("mousedown",(()=>{YPt=!1}),{capture:!0});const XPt=t=>class extends((t=>class extends t{static get properties(){var t={tabindex:{type:Number,value:0,reflectToAttribute:!0,observer:"_tabindexChanged"}};return window.ShadyDOM&&(t.tabIndex=t.tabindex),t}})(t)){static get properties(){return{autofocus:{type:Boolean},_previousTabIndex:{type:Number},disabled:{type:Boolean,observer:"_disabledChanged",reflectToAttribute:!0},_isShiftTabbing:{type:Boolean}}}ready(){this.addEventListener("focusin",(t=>{t.composedPath()[0]===this?this.contains(t.relatedTarget)||this._focus():-1===t.composedPath().indexOf(this.focusElement)||this.disabled||this._setFocused(!0)})),this.addEventListener("focusout",(t=>this._setFocused(!1))),super.ready();const t=t=>{t.composed||t.target.dispatchEvent(new CustomEvent(t.type,{bubbles:!0,composed:!0,cancelable:!1}))};this.shadowRoot.addEventListener("focusin",t),this.shadowRoot.addEventListener("focusout",t),this.addEventListener("keydown",(t=>{if(!t.defaultPrevented&&9===t.keyCode)if(t.shiftKey)this._isShiftTabbing=!0,HTMLElement.prototype.focus.apply(this),this._setFocused(!1),setTimeout((()=>this._isShiftTabbing=!1),0);else{const t=window.navigator.userAgent.match(/Firefox\/(\d\d\.\d)/);if(t&&parseFloat(t[1])>=63&&parseFloat(t[1])<66&&this.parentNode&&this.nextSibling){const t=document.createElement("input");t.style.position="absolute",t.style.opacity="0",t.tabIndex=this.tabIndex,this.parentNode.insertBefore(t,this.nextSibling),t.focus(),t.addEventListener("focusout",(()=>this.parentNode.removeChild(t)))}}})),this.autofocus&&!this.disabled&&window.requestAnimationFrame((()=>{this._focus(),this._setFocused(!0),this.setAttribute("focus-ring","")}))}disconnectedCallback(){super.disconnectedCallback(),this.hasAttribute("focused")&&this._setFocused(!1)}_setFocused(t){t?this.setAttribute("focused",""):this.removeAttribute("focused"),t&&YPt?this.setAttribute("focus-ring",""):this.removeAttribute("focus-ring")}get focusElement(){return window.console.warn(`Please implement the 'focusElement' property in <${this.localName}>`),this}_focus(){this.focusElement&&!this._isShiftTabbing&&(this.focusElement.focus(),this._setFocused(!0))}focus(){this.focusElement&&!this.disabled&&(this.focusElement.focus(),this._setFocused(!0))}blur(){this.focusElement&&(this.focusElement.blur(),this._setFocused(!1))}_disabledChanged(t){this.focusElement.disabled=t,t?(this.blur(),this._previousTabIndex=this.tabindex,this.tabindex=-1,this.setAttribute("aria-disabled","true")):(void 0!==this._previousTabIndex&&(this.tabindex=this._previousTabIndex),this.removeAttribute("aria-disabled"))}_tabindexChanged(t){void 0!==t&&(this.focusElement.tabIndex=t),this.disabled&&this.tabindex&&(-1!==this.tabindex&&(this._previousTabIndex=this.tabindex),this.tabindex=t=void 0),window.ShadyDOM&&this.setProperties({tabIndex:t,tabindex:t})}click(){this.disabled||super.click()}}
/**
    @license
    Copyright (c) 2020 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */;class $Pt{static detectScrollType(){const t=document.createElement("div");t.textContent="ABCD",t.dir="rtl",t.style.fontSize="14px",t.style.width="4px",t.style.height="1px",t.style.position="absolute",t.style.top="-1000px",t.style.overflow="scroll",document.body.appendChild(t);let e="reverse";return t.scrollLeft>0?e="default":(t.scrollLeft=2,t.scrollLeft<2&&(e="negative")),document.body.removeChild(t),e}static getNormalizedScrollLeft(t,e,n){const{scrollLeft:i}=n;if("rtl"!==e||!t)return i;switch(t){case"negative":return n.scrollWidth-n.clientWidth+i;case"reverse":return n.scrollWidth-n.clientWidth-i}return i}static setNormalizedScrollLeft(t,e,n,i){if("rtl"===e&&t)switch(t){case"negative":n.scrollLeft=n.clientWidth-n.scrollWidth+i;break;case"reverse":n.scrollLeft=n.scrollWidth-n.clientWidth-i;break;default:n.scrollLeft=i}else n.scrollLeft=i}}const KPt=[];let ZPt;new MutationObserver((function(){const t=QPt();KPt.forEach((e=>{JPt(e,t)}))})).observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]});const JPt=function(t,e){e?t.setAttribute("dir",e):t.removeAttribute("dir")},QPt=function(){return document.documentElement.getAttribute("dir")},tNt=t=>class extends t{static get properties(){return{dir:{type:String,readOnly:!0}}}static finalize(){super.finalize(),ZPt||(ZPt=$Pt.detectScrollType())}connectedCallback(){super.connectedCallback(),this.hasAttribute("dir")||(this.__subscribe(),JPt(this,QPt()))}attributeChangedCallback(t,e,n){if(super.attributeChangedCallback(t,e,n),"dir"!==t)return;const i=n===QPt()&&-1===KPt.indexOf(this),r=!n&&e&&-1===KPt.indexOf(this),o=n!==QPt()&&e===QPt();i||r?(this.__subscribe(),JPt(this,QPt())):o&&this.__subscribe(!1)}disconnectedCallback(){super.disconnectedCallback(),this.__subscribe(!1),this.removeAttribute("dir")}__subscribe(t=!0){t?-1===KPt.indexOf(this)&&KPt.push(this):KPt.indexOf(this)>-1&&KPt.splice(KPt.indexOf(this),1)}__getNormalizedScrollLeft(t){return $Pt.getNormalizedScrollLeft(ZPt,this.getAttribute("dir")||"ltr",t)}__setNormalizedScrollLeft(t,e){return $Pt.setNormalizedScrollLeft(ZPt,this.getAttribute("dir")||"ltr",t,e)}},eNt=/\/\*\*\s+vaadin-dev-mode:start([\s\S]*)vaadin-dev-mode:end\s+\*\*\//i,nNt=window.Vaadin&&window.Vaadin.Flow&&window.Vaadin.Flow.clients;function iNt(t,e){if("function"!=typeof t)return;const n=eNt.exec(t.toString());if(n)try{t=new Function(n[1])}catch(t){console.log("vaadin-development-mode-detector: uncommentAndRun() failed",t)}return t(e)}function rNt(){}window.Vaadin=window.Vaadin||{},void 0===window.Vaadin.developmentMode&&(window.Vaadin.developmentMode=(function oNt(){try{return!!(function t(){return localStorage.getItem("vaadin.developmentmode.force")})()||!!(function e(){return["localhost","127.0.0.1"].indexOf(window.location.hostname)>=0})()&&(nNt?!(function n(){return!!(nNt&&Object.keys(nNt).map((t=>nNt[t])).filter((t=>t.productionMode)).length>0)})():!(function i(){return iNt((function t(){return!0}))})())}catch(t){return!1}})());const aNt=function(){return(function(t,e){if(window.Vaadin.developmentMode)return iNt(t,void 0)})(rNt)};let sNt;window.Vaadin||(window.Vaadin={}),window.Vaadin.registrations=window.Vaadin.registrations||[],window.Vaadin.developmentModeCallback=window.Vaadin.developmentModeCallback||{},window.Vaadin.developmentModeCallback["vaadin-usage-statistics"]=function(){aNt&&aNt()};const lNt=new Set,cNt=t=>class extends(tNt(t)){static finalize(){super.finalize();const{is:t}=this;t&&!lNt.has(t)&&(window.Vaadin.registrations.push(this),lNt.add(t),window.Vaadin.developmentModeCallback&&(sNt=En.debounce(sNt,yt,(()=>{window.Vaadin.developmentModeCallback["vaadin-usage-statistics"]()})),Cn(sNt)))}constructor(){super(),null===document.doctype&&console.warn('Vaadin components require the "standards mode" declaration. Please add <!DOCTYPE html> to the HTML document.')}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */;class uNt extends(cNt(XPt(qPt(di(ye))))){static get template(){return _e`
    <style>
      :host {
        display: inline-block;
      }

      :host([hidden]) {
        display: none !important;
      }

      label {
        display: inline-flex;
        align-items: baseline;
        outline: none;
      }

      [part="checkbox"] {
        position: relative;
        display: inline-block;
        flex: none;
      }

      input[type="checkbox"] {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        width: 100%;
        height: 100%;
        opacity: 0;
        cursor: inherit;
        margin: 0;
      }

      :host([disabled]) {
        -webkit-tap-highlight-color: transparent;
      }
    </style>

    <label>
      <span part="checkbox">
        <input type="checkbox" checked="{{checked::change}}" disabled\$="[[disabled]]" indeterminate="{{indeterminate::change}}" role="presentation" tabindex="-1">
      </span>

      <span part="label">
        <slot></slot>
      </span>
    </label>
`}static get is(){return"vaadin-checkbox"}static get version(){return"2.5.0"}static get properties(){return{checked:{type:Boolean,value:!1,notify:!0,observer:"_checkedChanged",reflectToAttribute:!0},indeterminate:{type:Boolean,notify:!0,observer:"_indeterminateChanged",reflectToAttribute:!0,value:!1},value:{type:String,value:"on"},_nativeCheckbox:{type:Object}}}constructor(){super()}get name(){return this.checked?this._storedName:""}set name(t){this._storedName=t}ready(){super.ready(),this.setAttribute("role","checkbox"),this._nativeCheckbox=this.shadowRoot.querySelector('input[type="checkbox"]'),this.addEventListener("click",this._handleClick.bind(this)),this._addActiveListeners();const t=this.getAttribute("name");t&&(this.name=t),this.shadowRoot.querySelector('[part~="label"]').querySelector("slot").addEventListener("slotchange",this._updateLabelAttribute.bind(this)),this._updateLabelAttribute()}_updateLabelAttribute(){const t=this.shadowRoot.querySelector('[part~="label"]'),e=t.firstElementChild.assignedNodes();this._isAssignedNodesEmpty(e)?t.setAttribute("empty",""):t.removeAttribute("empty")}_isAssignedNodesEmpty(t){return 0===t.length||1==t.length&&t[0].nodeType==Node.TEXT_NODE&&""===t[0].textContent.trim()}_checkedChanged(t){this.setAttribute("aria-checked",this.indeterminate?"mixed":Boolean(t))}_indeterminateChanged(t){this.setAttribute("aria-checked",t?"mixed":this.checked)}_addActiveListeners(){this._addEventListenerToNode(this,"down",(t=>{this.__interactionsAllowed(t)&&this.setAttribute("active","")})),this._addEventListenerToNode(this,"up",(()=>this.removeAttribute("active"))),this.addEventListener("keydown",(t=>{this.__interactionsAllowed(t)&&32===t.keyCode&&(t.preventDefault(),this.setAttribute("active",""))})),this.addEventListener("keyup",(t=>{this.__interactionsAllowed(t)&&32===t.keyCode&&(t.preventDefault(),this._toggleChecked(),this.removeAttribute("active"),this.indeterminate&&(this.indeterminate=!1))}))}get focusElement(){return this.shadowRoot.querySelector("input")}__interactionsAllowed(t){return!this.disabled&&"a"!==t.target.localName}_handleClick(t){this.__interactionsAllowed(t)&&(this.indeterminate?(this.indeterminate=!1,t.preventDefault(),this._toggleChecked()):t.composedPath()[0]!==this._nativeCheckbox&&(t.preventDefault(),this._toggleChecked()))}_toggleChecked(){this.checked=!this.checked,this.dispatchEvent(new CustomEvent("change",{composed:!1,bubbles:!0}))}}customElements.define(uNt.is,uNt);const hNt=_e`<dom-module id="lumo-grid" theme-for="vaadin-grid">
  <template>
    <style>
      :host {
        font-family: var(--lumo-font-family);
        font-size: var(--lumo-font-size-m);
        line-height: var(--lumo-line-height-s);
        color: var(--lumo-body-text-color);
        background-color: var(--lumo-base-color);
        box-sizing: border-box;
        -webkit-text-size-adjust: 100%;
        -webkit-tap-highlight-color: transparent;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;

        /* For internal use only */
        --_lumo-grid-border-color: var(--lumo-contrast-20pct);
        --_lumo-grid-secondary-border-color: var(--lumo-contrast-10pct);
        --_lumo-grid-border-width: 1px;
        --_lumo-grid-selected-row-color: var(--lumo-primary-color-10pct);
      }

      /* No (outer) border */

      :host(:not([theme~="no-border"])) {
        border: var(--_lumo-grid-border-width) solid var(--_lumo-grid-border-color);
      }

      /* Cell styles */

      [part~="cell"] {
        min-height: var(--lumo-size-m);
        background-color: var(--lumo-base-color);
      }

      [part~="cell"] ::slotted(vaadin-grid-cell-content) {
        cursor: default;
        padding: var(--lumo-space-xs) var(--lumo-space-m);
      }

      /* Apply row borders by default and introduce the "no-row-borders" variant */
      :host(:not([theme~="no-row-borders"])) [part~="cell"]:not([part~="details-cell"]) {
        border-top: var(--_lumo-grid-border-width) solid var(--_lumo-grid-secondary-border-color);
      }

      /* Hide first body row top border */
      :host(:not([theme~="no-row-borders"])) [part="row"][first] [part~="cell"]:not([part~="details-cell"]) {
        border-top: 0;
        min-height: calc(var(--lumo-size-m) - var(--_lumo-grid-border-width));
      }

      /* Focus-ring */

      [part~="cell"]:focus {
        outline: none;
      }

      :host([navigating]) [part~="cell"]:focus::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        pointer-events: none;
        box-shadow: inset 0 0 0 2px var(--lumo-primary-color-50pct);
      }

      /* Drag and Drop styles */
      :host([dragover])::after {
        content: "";
        position: absolute;
        z-index: 100;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        pointer-events: none;
        box-shadow: inset 0 0 0 2px var(--lumo-primary-color-50pct);
      }

      [part~="row"][dragover] {
        z-index: 100 !important;
      }

      [part~="row"][dragover] [part~="cell"] {
        overflow: visible;
      }

      [part~="row"][dragover] [part~="cell"]::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        height: calc(var(--_lumo-grid-border-width) + 2px);
        pointer-events: none;
        background: var(--lumo-primary-color-50pct);
      }

      :host([theme~="no-row-borders"]) [dragover] [part~="cell"]::after {
        height: 2px;
      }

      [part~="row"][dragover="below"] [part~="cell"]::after {
        top: 100%;
        bottom: auto;
        margin-top: -1px;
      }

      [part~="row"][dragover="above"] [part~="cell"]::after {
        top: auto;
        bottom: 100%;
        margin-bottom: -1px;
      }

      [part~="row"][details-opened][dragover="below"] [part~="cell"]:not([part~="details-cell"])::after,
      [part~="row"][details-opened][dragover="above"] [part~="details-cell"]::after {
        display: none;
      }

      [part~="row"][dragover][dragover="on-top"] [part~="cell"]::after {
        height: 100%;
      }

      [part~="row"][dragstart] {
        /* Add bottom-space to the row so the drag number doesn't get clipped. Needed for IE/Edge */
        border-bottom: 100px solid transparent;
        z-index: 100 !important;
        opacity: 0.9;
      }

      [part~="row"][dragstart] [part~="cell"] {
        border: none !important;
        box-shadow: none !important;
      }

      [part~="row"][dragstart] [part~="cell"][last-column] {
        border-radius: 0 var(--lumo-border-radius-s) var(--lumo-border-radius-s) 0;
      }

      [part~="row"][dragstart] [part~="cell"][first-column] {
        border-radius: var(--lumo-border-radius-s) 0 0 var(--lumo-border-radius-s);
      }

      [ios] [part~="row"][dragstart] [part~="cell"] {
        background: var(--lumo-primary-color-50pct);
      }

      #scroller:not([ios]) [part~="row"][dragstart]:not([dragstart=""])::after {
        display: block;
        position: absolute;
        left: var(--_grid-drag-start-x);
        top: var(--_grid-drag-start-y);
        z-index: 100;
        content: attr(dragstart);
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        padding: calc(var(--lumo-space-xs) * 0.8);
        color: var(--lumo-error-contrast-color);
        background-color: var(--lumo-error-color);
        border-radius: var(--lumo-border-radius-m);
        font-family: var(--lumo-font-family);
        font-size: var(--lumo-font-size-xxs);
        line-height: 1;
        font-weight: 500;
        text-transform: initial;
        letter-spacing: initial;
        min-width: calc(var(--lumo-size-s) * 0.7);
        text-align: center;
      }

      /* Headers and footers */

      [part~="header-cell"] ::slotted(vaadin-grid-cell-content),
      [part~="footer-cell"] ::slotted(vaadin-grid-cell-content),
      [part~="reorder-ghost"] {
        font-size: var(--lumo-font-size-s);
        font-weight: 500;
      }

      [part~="footer-cell"] ::slotted(vaadin-grid-cell-content) {
        font-weight: 400;
      }

      [part="row"]:only-child [part~="header-cell"] {
        min-height: var(--lumo-size-xl);
      }

      /* Header borders */

      /* Hide first header row top border */
      :host(:not([theme~="no-row-borders"])) [part="row"]:first-child [part~="header-cell"] {
        border-top: 0;
      }

      [part="row"]:last-child [part~="header-cell"] {
        border-bottom: var(--_lumo-grid-border-width) solid transparent;
      }

      :host(:not([theme~="no-row-borders"])) [part="row"]:last-child [part~="header-cell"] {
        border-bottom-color: var(--_lumo-grid-secondary-border-color);
      }

      /* Overflow uses a stronger border color */
      :host([overflow~="top"]) [part="row"]:last-child [part~="header-cell"] {
        border-bottom-color: var(--_lumo-grid-border-color);
      }

      /* Footer borders */

      [part="row"]:first-child [part~="footer-cell"] {
        border-top: var(--_lumo-grid-border-width) solid transparent;
      }

      :host(:not([theme~="no-row-borders"])) [part="row"]:first-child [part~="footer-cell"] {
        border-top-color: var(--_lumo-grid-secondary-border-color);
      }

      /* Overflow uses a stronger border color */
      :host([overflow~="bottom"]) [part="row"]:first-child [part~="footer-cell"] {
        border-top-color: var(--_lumo-grid-border-color);
      }

      /* Column reordering */

      :host([reordering]) [part~="cell"] {
        background: linear-gradient(var(--lumo-shade-20pct), var(--lumo-shade-20pct)) var(--lumo-base-color);
      }

      :host([reordering]) [part~="cell"][reorder-status="allowed"] {
        background: var(--lumo-base-color);
      }

      :host([reordering]) [part~="cell"][reorder-status="dragging"] {
        background: linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct)) var(--lumo-base-color);
      }

      [part~="reorder-ghost"] {
        opacity: 0.85;
        box-shadow: var(--lumo-box-shadow-s);
        /* TODO Use the same styles as for the cell element (reorder-ghost copies styles from the cell element) */
        padding: var(--lumo-space-s) var(--lumo-space-m) !important;
      }

      /* Column resizing */

      [part="resize-handle"] {
        width: 3px;
        background-color: var(--lumo-primary-color-50pct);
        opacity: 0;
        transition: opacity 0.2s;
      }

      :host(:not([reordering])) *:not([column-resizing]) [part~="cell"]:hover [part="resize-handle"],
      [part="resize-handle"]:active {
        opacity: 1;
        transition-delay: 0.15s;
      }

      /* Column borders */

      :host([theme~="column-borders"]) [part~="cell"]:not([last-column]):not([part~="details-cell"]) {
        border-right: var(--_lumo-grid-border-width) solid var(--_lumo-grid-secondary-border-color);
      }

      /* Frozen columns */

      [last-frozen] {
        border-right: var(--_lumo-grid-border-width) solid transparent;
        overflow: hidden;
      }

      :host([overflow~="left"]) [part~="cell"][last-frozen]:not([part~="details-cell"]) {
        border-right-color: var(--_lumo-grid-border-color);
      }

      /* Row stripes */

      :host([theme~="row-stripes"]) [part~="row"]:not([odd]) [part~="body-cell"],
      :host([theme~="row-stripes"]) [part~="row"]:not([odd]) [part~="details-cell"] {
        background-image: linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
        background-repeat: repeat-x;
      }

      /* Selected row */

      /* Raise the selected rows above unselected rows (so that box-shadow can cover unselected rows) */
      :host(:not([reordering])) [part~="row"][selected] {
        z-index: 1;
      }

      :host(:not([reordering])) [part~="row"][selected] [part~="body-cell"]:not([part~="details-cell"]) {
        background-image: linear-gradient(var(--_lumo-grid-selected-row-color), var(--_lumo-grid-selected-row-color));
        background-repeat: repeat;
      }

      /* Cover the border of an unselected row */
      :host(:not([theme~="no-row-borders"])) [part~="row"][selected] [part~="cell"]:not([part~="details-cell"]) {
        box-shadow: 0 var(--_lumo-grid-border-width) 0 0 var(--_lumo-grid-selected-row-color);
      }

      /* Compact */

      :host([theme~="compact"]) [part="row"]:only-child [part~="header-cell"] {
        min-height: var(--lumo-size-m);
      }

      :host([theme~="compact"]) [part~="cell"] {
        min-height: var(--lumo-size-s);
      }

      :host([theme~="compact"]) [part="row"][first] [part~="cell"]:not([part~="details-cell"]) {
        min-height: calc(var(--lumo-size-s) - var(--_lumo-grid-border-width));
      }

      :host([theme~="compact"]) [part~="cell"] ::slotted(vaadin-grid-cell-content) {
        padding: var(--lumo-space-xs) var(--lumo-space-s);
      }

      /* Wrap cell contents */

      :host([theme~="wrap-cell-content"]) [part~="cell"] ::slotted(vaadin-grid-cell-content) {
        white-space: normal;
      }

      /* RTL specific styles */

      :host([dir="rtl"]) [part~="row"][dragstart] [part~="cell"][last-column] {
        border-radius: var(--lumo-border-radius-s) 0 0 var(--lumo-border-radius-s);
      }

      :host([dir="rtl"]) [part~="row"][dragstart] [part~="cell"][first-column] {
        border-radius: 0 var(--lumo-border-radius-s) var(--lumo-border-radius-s) 0;
      }

      :host([dir="rtl"][theme~="column-borders"]) [part~="cell"]:not([last-column]):not([part~="details-cell"]) {
        border-right: none;
        border-left: var(--_lumo-grid-border-width) solid var(--_lumo-grid-secondary-border-color);
      }

      :host([dir="rtl"]) [last-frozen] {
        border-right: none;
        border-left: var(--_lumo-grid-border-width) solid transparent;
      }

      :host([dir="rtl"][overflow~="right"]) [part~="cell"][last-frozen]:not([part~="details-cell"]) {
        border-left-color: var(--_lumo-grid-border-color);
      }
    </style>
  </template>
</dom-module><dom-module theme-for="vaadin-checkbox" id="vaadin-grid-select-all-checkbox-lumo">
  <template>
    <style>
      :host(.vaadin-grid-select-all-checkbox) {
        font-size: var(--lumo-font-size-m);
      }
   </style>
  </template>
</dom-module>`;document.head.appendChild(hNt.content);
/**
    @license
    Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
    */
var dNt=navigator.userAgent.match(/iP(?:hone|ad;(?: U;)? CPU) OS (\d+)/),pNt=dNt&&dNt[1]>=8,fNt=_t,mNt=yt,gNt=vt;const _Nt=Nr({behaviors:[mo,zo],_ratio:.5,_scrollerPaddingTop:0,_scrollPosition:0,_physicalSize:0,_physicalAverage:0,_physicalAverageCount:0,_physicalTop:0,_virtualCount:0,_estScrollHeight:0,_scrollHeight:0,_viewportHeight:0,_viewportWidth:0,_physicalItems:null,_physicalSizes:null,_firstVisibleIndexVal:null,_collection:null,_lastVisibleIndexVal:null,_maxPages:2,_focusedVirtualIndex:-1,_itemsPerRow:1,_rowHeight:0,_templateCost:0,get _physicalBottom(){return this._physicalTop+this._physicalSize},get _scrollBottom(){return this._scrollPosition+this._viewportHeight},get _virtualEnd(){return this._virtualStart+this._physicalCount-1},get _hiddenContentSize(){return(this.grid?this._physicalRows*this._rowHeight:this._physicalSize)-this._viewportHeight},get _maxScrollTop(){return this._estScrollHeight-this._viewportHeight+this._scrollOffset},get _maxVirtualStart(){var t=this._convertIndexToCompleteRow(this._virtualCount);return Math.max(0,t-this._physicalCount)},set _virtualStart(t){t=this._clamp(t,0,this._maxVirtualStart),this.grid&&(t-=t%this._itemsPerRow),this._virtualStartVal=t},get _virtualStart(){return this._virtualStartVal||0},set _physicalStart(t){(t%=this._physicalCount)<0&&(t=this._physicalCount+t),this.grid&&(t-=t%this._itemsPerRow),this._physicalStartVal=t},get _physicalStart(){return this._physicalStartVal||0},get _physicalEnd(){return(this._physicalStart+this._physicalCount-1)%this._physicalCount},set _physicalCount(t){this._physicalCountVal=t},get _physicalCount(){return this._physicalCountVal||0},get _optPhysicalSize(){return 0===this._viewportHeight?1/0:this._viewportHeight*this._maxPages},get _isVisible(){return Boolean(this.offsetWidth||this.offsetHeight)},get firstVisibleIndex(){var t=this._firstVisibleIndexVal;if(null==t){var e=this._physicalTop+this._scrollOffset;t=this._iterateItems((function(t,n){return(e+=this._getPhysicalSizeIncrement(t))>this._scrollPosition?this.grid?n-n%this._itemsPerRow:n:this.grid&&this._virtualCount-1===n?n-n%this._itemsPerRow:void 0}))||0,this._firstVisibleIndexVal=t}return t},get lastVisibleIndex(){var t=this._lastVisibleIndexVal;if(null==t){if(this.grid)t=Math.min(this._virtualCount,this.firstVisibleIndex+this._estRowsInView*this._itemsPerRow-1);else{var e=this._physicalTop+this._scrollOffset;this._iterateItems((function(n,i){e<this._scrollBottom&&(t=i),e+=this._getPhysicalSizeIncrement(n)}))}this._lastVisibleIndexVal=t}return t},get _scrollOffset(){return this._scrollerPaddingTop},attached:function(){this._debounce("_render",this._render,fNt),this.listen(this,"iron-resize","_resizeHandler")},detached:function(){this.unlisten(this,"iron-resize","_resizeHandler")},updateViewportBoundaries:function(){var t=window.getComputedStyle(this);this._scrollerPaddingTop=this.scrollTarget===this?0:parseInt(t["padding-top"],10),this._isRTL=Boolean("rtl"===t.direction),this._viewportWidth=this.$.items.offsetWidth,this._viewportHeight=this._scrollTargetHeight,this.grid&&this._updateGridMetrics()},_scrollHandler:function(){var t=Math.max(0,Math.min(this._maxScrollTop,this._scrollTop)),e=t-this._scrollPosition,n=e>=0;if(this._scrollPosition=t,this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null,Math.abs(e)>this._physicalSize&&this._physicalSize>0){e-=this._scrollOffset;var i=Math.round(e/this._physicalAverage)*this._itemsPerRow;this._virtualStart=this._virtualStart+i,this._physicalStart=this._physicalStart+i,this._physicalTop=Math.floor(this._virtualStart/this._itemsPerRow)*this._physicalAverage,this._update()}else if(this._physicalCount>0){var r=this._getReusables(n);n?(this._physicalTop=r.physicalTop,this._virtualStart=this._virtualStart+r.indexes.length,this._physicalStart=this._physicalStart+r.indexes.length):(this._virtualStart=this._virtualStart-r.indexes.length,this._physicalStart=this._physicalStart-r.indexes.length),this._update(r.indexes,n?null:r.indexes),this._debounce("_increasePoolIfNeeded",this._increasePoolIfNeeded.bind(this,0),gNt)}},_getReusables:function(t){var e,n,i,r=[],o=this._hiddenContentSize*this._ratio,a=this._virtualStart,s=this._virtualEnd,l=this._physicalCount,c=this._physicalTop+this._scrollOffset,u=this._scrollTop,h=this._scrollBottom;for(t?(e=this._physicalStart,n=u-c):(e=this._physicalEnd,n=this._physicalBottom+this._scrollOffset-h);n-=i=this._getPhysicalSizeIncrement(e),!(r.length>=l||n<=o);)if(t){if(s+r.length+1>=this._virtualCount)break;if(c+i>=u-this._scrollOffset)break;r.push(e),c+=i,e=(e+1)%l}else{if(a-r.length<=0)break;if(c+this._physicalSize-i<=h)break;r.push(e),c-=i,e=0===e?l-1:e-1}return{indexes:r,physicalTop:c-this._scrollOffset}},_update:function(t,e){if(!(t&&0===t.length||0===this._physicalCount)){if(this._manageFocus(),this._assignModels(t),this._updateMetrics(t),e)for(;e.length;){var n=e.pop();this._physicalTop-=this._getPhysicalSizeIncrement(n)}this._positionItems(),this._updateScrollerSize()}},_isClientFull:function(){return 0!=this._scrollBottom&&this._physicalBottom-1>=this._scrollBottom&&this._physicalTop<=this._scrollPosition},_increasePoolIfNeeded:function(t){var e=this._clamp(this._physicalCount+t,3,this._virtualCount-this._virtualStart),n=(e=this._convertIndexToCompleteRow(e))-this._physicalCount,i=Math.round(.5*this._physicalCount);if(!(n<0)){if(n>0){var r=window.performance.now();[].push.apply(this._physicalItems,this._createPool(n));for(var o=0;o<n;o++)this._physicalSizes.push(0);this._physicalCount=this._physicalCount+n,this._physicalStart>this._physicalEnd&&this._isIndexRendered(this._focusedVirtualIndex)&&this._getPhysicalIndex(this._focusedVirtualIndex)<this._physicalEnd&&(this._physicalStart=this._physicalStart+n),this._update(),this._templateCost=(window.performance.now()-r)/n,i=Math.round(.5*this._physicalCount)}this._virtualEnd>=this._virtualCount-1||0===i||(this._isClientFull()?this._physicalSize<this._optPhysicalSize&&this._debounce("_increasePoolIfNeeded",this._increasePoolIfNeeded.bind(this,this._clamp(Math.round(50/this._templateCost),1,i)),mNt):this._debounce("_increasePoolIfNeeded",this._increasePoolIfNeeded.bind(this,i),gNt))}},_render:function(){if(this.isAttached&&this._isVisible)if(0!==this._physicalCount){var t=this._getReusables(!0);this._physicalTop=t.physicalTop,this._virtualStart=this._virtualStart+t.indexes.length,this._physicalStart=this._physicalStart+t.indexes.length,this._update(t.indexes),this._update(),this._increasePoolIfNeeded(0)}else this._virtualCount>0&&(this.updateViewportBoundaries(),this._increasePoolIfNeeded(3))},_itemsChanged:function(t){"items"===t.path&&(this._virtualStart=0,this._physicalTop=0,this._virtualCount=this.items?this.items.length:0,this._collection=null,this._physicalIndexForKey={},this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null,this._physicalCount=this._physicalCount||0,this._physicalItems=this._physicalItems||[],this._physicalSizes=this._physicalSizes||[],this._physicalStart=0,this._scrollTop>this._scrollOffset&&this._resetScrollPosition(0),this._removeFocusedItem(),this._debounce("_render",this._render,fNt))},_iterateItems:function(t,e){var n,i,r,o;if(2===arguments.length&&e){for(o=0;o<e.length;o++)if(i=this._computeVidx(n=e[o]),null!=(r=t.call(this,n,i)))return r}else{for(n=this._physicalStart,i=this._virtualStart;n<this._physicalCount;n++,i++)if(null!=(r=t.call(this,n,i)))return r;for(n=0;n<this._physicalStart;n++,i++)if(null!=(r=t.call(this,n,i)))return r}},_computeVidx:function(t){return t>=this._physicalStart?this._virtualStart+(t-this._physicalStart):this._virtualStart+(this._physicalCount-this._physicalStart)+t},_updateMetrics:function(t){zi();var e=0,n=0,i=this._physicalAverageCount,r=this._physicalAverage;this._iterateItems((function(t,i){n+=this._physicalSizes[t],this._physicalSizes[t]=this._physicalItems[t].offsetHeight,e+=this._physicalSizes[t],this._physicalAverageCount+=this._physicalSizes[t]?1:0}),t),this.grid?(this._updateGridMetrics(),this._physicalSize=Math.ceil(this._physicalCount/this._itemsPerRow)*this._rowHeight):(n=1===this._itemsPerRow?n:Math.ceil(this._physicalCount/this._itemsPerRow)*this._rowHeight,this._physicalSize=this._physicalSize+e-n,this._itemsPerRow=1),this._physicalAverageCount!==i&&(this._physicalAverage=Math.round((r*i+e)/this._physicalAverageCount))},_positionItems:function(){this._adjustScrollPosition();var t=this._physicalTop;this._iterateItems((function(e,n){this.translate3d(0,t+"px",0,this._physicalItems[e]),t+=this._physicalSizes[e]}))},_getPhysicalSizeIncrement:function(t){return this.grid?this._computeVidx(t)%this._itemsPerRow!=this._itemsPerRow-1?0:this._rowHeight:this._physicalSizes[t]},_adjustScrollPosition:function(){var t=0===this._virtualStart?this._physicalTop:Math.min(this._scrollPosition+this._physicalTop,0);if(0!==t){this._physicalTop=this._physicalTop-t;var e=this._scrollTop;!pNt&&e>0&&this._resetScrollPosition(e-t)}},_resetScrollPosition:function(t){this.scrollTarget&&t>=0&&(this._scrollTop=t,this._scrollPosition=this._scrollTop)},_updateScrollerSize:function(t){this._estScrollHeight=this.grid?this._virtualRowCount*this._rowHeight:this._physicalBottom+Math.max(this._virtualCount-this._physicalCount-this._virtualStart,0)*this._physicalAverage,((t=(t=(t=t||0===this._scrollHeight)||this._scrollPosition>=this._estScrollHeight-this._physicalSize)||this.grid&&this.$.items.style.height<this._estScrollHeight)||Math.abs(this._estScrollHeight-this._scrollHeight)>=this._viewportHeight)&&(this.$.items.style.height=this._estScrollHeight+"px",this._scrollHeight=this._estScrollHeight)},scrollToIndex:function(t){if(!("number"!=typeof t||t<0||t>this.items.length-1)&&(zi(),0!==this._physicalCount)){t=this._clamp(t,0,this._virtualCount-1),(!this._isIndexRendered(t)||t>=this._maxVirtualStart)&&(this._virtualStart=this.grid?t-2*this._itemsPerRow:t-1),this._manageFocus(),this._assignModels(),this._updateMetrics(),this._physicalTop=Math.floor(this._virtualStart/this._itemsPerRow)*this._physicalAverage;for(var e=this._physicalStart,n=this._virtualStart,i=0,r=this._hiddenContentSize;n<t&&i<=r;)i+=this._getPhysicalSizeIncrement(e),e=(e+1)%this._physicalCount,n++;this._updateScrollerSize(!0),this._positionItems(),this._resetScrollPosition(this._physicalTop+this._scrollOffset+i),this._increasePoolIfNeeded(0),this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null}},_resetAverage:function(){this._physicalAverage=0,this._physicalAverageCount=0},_resizeHandler:function(){this._debounce("_render",(function(){this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null,this.updateViewportBoundaries(),this._isVisible?(this.toggleScrollListener(!0),this._resetAverage(),this._render()):this.toggleScrollListener(!1)}),fNt)},_convertIndexToCompleteRow:function(t){return this._itemsPerRow=this._itemsPerRow||1,this.grid?Math.ceil(t/this._itemsPerRow)*this._itemsPerRow:t},_isIndexRendered:function(t){return t>=this._virtualStart&&t<=this._virtualEnd},_getPhysicalIndex:function(t){return(this._physicalStart+(t-this._virtualStart))%this._physicalCount},_clamp:function(t,e,n){return Math.min(n,Math.max(e,t))},_debounce:function(t,e,n){this._debouncers=this._debouncers||{},this._debouncers[t]=En.debounce(this._debouncers[t],n,e.bind(this)),Cn(this._debouncers[t])}});
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */class yNt extends _Nt{static get is(){return"vaadin-grid-scroller"}static get properties(){return{size:{type:Number,notify:!0},_vidxOffset:{value:0}}}static get observers(){return["_effectiveSizeChanged(_effectiveSize)"]}connectedCallback(){super.connectedCallback(),this._scrollHandler()}_updateScrollerItem(t,e){}_afterScroll(){}_getRowTarget(){}_createScrollerRows(){}_canPopulate(){}scrollToIndex(t){this._warnPrivateAPIAccess("scrollToIndex"),this._scrollingToIndex=!0,t=Math.min(Math.max(t,0),this._effectiveSize-1),this.$.table.scrollTop=t/this._effectiveSize*(this.$.table.scrollHeight-this.$.table.offsetHeight),this._scrollHandler(),this._accessIronListAPI((()=>this._maxScrollTop))&&this._virtualCount<this._effectiveSize&&this._adjustVirtualIndexOffset(1e6),this._accessIronListAPI((()=>super.scrollToIndex(t-this._vidxOffset))),this._scrollHandler();const e=Array.from(this.$.items.children).filter((e=>e.index===t))[0];if(e){const t=e.getBoundingClientRect().top-this.$.header.getBoundingClientRect().bottom;Math.abs(t)>1&&(this.$.table.scrollTop+=t,this._scrollHandler())}this._scrollingToIndex=!1}_effectiveSizeChanged(t){let e,n=0;this._iterateItems(((t,i)=>{if(i===this._firstVisibleIndex){const i=this._physicalItems[t];e=i.index,n=i.getBoundingClientRect().top}})),this.items&&t<this.items.length&&(this._scrollTop=0),Array.isArray(this.items)||(this.items={length:Math.min(t,this._edge||this._ie?3e4:1e5)}),this._accessIronListAPI((()=>super._itemsChanged({path:"items"}))),this._virtualCount=Math.min(this.items.length,t)||0,0===this._scrollTop&&(this._accessIronListAPI((()=>this._scrollToIndex(Math.min(t-1,e)))),this._iterateItems(((t,i)=>{const r=this._physicalItems[t];if(r.index===e&&(this.$.table.scrollTop+=Math.round(r.getBoundingClientRect().top-n)),r.index===this._focusedItemIndex&&this._itemsFocusable&&this.$.items.contains(this.shadowRoot.activeElement)){const t=Array.from(this._itemsFocusable.parentElement.children).indexOf(this._itemsFocusable);r.children[t].focus()}}))),this._assignModels(),requestAnimationFrame((()=>this._update())),this.__updateFooterPositioning(),this._ie&&(this.$.table.style.display="block",setTimeout((()=>{this.$.table.style.display="flex",this._translateStationaryElements()})))}_positionItems(){let t;this._adjustScrollPosition(),isNaN(this._physicalTop)&&(t=!0,this._physicalTop=0);let e=this._physicalTop;this._iterateItems(((t,n)=>{this._physicalItems[t].style.transform=`translateY(${e}px)`,e+=this._physicalSizes[t]})),t&&this._scrollToIndex(0)}_increasePoolIfNeeded(t){0===t&&this._scrollingToIndex||!this._canPopulate()||!this._effectiveSize||(this._initialPoolCreated?this._optPhysicalSize!==1/0&&(this._debounceIncreasePool=En.debounce(this._debounceIncreasePool,_t,(()=>{this._updateMetrics();let t=Math.ceil((this._optPhysicalSize-this._physicalSize)/this._physicalAverage);this._physicalCount+t>this._effectiveSize&&(t=Math.max(0,this._effectiveSize-this._physicalCount)),this._physicalSize&&t>0&&this._optPhysicalSize!==1/0&&(super._increasePoolIfNeeded(t),this.__reorderChildNodes())}))):(this._initialPoolCreated=!0,super._increasePoolIfNeeded(25)))}__reorderChildNodes(){const t=Array.from(this.$.items.childNodes);t.reduce(((t,e,n,i)=>{if(0===n||i[n-1].index===e.index-1)return t}),!0)||t.sort(((t,e)=>t.index-e.index)).forEach((t=>this.$.items.appendChild(t)))}_createPool(t){const e=document.createDocumentFragment(),n=this._createScrollerRows(t);n.forEach((t=>e.appendChild(t))),this._getRowTarget().appendChild(e);const i=this.querySelector("[slot]");if(i){const t=i.getAttribute("slot");i.setAttribute("slot","foo-bar"),i.setAttribute("slot",t)}return ki(this,(()=>this.notifyResize())),n}_assignModels(t){this._iterateItems(((t,e)=>{const n=this._physicalItems[t];this._toggleAttribute("hidden",e>=this._effectiveSize,n),this._updateScrollerItem(n,e+(this._vidxOffset||0))}),t)}_scrollHandler(){const t=this.$.table.scrollTop-this._scrollPosition;this._accessIronListAPI(super._scrollHandler);const e=this._vidxOffset;this._accessIronListAPI((()=>this._maxScrollTop))&&this._virtualCount<this._effectiveSize?this._adjustVirtualIndexOffset(t):this._vidxOffset=0,this._vidxOffset!==e&&this._update(),this._afterScroll()}_adjustVirtualIndexOffset(t){if(Math.abs(t)>1e4){if(this._noScale)return void(this._noScale=!1);const t=this.$.table.scrollTop/(this.$.table.scrollHeight-this.$.table.offsetHeight);this._vidxOffset=Math.round(t*this._effectiveSize-t*this._virtualCount)}else{const t=this._vidxOffset||0,e=1e3,n=100;0===this._scrollTop?(this._vidxOffset=0,t!==this._vidxOffset&&super.scrollToIndex(0)):this.firstVisibleIndex<e&&this._vidxOffset>0&&(this._vidxOffset-=Math.min(this._vidxOffset,n),t!==this._vidxOffset&&super.scrollToIndex(this.firstVisibleIndex+(t-this._vidxOffset)),this._noScale=!0);const i=this._effectiveSize-this._virtualCount;this._scrollTop>=this._maxScrollTop&&this._maxScrollTop>0?(this._vidxOffset=i,t!==this._vidxOffset&&super.scrollToIndex(this._virtualCount)):this.firstVisibleIndex>this._virtualCount-e&&this._vidxOffset<i&&(this._vidxOffset+=Math.min(i-this._vidxOffset,n),t!==this._vidxOffset&&super.scrollToIndex(this.firstVisibleIndex-(this._vidxOffset-t)),this._noScale=!0)}}_accessIronListAPI(t){this._warnPrivateAPIAccessAsyncEnabled=!1;const e=t.apply(this);return this._debouncerWarnPrivateAPIAccess=En.debounce(this._debouncerWarnPrivateAPIAccess,_t,(()=>this._warnPrivateAPIAccessAsyncEnabled=!0)),e}_debounceRender(t,e){super._debounceRender((()=>this._accessIronListAPI(t)),e)}_warnPrivateAPIAccess(t){this._warnPrivateAPIAccessAsyncEnabled&&console.warn(`Accessing private API (${t})!`)}_render(){this._accessIronListAPI(super._render)}_createFocusBackfillItem(){}_multiSelectionChanged(){}clearSelection(){}_itemsChanged(){}_manageFocus(){}_removeFocusedItem(){}get _firstVisibleIndex(){return this._accessIronListAPI((()=>super.firstVisibleIndex))}get _lastVisibleIndex(){return this._accessIronListAPI((()=>super.lastVisibleIndex))}_scrollToIndex(t){this._accessIronListAPI((()=>this.scrollToIndex(t)))}get firstVisibleIndex(){return this._warnPrivateAPIAccess("firstVisibleIndex"),super.firstVisibleIndex}set firstVisibleIndex(t){this._warnPrivateAPIAccess("firstVisibleIndex"),super.firstVisibleIndex=t}get lastVisibleIndex(){return this._warnPrivateAPIAccess("lastVisibleIndex"),super.lastVisibleIndex}set lastVisibleIndex(t){this._warnPrivateAPIAccess("lastVisibleIndex"),super.lastVisibleIndex=t}updateViewportBoundaries(){this._warnPrivateAPIAccess("updateViewportBoundaries"),super.updateViewportBoundaries.apply(this,arguments)}_resizeHandler(){super._resizeHandler(),zi()}}customElements.define(yNt.is,yNt);
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */
const vNt=t=>class extends t{static get observers(){return["_a11yUpdateGridSize(size, _columnTree, _columnTree.*)"]}_a11yGetHeaderRowCount(t){return t.filter((t=>t.some((t=>t._headerTemplate||t.headerRenderer||t.path||t.header)))).length}_a11yGetFooterRowCount(t){return t.filter((t=>t.some((t=>t._headerTemplate||t.headerRenderer)))).length}_a11yUpdateGridSize(t,e){if(void 0===t||void 0===e)return;const n=e[e.length-1];this.$.table.setAttribute("aria-rowcount",t+this._a11yGetHeaderRowCount(e)+this._a11yGetFooterRowCount(e)),this.$.table.setAttribute("aria-colcount",n&&n.length||0),this._a11yUpdateHeaderRows(),this._a11yUpdateFooterRows()}_a11yUpdateHeaderRows(){Array.from(this.$.header.children).forEach(((t,e)=>t.setAttribute("aria-rowindex",e+1)))}_a11yUpdateFooterRows(){Array.from(this.$.footer.children).forEach(((t,e)=>t.setAttribute("aria-rowindex",this._a11yGetHeaderRowCount(this._columnTree)+this.size+e+1)))}_a11yUpdateRowRowindex(t,e){t.setAttribute("aria-rowindex",e+this._a11yGetHeaderRowCount(this._columnTree)+1)}_a11yUpdateRowSelected(t,e){t.setAttribute("aria-selected",Boolean(e)),Array.from(t.children).forEach((t=>t.setAttribute("aria-selected",Boolean(e))))}_a11yUpdateRowLevel(t,e){t.setAttribute("aria-level",e+1)}_a11yUpdateRowDetailsOpened(t,e){Array.from(t.children).forEach((t=>{"boolean"==typeof e?t.setAttribute("aria-expanded",e):t.hasAttribute("aria-expanded")&&t.removeAttribute("aria-expanded")}))}_a11ySetRowDetailsCell(t,e){Array.from(t.children).forEach((t=>{t!==e&&t.setAttribute("aria-controls",e.id)}))}_a11yUpdateCellColspan(t,e){t.setAttribute("aria-colspan",Number(e))}_a11yUpdateSorters(){Array.from(this.querySelectorAll("vaadin-grid-sorter")).forEach((t=>{let e=t.parentNode;for(;e&&"vaadin-grid-cell-content"!==e.localName;)e=e.parentNode;e&&e.assignedSlot&&e.assignedSlot.parentNode.setAttribute("aria-sort",{asc:"ascending",desc:"descending"}[String(t.direction)]||"none")}))}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,bNt=t=>class extends t{static get properties(){return{activeItem:{type:Object,notify:!0,value:null}}}ready(){super.ready(),this.$.scroller.addEventListener("click",this._onClick.bind(this)),this.addEventListener("cell-activate",this._activateItem.bind(this))}_activateItem(t){const e=t.detail.model,n=e?e.item:null;n&&(this.activeItem=this._itemsEqual(this.activeItem,n)?null:n)}_onClick(t){if(t.defaultPrevented)return;const e=t.composedPath(),n=e[e.indexOf(this.$.table)-3];if(!n||n.getAttribute("part").indexOf("details-cell")>-1)return;const i=n._content,r=this.getRootNode().activeElement;i.contains(r)&&(!this._ie||this._isFocusable(r))||this._isFocusable(t.target)||this.dispatchEvent(new CustomEvent("cell-activate",{detail:{model:this.__getRowModel(n.parentElement)}}))}_isFocusable(t){return xNt(t)}},xNt=t=>{if(!t.parentNode)return!1;const e=-1!==Array.from(t.parentNode.querySelectorAll("[tabindex], button, input, select, textarea, object, iframe, label, a[href], area[href]")).filter((t=>"cell body-cell"!==t.getAttribute("part"))).indexOf(t);return!t.disabled&&e},wNt=t=>class extends t{static get properties(){return{items:Array}}static get observers(){return["_itemsChanged(items, items.*, isAttached)"]}_itemsChanged(t,e,n){if(n){if(!Array.isArray(t))return null==t&&(this.size=0),void(this.dataProvider===this._arrayDataProvider&&(this.dataProvider=void 0));this.size=t.length,this.dataProvider=this.dataProvider||this._arrayDataProvider,this.clearCache(),this._ensureFirstPageLoaded()}}_arrayDataProvider(t,e){let n=(Array.isArray(this.items)?this.items:[]).slice(0);this._filters&&this._checkPaths(this._filters,"filtering",n)&&(n=this._filter(n)),this.size=n.length,t.sortOrders.length&&this._checkPaths(this._sorters,"sorting",n)&&(n=n.sort(this._multiSort.bind(this)));const i=t.page*t.pageSize;e(n.slice(i,i+t.pageSize),n.length)}_checkPaths(t,e,n){if(!n.length)return!1;let i=!0;for(var r in t){const o=t[r].path;if(!o||-1===o.indexOf("."))continue;const a=o.replace(/\.[^\.]*$/,"");void 0===po.get(a,n[0])&&(console.warn(`Path "${o}" used for ${e} does not exist in all of the items, ${e} is disabled.`),i=!1)}return i}_multiSort(t,e){return this._sorters.map((n=>"asc"===n.direction?this._compare(po.get(n.path,t),po.get(n.path,e)):"desc"===n.direction?this._compare(po.get(n.path,e),po.get(n.path,t)):0)).reduce(((t,e)=>t||e),0)}_normalizeEmptyValue(t){return[void 0,null].indexOf(t)>=0?"":isNaN(t)?t.toString():t}_compare(t,e){return(t=this._normalizeEmptyValue(t))<(e=this._normalizeEmptyValue(e))?-1:t>e?1:0}_filter(t){return t.filter(((t,e)=>0===this._filters.filter((e=>{const n=this._normalizeEmptyValue(po.get(e.path,t)),i=this._normalizeEmptyValue(e.value).toString().toLowerCase();return-1===n.toString().toLowerCase().indexOf(i)})).length))}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,SNt=t=>class extends(di(t)){ready(){super.ready();const t=this.$.scroller;ni(t,"track",this._onHeaderTrack.bind(this)),t.addEventListener("touchmove",(e=>t.hasAttribute("column-resizing")&&e.preventDefault())),t.addEventListener("contextmenu",(t=>"resize-handle"==t.target.getAttribute("part")&&t.preventDefault())),t.addEventListener("mousedown",(t=>"resize-handle"===t.target.getAttribute("part")&&t.preventDefault()))}_onHeaderTrack(t){const e=t.target;if("resize-handle"===e.getAttribute("part")){let o=e.parentElement._column;for(this._toggleAttribute("column-resizing",!0,this.$.scroller);"vaadin-grid-column-group"===o.localName;)o=Array.prototype.slice.call(o._childColumns,0).sort((function(t,e){return t._order-e._order})).filter((function(t){return!t.hidden})).pop();const a=Array.from(this.$.header.querySelectorAll('[part~="row"]:last-child [part~="cell"]'));var n=a.filter((t=>t._column===o))[0];if(n.offsetWidth){var i=window.getComputedStyle(n),r=10+parseInt(i.paddingLeft)+parseInt(i.paddingRight)+parseInt(i.borderLeftWidth)+parseInt(i.borderRightWidth)+parseInt(i.marginLeft)+parseInt(i.marginRight);const e=n.offsetWidth+(this.__isRTL?n.getBoundingClientRect().left-t.detail.x:t.detail.x-n.getBoundingClientRect().right);o.width=Math.max(r,e)+"px",o.flexGrow=0}a.sort((function(t,e){return t._column._order-e._column._order})).forEach((function(t,e,i){e<i.indexOf(n)&&(t._column.width=t.offsetWidth+"px",t._column.flexGrow=0)})),"end"===t.detail.state&&(this._toggleAttribute("column-resizing",!1,this.$.scroller),this.dispatchEvent(new CustomEvent("column-resize",{detail:{resizedColumn:o}}))),this._resizeHandler()}}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,MNt=class t{constructor(t,e,n){this.grid=t,this.parentCache=e,this.parentItem=n,this.itemCaches={},this.items={},this.effectiveSize=0,this.size=0,this.pendingRequests={}}isLoading(){return Boolean(Object.keys(this.pendingRequests).length||Object.keys(this.itemCaches).filter((t=>this.itemCaches[t].isLoading()))[0])}getItemForIndex(t){const{cache:e,scaledIndex:n}=this.getCacheAndIndex(t);return e.items[n]}updateSize(){this.effectiveSize=!this.parentItem||this.grid._isExpanded(this.parentItem)?this.size+Object.keys(this.itemCaches).reduce(((t,e)=>{const n=this.itemCaches[e];return n.updateSize(),t+n.effectiveSize}),0):0}ensureSubCacheForScaledIndex(e){if(!this.itemCaches[e]){const n=new t(this.grid,this,this.items[e]);this.itemCaches[e]=n,this.grid._loadPage(0,n)}}getCacheAndIndex(t){let e=t;const n=Object.keys(this.itemCaches);for(var i=0;i<n.length;i++){const t=Number(n[i]),r=this.itemCaches[t];if(e<=t)return{cache:this,scaledIndex:e};if(e<=t+r.effectiveSize)return r.getCacheAndIndex(e-t-1);e-=r.effectiveSize}return{cache:this,scaledIndex:e}}},ENt=t=>class extends t{static get properties(){return{pageSize:{type:Number,value:50,observer:"_pageSizeChanged"},dataProvider:{type:Object,notify:!0,observer:"_dataProviderChanged"},loading:{type:Boolean,notify:!0,readOnly:!0,reflectToAttribute:!0},_cache:{type:Object,value:function(){return new MNt(this)}},itemIdPath:{type:String,value:null},expandedItems:{type:Object,notify:!0,value:()=>[]}}}static get observers(){return["_sizeChanged(size)","_itemIdPathChanged(itemIdPath)","_expandedItemsChanged(expandedItems.*)"]}_sizeChanged(t){const e=t-this._cache.size;this._cache.size+=e,this._cache.effectiveSize+=e,this._effectiveSize=this._cache.effectiveSize,this._increasePoolIfNeeded(0),this._debounceIncreasePool&&this._debounceIncreasePool.flush()}_getItem(t,e){if(t>=this._effectiveSize)return;e.index=t;const{cache:n,scaledIndex:i}=this._cache.getCacheAndIndex(t),r=n.items[i];r?(this._toggleAttribute("loading",!1,e),this._updateItem(e,r),this._isExpanded(r)&&n.ensureSubCacheForScaledIndex(i)):(this._toggleAttribute("loading",!0,e),this._loadPage(this._getPageForIndex(i),n))}_expandedInstanceChangedCallback(t,e){void 0!==t.item&&(e?this.expandItem(t.item):this.collapseItem(t.item))}getItemId(t){return this.itemIdPath?this.get(this.itemIdPath,t):t}_isExpanded(t){return this.__expandedKeys.has(this.getItemId(t))}_expandedItemsChanged(t){this.__cacheExpandedKeys(),this._cache.updateSize(),this._effectiveSize=this._cache.effectiveSize,this._assignModels()}_itemIdPathChanged(t){this.__cacheExpandedKeys()}__cacheExpandedKeys(){this.expandedItems&&(this.__expandedKeys=new Set,this.expandedItems.forEach((t=>{this.__expandedKeys.add(this.getItemId(t))})))}expandItem(t){this._isExpanded(t)||this.push("expandedItems",t)}collapseItem(t){this._isExpanded(t)&&this.splice("expandedItems",this._getItemIndexInArray(t,this.expandedItems),1)}_getIndexLevel(t){let{cache:e}=this._cache.getCacheAndIndex(t),n=0;for(;e.parentCache;)e=e.parentCache,n++;return n}_canPopulate(){return Boolean(this._hasData&&this._columnTree)}_loadPage(t,e){if(!e.pendingRequests[t]&&this.dataProvider){this._setLoading(!0),e.pendingRequests[t]=!0;const n={page:t,pageSize:this.pageSize,sortOrders:this._mapSorters(),filters:this._mapFilters(),parentItem:e.parentItem};this._debounceIncreasePool&&this._debounceIncreasePool.flush(),this.dataProvider(n,((i,r)=>{void 0!==r?e.size=r:n.parentItem&&(e.size=i.length);const o=Array.from(this.$.items.children).map((t=>t._item));i.forEach(((n,i)=>{const r=t*this.pageSize+i;e.items[r]=n,this._isExpanded(n)&&o.indexOf(n)>-1&&e.ensureSubCacheForScaledIndex(r)})),this._hasData=!0,delete e.pendingRequests[t],this._debouncerApplyCachedData=En.debounce(this._debouncerApplyCachedData,gt.after(0),(()=>{this._setLoading(!1),this._cache.updateSize(),this._effectiveSize=this._cache.effectiveSize,Array.from(this.$.items.children).filter((t=>!t.hidden)).forEach((t=>{this._cache.getItemForIndex(t.index)&&this._getItem(t.index,t)})),this._increasePoolIfNeeded(0),this.__scrollToPendingIndex()})),this._cache.isLoading()||this._debouncerApplyCachedData.flush(),this.__itemsReceived()}))}}_getPageForIndex(t){return Math.floor(t/this.pageSize)}clearCache(){this._cache=new MNt(this),Array.from(this.$.items.children).forEach((t=>{Array.from(t.children).forEach((t=>{t._instance&&t._instance._setPendingProperty("item",{},!1)}))})),this._cache.size=this.size||0,this._cache.updateSize(),this._hasData=!1,this._assignModels(),this._effectiveSize&&this._initialPoolCreated||this._loadPage(0,this._cache)}_pageSizeChanged(t,e){void 0!==e&&t!==e&&this.clearCache()}_checkSize(){void 0===this.size&&0===this._effectiveSize&&console.warn("The <vaadin-grid> needs the total number of items in order to display rows. Set the total number of items to the `size` property, or provide the total number of items in the second argument of the `dataProvider`’s `callback` call.")}_dataProviderChanged(t,e){void 0!==e&&this.clearCache(),t&&this.items&&this.items.length&&this._scrollToIndex(this._firstVisibleIndex),this._ensureFirstPageLoaded(),this._debouncerCheckSize=En.debounce(this._debouncerCheckSize,gt.after(2e3),this._checkSize.bind(this)),this._scrollHandler()}_ensureFirstPageLoaded(){this._hasData||this._loadPage(0,this._cache)}_itemsEqual(t,e){return this.getItemId(t)===this.getItemId(e)}_getItemIndexInArray(t,e){let n=-1;return e.forEach(((e,i)=>{this._itemsEqual(e,t)&&(n=i)})),n}scrollToIndex(t){super.scrollToIndex(t),isNaN(t)||!this._cache.isLoading()&&this.clientHeight||(this.__pendingScrollToIndex=t)}__scrollToPendingIndex(){if(this.__pendingScrollToIndex&&this.$.items.children.length){const t=this.__pendingScrollToIndex;delete this.__pendingScrollToIndex,this._debounceIncreasePool&&this._debounceIncreasePool.flush(),this.scrollToIndex(t)}}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,TNt=t=>class extends t{ready(){super.ready(),this._addNodeObserver()}_hasColumnGroups(t){for(let e=0;e<t.length;e++)if("vaadin-grid-column-group"===t[e].localName)return!0;return!1}_getChildColumns(t){return Ri.getFlattenedNodes(t).filter(this._isColumnElement)}_flattenColumnGroups(t){return t.map((t=>"vaadin-grid-column-group"===t.localName?this._getChildColumns(t):[t])).reduce(((t,e)=>t.concat(e)),[])}_getColumnTree(){for(var t=[],e=Ri.getFlattenedNodes(this).filter(this._isColumnElement);t.push(e),this._hasColumnGroups(e);)e=this._flattenColumnGroups(e);return t}_updateColumnTree(){var t=this._getColumnTree();this._arrayEquals(t,this._columnTree)||(this._columnTree=t)}_addNodeObserver(){this._observer=new Ri(this,(t=>{const e=t.addedNodes.filter((t=>"template"===t.localName&&t.classList.contains("row-details")))[0];e&&this._rowDetailsTemplate!==e&&(this._rowDetailsTemplate=e);const n=t=>t.filter(this._isColumnElement).length>0;if(n(t.addedNodes)||n(t.removedNodes)){const e=t.removedNodes.reduce(((t,e)=>t.concat(e._allCells)),[]),n=t=>e.filter((e=>e._content.contains(t))).length;this.__removeSorters(this._sorters.filter(n)),this.__removeFilters(this._filters.filter(n)),this._updateColumnTree()}this._debouncerCheckImports=En.debounce(this._debouncerCheckImports,gt.after(2e3),this._checkImports.bind(this)),this._ensureFirstPageLoaded()}))}_arrayEquals(t,e){if(!t||!e||t.length!=e.length)return!1;for(var n=0,i=t.length;n<i;n++)if(t[n]instanceof Array&&e[n]instanceof Array){if(!this._arrayEquals(t[n],e[n]))return!1}else if(t[n]!=e[n])return!1;return!0}_checkImports(){["vaadin-grid-column-group","vaadin-grid-filter","vaadin-grid-filter-column","vaadin-grid-tree-toggle","vaadin-grid-selection-column","vaadin-grid-sort-column","vaadin-grid-sorter"].forEach((t=>{var e=this.querySelector(t);!e||e instanceof ye||console.warn(`Make sure you have imported the required module for <${t}> element.`)}))}_updateFirstAndLastColumn(){Array.from(this.shadowRoot.querySelectorAll("tr")).forEach((t=>this._updateFirstAndLastColumnForRow(t)))}_updateFirstAndLastColumnForRow(t){Array.from(t.querySelectorAll('[part~="cell"]:not([part~="details-cell"])')).sort(((t,e)=>t._column._order-e._column._order)).forEach(((t,e,n)=>{this._toggleAttribute("first-column",0===e,t),this._toggleAttribute("last-column",e===n.length-1,t)}))}_isColumnElement(t){return t.nodeType===Node.ELEMENT_NODE&&/\bcolumn\b/.test(t.localName)}}
/**
    @license
    Copyright (c) 2018 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,CNt=t=>class extends t{getEventContext(t){const e={},n=t.composedPath(),i=n[n.indexOf(this.$.table)-3];return i?(e.section=["body","header","footer","details"].filter((t=>i.getAttribute("part").indexOf(t)>-1))[0],i._column&&(e.column=i._column),"body"!==e.section&&"details"!==e.section||Object.assign(e,this.__getRowModel(i.parentElement)),e):e}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,ANt=t=>class extends t{static get properties(){return{_filters:{type:Array,value:function(){return[]}}}}ready(){super.ready(),this.addEventListener("filter-changed",this._filterChanged.bind(this))}_filterChanged(t){t.stopPropagation(),this.__addFilter(t.target),this.__applyFilters()}__removeFilters(t){0!=t.length&&(this._filters=this._filters.filter((e=>t.indexOf(e)<0)),this.__applyFilters())}__addFilter(t){-1===this._filters.indexOf(t)&&this._filters.push(t)}__applyFilters(){this.dataProvider&&this.isAttached&&this.clearCache()}_mapFilters(){return this._filters.map((t=>({path:t.path,value:t.value})))}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */;class kNt extends class extends ye{}{static get is(){return"vaadin-grid-templatizer"}static get properties(){return{dataHost:Object,template:Object,_templateInstances:{type:Array,value:function(){return[]}},_parentPathValues:{value:function(){return{}}},_grid:Object}}static get observers(){return["_templateInstancesChanged(_templateInstances.*, _parentPathValues.*)"]}constructor(){super(),this._instanceProps={detailsOpened:!0,index:!0,item:!0,selected:!0,expanded:!0,level:!0}}createInstance(){this._ensureTemplatized();const t=new this._TemplateClass({});return this.addInstance(t),t}addInstance(t){-1===this._templateInstances.indexOf(t)&&(this._templateInstances.push(t),requestAnimationFrame((()=>this.notifyPath("_templateInstances.*",this._templateInstances))))}removeInstance(t){const e=this._templateInstances.indexOf(t);this.splice("_templateInstances",e,1)}_ensureTemplatized(){this._TemplateClass||(this._TemplateClass=Xr(this.template,this,{instanceProps:this._instanceProps,parentModel:!0,forwardHostProp:function(t,e){this._forwardParentProp(t,e),this._templateInstances&&this._templateInstances.forEach((n=>n.notifyPath(t,e)))},notifyInstanceProp:function(t,e,n){if("index"===e||"item"===e)return;const i=`__${e}__`;if(t[i]===n)return;t[i]=n;const r=Array.from(this._grid.$.items.children).filter((e=>this._grid._itemsEqual(e._item,t.item)))[0];r&&Array.from(r.children).forEach((t=>{t._instance&&(t._instance[i]=n,t._instance.notifyPath(e,n))}));const o="item.";if(Array.isArray(this._grid.items)&&0===e.indexOf(o)){const i=this._grid.items.indexOf(t.item),r=e.slice(o.length);this._grid.notifyPath(`items.${i}.${r}`,n)}const a=`_${e}InstanceChangedCallback`;this._grid&&this._grid[a]&&this._grid[a](t,n)}}))}_forwardParentProp(t,e){this._parentPathValues[t]=e,this._templateInstances.forEach((n=>n.notifyPath(t,e)))}_templateInstancesChanged(t,e){let n,i;if("_templateInstances"===t.path)n=0,i=this._templateInstances.length;else{if("_templateInstances.splices"!==t.path)return;n=t.value.index,i=t.value.addedCount}Object.keys(this._parentPathValues||{}).forEach((t=>{for(var e=n;e<n+i;e++)this._templateInstances[e].set(t,this._parentPathValues[t])}))}}customElements.define(kNt.is,kNt);
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */
const LNt=t=>class extends t{static get properties(){return{detailsOpenedItems:{type:Array,value:function(){return[]}},_rowDetailsTemplate:Object,rowDetailsRenderer:Function,_detailsCells:{type:Array}}}static get observers(){return["_detailsOpenedItemsChanged(detailsOpenedItems.*, _rowDetailsTemplate, rowDetailsRenderer)","_rowDetailsTemplateOrRendererChanged(_rowDetailsTemplate, rowDetailsRenderer)"]}_rowDetailsTemplateOrRendererChanged(t,e){if(t&&e)throw new Error("You should only use either a renderer or a template for row details");if(t||e){if(t&&!t.templatizer){var n=new kNt;n._grid=this,n.dataHost=this.dataHost,n.template=t,t.templatizer=n}this._columnTree&&Array.from(this.$.items.children).forEach((t=>{t.querySelector("[part~=details-cell]")||(this._updateRow(t,this._columnTree[this._columnTree.length-1]),this._a11yUpdateRowDetailsOpened(t,!1)),delete t.querySelector("[part~=details-cell]")._instance})),this.detailsOpenedItems.length&&(Array.from(this.$.items.children).forEach(this._toggleDetailsCell,this),this._update())}}_detailsOpenedItemsChanged(t,e,n){"detailsOpenedItems.length"!==t.path&&t.value&&Array.from(this.$.items.children).forEach((t=>{this._toggleDetailsCell(t,t._item),this._a11yUpdateRowDetailsOpened(t,this._isDetailsOpened(t._item)),this._toggleAttribute("details-opened",this._isDetailsOpened(t._item),t)}))}_configureDetailsCell(t){t.setAttribute("part","cell details-cell"),this._toggleAttribute("frozen",!0,t)}_toggleDetailsCell(t,e){const n=t.querySelector('[part~="details-cell"]');if(!n)return;const i=!this._isDetailsOpened(e),r=!!n.hidden!==i;(n._instance||n._renderer)&&n.hidden===i||(n.hidden=i,i?t.style.removeProperty("padding-bottom"):(this.rowDetailsRenderer?(n._renderer=this.rowDetailsRenderer,n._renderer.call(this,n._content,this,{index:t.index,item:e})):this._rowDetailsTemplate&&!n._instance&&(n._instance=this._rowDetailsTemplate.templatizer.createInstance(),n._content.innerHTML="",n._content.appendChild(n._instance.root),this._updateItem(t,e)),zi(),t.style.setProperty("padding-bottom",`${n.offsetHeight}px`),requestAnimationFrame((()=>this.notifyResize())))),r&&(this._updateMetrics(),this._positionItems())}_updateDetailsCellHeights(){Array.from(this.$.items.querySelectorAll('[part~="details-cell"]:not([hidden])')).forEach((t=>{t.parentElement.style.setProperty("padding-bottom",`${t.offsetHeight}px`)}))}_isDetailsOpened(t){return this.detailsOpenedItems&&-1!==this._getItemIndexInArray(t,this.detailsOpenedItems)}openItemDetails(t){this._isDetailsOpened(t)||this.push("detailsOpenedItems",t)}closeItemDetails(t){this._isDetailsOpened(t)&&this.splice("detailsOpenedItems",this._getItemIndexInArray(t,this.detailsOpenedItems),1)}_detailsOpenedInstanceChangedCallback(t,e){super._detailsOpenedInstanceChangedCallback&&super._detailsOpenedInstanceChangedCallback(t,e),e?this.openItemDetails(t.item):this.closeItemDetails(t.item)}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,PNt=t=>class extends t{get _timeouts(){return{SCROLLING:500,IGNORE_WHEEL:500}}static get properties(){return{_frozenCells:{type:Array,value:()=>[]},_rowWithFocusedElement:Element,_deltaYAcc:{type:Number,value:0},_useSticky:{type:Boolean,value:window.CSS&&window.CSS.supports&&(window.CSS.supports("position","sticky")||window.CSS.supports("position","-webkit-sticky"))}}}static get observers(){return["_scrollViewportHeightUpdated(_viewportHeight)"]}set _scrollTop(t){this.$.table.scrollTop=t}get _scrollTop(){return this.$.table.scrollTop}constructor(){super(),this._scrollLineHeight=this._getScrollLineHeight()}_getScrollLineHeight(){const t=document.createElement("div");t.style.fontSize="initial",t.style.display="none",document.body.appendChild(t);const e=window.getComputedStyle(t).fontSize;return document.body.removeChild(t),e?window.parseInt(e):void 0}_scrollViewportHeightUpdated(t){this._scrollPageHeight=t-this.$.header.clientHeight-this.$.footer.clientHeight-this._scrollLineHeight}ready(){super.ready(),this.$.outerscroller=document.createElement("div"),this.scrollTarget=this.$.table,this.addEventListener("wheel",this._onWheel),this.$.items.addEventListener("focusin",(t=>{const e=t.composedPath().indexOf(this.$.items);this._rowWithFocusedElement=t.composedPath()[e-1]})),this.$.items.addEventListener("focusout",(()=>this._rowWithFocusedElement=void 0)),this.scrollTarget.addEventListener("mousedown",(()=>this.__mouseDown=!0)),this.scrollTarget.addEventListener("mouseup",(()=>{this.__mouseDown=!1,this.__pendingReorder&&(this.__pendingReorder=!1,setTimeout((()=>this._reorderRows()),this._timeouts.SCROLLING))}))}scrollToIndex(t){this._accessIronListAPI((()=>super.scrollToIndex(t)))}_onWheel(t){if(t.ctrlKey||this._hasScrolledAncestor(t.target,t.deltaX,t.deltaY))return;const e=this.$.table;let n=t.deltaY;if(t.deltaMode===WheelEvent.DOM_DELTA_LINE?n*=this._scrollLineHeight:t.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(n*=this._scrollPageHeight),this._wheelAnimationFrame)return this._deltaYAcc+=n,void t.preventDefault();n+=this._deltaYAcc,this._deltaYAcc=0,this._wheelAnimationFrame=!0,this._debouncerWheelAnimationFrame=En.debounce(this._debouncerWheelAnimationFrame,_t,(()=>this._wheelAnimationFrame=!1));var i=Math.abs(t.deltaX)+Math.abs(n);this._canScroll(e,t.deltaX,n)?(t.preventDefault(),e.scrollTop+=n,e.scrollLeft+=t.deltaX,this._scrollHandler(),this._hasResidualMomentum=!0,this._ignoreNewWheel=!0,this._debouncerIgnoreNewWheel=En.debounce(this._debouncerIgnoreNewWheel,gt.after(this._timeouts.IGNORE_WHEEL),(()=>this._ignoreNewWheel=!1))):this._hasResidualMomentum&&i<=this._previousMomentum||this._ignoreNewWheel?t.preventDefault():i>this._previousMomentum&&(this._hasResidualMomentum=!1),this._previousMomentum=i}_hasScrolledAncestor(t,e,n){return"vaadin-grid-cell-content"!==t.localName&&(!(!this._canScroll(t,e,n)||-1===["auto","scroll"].indexOf(getComputedStyle(t).overflow))||(t!==this&&t.parentElement?this._hasScrolledAncestor(t.parentElement,e,n):void 0))}_canScroll(t,e,n){return n>0&&t.scrollTop<t.scrollHeight-t.offsetHeight||n<0&&t.scrollTop>0||e>0&&t.scrollLeft<t.scrollWidth-t.offsetWidth||e<0&&t.scrollLeft>0}_scheduleScrolling(){this._scrollingFrame||(this._scrollingFrame=requestAnimationFrame((()=>this._toggleAttribute("scrolling",!0,this.$.scroller)))),this._debounceScrolling=En.debounce(this._debounceScrolling,gt.after(this._timeouts.SCROLLING),(()=>{cancelAnimationFrame(this._scrollingFrame),delete this._scrollingFrame,this._toggleAttribute("scrolling",!1,this.$.scroller),this._reorderRows()}))}_afterScroll(){this._translateStationaryElements(),this.hasAttribute("reordering")||this._scheduleScrolling(),this._updateOverflow()}_updateOverflow(){let t="";const e=this.$.table;e.scrollTop<e.scrollHeight-e.clientHeight&&(t+=" bottom"),e.scrollTop>0&&(t+=" top"),e.scrollLeft<e.scrollWidth-e.clientWidth&&(t+=" right"),e.scrollLeft>0&&(t+=" left"),this._debounceOverflow=En.debounce(this._debounceOverflow,_t,(()=>{const e=t.trim();e.length>0&&this.getAttribute("overflow")!==e?this.setAttribute("overflow",e):0==e.length&&this.hasAttribute("overflow")&&this.removeAttribute("overflow")}))}_reorderRows(){if(this.__mouseDown)return void(this.__pendingReorder=!0);const t=this.$.items,e=t.querySelectorAll("tr");if(!e.length)return;const n=this._virtualStart+this._vidxOffset,i=this._rowWithFocusedElement||Array.from(e).filter((t=>!t.hidden))[0];if(!i)return;const r=i.index-n,o=Array.from(e).indexOf(i)-r;if(o>0)for(let n=0;n<o;n++)t.appendChild(e[n]);else if(o<0)for(let n=e.length+o;n<e.length;n++)t.insertBefore(e[n],e[0]);if(this._safari){const{transform:t}=this.$.header.style;this.$.header.style.transform="",setTimeout((()=>this.$.header.style.transform=t))}}_frozenCellsChanged(){this._debouncerCacheElements=En.debounce(this._debouncerCacheElements,vt,(()=>{Array.from(this.shadowRoot.querySelectorAll('[part~="cell"]')).forEach((function(t){t.style.transform=""})),this._frozenCells=Array.prototype.slice.call(this.$.table.querySelectorAll("[frozen]")),this._updateScrollerMeasurements(),this._translateStationaryElements()})),this._updateLastFrozen()}_updateScrollerMeasurements(){this._frozenCells.length>0&&this.__isRTL&&(this.__scrollerMetrics={scrollWidth:this.$.table.scrollWidth,clientWidth:this.$.table.clientWidth})}_updateLastFrozen(){if(!this._columnTree)return;const t=this._columnTree[this._columnTree.length-1].slice(0);t.sort(((t,e)=>t._order-e._order));const e=t.reduce(((t,e,n)=>(e._lastFrozen=!1,e.frozen&&!e.hidden?n:t)),void 0);void 0!==e&&(t[e]._lastFrozen=!0)}_translateStationaryElements(){const t=Math.max(0,this._scrollLeft),e=Math.max(0,this._scrollTop);let n=0,i=0,r=0;if(this._useSticky||(n=t,i=e,r=this.$.table.clientHeight-this.$.footer.offsetHeight-this.$.footer.offsetTop),this.$.header.style.transform=this._getTranslate(-t+n,i),this.$.footer.style.transform=this._getTranslate(-t+n,i+r),this.$.items.style.transform=this._getTranslate(-t+n,0),this._frozenCells.length>0){const t=this.__isRTL?this.__getNormalizedScrollLeft(this.$.table)+this.__scrollerMetrics.clientWidth-this.__scrollerMetrics.scrollWidth:this._scrollLeft;for(var o=this._getTranslate(t,0),a=0;a<this._frozenCells.length;a++)this._frozenCells[a].style.transform=o}}_getTranslate(t,e){return`translate(${t}px, ${e}px)`}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,NNt=t=>class extends t{static get properties(){return{selectedItems:{type:Object,notify:!0,value:()=>[]}}}static get observers(){return["_selectedItemsChanged(selectedItems.*)"]}_isSelected(t){return this.selectedItems&&this._getItemIndexInArray(t,this.selectedItems)>-1}selectItem(t){this._isSelected(t)||this.push("selectedItems",t)}deselectItem(t){const e=this._getItemIndexInArray(t,this.selectedItems);e>-1&&this.splice("selectedItems",e,1)}_toggleItem(t){-1===this._getItemIndexInArray(t,this.selectedItems)?this.selectItem(t):this.deselectItem(t)}_selectedItemsChanged(t){!this.$.items.children.length||"selectedItems"!==t.path&&"selectedItems.splices"!==t.path||Array.from(this.$.items.children).forEach((t=>{this._updateItem(t,t._item)}))}_selectedInstanceChangedCallback(t,e){super._selectedInstanceChangedCallback&&super._selectedInstanceChangedCallback(t,e),e?this.selectItem(t.item):this.deselectItem(t.item)}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,INt=t=>class extends t{static get properties(){return{multiSort:{type:Boolean,value:!1},_sorters:{type:Array,value:function(){return[]}},_previousSorters:{type:Array,value:function(){return[]}}}}ready(){super.ready(),this.addEventListener("sorter-changed",this._onSorterChanged),window.ShadyDOM&&vt.run((()=>{const t=this.querySelectorAll("vaadin-grid-sorter");Array.from(t).forEach((t=>{t instanceof ye&&t.dispatchEvent(new CustomEvent("sorter-changed",{bubbles:!0,composed:!0}))}))}))}_onSorterChanged(t){const e=t.target;t.stopPropagation(),this.__updateSorter(e),this.__applySorters()}__removeSorters(t){0!=t.length&&(this._sorters=this._sorters.filter((e=>t.indexOf(e)<0)),this.multiSort&&this.__updateSortOrders(),this.__applySorters())}__updateSortOrders(){this._sorters.forEach(((t,e)=>t._order=this._sorters.length>1?e:null),this)}__updateSorter(t){if(t.direction||-1!==this._sorters.indexOf(t))if(t._order=null,this.multiSort)this._removeArrayItem(this._sorters,t),t.direction&&this._sorters.unshift(t),this.__updateSortOrders(),this._sorters.forEach(((t,e)=>t._order=this._sorters.length>1?e:null),this);else if(t.direction){const e=this._sorters.filter((e=>e!=t));this._sorters=[t],e.forEach((t=>{t._order=null,t.direction=null}))}}__applySorters(){this.dataProvider&&this.isAttached&&JSON.stringify(this._previousSorters)!==JSON.stringify(this._mapSorters())&&this.clearCache(),this._a11yUpdateSorters(),this._previousSorters=this._mapSorters()}_mapSorters(){return this._sorters.map((t=>({path:t.path,direction:t.direction})))}_removeArrayItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}}
/**
    @license
    Copyright (c) 2018 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,ONt=t=>class extends t{static get properties(){return{cellClassNameGenerator:Function}}static get observers(){return["__cellClassNameGeneratorChanged(cellClassNameGenerator)"]}__cellClassNameGeneratorChanged(t){this.generateCellClassNames()}generateCellClassNames(){Array.from(this.$.items.children).filter((t=>!t.hidden)).forEach((t=>this._generateCellClassNames(t,this.__getRowModel(t))))}_generateCellClassNames(t,e){Array.from(t.children).forEach((t=>{if(t.__generatedClasses&&t.__generatedClasses.forEach((e=>t.classList.remove(e))),this.cellClassNameGenerator){const n=this.cellClassNameGenerator(t._column,e);t.__generatedClasses=n&&n.split(" ").filter((t=>t.length>0)),t.__generatedClasses&&t.__generatedClasses.forEach((e=>t.classList.add(e)))}}))}}
/**
    @license
    Copyright (c) 2019 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,RNt="between",zNt="on-top-or-between",DNt="above",BNt="below",HNt="empty",FNt=t=>class extends t{static get properties(){return{dropMode:String,rowsDraggable:Boolean,dragFilter:Function,dropFilter:Function,__dndAutoScrollThreshold:{value:50}}}static get observers(){return["_dragDropAccessChanged(rowsDraggable, dropMode, dragFilter, dropFilter)"]}ready(){super.ready(),this.$.table.addEventListener("dragstart",this._onDragStart.bind(this)),this.$.table.addEventListener("dragend",this._onDragEnd.bind(this)),this.$.table.addEventListener("dragover",this._onDragOver.bind(this)),this.$.table.addEventListener("dragleave",this._onDragLeave.bind(this)),this.$.table.addEventListener("drop",this._onDrop.bind(this)),this.$.table.addEventListener("dragenter",(t=>{this.dropMode&&(t.preventDefault(),t.stopPropagation())}))}_onDragStart(t){if(this.rowsDraggable){let e=t.target;if("vaadin-grid-cell-content"===e.localName&&(e=e.assignedSlot.parentNode.parentNode),e.parentNode!==this.$.items)return;if(t.stopPropagation(),this._toggleAttribute("dragging-rows",!0,this),this._safari){const t=e.style.transform;e.style.top=/translateY\((.*)\)/.exec(t)[1],e.style.transform="none",requestAnimationFrame((()=>{e.style.top="",e.style.transform=t}))}const n=e.getBoundingClientRect();window.ShadyDOM||(this._ios?t.dataTransfer.setDragImage(e):t.dataTransfer.setDragImage(e,t.clientX-n.left,t.clientY-n.top));let i=[e];this._isSelected(e._item)&&(i=this.__getViewportRows().filter((t=>this._isSelected(t._item))).filter((t=>!this.dragFilter||this.dragFilter(this.__getRowModel(t))))),t.dataTransfer.setData("text",this.__formatDefaultTransferData(i)),e.setAttribute("dragstart",i.length>1?i.length:""),this.updateStyles({"--_grid-drag-start-x":t.clientX-n.left+20+"px","--_grid-drag-start-y":t.clientY-n.top+10+"px"}),requestAnimationFrame((()=>{e.removeAttribute("dragstart"),this.updateStyles({"--_grid-drag-start-x":"","--_grid-drag-start-y":""})}));const r=new CustomEvent("grid-dragstart",{detail:{draggedItems:i.map((t=>t._item)),setDragData:(e,n)=>t.dataTransfer.setData(e,n),setDraggedItemsCount:t=>e.setAttribute("dragstart",t)}});r.originalEvent=t,this.dispatchEvent(r)}}_onDragEnd(t){this._toggleAttribute("dragging-rows",!1,this),t.stopPropagation();const e=new CustomEvent("grid-dragend");e.originalEvent=t,this.dispatchEvent(e)}_onDragLeave(t){t.stopPropagation(),this._clearDragStyles()}_onDragOver(t){if(this.dropMode){if(this._dropLocation=void 0,this._dragOverItem=void 0,this.__dndAutoScroll(t.clientY))return void this._clearDragStyles();let e=t.composedPath().filter((t=>"tr"===t.localName))[0];if(this._effectiveSize&&"on-grid"!==this.dropMode)if(e&&e.parentNode===this.$.items){const n=e.getBoundingClientRect();this._dropLocation="on-top",this.dropMode===RNt?this._dropLocation=t.clientY-n.top<n.bottom-t.clientY?DNt:BNt:this.dropMode===zNt&&(t.clientY-n.top<n.height/3?this._dropLocation=DNt:t.clientY-n.top>n.height/3*2&&(this._dropLocation=BNt))}else{if(e)return;if(this.dropMode!==RNt&&this.dropMode!==zNt)return;e=Array.from(this.$.items.children).filter((t=>!t.hidden)).pop(),this._dropLocation=BNt}else this._dropLocation=HNt;if(e&&e.hasAttribute("drop-disabled"))return void(this._dropLocation=void 0);t.stopPropagation(),t.preventDefault(),this._dropLocation===HNt?this._toggleAttribute("dragover",!0,this):e?(this._dragOverItem=e._item,e.getAttribute("dragover")!==this._dropLocation&&e.setAttribute("dragover",this._dropLocation)):this._clearDragStyles()}}__dndAutoScroll(t){if(this.__dndAutoScrolling)return!0;const e=this.$.header.getBoundingClientRect().bottom,n=this.$.footer.getBoundingClientRect().top,i=e-t+this.__dndAutoScrollThreshold,r=t-n+this.__dndAutoScrollThreshold;let o=0;if(r>0?o=2*r:i>0&&(o=2*-i),o){const t=this.$.table.scrollTop;if(this.$.table.scrollTop+=o,t!==this.$.table.scrollTop)return this.__dndAutoScrolling=!0,setTimeout((()=>this.__dndAutoScrolling=!1),20),this._scrollHandler(),!0}}__getViewportRows(){const t=this.$.header.getBoundingClientRect().bottom,e=this.$.footer.getBoundingClientRect().top;return Array.from(this.$.items.children).filter((n=>{const i=n.getBoundingClientRect();return i.bottom>t&&i.top<e}))}_clearDragStyles(){this.removeAttribute("dragover"),Array.from(this.$.items.children).forEach((t=>t.removeAttribute("dragover")))}_onDrop(t){if(this.dropMode){t.stopPropagation(),t.preventDefault();const e=t.dataTransfer.types&&Array.from(t.dataTransfer.types).map((e=>({type:e,data:t.dataTransfer.getData(e)})));this._clearDragStyles();const n=new CustomEvent("grid-drop",{bubbles:t.bubbles,cancelable:t.cancelable,detail:{dropTargetItem:this._dragOverItem,dropLocation:this._dropLocation,dragData:e}});n.originalEvent=t,this.dispatchEvent(n)}}__formatDefaultTransferData(t){return t.map((t=>Array.from(t.children).filter((t=>!t.hidden&&-1===t.getAttribute("part").indexOf("details-cell"))).sort(((t,e)=>t._column._order>e._column._order?1:-1)).map((t=>t._content.textContent.trim())).filter((t=>t)).join("\t"))).join("\n")}_dragDropAccessChanged(t,e,n,i){this.filterDragAndDrop()}filterDragAndDrop(){Array.from(this.$.items.children).filter((t=>!t.hidden)).forEach((t=>{this._filterDragAndDrop(t,this.__getRowModel(t))}))}_filterDragAndDrop(t,e){const n=!this.rowsDraggable||this.dragFilter&&!this.dragFilter(e),i=!this.dropMode||this.dropFilter&&!this.dropFilter(e);(window.ShadyDOM?[t]:Array.from(t.children).map((t=>t._content))).forEach((t=>{n?t.removeAttribute("draggable"):t.setAttribute("draggable",!0)})),this._toggleAttribute("drag-disabled",n,t),this._toggleAttribute("drop-disabled",i,t)}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,VNt=t=>class extends t{static get properties(){return{_headerFocusable:{type:Object,observer:"_focusableChanged"},_itemsFocusable:{type:Object,observer:"_focusableChanged"},_footerFocusable:{type:Object,observer:"_focusableChanged"},_navigatingIsHidden:Boolean,_focusedItemIndex:{type:Number,value:0},_focusedColumnOrder:Number}}ready(){super.ready(),this._ios||this._android||(this.addEventListener("keydown",this._onKeyDown),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("focusin",this._onFocusIn),this.addEventListener("focusout",this._onFocusOut),this.$.table.addEventListener("focusin",this._onCellFocusIn.bind(this)),this.$.table.addEventListener("focusout",this._onCellFocusOut.bind(this)),this.addEventListener("mousedown",(()=>{this._toggleAttribute("navigating",!1,this),this._isMousedown=!0})),this.addEventListener("mouseup",(()=>this._isMousedown=!1)))}_focusableChanged(t,e){e&&e.setAttribute("tabindex","-1"),t&&t.setAttribute("tabindex","0")}_onKeyDown(t){let e,n=t.key;switch("Up"!==n&&"Down"!==n&&"Left"!==n&&"Right"!==n||(n="Arrow"+n),"Esc"===n&&(n="Escape"),"Spacebar"===n&&(n=" "),n){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":e="Navigation";break;case"Enter":case"Escape":case"F2":e="Interaction";break;case"Tab":e="Tab";break;case" ":e="Space"}this._detectInteracting(t),this.hasAttribute("interacting")&&"Interaction"!==e&&(e=void 0),e&&this[`_on${e}KeyDown`](t,n)}_ensureScrolledToIndex(t){Array.from(this.$.items.children).filter((e=>e.index===t))[0]||this._scrollToIndex(t)}_onNavigationKeyDown(t,e){function n(t){return Array.prototype.indexOf.call(t.parentNode.children,t)}this._scrollHandler(),t.preventDefault();const i=this._lastVisibleIndex-this._firstVisibleIndex-1;let r=0,o=0;switch(e){case"ArrowRight":r=this.__isRTL?-1:1;break;case"ArrowLeft":r=this.__isRTL?1:-1;break;case"Home":r=-1/0,t.ctrlKey&&(o=-1/0);break;case"End":r=1/0,t.ctrlKey&&(o=1/0);break;case"ArrowDown":o=1;break;case"ArrowUp":o=-1;break;case"PageDown":o=i;break;case"PageUp":o=-i}const a=t.composedPath()[0],s=n(a),l=this._elementMatches(a,'[part~="details-cell"]'),c=a.parentNode,u=c.parentNode,h=(u===this.$.items?this._effectiveSize:u.children.length)-1,d=u===this.$.items?void 0!==this._focusedItemIndex?this._focusedItemIndex:c.index:n(c);let p=Math.max(0,Math.min(d+o,h)),f=!1;if(u===this.$.items){const t=c._item,e=this._cache.getItemForIndex(p);f=l?0===o:1===o&&this._isDetailsOpened(t)||-1===o&&p!==d&&this._isDetailsOpened(e),f!==l&&(1===o&&f||-1===o&&!f)&&(p=d)}if(u!==this.$.items)if(p>d)for(;p<h&&u.children[p].hidden;)p++;else if(p<d)for(;p>0&&u.children[p].hidden;)p--;void 0===this._focusedColumnOrder&&(this._focusedColumnOrder=l?0:this._getColumns(u,d).filter((t=>!t.hidden))[s]._order);const m=this._getColumns(u,p).filter((t=>!t.hidden)),g=m.map((t=>t._order)).sort(((t,e)=>t-e)),_=g.length-1,y=g.indexOf(g.slice(0).sort(((t,e)=>Math.abs(t-this._focusedColumnOrder)-Math.abs(e-this._focusedColumnOrder)))[0]),v=0===o&&l?y:Math.max(0,Math.min(y+r,_));v!==y&&(this._focusedColumnOrder=void 0),u===this.$.items&&this._ensureScrolledToIndex(p),this._toggleAttribute("navigating",!0,this);const b=m.reduce(((t,e,n)=>(t[e._order]=n,t)),{})[g[v]],x=u===this.$.items?Array.from(u.children).filter((t=>t.index===p))[0]:u.children[p];if(!x)return;const w=f?Array.from(x.children).filter((t=>this._elementMatches(t,'[part~="details-cell"]')))[0]:x.children[b];if(this._scrollHorizontallyToCell(w),u===this.$.items&&(this._focusedItemIndex=p),u===this.$.items){const t=w.getBoundingClientRect(),e=this.$.footer.getBoundingClientRect().top,n=this.$.header.getBoundingClientRect().bottom;t.bottom>e?(this.$.table.scrollTop+=t.bottom-e,this._scrollHandler()):t.top<n&&(this.$.table.scrollTop-=n-t.top,this._scrollHandler())}w.focus()}_parseEventPath(t){const e=t.indexOf(this.$.table);return{rowGroup:t[e-1],row:t[e-2],cell:t[e-3]}}_onInteractionKeyDown(t,e){const n=t.composedPath()[0],i="input"===n.localName&&!/^(button|checkbox|color|file|image|radio|range|reset|submit)$/i.test(n.type);let r;switch(e){case"Enter":r=!this.hasAttribute("interacting")||!i;break;case"Escape":r=!1;break;case"F2":r=!this.hasAttribute("interacting")}const{cell:o}=this._parseEventPath(t.composedPath());if(this.hasAttribute("interacting")!==r)if(r){const e=o._content.querySelector("[focus-target]")||o._content.firstElementChild;e&&(t.preventDefault(),e.focus(),this._toggleAttribute("interacting",!0,this),this._toggleAttribute("navigating",!1,this))}else t.preventDefault(),this._focusedColumnOrder=void 0,o.focus(),this._toggleAttribute("interacting",!1,this),this._toggleAttribute("navigating",!0,this)}_predictFocusStepTarget(t,e){const n=[this.$.table,this._headerFocusable,this._itemsFocusable,this._footerFocusable,this.$.focusexit];let i=n.indexOf(t);for(i+=e;i>=0&&i<=n.length-1&&(!n[i]||n[i].parentNode.hidden);)i+=e;return n[i]}_onTabKeyDown(t){const e=this._predictFocusStepTarget(t.composedPath()[0],t.shiftKey?-1:1);if(e===this.$.table)this.$.table.focus();else if(e===this.$.focusexit)this.$.focusexit.focus();else if(e===this._itemsFocusable){let n=e;const i=this._itemsFocusable.parentNode;if(this._ensureScrolledToIndex(this._focusedItemIndex),i.index!==this._focusedItemIndex){const t=Array.from(i.children).indexOf(this._itemsFocusable),e=Array.from(this.$.items.children).filter((t=>t.index===this._focusedItemIndex))[0];e&&(n=e.children[t])}t.preventDefault(),n.focus()}else t.preventDefault(),e.focus();this._toggleAttribute("navigating",!0,this)}_onSpaceKeyDown(t){t.preventDefault();const e=t.composedPath()[0];e._content&&e._content.firstElementChild||this.dispatchEvent(new CustomEvent("cell-activate",{detail:{model:this.__getRowModel(e.parentElement)}}))}_onKeyUp(t){if(!/^( |SpaceBar)$/.test(t.key))return;t.preventDefault();const e=t.composedPath()[0];if(e._content&&e._content.firstElementChild){const t=this.hasAttribute("navigating");e._content.firstElementChild.click(),this._toggleAttribute("navigating",t,this)}}_onFocusIn(t){this._isMousedown||this._toggleAttribute("navigating",!0,this);const e=t.composedPath()[0];e===this.$.table||e===this.$.focusexit?(this._predictFocusStepTarget(e,e===this.$.table?1:-1).focus(),this._toggleAttribute("interacting",!1,this)):this._detectInteracting(t)}_onFocusOut(t){this._toggleAttribute("navigating",!1,this),this._detectInteracting(t)}_onCellFocusIn(t){if(this._detectInteracting(t),3===t.composedPath().indexOf(this.$.table)){const e=t.composedPath()[0];this._activeRowGroup=e.parentNode.parentNode,this._activeRowGroup===this.$.header?this._headerFocusable=e:this._activeRowGroup===this.$.items?this._itemsFocusable=e:this._activeRowGroup===this.$.footer&&(this._footerFocusable=e),e._content.dispatchEvent(new CustomEvent("cell-focusin",{bubbles:!1}))}this._detectFocusedItemIndex(t)}_onCellFocusOut(t){3===t.composedPath().indexOf(this.$.table)&&t.composedPath()[0]._content.dispatchEvent(new CustomEvent("cell-focusout",{bubbles:!1}))}_detectInteracting(t){this._toggleAttribute("interacting",t.composedPath().some((t=>"vaadin-grid-cell-content"===t.localName)),this)}_detectFocusedItemIndex(t){const{rowGroup:e,row:n}=this._parseEventPath(t.composedPath());e===this.$.items&&(this._focusedItemIndex=n.index)}_preventScrollerRotatingCellFocus(t,e){t.index===this._focusedItemIndex&&this.hasAttribute("navigating")&&this._activeRowGroup===this.$.items&&(this._navigatingIsHidden=!0,this._toggleAttribute("navigating",!1,this)),e===this._focusedItemIndex&&this._navigatingIsHidden&&(this._navigatingIsHidden=!1,this._toggleAttribute("navigating",!0,this))}_getColumns(t,e){let n=this._columnTree.length-1;return t===this.$.header?n=e:t===this.$.footer&&(n=this._columnTree.length-1-e),this._columnTree[n]}_resetKeyboardNavigation(){if(this.$.header.firstElementChild&&(this._headerFocusable=Array.from(this.$.header.firstElementChild.children).filter((t=>!t.hidden))[0]),this.$.items.firstElementChild){const t=this._iterateItems(((t,e)=>{if(this._firstVisibleIndex===e)return this.$.items.children[t]}));t&&(this._itemsFocusable=Array.from(t.children).filter((t=>!t.hidden))[0])}this.$.footer.firstElementChild&&(this._footerFocusable=Array.from(this.$.footer.firstElementChild.children).filter((t=>!t.hidden))[0])}_scrollHorizontallyToCell(t){if(t.hasAttribute("frozen")||this._elementMatches(t,'[part~="details-cell"]'))return;const e=t.getBoundingClientRect(),n=t.parentNode,i=Array.from(n.children).indexOf(t),r=this.$.table.getBoundingClientRect();let o=r.left,a=r.right;for(let t=i-1;t>=0;t--){const e=n.children[t];if(!e.hasAttribute("hidden")&&!this._elementMatches(e,'[part~="details-cell"]')&&e.hasAttribute("frozen")){o=e.getBoundingClientRect().right;break}}for(let t=i+1;t<n.children.length;t++){const e=n.children[t];if(!e.hasAttribute("hidden")&&!this._elementMatches(e,'[part~="details-cell"]')&&e.hasAttribute("frozen")){a=e.getBoundingClientRect().left;break}}e.left<o&&(this.$.table.scrollLeft+=Math.round(e.left-o)),e.right>a&&(this.$.table.scrollLeft+=Math.round(e.right-a))}_elementMatches(t,e){return t.matches?t.matches(e):-1!==Array.from(t.parentNode.querySelectorAll(e)).indexOf(t)}}
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,UNt=t=>class extends(di(t)){static get properties(){return{columnReorderingAllowed:{type:Boolean,value:!1},_orderBaseScope:{type:Number,value:1e7}}}static get observers(){return["_updateOrders(_columnTree, _columnTree.*)"]}ready(){super.ready(),ni(this,"track",this._onTrackEvent),this._reorderGhost=this.shadowRoot.querySelector('[part="reorder-ghost"]'),this.addEventListener("touchstart",this._onTouchStart.bind(this)),this.addEventListener("touchmove",this._onTouchMove.bind(this)),this.addEventListener("touchend",this._onTouchEnd.bind(this)),this.addEventListener("contextmenu",this._onContextMenu.bind(this))}_onContextMenu(t){this.hasAttribute("reordering")&&t.preventDefault()}_onTouchStart(t){this._startTouchReorderTimeout=setTimeout((()=>{this._onTrackStart({detail:{x:t.touches[0].clientX,y:t.touches[0].clientY}})}),100)}_onTouchMove(t){this._draggedColumn&&t.preventDefault(),clearTimeout(this._startTouchReorderTimeout)}_onTouchEnd(){clearTimeout(this._startTouchReorderTimeout),this._onTrackEnd()}_onTrackEvent(t){if("start"===t.detail.state){const e=t.composedPath(),n=e[e.indexOf(this.$.header)-2];if(!n||!n._content)return;const i=this.getRootNode().activeElement;if(n._content.contains(this.getRootNode().activeElement)&&(!this._ie||!this._isFocusable(i)))return;if(this.$.scroller.hasAttribute("column-resizing"))return;this._touchDevice||this._onTrackStart(t)}else"track"===t.detail.state?this._onTrack(t):"end"===t.detail.state&&this._onTrackEnd(t)}_onTrackStart(t){if(!this.columnReorderingAllowed)return;const e=t.path||qi(t).path;if(e&&e.filter((t=>t.hasAttribute&&t.hasAttribute("draggable")))[0])return;const n=this._cellFromPoint(t.detail.x,t.detail.y);if(n&&-1!==n.getAttribute("part").indexOf("header-cell")){for(this._toggleAttribute("reordering",!0,this),this._draggedColumn=n._column;1===this._draggedColumn.parentElement.childElementCount;)this._draggedColumn=this._draggedColumn.parentElement;this._setSiblingsReorderStatus(this._draggedColumn,"allowed"),this._draggedColumn._reorderStatus="dragging",this._updateGhost(n),this._reorderGhost.style.visibility="visible",this._updateGhostPosition(t.detail.x,this._touchDevice?t.detail.y-50:t.detail.y),this._autoScroller()}}_onTrack(t){if(!this._draggedColumn)return;const e=this._cellFromPoint(t.detail.x,t.detail.y);if(!e)return;const n=this._getTargetColumn(e,this._draggedColumn);this._isSwapAllowed(this._draggedColumn,n)&&this._isSwappableByPosition(n,t.detail.x)&&this._swapColumnOrders(this._draggedColumn,n),this._updateGhostPosition(t.detail.x,this._touchDevice?t.detail.y-50:t.detail.y),this._lastDragClientX=t.detail.x}_onTrackEnd(){this._draggedColumn&&(this._toggleAttribute("reordering",!1,this),this._draggedColumn._reorderStatus="",this._setSiblingsReorderStatus(this._draggedColumn,""),this._draggedColumn=null,this._lastDragClientX=null,this._reorderGhost.style.visibility="hidden",this.dispatchEvent(new CustomEvent("column-reorder",{detail:{columns:this._getColumnsInOrder()}})))}_getColumnsInOrder(){return this._columnTree.slice(0).pop().filter((t=>!t.hidden)).sort(((t,e)=>t._order-e._order))}_cellFromPoint(t,e){let n;if(t=t||0,e=e||0,this._draggedColumn||this._toggleAttribute("no-content-pointer-events",!0,this.$.scroller),m?n=this.shadowRoot.elementFromPoint(t,e):(n=document.elementFromPoint(t,e),"vaadin-grid-cell-content"===n.localName&&(n=n.assignedSlot.parentNode)),this._toggleAttribute("no-content-pointer-events",!1,this.$.scroller),n&&n._column)return n}_updateGhostPosition(t,e){const n=this._reorderGhost.getBoundingClientRect(),i=t-n.width/2,r=e-n.height/2,o=parseInt(this._reorderGhost._left||0),a=parseInt(this._reorderGhost._top||0);this._reorderGhost._left=o-(n.left-i),this._reorderGhost._top=a-(n.top-r),this._reorderGhost.style.transform=`translate(${this._reorderGhost._left}px, ${this._reorderGhost._top}px)`}_getInnerText(t){return t.localName?"none"===getComputedStyle(t).display?"":Array.from(t.childNodes).map((t=>this._getInnerText(t))).join(""):t.textContent}_updateGhost(t){const e=this._reorderGhost;e.textContent=this._getInnerText(t._content);const n=window.getComputedStyle(t);return["boxSizing","display","width","height","background","alignItems","padding","border","flex-direction","overflow"].forEach((t=>e.style[t]=n[t])),e}_updateOrders(t,e){void 0!==t&&void 0!==e&&(t[0].forEach(((t,e)=>t._order=0)),t[0].forEach(((t,e)=>t._order=(e+1)*this._orderBaseScope)))}_setSiblingsReorderStatus(t,e){Array.from(t.parentNode.children).filter((e=>/column/.test(e.localName)&&this._isSwapAllowed(e,t))).forEach((t=>t._reorderStatus=e))}_autoScroller(){if(this._lastDragClientX){const t=this._lastDragClientX-this.getBoundingClientRect().right+50,e=this.getBoundingClientRect().left-this._lastDragClientX+50;t>0?this.$.table.scrollLeft+=t/10:e>0&&(this.$.table.scrollLeft-=e/10),this._scrollHandler()}this._draggedColumn&&this.async(this._autoScroller,10)}_isSwapAllowed(t,e){if(t&&e){const n=t.parentElement===e.parentElement,i=t.frozen===e.frozen;return t!==e&&n&&i}}_isSwappableByPosition(t,e){const n=Array.from(this.$.header.querySelectorAll('tr:not([hidden]) [part~="cell"]')).filter((e=>t.contains(e._column)))[0],i=this.$.header.querySelector("tr:not([hidden]) [reorder-status=dragging]").getBoundingClientRect(),r=n.getBoundingClientRect();return r.left>i.left?e>r.right-i.width:e<r.left+i.width}_swapColumnOrders(t,e){const n=t._order;t._order=e._order,e._order=n,this._updateLastFrozen(),this._updateFirstAndLastColumn()}_getTargetColumn(t,e){if(t&&e){let n=t._column;for(;n.parentElement!==e.parentElement&&n!==this;)n=n.parentElement;return n.parentElement===e.parentElement?n:t._column}}}
/**
    @license
    Copyright (c) 2018 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */,jNt=t=>class extends t{static get properties(){return{resizable:{type:Boolean,value:function(){if("vaadin-grid-column-group"===this.localName)return;const t=this.parentNode;return t&&"vaadin-grid-column-group"===t.localName&&t.resizable||!1}},_headerTemplate:{type:Object},_footerTemplate:{type:Object},frozen:{type:Boolean,value:!1},hidden:{type:Boolean},header:{type:String},textAlign:{type:String},_lastFrozen:{type:Boolean,value:!1},_order:Number,_reorderStatus:Boolean,_emptyCells:Array,_headerCell:Object,_footerCell:Object,_grid:Object,headerRenderer:Function,footerRenderer:Function}}static get observers(){return["_widthChanged(width, _headerCell, _footerCell, _cells.*)","_frozenChanged(frozen, _headerCell, _footerCell, _cells.*)","_flexGrowChanged(flexGrow, _headerCell, _footerCell, _cells.*)","_pathOrHeaderChanged(path, header, _headerCell, _footerCell, _cells.*, renderer, headerRenderer, _bodyTemplate, _headerTemplate)","_textAlignChanged(textAlign, _cells.*, _headerCell, _footerCell)","_orderChanged(_order, _headerCell, _footerCell, _cells.*)","_lastFrozenChanged(_lastFrozen)","_setBodyTemplateOrRenderer(_bodyTemplate, renderer, _cells, _cells.*)","_setHeaderTemplateOrRenderer(_headerTemplate, headerRenderer, _headerCell)","_setFooterTemplateOrRenderer(_footerTemplate, footerRenderer, _footerCell)","_resizableChanged(resizable, _headerCell)","_reorderStatusChanged(_reorderStatus, _headerCell, _footerCell, _cells.*)","_hiddenChanged(hidden, _headerCell, _footerCell, _cells.*)"]}connectedCallback(){super.connectedCallback(),this._bodyTemplate&&(this._bodyTemplate.templatizer._grid=this._grid),this._headerTemplate&&(this._headerTemplate.templatizer._grid=this._grid),this._footerTemplate&&(this._footerTemplate.templatizer._grid=this._grid),this._templateObserver.flush(),this._bodyTemplate||this._templateObserver.callback(),requestAnimationFrame((()=>{this._allCells.forEach((t=>{t._content.parentNode||this._grid&&this._grid.appendChild(t._content)}))}))}disconnectedCallback(){super.disconnectedCallback(),requestAnimationFrame((()=>{this._findHostGrid()||this._allCells.forEach((t=>{t._content.parentNode&&t._content.parentNode.removeChild(t._content)}))})),this._gridValue=void 0}_findHostGrid(){let t=this;for(;t&&!/^vaadin.*grid(-pro)?$/.test(t.localName);)t=t.assignedSlot?t.assignedSlot.parentNode:t.parentNode;return t||void 0}get _grid(){return this._gridValue||(this._gridValue=this._findHostGrid()),this._gridValue}get _allCells(){return[].concat(this._cells||[]).concat(this._emptyCells||[]).concat(this._headerCell).concat(this._footerCell).filter((t=>t))}constructor(){super(),this._templateObserver=new Ri(this,(t=>{this._headerTemplate=this._prepareHeaderTemplate(),this._footerTemplate=this._prepareFooterTemplate(),this._bodyTemplate=this._prepareBodyTemplate()}))}_prepareHeaderTemplate(){return this._prepareTemplatizer(this._findTemplate(!0)||null,{})}_prepareFooterTemplate(){return this._prepareTemplatizer(this._findTemplate(!1,!0)||null,{})}_prepareBodyTemplate(){return this._prepareTemplatizer(this._findTemplate()||null)}_prepareTemplatizer(t,e){if(t&&!t.templatizer){const n=new kNt;n._grid=this._grid,n.dataHost=this.dataHost,n._instanceProps=e||n._instanceProps,n.template=t,t.templatizer=n}return t}_renderHeaderAndFooter(){this.headerRenderer&&this._headerCell&&this.__runRenderer(this.headerRenderer,this._headerCell),this.footerRenderer&&this._footerCell&&this.__runRenderer(this.footerRenderer,this._footerCell)}__runRenderer(t,e,n){const i=[e._content,this];n&&n.item&&i.push(n),t.apply(this,i)}__setColumnTemplateOrRenderer(t,e,n){if(!this.hidden){if(t&&e)throw new Error("You should only use either a renderer or a template");n.forEach((n=>{const i=this._grid.__getRowModel(n.parentElement);if(e)n._renderer=e,(i.item||e===this.headerRenderer||e===this.footerRenderer)&&this.__runRenderer(e,n,i);else if(n._template!==t){n._template=t,n._content.innerHTML="",t.templatizer._grid=t.templatizer._grid||this._grid;const e=t.templatizer.createInstance();n._content.appendChild(e.root),n._instance=e,i.item&&n._instance.setProperties(i)}}))}}_setBodyTemplateOrRenderer(t,e,n,i){(t||e)&&n&&this.__setColumnTemplateOrRenderer(t,e,n)}_setHeaderTemplateOrRenderer(t,e,n){(t||e)&&n&&this.__setColumnTemplateOrRenderer(t,e,[n])}_setFooterTemplateOrRenderer(t,e,n){(t||e)&&n&&(this.__setColumnTemplateOrRenderer(t,e,[n]),this._grid.__updateHeaderFooterRowVisibility(n.parentElement))}_selectFirstTemplate(t=!1,e=!1){return Ri.getFlattenedNodes(this).filter((n=>"template"===n.localName&&n.classList.contains("header")===t&&n.classList.contains("footer")===e))[0]}_findTemplate(t,e){const n=this._selectFirstTemplate(t,e);return n&&this.dataHost&&(n._rootDataHost=this.dataHost._rootDataHost||this.dataHost),n}_flexGrowChanged(t,e,n,i){this.parentElement&&this.parentElement._columnPropChanged&&this.parentElement._columnPropChanged("flexGrow"),this._allCells.forEach((e=>e.style.flexGrow=t))}_orderChanged(t,e,n,i){this._allCells.forEach((e=>e.style.order=t))}_widthChanged(t,e,n,i){this.parentElement&&this.parentElement._columnPropChanged&&this.parentElement._columnPropChanged("width"),this._allCells.forEach((e=>e.style.width=t)),this._grid&&this._grid.__forceReflow&&this._grid.__forceReflow()}_frozenChanged(t,e,n,i){this.parentElement&&this.parentElement._columnPropChanged&&this.parentElement._columnPropChanged("frozen",t),this._allCells.forEach((e=>this._toggleAttribute("frozen",t,e))),this._grid&&this._grid._frozenCellsChanged&&this._grid._frozenCellsChanged()}_lastFrozenChanged(t){this._allCells.forEach((e=>this._toggleAttribute("last-frozen",t,e))),this.parentElement&&this.parentElement._columnPropChanged&&(this.parentElement._lastFrozen=t)}_pathOrHeaderChanged(t,e,n,i,r,o,a,s,l){const c=void 0!==e;!a&&!l&&c&&n&&this.__setTextContent(n._content,e),t&&r.value&&(o||s||this.__setColumnTemplateOrRenderer(void 0,((e,n,{item:i})=>this.__setTextContent(e,this.get(t,i))),r.value),a||l||c||!n||null===e||this.__setTextContent(n._content,this._generateHeader(t))),n&&this._grid.__updateHeaderFooterRowVisibility(n.parentElement)}__setTextContent(t,e){t.textContent!==e&&(t.textContent=e)}_generateHeader(t){return t.substr(t.lastIndexOf(".")+1).replace(/([A-Z])/g,"-$1").toLowerCase().replace(/-/g," ").replace(/^./,(t=>t.toUpperCase()))}_toggleAttribute(t,e,n){n.hasAttribute(t)===!e&&(e?n.setAttribute(t,""):n.removeAttribute(t))}_reorderStatusChanged(t,e,n,i){this._allCells.forEach((e=>e.setAttribute("reorder-status",t)))}_resizableChanged(t,e){void 0!==t&&void 0!==e&&e&&[e].concat(this._emptyCells).forEach((e=>{if(e){const n=e.querySelector('[part~="resize-handle"]');if(n&&e.removeChild(n),t){const t=document.createElement("div");t.setAttribute("part","resize-handle"),e.appendChild(t)}}}))}_textAlignChanged(t,e,n,i){if(void 0===t)return;if(-1===["start","end","center"].indexOf(t))return void console.warn('textAlign can only be set as "start", "end" or "center"');let r;"ltr"===getComputedStyle(this._grid).direction?"start"===t?r="left":"end"===t&&(r="right"):"start"===t?r="right":"end"===t&&(r="left"),this._allCells.forEach((e=>{e._content.style.textAlign=t,getComputedStyle(e._content).textAlign!==t&&(e._content.style.textAlign=r)}))}_hiddenChanged(t,e,n,i){this.parentElement&&this.parentElement._columnPropChanged&&this.parentElement._columnPropChanged("hidden",t),!!t!=!!this._previousHidden&&this._grid&&(!0===t&&this._allCells.forEach((t=>{t._content.parentNode&&t._content.parentNode.removeChild(t._content)})),this._grid._debouncerHiddenChanged=En.debounce(this._grid._debouncerHiddenChanged,_t,(()=>{this._grid&&this._grid._renderColumnTree&&this._grid._renderColumnTree(this._grid._columnTree)})),this._grid._updateLastFrozen&&this._grid._updateLastFrozen(),this._grid.notifyResize&&this._grid.notifyResize(),this._grid._resetKeyboardNavigation&&this._grid._resetKeyboardNavigation()),this._previousHidden=t}};class GNt extends(jNt(tNt(ye))){static get is(){return"vaadin-grid-column"}static get properties(){return{width:{type:String,value:"100px"},flexGrow:{type:Number,value:1},renderer:Function,path:{type:String},autoWidth:{type:Boolean,value:!1},_bodyTemplate:{type:Object},_cells:Array}}}customElements.define(GNt.is,GNt);
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */
const WNt=document.createElement("dom-module");WNt.appendChild(_e`
  <style>
    @keyframes vaadin-grid-appear {
      to {
        opacity: 1;
      }
    }

    :host {
      display: block;
      animation: 1ms vaadin-grid-appear;
      height: 400px;
      flex: 1 1 auto;
      align-self: stretch;
      position: relative;
    }

    :host([hidden]) {
      display: none !important;
    }

    #scroller {
      display: block;
      transform: translateY(0);
      width: auto;
      height: auto;
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
    }

    :host([height-by-rows]) {
      height: auto;
      align-self: flex-start;
      flex-grow: 0;
      width: 100%;
    }

    :host([height-by-rows]) #scroller {
      width: 100%;
      height: 100%;
      position: relative;
    }

    #table {
      display: flex;
      flex-direction: column;
      width: 100%;
      height: 100%;
      overflow: auto;
      position: relative;
      outline: none;
      /* Workaround for a Desktop Safari bug: new stacking context here prevents the scrollbar from getting hidden */
      z-index: 0;
    }

    #header,
    #footer {
      display: block;
      position: -webkit-sticky;
      position: sticky;
      left: 0;
      overflow: visible;
      width: 100%;
      z-index: 1;
    }

    #header {
      top: 0;
    }

    th {
      text-align: inherit;
    }

    /* Safari doesn't work with "inherit" */
    [safari] th {
      text-align: initial;
    }

    #footer {
      bottom: 0;
    }

    #items {
      flex-grow: 1;
      flex-shrink: 0;
      display: block;
      position: -webkit-sticky;
      position: sticky;
      width: 100%;
      left: 0;
      overflow: visible;
    }

    [part~="row"] {
      display: flex;
      width: 100%;
      box-sizing: border-box;
      margin: 0;
    }

    [part~="row"][loading] [part~="body-cell"] ::slotted(vaadin-grid-cell-content) {
      opacity: 0;
    }

    #items [part~="row"] {
      position: absolute;
    }

    #items [part~="row"]:empty {
      height: 1em;
    }

    [part~="cell"]:not([part~="details-cell"]) {
      flex-shrink: 0;
      flex-grow: 1;
      box-sizing: border-box;
      display: flex;
      width: 100%;
      position: relative;
      align-items: center;
      padding: 0;
      white-space: nowrap;
    }

    [part~="details-cell"] {
      position: absolute;
      bottom: 0;
      width: 100%;
      box-sizing: border-box;
      padding: 0;
    }

    [part~="cell"] ::slotted(vaadin-grid-cell-content) {
      display: block;
      width: 100%;
      box-sizing: border-box;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    [hidden] {
      display: none !important;
    }

    [frozen] {
      z-index: 2;
      will-change: transform;
    }

    [no-scrollbars][safari] #table,
    [no-scrollbars][firefox] #table {
      overflow: hidden;
    }

    /* Reordering styles */
    :host([reordering]) [part~="cell"] ::slotted(vaadin-grid-cell-content),
    :host([reordering]) [part~="resize-handle"],
    #scroller[no-content-pointer-events] [part~="cell"] ::slotted(vaadin-grid-cell-content) {
      pointer-events: none;
    }

    [part~="reorder-ghost"] {
      visibility: hidden;
      position: fixed;
      pointer-events: none;
      opacity: 0.5;

      /* Prevent overflowing the grid in Firefox */
      top: 0;
      left: 0;
    }

    :host([reordering]) {
      -moz-user-select: none;
      -webkit-user-select: none;
      user-select: none;
    }

    #scroller[ie][column-reordering-allowed] [part~="header-cell"] {
      -ms-user-select: none;
    }

    /* Resizing styles */
    [part~="resize-handle"] {
      position: absolute;
      top: 0;
      right: 0;
      height: 100%;
      cursor: col-resize;
      z-index: 1;
    }

    [part~="resize-handle"]::before {
      position: absolute;
      content: "";
      height: 100%;
      width: 35px;
      transform: translateX(-50%);
    }

    [last-column] [part~="resize-handle"]::before,
    [last-frozen] [part~="resize-handle"]::before {
      width: 18px;
      transform: none;
      right: 0;
    }

    #scroller[column-resizing] {
      -ms-user-select: none;
      -moz-user-select: none;
      -webkit-user-select: none;
      user-select: none;
    }

    /* Sizer styles */
    #sizer {
      display: flex;
      position: absolute;
      visibility: hidden;
    }

    #sizer [part~="details-cell"] {
      display: none !important;
    }

    #sizer [part~="cell"][hidden] {
      display: none !important;
    }

    #sizer [part~="cell"] {
      display: block;
      flex-shrink: 0;
      line-height: 0;
      height: 0 !important;
      min-height: 0 !important;
      max-height: 0 !important;
      padding: 0 !important;
      border: none !important;
    }

    #sizer [part~="cell"]::before {
      content: "-";
    }

    #sizer [part~="cell"] ::slotted(vaadin-grid-cell-content) {
      display: none !important;
    }

    /* RTL specific styles */

    :host([dir="rtl"]) #items,
    :host([dir="rtl"]) #header,
    :host([dir="rtl"]) #footer {
      left: auto;
    }

    :host([dir="rtl"]) [part~="reorder-ghost"] {
      left: auto;
      right: 0;
    }

    :host([dir="rtl"]) [part~="resize-handle"] {
      left: 0;
      right: auto;
    }

    :host([dir="rtl"]) [part~="resize-handle"]::before {
      transform: translateX(50%);
    }

    :host([dir="rtl"]) [last-column] [part~="resize-handle"]::before,
    :host([dir="rtl"]) [last-frozen] [part~="resize-handle"]::before {
      left: 0;
      right: auto;
    }
  </style>
`),WNt.register("vaadin-grid-styles");
/**
    @license
    Copyright (c) 2017 Vaadin Ltd.
    This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
    */
const qNt=(()=>{try{return document.createEvent("TouchEvent"),!0}catch(t){return!1}})();class YNt extends(cNt(qPt(ENt(wNt(TNt(bNt(PNt(NNt(INt(LNt(VNt(vNt(ANt(UNt(SNt(CNt(FNt(ONt(yNt))))))))))))))))))){static get template(){return _e`
    <style include="vaadin-grid-styles"></style>

    <div id="scroller" safari\$="[[_safari]]" ios\$="[[_ios]]" ie\$="[[_ie]]" loading\$="[[loading]]" column-reordering-allowed\$="[[columnReorderingAllowed]]">

      <table id="table" role="grid" aria-multiselectable="true" tabindex="0">
        <caption id="sizer" part="row"></caption>
        <thead id="header" role="rowgroup"></thead>
        <tbody id="items" role="rowgroup"></tbody>
        <tfoot id="footer" role="rowgroup"></tfoot>
      </table>

      <div part="reorder-ghost"></div>
    </div>

    <!-- The template needs at least one slot or else shady doesn't distribute -->
    <slot name="nodistribute"></slot>

    <div id="focusexit" tabindex="0"></div>
`}static get is(){return"vaadin-grid"}static get version(){return"5.7.13"}static get observers(){return["_columnTreeChanged(_columnTree, _columnTree.*)"]}static get properties(){return{_safari:{type:Boolean,value:/^((?!chrome|android).)*safari/i.test(navigator.userAgent)},_ios:{type:Boolean,value:/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1},_edge:{type:Boolean,value:"undefined"!=typeof CSS&&CSS.supports("(-ms-ime-align:auto)")},_ie:{type:Boolean,value:!(!navigator.userAgent.match(/Trident/)||navigator.userAgent.match(/MSIE/))},_firefox:{type:Boolean,value:navigator.userAgent.toLowerCase().indexOf("firefox")>-1},_android:{type:Boolean,value:/android/i.test(navigator.userAgent)},_touchDevice:{type:Boolean,value:qNt},heightByRows:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"_heightByRowsChanged"},_recalculateColumnWidthOnceLoadingFinished:{type:Boolean,value:!0}}}constructor(){super(),this.addEventListener("animationend",this._onAnimationEnd)}connectedCallback(){super.connectedCallback(),this.recalculateColumnWidths()}attributeChangedCallback(t,e,n){super.attributeChangedCallback(t,e,n),"dir"===t&&(this.__isRTL="rtl"===n,this._updateScrollerMeasurements())}__hasRowsWithClientHeight(){return!!Array.from(this.$.items.children).filter((t=>t.clientHeight)).length}__itemsReceived(){this._recalculateColumnWidthOnceLoadingFinished&&!this._cache.isLoading()&&this.__hasRowsWithClientHeight()&&(this._recalculateColumnWidthOnceLoadingFinished=!1,this.recalculateColumnWidths())}_recalculateColumnWidths(t){t.forEach((t=>{t.width="auto",t._origFlexGrow=t.flexGrow,t.flexGrow=0})),t.forEach((t=>{t._currentWidth=0,t._allCells.forEach((e=>{t._currentWidth=Math.max(t._currentWidth,e.offsetWidth+1)}))})),t.forEach((t=>{t.width=`${t._currentWidth}px`,t.flexGrow=t._origFlexGrow,t._currentWidth=void 0,t._origFlexGrow=void 0}))}recalculateColumnWidths(){if(this._columnTree)if(this._cache.isLoading())this._recalculateColumnWidthOnceLoadingFinished=!0;else{const t=this._getColumns().filter((t=>!t.hidden&&t.autoWidth));this._recalculateColumnWidths(t)}}_createScrollerRows(t){const e=[];for(var n=0;n<t;n++){const t=document.createElement("tr");t.setAttribute("part","row"),t.setAttribute("role","row"),this._columnTree&&this._updateRow(t,this._columnTree[this._columnTree.length-1],"body",!1,!0),e.push(t)}return this._columnTree&&this._columnTree[this._columnTree.length-1].forEach((t=>t.isConnected&&t.notifyPath&&t.notifyPath("_cells.*",t._cells))),(function i(t,e,n){Mi||Ci(),Ei.push([t,e,n])})(this,(()=>{this._updateFirstAndLastColumn(),this._resetKeyboardNavigation()})),e}_getRowTarget(){return this.$.items}_createCell(t){const e="vaadin-grid-cell-content-"+(this._contentIndex=this._contentIndex+1||0),n=document.createElement("vaadin-grid-cell-content");n.setAttribute("slot",e);const i=document.createElement(t);i.id=e.replace("-content-","-"),i.setAttribute("tabindex","-1"),i.setAttribute("role","td"===t?"gridcell":"columnheader");const r=document.createElement("slot");return r.setAttribute("name",e),i.appendChild(r),i._content=n,n.addEventListener("mousedown",(()=>{if(window.chrome){const t=()=>{n.contains(this.getRootNode().activeElement)||i.focus(),document.removeEventListener("mouseup",t,!0)};document.addEventListener("mouseup",t,!0)}else setTimeout((()=>{n.contains(this.getRootNode().activeElement)||i.focus()}))})),i}_updateRow(t,e,n,i,r){n=n||"body";const o=document.createDocumentFragment();Array.from(t.children).forEach((t=>t._vacant=!0)),t.innerHTML="","sizer"!==t.id&&(t.hidden=!0),e.filter((t=>!t.hidden)).forEach(((e,a,s)=>{let l;if("body"===n){if(e._cells=e._cells||[],l=e._cells.filter((t=>t._vacant))[0],l||(l=this._createCell("td"),e._cells.push(l)),l.setAttribute("part","cell body-cell"),t.appendChild(l),a===s.length-1&&(this._rowDetailsTemplate||this.rowDetailsRenderer)){this._detailsCells=this._detailsCells||[];const e=this._detailsCells.filter((t=>t._vacant))[0]||this._createCell("td");-1===this._detailsCells.indexOf(e)&&this._detailsCells.push(e),e._content.parentElement||o.appendChild(e._content),this._configureDetailsCell(e),t.appendChild(e),this._a11ySetRowDetailsCell(t,e),e._vacant=!1}e.notifyPath&&!r&&e.notifyPath("_cells.*",e._cells)}else{const r="header"===n?"th":"td";i||"vaadin-grid-column-group"===e.localName?(l=e[`_${n}Cell`]||this._createCell(r),l._column=e,t.appendChild(l),e[`_${n}Cell`]=l):(e._emptyCells=e._emptyCells||[],l=e._emptyCells.filter((t=>t._vacant))[0]||this._createCell(r),l._column=e,t.appendChild(l),-1===e._emptyCells.indexOf(l)&&e._emptyCells.push(l)),l.setAttribute("part",`cell ${n}-cell`),this.__updateHeaderFooterRowVisibility(t)}l._content.parentElement||o.appendChild(l._content),l._vacant=!1,l._column=e})),this.appendChild(o),this._frozenCellsChanged(),this._updateFirstAndLastColumnForRow(t)}__updateHeaderFooterRowVisibility(t){if(!t)return;const e=Array.from(t.children).filter((e=>{const n=e._column;if(n._emptyCells&&n._emptyCells.indexOf(e)>-1)return!1;if(t.parentElement===this.$.header){if(n.headerRenderer||n._headerTemplate)return!0;if(null===n.header)return!1;if(n.path||void 0!==n.header)return!0}else if(n.footerRenderer||n._footerTemplate)return!0}));t.hidden!==!e.length&&(t.hidden=!e.length,this.notifyResize())}_updateScrollerItem(t,e){this._preventScrollerRotatingCellFocus(t,e),this._columnTree&&(this._toggleAttribute("first",0===e,t),this._toggleAttribute("odd",e%2,t),this._a11yUpdateRowRowindex(t,e),this._getItem(e,t))}_columnTreeChanged(t,e){this._renderColumnTree(t),this.recalculateColumnWidths()}_renderColumnTree(t){for(Array.from(this.$.items.children).forEach((e=>this._updateRow(e,t[t.length-1],null,!1,!0)));this.$.header.children.length<t.length;){const t=document.createElement("tr");t.setAttribute("part","row"),t.setAttribute("role","row"),this.$.header.appendChild(t);const e=document.createElement("tr");e.setAttribute("part","row"),e.setAttribute("role","row"),this.$.footer.appendChild(e)}for(;this.$.header.children.length>t.length;)this.$.header.removeChild(this.$.header.firstElementChild),this.$.footer.removeChild(this.$.footer.firstElementChild);Array.from(this.$.header.children).forEach(((e,n)=>this._updateRow(e,t[n],"header",n===t.length-1))),Array.from(this.$.footer.children).forEach(((e,n)=>this._updateRow(e,t[t.length-1-n],"footer",0===n))),this._updateRow(this.$.sizer,t[t.length-1]),this._resizeHandler(),this._frozenCellsChanged(),this._updateFirstAndLastColumn(),this._resetKeyboardNavigation(),this._a11yUpdateHeaderRows(),this._a11yUpdateFooterRows(),this.__updateFooterPositioning()}__updateFooterPositioning(){this._firefox&&(this.$.items.style.paddingBottom=0,this.heightByRows||(this.$.items.style.paddingBottom=`${this.$.footer.offsetHeight}px`)),this._ios&&!window.CSS.supports("position","sticky")&&(this.$.table.style.height="",this.$.table.style.minHeight="100%",this.$.table.style.maxHeight="100%",setTimeout((()=>this.$.table.style.height=`${this.$.scroller.offsetHeight}px`)))}_updateItem(t,e){t._item=e;const n=this.__getRowModel(t);this._toggleAttribute("selected",n.selected,t),this._a11yUpdateRowSelected(t,n.selected),this._a11yUpdateRowLevel(t,n.level),this._toggleAttribute("expanded",n.expanded,t),this._toggleAttribute("details-opened",this._isDetailsOpened(e),t),(this._rowDetailsTemplate||this.rowDetailsRenderer)&&this._toggleDetailsCell(t,e),this._generateCellClassNames(t,n),this._filterDragAndDrop(t,n),Array.from(t.children).forEach((t=>{if(t._renderer){const e=t._column||this;t._renderer.call(e,t._content,e,n)}else t._instance&&(t._instance.__detailsOpened__=n.detailsOpened,t._instance.__selected__=n.selected,t._instance.__level__=n.level,t._instance.__expanded__=n.expanded,t._instance.setProperties(n))})),this._debouncerUpdateHeights=En.debounce(this._debouncerUpdateHeights,gt.after(1),(()=>{this._updateMetrics(),this._positionItems(),this._updateScrollerSize()}))}_resizeHandler(){this._updateDetailsCellHeights(),this._accessIronListAPI(super._resizeHandler,!0),this._updateScrollerMeasurements(),this.__updateFooterPositioning()}_onAnimationEnd(t){0===t.animationName.indexOf("vaadin-grid-appear")&&(this._render(),t.stopPropagation(),this.notifyResize(),this.__itemsReceived(),requestAnimationFrame((()=>{this.__scrollToPendingIndex(),this.$.table.style.webkitOverflowScrolling="touch"})))}_toggleAttribute(t,e,n){n.hasAttribute(t)===!e&&(e?n.setAttribute(t,""):n.removeAttribute(t))}__getRowModel(t){return{index:t.index,item:t._item,level:this._getIndexLevel(t.index),expanded:this._isExpanded(t._item),selected:this._isSelected(t._item),detailsOpened:!(!this._rowDetailsTemplate&&!this.rowDetailsRenderer)&&this._isDetailsOpened(t._item)}}render(){this._columnTree&&(this._columnTree.forEach((t=>{t.forEach((t=>t._renderHeaderAndFooter()))})),this._update())}notifyResize(){super.notifyResize()}_heightByRowsChanged(t,e){(t||e)&&this.notifyResize()}__forceReflow(){this._debouncerForceReflow=En.debounce(this._debouncerForceReflow,_t,(()=>{this.$.scroller.style.overflow="hidden",setTimeout((()=>this.$.scroller.style.overflow=""))}))}}customElements.define(YNt.is,YNt);let XNt=class extends ye{constructor(){super(...arguments),this._run=""}_csvUrl(t,e,n){return e?VO(n(t,e),{format:"csv"}):""}_jsonUrl(t,e,n){return e?n(t,e):""}_csvName(t,e){return e?`run-${e}-tag-${t}.csv`:""}_jsonName(t,e){return e?`run-${e}-tag-${t}.json`:""}};XNt.template=_e`
    <paper-dropdown-menu
      no-label-float="true"
      label="run to download"
      selected-item-label="{{_run}}"
    >
      <paper-listbox slot="dropdown-content">
        <template is="dom-repeat" items="[[runs]]">
          <paper-item no-label-float="true">[[item]]</paper-item>
        </template>
      </paper-listbox>
    </paper-dropdown-menu>
    <template is="dom-if" if="[[_run]]">
      <a download="[[_csvName(tag, _run)]]" href="[[_csvUrl(tag, _run, urlFn)]]"
        >CSV</a
      ><!--
      --><a
        download="[[_jsonName(tag, _run)]]"
        href="[[_jsonUrl(tag, _run, urlFn)]]"
        >JSON</a
      >
    </template>
    <style>
      :host {
        display: flex;
        align-items: center;
        height: 32px;
      }
      paper-dropdown-menu {
        width: 100px;
        --paper-input-container-label: {
          font-size: 10px;
        }
        --paper-input-container-input: {
          font-size: 10px;
        }
      }
      a {
        font-size: 10px;
        margin: 0 0.2em;
      }
      paper-input {
        font-size: 22px;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],XNt.prototype,"_run",void 0),t([o({type:Array}),e("design:type",Array)],XNt.prototype,"runs",void 0),t([o({type:String}),e("design:type",String)],XNt.prototype,"tag",void 0),t([o({type:Object}),e("design:type",Object)],XNt.prototype,"urlFn",void 0),XNt=t([i("tf-downloader")],XNt),new URLSearchParams(window.location.search);let $Nt=class extends ye{constructor(){super(...arguments),this.colorScale=null,this._loadDataCallback=(t,e,n)=>{if(null==n)return void console.error("Failed to load data for:",e);const i=n.map((t=>({wall_time:new Date(1e3*t[0]),step:t[1],scalar:t[2]}))),r=this._getSeriesNameFromDatum(e);t.setSeriesMetadata(r,e),t.setSeriesData(r,i)},this.getDataLoadUrl=({tag:t,run:e})=>gr().pluginRoute("scalars","/scalars",new URLSearchParams({tag:t,run:e})),this._downloadUrlFn=(t,e)=>this.getDataLoadUrl({tag:t,run:e}),this.requestData=(t,e,n)=>this.inColab?this._requestDataGet(t,e,n):this._requestDataPost(t,e,n),this._requestDataGet=(t,e,n)=>{const i=gr().pluginRoute("scalars","/scalars");Promise.all(t.map((t=>{const n=VO(i,{tag:t.tag,run:t.run});return this.requestManager.request(n).then((n=>{e({item:t,data:n})}))}))).finally((()=>{n()}))},this._requestDataPost=(t,e,n)=>{var i;const r=gr().pluginRoute("scalars","/scalars_multirun"),o=new Map;for(const{tag:e,run:n}of t){let t=o.get(e);null==t&&o.set(e,t=[]),t.push(n)}const a=null!==(i=this.batchSize)&&void 0!==i?i:64,s=[];for(const[t,e]of o)for(let n=0;n<e.length;n+=a)s.push({tag:t,runs:e.slice(n,n+a)});Promise.all(s.map((({tag:t,runs:n})=>this.requestManager.request(r,{tag:t,runs:n}).then((i=>{for(const r of n){const n={tag:t,run:r};Object.prototype.hasOwnProperty.call(i,r)?e({item:n,data:i[r]}):e({item:n,data:null})}}))))).finally((()=>{n()}))},this._getDataLoadName=t=>this._getSeriesNameFromDatum(t),this._expanded=!1,this._tooltipColumns=(()=>{const t=K_t.slice(),e=t.findIndex((t=>"Name"==t.title));return t.splice(e,1,{title:"Name",evaluate:t=>{const e=t.dataset.metadata().meta;return this._getSeriesDisplayNameFromDatum(e)}}),t})()}_getChartDataLoader(){return this.shadowRoot.querySelector("tf-line-chart-data-loader")}reload(){this._getChartDataLoader().reload()}redraw(){this._getChartDataLoader().redraw()}_toggleExpanded(t){this.set("_expanded",!this._expanded),this.redraw()}_toggleLogScale(){this.set("_logScaleActive",!this._logScaleActive)}_resetDomain(){const t=this._getChartDataLoader();t&&t.resetDomain()}_updateDownloadLink(){const t=this._getChartDataLoader().exportAsSvgString();this.shadowRoot.querySelector("#svgLink").href=`data:image/svg+xml;base64,${btoa(t)}`}_runsFromData(t){return t.map((t=>t.run))}_getDataSeries(){return this.dataToLoad.map((t=>this._getSeriesNameFromDatum(t)))}_getSeriesNameFromDatum({run:t,experiment:e={name:"_default"}}){return JSON.stringify([e.name,t])}_getSeriesDisplayNameFromDatum(t){return t.run}_getColorScale(){return null!==this.colorScale?this.colorScale:{scale:t=>{const[,e]=JSON.parse(t);return AO(e)}}}};$Nt.template=_e`
    <tf-card-heading
      tag="[[tag]]"
      display-name="[[tagMetadata.displayName]]"
      description="[[tagMetadata.description]]"
    ></tf-card-heading>
    <div id="tf-line-chart-data-loader-container">
      <tf-line-chart-data-loader
        active="[[active]]"
        color-scale="[[_getColorScale(colorScale)]]"
        data-series="[[_getDataSeries(dataToLoad.*)]]"
        data-to-load="[[dataToLoad]]"
        get-data-load-name="[[_getDataLoadName]]"
        get-data-load-url="[[getDataLoadUrl]]"
        request-data="[[requestData]]"
        ignore-y-outliers="[[ignoreYOutliers]]"
        load-data-callback="[[_loadDataCallback]]"
        load-key="[[tag]]"
        log-scale-active="[[_logScaleActive]]"
        request-manager="[[requestManager]]"
        smoothing-enabled="[[smoothingEnabled]]"
        smoothing-weight="[[smoothingWeight]]"
        tag-metadata="[[tagMetadata]]"
        tooltip-columns="[[_tooltipColumns]]"
        tooltip-position="auto"
        tooltip-sorting-method="[[tooltipSortingMethod]]"
        x-type="[[xType]]"
      >
      </tf-line-chart-data-loader>
    </div>
    <div id="buttons">
      <paper-icon-button
        selected$="[[_expanded]]"
        icon="fullscreen"
        on-tap="_toggleExpanded"
      ></paper-icon-button>
      <paper-icon-button
        selected$="[[_logScaleActive]]"
        icon="line-weight"
        on-tap="_toggleLogScale"
        title="Toggle y-axis log scale"
      ></paper-icon-button>
      <paper-icon-button
        icon="settings-overscan"
        on-tap="_resetDomain"
        title="Fit domain to data"
      ></paper-icon-button>
      <template is="dom-if" if="[[showDownloadLinks]]">
        <paper-menu-button on-paper-dropdown-open="_updateDownloadLink">
          <paper-icon-button
            class="dropdown-trigger"
            slot="dropdown-trigger"
            icon="file-download"
          ></paper-icon-button>
          <paper-listbox class="dropdown-content" slot="dropdown-content">
            <paper-item>
              <a id="svgLink" download="[[tag]].svg">
                Download Current Chart as SVG
              </a>
            </paper-item>
          </paper-listbox>
        </paper-menu-button>
      </template>
      <span style="flex-grow: 1"></span>
      <template is="dom-if" if="[[showDownloadLinks]]">
        <div class="download-links">
          <tf-downloader
            runs="[[_runsFromData(dataToLoad)]]"
            tag="[[tag]]"
            url-fn="[[_downloadUrlFn]]"
          ></tf-downloader>
        </div>
      </template>
    </div>
    <style>
      :host {
        margin: 5px;
        display: block;
        width: 330px;
      }

      :host([_expanded]) {
        width: 100%;
      }

      :host([_expanded]) #tf-line-chart-data-loader-container {
        height: 400px;
      }

      #tf-line-chart-data-loader-container {
        height: 200px;
        width: 100%;
      }

      tf-card-heading {
        display: block;
        margin-bottom: 10px;
      }

      #buttons {
        display: flex;
        flex-direction: row;
      }

      paper-icon-button {
        color: #2196f3;
        border-radius: 100%;
        width: 32px;
        height: 32px;
        padding: 4px;
      }

      paper-icon-button[selected] {
        background: var(--tb-ui-light-accent);
      }

      .download-links {
        display: flex;
        height: 32px;
      }

      .download-links a {
        align-self: center;
        font-size: 10px;
        margin: 2px;
      }

      .download-links paper-dropdown-menu {
        width: 100px;
        --paper-input-container-label: {
          font-size: 10px;
        }
        --paper-input-container-input: {
          font-size: 10px;
        }
      }

      paper-menu-button {
        padding: 0;
      }
      paper-item a {
        color: inherit;
        text-decoration: none;
        white-space: nowrap;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],$Nt.prototype,"tag",void 0),t([o({type:Array}),e("design:type",Array)],$Nt.prototype,"dataToLoad",void 0),t([o({type:String}),e("design:type",String)],$Nt.prototype,"xType",void 0),t([o({type:Boolean}),e("design:type",Boolean)],$Nt.prototype,"active",void 0),t([o({type:Boolean}),e("design:type",Boolean)],$Nt.prototype,"ignoreYOutliers",void 0),t([o({type:Object}),e("design:type",hr)],$Nt.prototype,"requestManager",void 0),t([o({type:Boolean}),e("design:type",Boolean)],$Nt.prototype,"showDownLinks",void 0),t([o({type:Boolean}),e("design:type",Boolean)],$Nt.prototype,"smoothingEnabled",void 0),t([o({type:Number}),e("design:type",Number)],$Nt.prototype,"smoothingWeight",void 0),t([o({type:Object}),e("design:type",Object)],$Nt.prototype,"tagMetadata",void 0),t([o({type:Object}),e("design:type",Object)],$Nt.prototype,"colorScale",void 0),t([o({type:String}),e("design:type",String)],$Nt.prototype,"tooltipSortingMethod",void 0),t([o({type:Number}),e("design:type",Number)],$Nt.prototype,"batchSize",void 0),t([o({type:Boolean}),e("design:type",Number)],$Nt.prototype,"inColab",void 0),t([o({type:Object}),e("design:type",Object)],$Nt.prototype,"_loadDataCallback",void 0),t([o({type:Object}),e("design:type",Function)],$Nt.prototype,"getDataLoadUrl",void 0),t([o({type:Object}),e("design:type",Object)],$Nt.prototype,"_downloadUrlFn",void 0),t([o({type:Object}),e("design:type",Function)],$Nt.prototype,"requestData",void 0),t([o({type:Object}),e("design:type",Object)],$Nt.prototype,"_getDataLoadName",void 0),t([o({type:Boolean,reflectToAttribute:!0}),e("design:type",Boolean)],$Nt.prototype,"_expanded",void 0),t([o({type:Boolean}),e("design:type",Boolean)],$Nt.prototype,"_logScaleActive",void 0),t([o({type:Array}),e("design:type",Array)],$Nt.prototype,"_tooltipColumns",void 0),$Nt=t([i("tf-scalar-card")],$Nt);let KNt=class extends((function t(e,n){return Pr({},tr(n),e)})([go],ye)){constructor(){super(...arguments),this.sessionGroup=null,this._xType=r_t.STEP,this._noMultiExperiments=!1,this._requestData=(t,e,n)=>{Promise.all(t.map((t=>this.backend.listMetricEvals({experimentName:this.experimentName,sessionName:t.run,metricName:t.tag}).then((n=>{e({item:t,data:n})}))))).finally((()=>{n()}))},this._colorScale={scale:t=>{const e=JSON.parse(t)[1],n=this._indexOfSession.get(e);return SO[(this._sessionGroupNameHash+n)%SO.length]}}}connectedCallback(){super.connectedCallback(),this.addEventListener("iron-resize",this.redraw.bind(this))}redraw(){this.shadowRoot.querySelectorAll("tf-scalar-card").forEach((t=>t.redraw()))}_sessionGroupChanged(){this.sessionGroup&&0!=Object.keys(this.sessionGroup).length?(this._indexOfSession=new Map(this.sessionGroup.sessions.map(((t,e)=>[t.name,e]))),this._sessionGroupNameHash=SPt(this.sessionGroup.name)):(this._indexOfSession=new Map,this._sessionGroupNameHash=0),this.shadowRoot.querySelectorAll("tf-scalar-card").forEach((t=>{const e=t,n=e.get("tag");e.set("tag",""),e.set("tag",n)}))}_haveMetrics(){return this.visibleSchema&&Array.isArray(this.visibleSchema.metricInfos)&&this.visibleSchema.metricInfos.length>0}_haveMetricsAndSessionGroup(){return this.sessionGroup&&this._haveMetrics()}_computeSeriesForSessionGroupMetric(t,e){return null===t||0==Object.keys(t).length||null===e?[]:t.sessions.filter((t=>void 0!==rPt(t.metricValues,e.name))).map((t=>({tag:e.name,run:t.name})))}_computeTagMetadata(t){return{displayName:JLt(t),description:t.description||""}}};KNt.template=_e`
    <template is="dom-if" if="[[!sessionGroup]]">
      <div>
        <h3>No session group selected</h3>
        <p>Please select a session group to see its metric-graphs here.</p>
      </div>
    </template>
    <template is="dom-if" if="[[!_haveMetrics(visibleSchema.*)]]">
      <div>
        <h3>No metrics are enabled</h3>
        <p>Please enable some metrics to see content here.</p>
      </div>
    </template>
    <div class="layout horizontal wrap session-group-details">
      <template
        is="dom-if"
        if="[[_haveMetricsAndSessionGroup(visibleSchema.*, sessionGroup)]]"
      >
        <template
          is="dom-repeat"
          items="[[visibleSchema.metricInfos]]"
          as="metricInfo"
        >
          <!-- Note that we do not provide a request-manager attribute since
               we provide a function in request-data for calling the backend
               to get the metrics data.
            -->
          <tf-scalar-card
            class="scalar-card"
            color-scale="[[_colorScale]]"
            data-to-load="[[_computeSeriesForSessionGroupMetric(sessionGroup, metricInfo)]]"
            tag="[[metricInfo.name.tag]]"
            tag-metadata="[[_computeTagMetadata(metricInfo)]]"
            x-type="[[_xType]]"
            multi-experiments="[[_noMultiExperiments]]"
            request-data="[[_requestData]]"
            active
          >
          </tf-scalar-card>
        </template>
      </template>
    </div>
    <!-- "iron-flex" is needed to use the layout classes in the div above -->
    <style include="iron-flex">
      :host {
        display: block;
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],KNt.prototype,"backend",void 0),t([o({type:String}),e("design:type",String)],KNt.prototype,"experimentName",void 0),t([o({type:Object}),e("design:type",Object)],KNt.prototype,"visibleSchema",void 0),t([o({type:Object}),e("design:type",Object)],KNt.prototype,"sessionGroup",void 0),t([o({type:String}),e("design:type",String)],KNt.prototype,"_xType",void 0),t([o({type:Boolean}),e("design:type",Boolean)],KNt.prototype,"_noMultiExperiments",void 0),t([o({type:Object}),e("design:type",Object)],KNt.prototype,"_indexOfSession",void 0),t([o({type:Number}),e("design:type",Number)],KNt.prototype,"_sessionGroupNameHash",void 0),t([o({type:Object}),e("design:type",Function)],KNt.prototype,"_requestData",void 0),t([o({type:Object}),e("design:type",Object)],KNt.prototype,"_colorScale",void 0),t([a("sessionGroup.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],KNt.prototype,"_sessionGroupChanged",null),KNt=t([i("tf-hparams-session-group-details")],KNt);let ZNt=class extends(tr(nl(ye))){constructor(){super(...arguments),this._hparamName=ZLt,this._metricName=JLt}_visibleSchemaOrSessionGroupsChanged(){const t=this.$.sessionGroupsTable.get("detailsOpenedItems");this.$.sessionGroupsTable.set("detailsOpenedItems",[]),zi();const e=new Map;this.sessionGroups.forEach((t=>{e.set(t.name,t)})),this.$.sessionGroupsTable.set("detailsOpenedItems",t.map((t=>e.get(t.name))).filter(Boolean))}_sessionGroupHParam(t,e){return null!=t&&0!=Object.keys(t).length&&Object.prototype.hasOwnProperty.call(t.hparams,e)?_Pt(t.hparams[e]):""}_sessionGroupMetric(t,e){if(null==t||0==Object.keys(t).length)return"";for(let n=0;n<t.metricValues.length;++n){let i=t.metricValues[n];if(i.name.group===e.group&&i.name.tag==e.tag)return _Pt(i.value)}return""}_rowNumber(t){return t+1}};ZNt.template=_e`
    <vaadin-grid
      class="session-group-table"
      id="sessionGroupsTable"
      column-reordering-allowed=""
      items="[[sessionGroups]]"
    >
      <vaadin-grid-column flex-grow="0" width="10em" resizable="">
        <template class="header">
          <div class="table-header table-cell">Trial ID</div>
        </template>
        <template>
          <div class="table-cell">[[item.name]]</div>
        </template>
      </vaadin-grid-column>
      <template is="dom-if" if="[[enableShowMetrics]]">
        <vaadin-grid-column flex-grow="0" autoWidth="" resizable="">
          <template class="header">
            <div class="table-header table-cell">Show Metrics</div>
          </template>
          <template>
            <paper-checkbox class="table-cell" checked="{{detailsOpened}}">
            </paper-checkbox>
          </template>
        </vaadin-grid-column>
      </template>
      <template
        is="dom-repeat"
        items="[[visibleSchema.hparamInfos]]"
        as="hparamInfo"
        index-as="hparamIndex"
      >
        <vaadin-grid-column flex-grow="2" width="10em" resizable="">
          <template class="header">
            <div class="table-header table-cell">
              [[_hparamName(hparamInfo)]]
            </div>
          </template>
          <template>
            <div class="table-cell">
              [[_sessionGroupHParam(item, hparamInfo.name)]]
            </div>
          </template>
        </vaadin-grid-column>
      </template>
      <template
        is="dom-repeat"
        items="{{visibleSchema.metricInfos}}"
        as="metricInfo"
        index-as="metricIndex"
      >
        <vaadin-grid-column flex-grow="2" width="10em" resizable="">
          <template class="header">
            <div class="table-header table-cell">
              [[_metricName(metricInfo)]]
            </div>
          </template>
          <template>
            <div class="table-cell">
              [[_sessionGroupMetric(item, metricInfo.name)]]
            </div>
          </template>
        </vaadin-grid-column>
      </template>
      <template class="row-details">
        <tf-hparams-session-group-details
          backend="[[backend]]"
          experiment-name="[[experimentName]]"
          session-group="[[item]]"
          visible-schema="[[visibleSchema]]"
          class="session-group-details"
        >
        </tf-hparams-session-group-details>
      </template>
    </vaadin-grid>

    <style>
      :host {
        display: inline;
      }

      :host(.dark-mode) {
        --lumo-base-color: #303030;
        --lumo-body-text-color: #fff;
      }

      :host(.dark-mode) vaadin-grid {
        --_lumo-grid-secondary-border-color: #505050;
      }

      .table-cell {
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
      }
      .table-header {
        /* line-break overflowing column headers */
        white-space: normal;
        overflow-wrap: break-word;
      }
      .session-group-table {
        height: 100%;
      }
      .session-group-details {
        height: 360px;
        overflow-y: auto;
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],ZNt.prototype,"visibleSchema",void 0),t([o({type:Array}),e("design:type",Array)],ZNt.prototype,"sessionGroups",void 0),t([o({type:Boolean}),e("design:type",Boolean)],ZNt.prototype,"enableShowMetrics",void 0),t([o({type:Object}),e("design:type",Object)],ZNt.prototype,"backend",void 0),t([o({type:String}),e("design:type",String)],ZNt.prototype,"experimentName",void 0),t([a("visibleSchema.*","sessionGroups.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],ZNt.prototype,"_visibleSchemaOrSessionGroupsChanged",null),ZNt=t([i("tf-hparams-table-view")],ZNt);let JNt=class extends ye{constructor(){super(...arguments),this.sessionGroup=null,this.visibleSchema=null}_propertiesArePopulated(t,e){return null!=t&&null!=e}_singletonSessionGroups(t){return null==t?[]:[t]}};function QNt(t,e,n){function i(){if(0===t.length)return[1,2];const[e,n]=kl(t);return e!==n?[e,n]:e>0?[.5*e,1.5*e]:e<0?[1.5*e,.5*e]:[-1,1]}if("LINEAR"===n)return DM().domain(i()).range([e,0]);if("LOG"===n){const n=i();return n[0]<=0&&n[1]>=0?QNt(t,e,"LINEAR"):qM().domain(n).range([e,0])}if("QUANTILE"===n){const n=20,i=Rl(n).map((t=>e-t*e/(n-1)));return 0===t.length&&(t=[1]),eE().domain(we.uniq(t)).range(i)}if("NON_NUMERIC"===n)return MM().domain(we.uniq(t.sort())).range([e,0]).padding(.1);throw RangeError("Unknown scale: "+n)}var tIt,eIt;JNt.template=_e`
    <!-- If sessionGroup or visibleSchema are not populated, do not display
         anything.
      -->
    <template
      is="dom-if"
      if="[[_propertiesArePopulated(visibleSchema, sessionGroup)]]"
    >
      <!-- Display one row without a "show-metrics" column -->
      <tf-hparams-table-view
        visible-schema="[[visibleSchema]]"
        session-groups="[[_singletonSessionGroups(sessionGroup)]]"
      >
      </tf-hparams-table-view>
    </template>
    <template
      is="dom-if"
      if="[[!_propertiesArePopulated(visibleSchema, sessionGroup)]]"
    >
      <div>Click or hover over a session group to display its values here.</div>
    </template>

    <style>
      :host {
        display: block;
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],JNt.prototype,"sessionGroup",void 0),t([o({type:Object}),e("design:type",Object)],JNt.prototype,"visibleSchema",void 0),JNt=t([i("tf-hparams-session-group-values")],JNt),(function(t){t.LINEAR="LINEAR",t.LOG="LOG",t.QUANTILE="QUANTILE",t.NON_NUMERIC="NON_NUMERIC"})(tIt||(tIt={}));class nIt{isPassing(t){return!0}}class iIt{constructor(t,e,n,i){this._lower=t,this._upper=e,this._lowerOpen=n,this._upperOpen=i}isPassing(t){const e=t;return this._before(this._lower,e,!this._lowerOpen)&&this._before(e,this._upper,!this._upperOpen)}_before(t,e,n){return n?t<=e:t<e}}class rIt{constructor(t){this._domainSet=t}isPassing(t){return-1!==this._domainSet.findIndex((e=>e===t))}}class oIt{constructor(t,e,n,i){this._svgProps=t,this._schema=e,this._interactionManager=n,this._colIndex=i,this._isDisplayed=!1,this._yScale=null,this._scaleType=null,this.setBrushSelection(null)}colIndex(){return this._colIndex}yScale(){return this._yScale}scaleType(){return this._scaleType}brushSelection(){return this._brushSelection}isDisplayed(){return this._isDisplayed}setBrushSelection(t){this._brushSelection=t,this._brushFilter=this._buildBrushFilter(this.brushSelection(),this.scaleType(),this.yScale())}setDomainAndScale(t,e){this._scaleType=e,this._yScale=QNt(t.slice(),this._svgProps.height,this.scaleType()),this._brushFilter=this._buildBrushFilter(this.brushSelection(),this.scaleType(),this.yScale())}brushFilter(){return this._brushFilter}updateDOM(t){let e=oc(this.yScale());this.scaleType()===tIt.QUANTILE&&(e=e.tickValues(this.yScale().quantiles()).tickFormat(fy("-.6g")));const n=wu(t);n.selectAll("g").remove(),n.append("g").classed("axis",!0).call(e).append("text").classed("axis-title",!0).style("cursor","move").style("text-anchor","middle").attr("y",-9).text((t=>QLt(this._schema,t))),n.call(yh().on("start",(()=>{t.setAttribute("is-dragging",""),this._interactionManager.onDragStart(this.colIndex())})).on("drag",(()=>this._interactionManager.onDrag(cu.x))).on("end",(()=>{this._interactionManager.onDragEnd(),t.removeAttribute("is-dragging")})));const i=Km().extent([[-8,0],[8,this._svgProps.height+1]]).on("start",(()=>{sIt(cu)&&(t.setAttribute("is-brushing",""),this._interactionManager.onBrushChanged(this.colIndex(),cu.selection))})).on("brush",(()=>{sIt(cu)&&this._interactionManager.onBrushChanged(this.colIndex(),cu.selection)})).on("end",(()=>{sIt(cu)&&(this._interactionManager.onBrushChanged(this.colIndex(),cu.selection),t.removeAttribute("is-brushing"))})),r=wu(t).append("g").classed("brush",!0);r.call(i),i.move(r,this.brushSelection())}setDisplayed(t){this._isDisplayed=t}_buildBrushFilter(t,e,n){if(null===t)return new nIt;if(null===e)return console.error("Scale type is null, but brushSelection isn't: ",t),new nIt;switch(e){case tIt.LINEAR:case tIt.LOG:{const[e,i]=(function i(t,e,n){return[t.invert(e),t.invert(n)].sort(((t,e)=>t-e))})(n,t[0],t[1]);return new iIt(e,i,!1,!1)}case tIt.QUANTILE:{const[e,i]=(function r(t,e,n){const i=t.range(),r=i.filter((t=>e<=t&&t<=n)).map((e=>{const n=t.invertExtent(e);return e===i[i.length-1]?[n[0],n[1]+1]:n}));return 0==r.length?[0,0]:kl(Wl(r))})(n,t[0],t[1]);return new iIt(e,i,!1,!0)}case tIt.NON_NUMERIC:return new rIt((function o(t,e,n){return t.domain().filter((i=>{const r=t(i);return e<=r&&r<=n}))})(n,t[0],t[1]))}return console.error("Unknown scale type: ",e),new nIt}}class aIt{constructor(t,e,n){this._svgProps=t,this._schema=e,this._axes=this._createAxes(n),this._stationaryAxesPositions=MM().range([1,this._svgProps.width-1]).padding(.5),this._draggedAxis=null,this._svgProps.svgG.selectAll("g.axis-parent").remove(),this._parentsSel=this._svgProps.svgG.selectAll(".axis-parent")}updateAxes(t,e){console.assert(!this.isAxisDragging());const n=new Set;t.columns.forEach((t=>{const i=t.absoluteIndex;let r=this._axes[i];r.setDisplayed(!0);const o=e.map((t=>sPt(this._schema,t,i)));r.setDomainAndScale(o,t.scale),n.add(i)})),this._axes.forEach((t=>{n.has(t.colIndex())||t.setDisplayed(!1)})),this._updateStationaryAxesPositions(n),this._parentsSel=this._parentsSel.data(Array.from(n),(t=>t)),this._parentsSel.exit().remove(),this._parentsSel=this._parentsSel.enter().append("g").classed("axis-parent",!0).merge(this._parentsSel);const i=this;this._parentsSel.call((t=>this._updateAxesPositionsInDOM(t))).each((function(t){i._axes[t].updateDOM(this)}))}mapVisibleAxes(t){return this._stationaryAxesPositions.domain().map((e=>t(this.getAxisPosition(e),this._axes[e])))}allVisibleAxesSatisfy(t){return this._stationaryAxesPositions.domain().every((e=>t(this.getAxisPosition(e),this._axes[e])))}getAxisForColIndex(t){return this._axes[t]}dragStart(t){console.assert(!this.isAxisDragging()),console.assert(this._axes[t].isDisplayed()),this._draggedAxis=this._axes[t],this._draggedAxisPosition=this._stationaryAxesPositions(t)}drag(t){t=Math.min(Math.max(t,0),this._svgProps.width),this._draggedAxisPosition=t;let e=this._stationaryAxesPositions.domain();e.sort(((t,e)=>this.getAxisPosition(t)-this.getAxisPosition(e))),this._stationaryAxesPositions.domain(e),this._updateAxesPositionsInDOM(this._parentsSel)}dragEnd(t){console.assert(this.isAxisDragging()),this._draggedAxisPosition=null,this._draggedAxis=null,this._updateAxesPositionsInDOM(this._parentsSel.transition().duration(t))}isAxisDragging(){return null!==this._draggedAxis}getAxisPosition(t){return null!==this._draggedAxis&&this._draggedAxis.colIndex()===t?this._draggedAxisPosition:this._stationaryAxesPositions(t)}_updateStationaryAxesPositions(t){const e=this._stationaryAxesPositions.domain().filter((e=>t.has(e))),n=Array.from(new Set([...e,...Array.from(t)]));this._stationaryAxesPositions.domain(n)}_updateAxesPositionsInDOM(t){t.attr("transform",(t=>xPt(this.getAxisPosition(t))))}_createAxes(t){return Rl(nPt(this._schema)).map((e=>new oIt(this._svgProps,this._schema,t,e)))}}function sIt(t){return null!==t.sourceEvent}!(function(t){t[t.FOREGROUND=0]="FOREGROUND",t[t.BACKGROUND=1]="BACKGROUND"})(eIt||(eIt={}));class lIt{constructor(t){void 0===t&&(t=ah(null)),console.assert(t.size()<=1),this._sessionGroupSel=t}sessionGroup(){return 1===this._sessionGroupSel.size()?this._sessionGroupSel.datum():null}isNull(){return null===this.sessionGroup()}selection(){return this._sessionGroupSel}equalsTo(t){return this.isNull()?t.isNull():!t.isNull()&&t.sessionGroup().name==this.sessionGroup().name}}class cIt{constructor(t,e,n){this._svgProps=t,this._schema=e,this._axesCollection=n,this._sessionGroups=[],this._svgProps.svgG.selectAll("g.background").remove(),this._svgProps.svgG.selectAll("g.foreground").remove(),this._bgPathsSel=this._svgProps.svgG.append("g").classed("background",!0).selectAll("path"),this._fgPathsSel=this._svgProps.svgG.append("g").classed("foreground",!0).selectAll("path"),this._updateVisibleFgPathsSel(),this._peakedSessionGroupHandle=new lIt,this._selectedSessionGroupHandle=new lIt,this._d3line=Xk().curve(Wk)}getSessionGroupHandle(t){return null==t?new lIt:new lIt(this._fgPathsSel.filter((e=>e.name===t.name)))}hideBackgroundLines(){this._bgPathsSel.attr("visibility","hidden")}showBackgroundLines(){this._bgPathsSel.attr("visibility",null)}peakedSessionGroupHandle(){return this._peakedSessionGroupHandle}selectedSessionGroupHandle(){return this._selectedSessionGroupHandle}recomputeControlPoints(t,e=0){(t===eIt.FOREGROUND?this._fgPathsSel:this._bgPathsSel).transition().duration(e).attr("d",(t=>this._pathDAttribute(t))),t===eIt.FOREGROUND&&window.setTimeout((()=>{const t=this;this._fgPathsSel.each((function(e){t._setControlPointsProperty(this,e)}))}))}recomputeForegroundLinesVisibility(){this._fgPathsSel.classed("invisible-path",(t=>!this._axesCollection.allVisibleAxesSatisfy(((e,n)=>n.brushFilter().isPassing(sPt(this._schema,t,n.colIndex())))))),this._updateVisibleFgPathsSel()}setForegroundLinesColor(t,e,n){const i=this._createLineColorFunction(t,e,n);this._fgPathsSel.attr("stroke",i)}redraw(t,e,n,i){const r=this._peakedSessionGroupHandle.sessionGroup(),o=this._selectedSessionGroupHandle.sessionGroup();this._sessionGroups=t,this._fgPathsSel=this._recomputePathSelection(this._fgPathsSel),this._bgPathsSel=this._recomputePathSelection(this._bgPathsSel),this._peakedSessionGroupHandle=this.getSessionGroupHandle(r),this._selectedSessionGroupHandle=this.getSessionGroupHandle(o),this.recomputeControlPoints(eIt.FOREGROUND),this.recomputeControlPoints(eIt.BACKGROUND),this.recomputeForegroundLinesVisibility(),this.setForegroundLinesColor(e,n,i)}updatePeakedSessionGroup(t){this._peakedSessionGroupHandle.selection().classed("peaked-path",!1),this._peakedSessionGroupHandle=t,this._peakedSessionGroupHandle.selection().classed("peaked-path",!0)}clearPeakedSessionGroup(){this.updatePeakedSessionGroup(new lIt)}updateSelectedSessionGroup(t){this._selectedSessionGroupHandle.selection().classed("selected-path",!1),this._selectedSessionGroupHandle=t,this._selectedSessionGroupHandle.selection().classed("selected-path",!0)}findClosestSessionGroup(t,e){const n=this._axesCollection.mapVisibleAxes(((t,e)=>t)),i=(function r(t,e,n,i){if(e.length<2)return console.error("Less than two axes in parallel coordinates plot."),null;const r=n[0],o=n[1];if(r<=e[0]||r>=e[e.length-1])return null;const a=we.sortedIndex(e,r);console.assert(a>0),console.assert(a<e.length);const s=a-1;let l=null,c=null;return t.forEach((t=>{const e=(function n(t,e,i,a){const s=t-i,l=e-a,c=r-i,u=o-a,h=(s*c+l*u)/(s*s+l*l);return h<=0?yPt(c,u):h>=1?yPt(t-r,e-o):yPt(c-h*s,u-h*l)})(t.controlPoints[s][0],t.controlPoints[s][1],t.controlPoints[a][0],t.controlPoints[a][1]);e>i||(null===l||e<l)&&(l=e,c=t)})),c})(this._visibleFgPathsSel.nodes(),n,[t,e],100);return null===i?new lIt:new lIt(wu(i))}_createLineColorFunction(t,e,n){if(null===t)return()=>"red";const i=DM().domain(lPt(this._schema,this._sessionGroups,t)).range([e,n]).interpolate(lp);return e=>i(sPt(this._schema,e,t))}_recomputePathSelection(t){return(t=t.data(this._sessionGroups,(t=>t.name))).exit().remove(),t.enter().append("path").merge(t)}_setControlPointsProperty(t,e){t.controlPoints=this._computeControlPoints(e)}_computeControlPoints(t){return this._axesCollection.mapVisibleAxes(((e,n)=>[e,n.yScale()(sPt(this._schema,t,n.colIndex()))]))}_pathDAttribute(t){return this._d3line(this._computeControlPoints(t))}_updateVisibleFgPathsSel(){this._visibleFgPathsSel=this._fgPathsSel.filter(":not(.invisible-path)")}}class uIt{constructor(t,e){this.svg=wu(t);const n=100*e+10+10;this.svg.attr("viewBox",`0 0 ${n} 240`),this.svg.attr("preserveAspectRatio","xMidYMid"),this.svg.style("min-width",n+"px"),this.svg.style("min-height","240px"),this.width=n-10-10,this.height=200,this.svgG=this.svg.append("g").attr("transform",xPt(10,30))}}class hIt{constructor(t,e,n,i){this._svgProps=t,this._schema=e,this._peakedSessionGroupChangedCB=n,this._selectedSessionGroupChangedCB=i,this._axesCollection=new aIt(t,e,this),this._linesCollection=new cIt(t,e,this._axesCollection),this._svgProps.svg.on("click",(()=>this.onClick())).on("mousemove mouseenter",(()=>{const[t,e]=oh(this._svgProps.svgG.node());this.onMouseMoved(t,e)})).on("mouseleave",(()=>this.onMouseLeave()))}onDragStart(t){this._axesCollection.dragStart(t),this._linesCollection.hideBackgroundLines()}onDrag(t){this._axesCollection.drag(t),this._linesCollection.recomputeControlPoints(eIt.FOREGROUND)}onDragEnd(){this._axesCollection.dragEnd(500),this._linesCollection.recomputeControlPoints(eIt.FOREGROUND,500),window.setTimeout((()=>{this._linesCollection.recomputeControlPoints(eIt.BACKGROUND),this._linesCollection.showBackgroundLines()}),500)}onBrushChanged(t,e){this._axesCollection.getAxisForColIndex(t).setBrushSelection(e),this._linesCollection.recomputeForegroundLinesVisibility()}onMouseMoved(t,e){this._linesCollection.updatePeakedSessionGroup(this._linesCollection.findClosestSessionGroup(t,e)),this._peakedSessionGroupChangedCB(this._linesCollection.peakedSessionGroupHandle().sessionGroup())}onMouseLeave(){this._linesCollection.peakedSessionGroupHandle().isNull()||(this._linesCollection.clearPeakedSessionGroup(),this._peakedSessionGroupChangedCB(null))}onClick(){this._linesCollection.peakedSessionGroupHandle().sessionGroup()===this._linesCollection.selectedSessionGroupHandle().sessionGroup()?this._linesCollection.updateSelectedSessionGroup(new lIt):this._linesCollection.updateSelectedSessionGroup(this._linesCollection.peakedSessionGroupHandle()),this._selectedSessionGroupChangedCB(this._linesCollection.selectedSessionGroupHandle().sessionGroup())}onOptionsOrSessionGroupsChanged(t,e){this._axesCollection.updateAxes(t,e);const n=this._linesCollection.peakedSessionGroupHandle(),i=this._linesCollection.selectedSessionGroupHandle();this._linesCollection.redraw(e,void 0!==t.colorByColumnIndex?t.columns[t.colorByColumnIndex].absoluteIndex:null,t.minColor,t.maxColor),n.equalsTo(this._linesCollection.peakedSessionGroupHandle())||this._peakedSessionGroupChangedCB(this._linesCollection.peakedSessionGroupHandle().sessionGroup()),i.equalsTo(this._linesCollection.selectedSessionGroupHandle())||this._selectedSessionGroupChangedCB(this._linesCollection.selectedSessionGroupHandle().sessionGroup())}schema(){return this._schema}}let dIt=class extends(tr(nl(ye))){constructor(){super(...arguments),this.selectedSessionGroup=null,this.closestSessionGroup=null,this.redrawCount=0}_optionsOrSessionGroupsChanged(){var t;if(!this.options)return;const{configuration:e}=null!==(t=this._prevOptions)&&void 0!==t?t:{},{configuration:n}=this.options;if(void 0===this._interactionManager||!we.isEqual(e.schema,n.schema)||!we.isEqual(e.columnsVisibility,n.columnsVisibility)){wu(this.$.svg).selectAll("*").remove();const t=new uIt(this.$.svg,n.columnsVisibility.filter(Boolean).length);this.scopeSubtree(this.$.svg,!0),this._interactionManager=new hIt(t,n.schema,(t=>this.closestSessionGroupChanged(t)),(t=>this.selectedSessionGroupChanged(t)))}this._computeValidSessionGroups(),this._interactionManager.onOptionsOrSessionGroupsChanged(this.options,this._validSessionGroups),this.redrawCount++,this._prevOptions=this.options}closestSessionGroupChanged(t){this.closestSessionGroup=t}selectedSessionGroupChanged(t){this.selectedSessionGroup=t}_computeValidSessionGroups(){const t=MPt;if(void 0===this.sessionGroups)return void(this._validSessionGroups=void 0);const e=this.options.configuration.schema;this._validSessionGroups=this.sessionGroups.filter((n=>{for(let i=0;i<t.numColumns(e);++i)if(this.options.configuration.columnsVisibility[i]&&void 0===t.columnValueByIndex(e,n,i))return!1;return!0}))}};dIt.template=_e`
    <div id="container">
      <svg id="svg"></svg>
    </div>
    <style>
      :host {
        display: block;
        --tf-hparams-parallel-coords-plot-axis-shadow: 0 1px 0 #fff,
          1px 0 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff;
      }
      :host(.dark-mode) {
        --tf-hparams-parallel-coords-plot-axis-shadow: 0 1px 0 #000,
          1px 0 0 #000, 0 -1px 0 #000, -1px 0 0 #000;
      }
      svg {
        font: 10px sans-serif;
      }

      .background path {
        fill: none;
        stroke: #ddd;
        shape-rendering: crispEdges;
      }

      .foreground path {
        fill: none;
        stroke-opacity: 0.7;
        stroke-width: 1;
      }

      /* Will be set on foreground paths that are not "contained" in the current
         axes brushes. If no brushes are set, no path will have this class. */
      .foreground .invisible-path {
        display: none;
      }

      /* Style for the path closest to the mouse pointer (typically will become
      the selected path when the user clicks). */
      .foreground .peaked-path {
        stroke-width: 3;
      }

      /* The currently selected path class. We use !important to override the
         inline style that sets the regular color of a path. */
      .foreground .selected-path {
        stroke-width: 3 !important;
        stroke: #0f0 !important;
      }

      #container {
        height: 100%;
        width: 100%;
      }

      svg {
        width: 100%;
        height: 100%;
      }

      .axis text {
        text-shadow: var(--tf-hparams-parallel-coords-plot-axis-shadow);
        fill: currentColor;
        cursor: move;
      }
    </style>
  `,t([o({type:Array}),e("design:type",Array)],dIt.prototype,"sessionGroups",void 0),t([o({type:Object}),e("design:type",Object)],dIt.prototype,"options",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],dIt.prototype,"selectedSessionGroup",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],dIt.prototype,"closestSessionGroup",void 0),t([o({type:Number}),e("design:type",Number)],dIt.prototype,"redrawCount",void 0),t([o({type:Array}),e("design:type",Array)],dIt.prototype,"_validSessionGroups",void 0),t([o({type:Object}),e("design:type",Object)],dIt.prototype,"_interactionManager",void 0),t([a("options.*","sessionGroups.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],dIt.prototype,"_optionsOrSessionGroupsChanged",null),dIt=t([i("tf-hparams-parallel-coords-plot")],dIt);let pIt=class extends ye{_closestOrSelected(t,e){return null!==t?t:e}};pIt.template=_e`
    <!-- Controls behavior of parallel coordinates plot
         outputs set options to the _options property.
      -->
    <hparams-split-layout orientation="vertical">
      <!-- The scale and color controls. -->
      <tf-hparams-scale-and-color-controls
        id="controls"
        slot="content"
        class="section"
        configuration="[[configuration]]"
        session-groups="[[sessionGroups]]"
        options="{{_options}}"
      >
      </tf-hparams-scale-and-color-controls>
      <!-- The actual parallel coordinates plot -->
      <tf-hparams-parallel-coords-plot
        id="plot"
        slot="content"
        class="section"
        session-groups="[[sessionGroups]]"
        selected-session-group="{{_selectedGroup}}"
        closest-session-group="{{_closestGroup}}"
        options="[[_options]]"
      >
      </tf-hparams-parallel-coords-plot>
      <tf-hparams-session-group-values
        id="values"
        slot="content"
        class="section"
        visible-schema="[[configuration.visibleSchema]]"
        session-group="[[_closestOrSelected(
                             _closestGroup, _selectedGroup)]]"
      >
      </tf-hparams-session-group-values>
      <tf-hparams-session-group-details
        id="details"
        slot="content"
        class="section"
        backend="[[backend]]"
        experiment-name="[[experimentName]]"
        session-group="[[_selectedGroup]]"
        visible-schema="[[configuration.visibleSchema]]"
      >
      </tf-hparams-session-group-details>
    </hparams-split-layout>

    <style>
      .section {
        padding: 10px;
      }
      #values {
        height: 115px;
      }
      #details {
        flex-grow: 1;
        max-height: fit-content;
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],pIt.prototype,"backend",void 0),t([o({type:String}),e("design:type",String)],pIt.prototype,"experimentName",void 0),t([o({type:Object}),e("design:type",Object)],pIt.prototype,"configuration",void 0),t([o({type:Array}),e("design:type",Array)],pIt.prototype,"sessionGroups",void 0),pIt=t([i("tf-hparams-parallel-coords-view")],pIt);let fIt=class extends(tr(ye)){constructor(){super(...arguments),this.selectedSessionGroup=null,this.closestSessionGroup=null,this._container=null,this._svg=null,this.width=0,this.height=0,this._brushedCellIndex=null,this._brushSelection=null}ready(){super.ready(),this._container=this.$.container,this._svg=wu(this.$.svg),this._redraw()}_sessionGroupsChanged(){null!==this.selectedSessionGroup&&(this.selectedSessionGroup=pPt(this.sessionGroups,this.selectedSessionGroup.name)||null),this._redraw()}_visibleSchemaChanged(){this._brushedCellIndex=null,this._brushSelection=null,this._redraw()}_redraw(){this.debounce("_redraw",(()=>{const t=MPt;this.width=Math.max(150*t.numVisibleColumns(this.visibleSchema),1200),this.height=Math.max(112.5*t.numVisibleMetrics(this.visibleSchema),480),this._container.style.width=this.width+"px",this._container.style.height=this.height+"px",this._svg.attr("width",this.width).attr("height",this.height),this._svg.selectAll("g").remove(),this._draw()}),100)}_draw(){const t=MPt,e=this;if(!this.sessionGroups||0==this.sessionGroups.length||!this.visibleSchema||0==this.visibleSchema.metricInfos.length)return;const n=Rl(t.numVisibleColumns(e.visibleSchema)),i=Rl(t.numVisibleMetrics(e.visibleSchema)),r=wM().domain(n).range([85,this.width-1-5]).paddingInner(.1),o=wM().domain(i).range([this.height-1-5-50,5]).paddingInner(.1),a=r.bandwidth(),s=o.bandwidth(),l=n.map((t=>e._cellScale(t,[0,a-1]))),c=i.map((n=>e._cellScale(n+t.numVisibleHParams(e.visibleSchema),[s-1,0]))),u=this._svg.selectAll(".x-axis").data(n).enter().append("g").classed("x-axis",!0).attr("transform",(e=>t.translateStr(r(e),0)));function h(t){return"x-axis-clip-path-"+t}function d(t){return"x-label-clip-path-"+t}u.append("clipPath").attr("id",h).append("rect").attr("x",-5).attr("y",0).attr("width",a+10).attr("height",e.height-25),u.append("clipPath").attr("id",d).append("rect").attr("x",0).attr("y",e.height-25).attr("width",a).attr("height",25),u.append("g").attr("clip-path",(t=>"url(#"+h(t)+")")).each((function(t){wu(this).call(g,rc(l[t]).tickSize(e.height-50),a,40,e.options.columns[t].scale)})),u.append("g").classed("x-axis-label",!0).attr("clip-path",(t=>"url(#"+d(t)+")")).append("text").attr("text-anchor","middle").attr("x",a/2).attr("y",e.height-1-12.5).text((n=>t.schemaVisibleColumnName(e.visibleSchema,n))).append("title").text((n=>t.schemaVisibleColumnName(e.visibleSchema,n)));const p=this._svg.selectAll(".y-axis").data(i).enter().append("g").classed("y-axis",!0).attr("transform",(n=>t.translateStr(e.width-1,o(n))));function f(t){return"y-axis-clip-path-"+t}function m(t){return"y-label-clip-path-"+t}function g(t,e,n,i,r){const o=Math.floor(n/i),a=e.scale();if("QUANTILE"===r){let t=a.quantiles();const n=Math.ceil(t.length/o);t=Rl(0,t.length,n).map((e=>t[e])),e.tickValues(t).tickFormat(fy("-.2g"))}"LINEAR"!==r&&"LOG"!==r||e.ticks(o),t.call(e),t.selectAll(".domain").remove(),t.selectAll(".tick line").attr("stroke","#ddd")}p.append("clipPath").attr("id",f).append("rect").attr("x",-(e.width-40-1)).attr("y",-5).attr("width",e.width-40).attr("height",s+10),p.append("clipPath").attr("id",m).append("rect").attr("x",-(e.width-1)).attr("y",0).attr("width",40).attr("height",s),p.append("g").attr("clip-path",(t=>"url(#"+f(t)+")")).each((function(n){wu(this).call(g,oc(c[n]).tickSize(e.width-80),s,20,e.options.columns[n+t.numVisibleHParams(e.visibleSchema)].scale)})),p.append("g").classed("y-axis-label",!0).attr("clip-path",(t=>"url(#"+m(t)+")")).append("text").attr("text-anchor","middle").attr("x",-(e.width-20-1)).attr("y",s/2).attr("transform",t.rotateStr(90,-(e.width-20-1),s/2)).text((n=>t.metricName(e.visibleSchema.metricInfos[n]))).append("title").text((n=>t.metricName(e.visibleSchema.metricInfos[n])));const _=this._svg.selectAll(".cell").data(El(n,i)).enter().append("g").classed("cell",!0).attr("transform",(([e,n])=>t.translateStr(r(e),o(n))));_.append("g").classed("frame",!0).append("rect").attr("x",-5).attr("y",-5).attr("width",a+10).attr("height",s+10).attr("stroke","#000").attr("fill","none").attr("shape-rendering","crispEdges");let y=null;void 0!==e.options.colorByColumnIndex&&(y=DM().domain(this._colExtent(this.options.colorByColumnIndex)).range([this.options.minColor,this.options.maxColor]).interpolate(lp));const v=void 0===e.options.colorByColumnIndex?()=>"red":({sessionGroup:t})=>y(this._colValue(t,e.options.colorByColumnIndex));function b(t,n){return l[n](e._colValue(t,n))}function x(t,n){return c[n](e._metricValue(t,n))}const[w,S,M]=(function E(t,r){const o=t.selectAll(".data-marker").data((([t,n])=>e.sessionGroups.filter((i=>void 0!==e._colValue(i,t)&&void 0!==e._metricValue(i,n))).map((e=>({col:t,metric:n,sessionGroup:e,x:b(e,t),y:x(e,n),sessionGroupMarkers:null}))))).enter().append("circle").classed("data-marker",!0).attr("cx",(({x:t})=>t)).attr("cy",(({y:t})=>t)).attr("r",2).attr("fill",r),a=new Map;e.sessionGroups.forEach((t=>{a.set(t,[])})),o.each((function(t){a.get(t.sessionGroup).push(this)})),o.each((t=>{const e=a.get(t.sessionGroup);t.sessionGroupMarkers=new Set(e)}));const s=n.map((t=>i.map((e=>o.filter((n=>n.col==t&&n.metric==e))))));return[o,s,a]})(_.append("g"),v),T=n.map((t=>i.map((e=>(function n(t,e){const n=[];return S[t][e].each((function(){n.push(this)})),P_().x((t=>wu(t).datum().x)).y((t=>wu(t).datum().y)).addAll(n)})(t,e)))));let C=null;N()&&(C=_.filter((t=>we.isEqual(t,e._brushedCellIndex))),console.assert(1==C.size(),C));let A=new Set(w.nodes());function k(){let n=new Set(w.nodes());(function i(){return!N()||e._brushSelection[0][0]===e._brushSelection[1][0]||e._brushSelection[0][1]===e._brushSelection[1][1]})()||(n=(function r(e,n){console.assert(null!==e),console.assert(null!==n);const[i,r]=e,o=new Set;return t.quadTreeVisitPointsInRect(T[i][r],n[0][0],n[0][1],n[1][0],n[1][1],(t=>{wu(t).datum().sessionGroupMarkers.forEach((t=>{o.add(t)}))})),o})(e._brushedCellIndex,e._brushSelection)),ah(Array.from(t.filterSet(n,(t=>!A.has(t))))).attr("fill",v),ah(Array.from(t.filterSet(A,(t=>!n.has(t))))).attr("fill","#ddd"),A=n}k();const L=Zm().extent([[-4,-4],[a-1+5-1,s-1+5-1]]).on("start",(function(){N()&&C.node()!=this&&L.move(C,null),P(this)})).on("brush",(function(){P(this)})).on("end",(function(){P(this)}));function P(t){const n=$m(t);!N()&&null===n||N()&&t===C.node()&&we.isEqual(n,e._brushSelection)||(e._brushSelection=n,null!==n?(C=wu(t),e._brushedCellIndex=C.datum()):(C=null,e._brushedCellIndex=null),k())}function N(){return null!==e._brushedCellIndex&&null!==e._brushSelection}_.call(L),N()&&L.move(C,e._brushSelection);let I=null,O=null;null!==this.selectedSessionGroup&&(O=ah(M.get(this.selectedSessionGroup)).classed("selected-marker",!0)),_.on("click",(function(){const t=I===O?null:I;if(t===O)return;null!==O&&O.classed("selected-marker",!1),O=t,null!==O&&O.classed("selected-marker",!0);const n=null===O?null:O.datum().sessionGroup;e.selectedSessionGroup=n})).on("mousemove mouseenter",(function([n,i]){const[r,o]=oh(this),a=(function s(e,n,i,r,o){let a=1/0,s=null;return t.quadTreeVisitPointsInDisk(T[e][n],i,r,o,((t,e)=>{if(A.has(t)&&e<a){const n=wu(t).datum();a=e,s=n.sessionGroup}})),null===s?null:ah(M.get(s))})(n,i,r,o,20);I!==a&&(null!==I&&I.classed("closest-marker",!1),I=a,null!==I?(I.classed("closest-marker",!0),e.closestSessionGroup=I.datum().sessionGroup):e.closestSessionGroup=null)})).on("mouseleave",(function([t,n]){null!==I&&(I.classed("closest-marker",!1),I=null,e.closestSessionGroup=null)})),this._svg.selectAll("*").classed("tf-hparams-scatter-plot-matrix-plot",!0)}_cellScale(t,e){const n=this._colExtent(t),i=DM().domain(n).range(e);if("LINEAR"===this.options.columns[t].scale)return i;if("LOG"===this.options.columns[t].scale)return n[0]<=0&&n[1]>=0?i:qM().domain(n).range(e);if("QUANTILE"===this.options.columns[t].scale){const n=(e[1]-e[0])/19,i=Rl(20).map((t=>e[0]+n*t));return eE().domain(we.uniq(this.sessionGroups.map((e=>this._colValue(e,t))))).range(i)}if("NON_NUMERIC"===this.options.columns[t].scale)return MM().domain(we.uniq(this.sessionGroups.map((e=>this._colValue(e,t))).sort())).range(e).padding(.1);throw"Unknown scale for column: "+t+". options: "+this.options}_colValue(t,e){return gPt(this.visibleSchema,t,e)}_metricValue(t,e){return mPt(this.visibleSchema,t,e)}_colExtent(t){return dPt(this.visibleSchema,this.sessionGroups,t)}};fIt.template=_e`
    <div id="container">
      <svg id="svg"></svg>
    </div>

    <style>
      :host {
        display: block;
      }
      svg {
        font: 10px sans-serif;
      }

      text {
        fill: currentColor;
      }

      .frame rect {
        stroke: currentColor;
      }

      /* The closest data point marker to the mouse pointer. We use !important
         to override the inline style that sets the regular style of a marker.
      */
      .closest-marker {
        r: 6 !important;
      }

      /* The currently selected data point marker. We use !important to
         override the inline style that sets the regular style of a marker. */
      .selected-marker {
        r: 6 !important;
        fill: #0f0 !important;
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],fIt.prototype,"visibleSchema",void 0),t([o({type:Array}),e("design:type",Array)],fIt.prototype,"sessionGroups",void 0),t([o({type:Object}),e("design:type",Object)],fIt.prototype,"options",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],fIt.prototype,"selectedSessionGroup",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],fIt.prototype,"closestSessionGroup",void 0),t([o({type:Object}),e("design:type",HTMLElement)],fIt.prototype,"_container",void 0),t([o({type:Object}),e("design:type",Object)],fIt.prototype,"_svg",void 0),t([o({type:Number}),e("design:type",Number)],fIt.prototype,"width",void 0),t([o({type:Number}),e("design:type",Number)],fIt.prototype,"height",void 0),t([o({type:Object}),e("design:type",Object)],fIt.prototype,"_brushedCellIndex",void 0),t([o({type:Object}),e("design:type",Object)],fIt.prototype,"_brushSelection",void 0),t([a("sessionGroups.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],fIt.prototype,"_sessionGroupsChanged",null),t([a("visibleSchema.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],fIt.prototype,"_visibleSchemaChanged",null),t([a("options.*"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],fIt.prototype,"_redraw",null),fIt=t([i("tf-hparams-scatter-plot-matrix-plot")],fIt);let mIt=class extends ye{_closestOrSelected(t,e){return null!==t?t:e}};mIt.template=_e`
    <hparams-split-layout orientation="vertical">
      <!-- Controls behavior of the scatter plot matrix
             outputs the configured options to the _options property. -->
      <tf-hparams-scale-and-color-controls
        slot="content"
        class="section"
        id="controls"
        configuration="[[configuration]]"
        session-groups="[[sessionGroups]]"
        options="{{_options}}"
      >
      </tf-hparams-scale-and-color-controls>
      <!-- The actual scatter plot matrix -->
      <tf-hparams-scatter-plot-matrix-plot
        slot="content"
        class="section"
        id="plot"
        visible-schema="[[configuration.visibleSchema]]"
        session-groups="[[sessionGroups]]"
        selected-session-group="{{_selectedGroup}}"
        closest-session-group="{{_closestGroup}}"
        options="[[_options]]"
      >
      </tf-hparams-scatter-plot-matrix-plot>
      <tf-hparams-session-group-values
        slot="content"
        class="section"
        id="values"
        visible-schema="[[configuration.visibleSchema]]"
        session-group="[[_closestOrSelected(
                                 _closestGroup, _selectedGroup)]]"
      >
      </tf-hparams-session-group-values>
      <!-- Shows session group details for the clicked marker. -->
      <tf-hparams-session-group-details
        slot="content"
        class="section"
        id="details"
        backend="[[backend]]"
        experiment-name="[[experimentName]]"
        session-group="[[_selectedGroup]]"
        visible-schema="[[configuration.visibleSchema]]"
      >
      </tf-hparams-session-group-details>
    </hparams-split-layout>
    <style>
      .section {
        padding: 10px;
      }
      #controls {
        flex-grow: 0;
        flex-shrink: 0;
        flex-basis: auto;
        height: auto;
        overflow-y: auto;
        max-height: fit-content;
      }
      #plot {
        flex-grow: 1;
        flex-shrink: 1;
        flex-basis: auto;
        height: auto;
        overflow-y: auto;
        max-height: fit-content;
      }
      #values {
        flex-grow: 0;
        flex-shrink: 0;
        flex-basis: auto;
        height: 115px;
        overflow-y: auto;
        max-height: fit-content;
      }
      #details {
        flex-grow: 0;
        flex-shrink: 1;
        flex-basis: auto;
        height: auto;
        overflow-y: auto;
        max-height: fit-content;
      }
      vaadin-split-layout {
        height: 100%;
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],mIt.prototype,"backend",void 0),t([o({type:String}),e("design:type",String)],mIt.prototype,"experimentName",void 0),t([o({type:Object}),e("design:type",Object)],mIt.prototype,"configuration",void 0),t([o({type:Array}),e("design:type",Array)],mIt.prototype,"sessionGroups",void 0),mIt=t([i("tf-hparams-scatter-plot-matrix-view")],mIt);let gIt=class extends ye{constructor(){super(...arguments),this._selectedTab=0}};gIt.template=_e`
    <paper-header-panel>
      <paper-toolbar slot="header" class="tab-bar">
        <paper-tabs selected="{{_selectedTab}}" slot="top">
          <!-- view-id can be used by integration tests to locate a tab.
               It should be the name of the root element implementing the view
               without the 'tf-hparams-' prefix. -->
          <paper-tab view-id="table-view"> TABLE VIEW </paper-tab>
          <paper-tab view-id="parallel-coords-view">
            PARALLEL COORDINATES VIEW
          </paper-tab>
          <paper-tab view-id="scatter-plot-matrix-view">
            SCATTER PLOT MATRIX VIEW
          </paper-tab>
          <div class="help-and-feedback">
            <template is="dom-if" if="[[bugReportUrl]]">
              <a
                href$="[[bugReportUrl]]"
                target="_blank"
                rel="noopener noreferrer"
              >
                <paper-button
                  id="bug-report"
                  raised
                  title="Send a bug report or feature request"
                >
                  Bug Report / Feature Request
                </paper-button>
              </a>
            </template>
            <template is="dom-if" if="[[helpUrl]]">
              <a href$="[[helpUrl]]" target="_blank" rel="noopener noreferrer">
                <paper-icon-button
                  icon="help-outline"
                  title="View documentation"
                >
                </paper-icon-button>
              </a>
            </template>
          </div>
        </paper-tabs>
      </paper-toolbar>
      <iron-pages selected="[[_selectedTab]]" class="fit tab-view">
        <div id="0" class="tab">
          <tf-hparams-table-view
            backend="[[backend]]"
            experiment-name="[[experimentName]]"
            visible-schema="[[configuration.visibleSchema]]"
            session-groups="[[sessionGroups]]"
            enable-show-metrics
          >
          </tf-hparams-table-view>
        </div>
        <div id="1" class="tab">
          <tf-hparams-parallel-coords-view
            backend="[[backend]]"
            experiment-name="[[experimentName]]"
            configuration="[[configuration]]"
            session-groups="[[sessionGroups]]"
          >
          </tf-hparams-parallel-coords-view>
        </div>
        <div id="2" class="tab">
          <tf-hparams-scatter-plot-matrix-view
            backend="[[backend]]"
            experiment-name="[[experimentName]]"
            configuration="[[configuration]]"
            session-groups="[[sessionGroups]]"
          >
          </tf-hparams-scatter-plot-matrix-view>
        </div>
      </iron-pages>
    </paper-header-panel>

    <style>
      .tab-view {
        height: 100%;
      }
      .tab-bar {
        overflow-y: auto;
        color: white;
        background-color: var(
          --tb-toolbar-background-color,
          var(--tb-orange-strong)
        );
      }
      .tab {
        height: 100%;
      }
      paper-tabs {
        flex-grow: 1;
        width: 100%;
        height: 100%;
        --paper-tabs-selection-bar-color: white;
        --paper-tabs-content: {
          -webkit-font-smoothing: antialiased;
        }
      }
      tf-hparams-table-view {
        width: 100%;
        height: 100%;
      }
      .help-and-feedback {
        display: inline-flex; /* Ensure that icons stay aligned */
        justify-content: flex-end;
        align-items: center;
        text-align: right;
        color: white;
      }
      #bug-report {
        border: solid black;
        background: red;
        white-space: normal;
        word-break: break-words;
        font-size: 12px;
        max-width: 150px;
        text-align: left;
      }
      .help-and-feedback a {
        color: white;
        text-decoration: none;
      }
    </style>
  `,t([o({type:Object}),e("design:type",Object)],gIt.prototype,"backend",void 0),t([o({type:String}),e("design:type",String)],gIt.prototype,"helpUrl",void 0),t([o({type:String}),e("design:type",String)],gIt.prototype,"bugReportUrl",void 0),t([o({type:String}),e("design:type",String)],gIt.prototype,"experimentName",void 0),t([o({type:Object}),e("design:type",Object)],gIt.prototype,"configuration",void 0),t([o({type:Array}),e("design:type",Array)],gIt.prototype,"sessionGroups",void 0),t([o({type:Number}),e("design:type",Number)],gIt.prototype,"_selectedTab",void 0),gIt=t([i("tf-hparams-sessions-pane")],gIt);class _It{constructor(t,e,n=!0){this._apiUrl=t,this._requestManager=e,this._useHttpGet=n}getExperiment(t){return this._sendRequest("experiment",t)}getDownloadUrl(t,e,n){return this._apiUrl+"/download_data?"+new URLSearchParams({format:t,columnsVisibility:JSON.stringify(n),request:JSON.stringify(e)})}listSessionGroups(t){return this._sendRequest("session_groups",t)}listMetricEvals(t){return this._sendRequest("metric_evals",t)}_sendRequest(t,e){if(this._useHttpGet){const n=encodeURIComponent(JSON.stringify(e));return this._requestManager.request(this._apiUrl+"/"+t+"?request="+n)}const n=new ur;return n.withCredentials=!0,n.methodType=cr.POST,n.contentType="text/plain",n.body=JSON.stringify(e),this._requestManager.requestWithOptions(this._apiUrl+"/"+t,n)}}let yIt=class extends(tr(ye)){reload(){this.$["query-pane"].reload()}};yIt.template=_e`
    <hparams-split-layout>
      <div slot="content" class="sidebar">
        <tf-hparams-query-pane
          id="query-pane"
          backend="[[backend]]"
          experiment-name="[[experimentName]]"
          configuration="{{_configuration}}"
          session-groups="{{_sessionGroups}}"
          data-loaded-with-non-empty-hparams="{{_dataLoadedWithNonEmptyHparams}}"
          data-loaded-with-empty-hparams="{{_dataLoadedWithEmptyHparams}}"
        >
        </tf-hparams-query-pane>
      </div>
      <div slot="content" class="center">
        <template is="dom-if" if="[[_dataLoadedWithEmptyHparams]]">
          <div class="no-data-warning">
            <h3>No hparams data was found.</h3>
            <p>Probable causes:</p>
            <ul>
              <li>You haven’t written any hparams data to your event files.</li>
              <li>
                Event files are still being loaded (try reloading this page).
              </li>
              <li>TensorBoard can’t find your event files.</li>
            </ul>

            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>

            <p>
              If you think TensorBoard is configured properly, please see
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
                >the section of the README devoted to missing data problems</a
              >
              and consider filing an issue on GitHub.
            </p>
          </div>
        </template>

        <template is="dom-if" if="[[_dataLoadedWithNonEmptyHparams]]">
          <tf-hparams-sessions-pane
            id="sessions-pane"
            backend="[[backend]]"
            help-url="[[helpUrl]]"
            bug-report-url="[[bugReportUrl]]"
            experiment-name="[[experimentName]]"
            configuration="[[_configuration]]"
            session-groups="[[_sessionGroups]]"
          >
          </tf-hparams-sessions-pane>
        </template>
      </div>
    </hparams-split-layout>
    <style>
      hparams-split-layout {
        width: 100%;
      }

      .sidebar {
        width: 20%;
        height: 100%;
        overflow: auto;
        flex-grow: 0;
        flex-shrink: 0;
        min-width: 10%;
      }

      .center {
        height: 100%;
        overflow-y: auto;
        flex-grow: 1;
        flex-shrink: 1;
        width: 80%;
      }

      :host {
        display: flex;
        flex-direction: row;
        height: 100%;
        width: 100%;
      }

      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }
    </style>
  `,t([o({type:Object}),e("design:type",_It)],yIt.prototype,"backend",void 0),t([o({type:String}),e("design:type",String)],yIt.prototype,"experimentName",void 0),t([o({type:String}),e("design:type",String)],yIt.prototype,"helpUrl",void 0),t([o({type:String}),e("design:type",String)],yIt.prototype,"bugReportUrl",void 0),t([o({type:Object}),e("design:type",Object)],yIt.prototype,"_configuration",void 0),t([o({type:Array}),e("design:type",Array)],yIt.prototype,"_sessionGroups",void 0),t([o({type:Boolean}),e("design:type",Boolean)],yIt.prototype,"_dataLoadedWithNonEmptyHparams",void 0),t([o({type:Boolean}),e("design:type",Boolean)],yIt.prototype,"_dataLoadedWithEmptyHparams",void 0),yIt=t([i("tf-hparams-main")],yIt);const vIt="true"===new URLSearchParams(window.location.search).get("tensorboardColab");let bIt=class extends(tr(ye)){constructor(){super(...arguments),this._backend=new _It(gr().pluginRoute("hparams",""),new hr,vIt)}reload(){this.$["hparams-main"].reload()}};bIt.template=_e`
    <!-- TensorBoard does not specify an experimentName. Currently it only
         supports one experiment per invocation. -->
    <tf-hparams-main
      id="hparams-main"
      backend="[[_backend]]"
      experiment-name=""
    >
    </tf-hparams-main>
  `,t([o({type:Object}),e("design:type",Object)],bIt.prototype,"_backend",void 0),bIt=t([i("tf-hparams-dashboard")],bIt);let xIt=class extends(tr(ye)){constructor(){super(...arguments),this.actualSize=!1,this.brightnessAdjustment=.5,this.contrastPercentage=0,this._metadataCanceller=new NO,this._imageCanceller=new NO,this._steps=[],this._isImageLoading=!1}get _runColor(){return AO(this.run)}get _hasAtLeastOneStep(){var t=this._steps;return!!t&&t.length>0}get _hasMultipleSteps(){var t=this._steps;return!!t&&t.length>1}get _currentStep(){return this._steps[this._stepIndex]||null}get _stepValue(){var t=this._currentStep;return t?t.step:0}get _currentWallTime(){var t=this._currentStep;return t?OO(t.wall_time):""}get _maxStepIndex(){return this._steps.length-1}get _sampleText(){return`${this.sample+1}`}get _hasMultipleSamples(){return this.ofSamples>1}_getAriaExpanded(){return this.actualSize?"true":"false"}attached(){this.reload()}reload(){if(!this.isAttached)return;this._metadataCanceller.cancelAll();const t=VO(gr().pluginRoute("images","/images"),{tag:this.tag,run:this.run,sample:this.sample}),e=this._metadataCanceller.cancellable((t=>{if(t.cancelled)return;const e=t.value.map(this._createStepDatum.bind(this));this.set("_steps",e),this.set("_stepIndex",e.length-1)}));this.requestManager.request(t).then(e)}_createStepDatum(t){let e=gr().pluginRoute("images","/individualImage");return e=VO(e,{ts:t.wall_time}),e+="&"+t.query,{wall_time:new Date(1e3*t.wall_time),step:t.step,url:e}}_updateImageUrl(){var t=this._currentStep,e=this.brightnessAdjustment,n=this.contrastPercentage;if(!t)return;const i=new Image;this._imageCanceller.cancelAll(),i.onload=i.onerror=this._imageCanceller.cancellable((t=>{if(t.cancelled)return;const e=this.$$("#main-image-container");e.textContent="",qi(e).appendChild(i),this.set("_isImageLoading",!1)})).bind(this),i.style.filter=`contrast(${n}%) `,i.style.filter+=`brightness(${e})`,this.set("_isImageLoading",!0),i.src=t.url}_handleTap(t){this.set("actualSize",!this.actualSize)}_toLocaleString(t){return t.toLocaleString()}};xIt.template=_e`
    <tf-card-heading
      tag="[[tag]]"
      run="[[run]]"
      display-name="[[tagMetadata.displayName]]"
      description="[[tagMetadata.description]]"
      color="[[_runColor]]"
    >
      <template is="dom-if" if="[[_hasMultipleSamples]]">
        <div>sample: [[_sampleText]] of [[ofSamples]]</div>
      </template>
      <template is="dom-if" if="[[_hasAtLeastOneStep]]">
        <div class="heading-row">
          <div class="heading-label">
            step
            <span style="font-weight: bold"
              >[[_toLocaleString(_stepValue)]]</span
            >
          </div>
          <div class="heading-label heading-right datetime">
            <template is="dom-if" if="[[_currentWallTime]]">
              [[_currentWallTime]]
            </template>
          </div>
          <div class="label right">
            <paper-spinner-lite active hidden$="[[!_isImageLoading]]">
            </paper-spinner-lite>
          </div>
        </div>
      </template>
      <template is="dom-if" if="[[_hasMultipleSteps]]">
        <div>
          <paper-slider
            id="steps"
            immediate-value="{{_stepIndex}}"
            max="[[_maxStepIndex]]"
            max-markers="[[_maxStepIndex]]"
            snaps
            step="1"
            value="{{_stepIndex}}"
          ></paper-slider>
        </div>
      </template>
    </tf-card-heading>

    <!-- Semantically a button but <img> inside a <button> disallows user to do
    an interesting operation like "Copy Image" in non-Chromium browsers. -->
    <a
      id="main-image-container"
      role="button"
      aria-label="Toggle actual size"
      aria-expanded$="[[_getAriaExpanded(actualSize)]]"
      on-tap="_handleTap"
    ></a>

    <style include="tf-card-heading-style">
      /** Make button a div. */
      button {
        width: 100%;
        display: block;
        background: none;
        border: 0;
        padding: 0;
      }

      /** Firefox: Get rid of dotted line inside button. */
      button::-moz-focus-inner {
        border: 0;
        padding: 0;
      }

      /** Firefox: Simulate Chrome's outer glow on button when focused. */
      button:-moz-focusring {
        outline: none;
        box-shadow: 0px 0px 1px 2px Highlight;
      }

      :host {
        display: block;
        width: 350px;
        height: auto;
        position: relative;
        margin: 0 15px 40px 0;
        overflow-x: auto;
      }

      /** When actual size shown is on, use the actual image width. */
      :host([actual-size]) {
        max-width: 100%;
        width: auto;
      }

      :host([actual-size]) #main-image-container {
        max-height: none;
        width: auto;
      }

      :host([actual-size]) #main-image-container img {
        width: auto;
      }

      paper-spinner-lite {
        width: 14px;
        height: 14px;
        vertical-align: text-bottom;
        --paper-spinner-color: var(--tb-orange-strong);
      }

      #steps {
        height: 15px;
        margin: 0 0 0 -15px;
        /*
         * 31 comes from adding a padding of 15px from both sides of the
         * paper-slider, subtracting 1px so that the slider width aligns
         * with the image (the last slider marker takes up 1px), and
         * adding 2px to account for a border of 1px on both sides of
         * the image. 30 - 1 + 2.
         */
        width: calc(100% + 31px);
        --paper-slider-active-color: var(--tb-orange-strong);
        --paper-slider-knob-color: var(--tb-orange-strong);
        --paper-slider-knob-start-border-color: var(--tb-orange-strong);
        --paper-slider-knob-start-color: var(--tb-orange-strong);
        --paper-slider-markers-color: var(--tb-orange-strong);
        --paper-slider-pin-color: var(--tb-orange-strong);
        --paper-slider-pin-start-color: var(--tb-orange-strong);
      }

      #main-image-container {
        max-height: 1024px;
        overflow: auto;
      }

      #main-image-container img {
        cursor: pointer;
        display: block;
        image-rendering: -moz-crisp-edges;
        image-rendering: pixelated;
        width: 100%;
        height: auto;
      }

      paper-icon-button {
        color: #2196f3;
        border-radius: 100%;
        width: 32px;
        height: 32px;
        padding: 4px;
      }
      paper-icon-button[selected] {
        background: var(--tb-ui-light-accent);
      }
      [hidden] {
        display: none;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],xIt.prototype,"run",void 0),t([o({type:String}),e("design:type",String)],xIt.prototype,"tag",void 0),t([o({type:Number}),e("design:type",Number)],xIt.prototype,"sample",void 0),t([o({type:Number}),e("design:type",Number)],xIt.prototype,"ofSamples",void 0),t([o({type:Object}),e("design:type",Object)],xIt.prototype,"tagMetadata",void 0),t([o({type:Boolean,reflectToAttribute:!0}),e("design:type",Boolean)],xIt.prototype,"actualSize",void 0),t([o({type:Number}),e("design:type",Number)],xIt.prototype,"brightnessAdjustment",void 0),t([o({type:Number}),e("design:type",Number)],xIt.prototype,"contrastPercentage",void 0),t([o({type:Object}),e("design:type",hr)],xIt.prototype,"requestManager",void 0),t([o({type:Object}),e("design:type",Object)],xIt.prototype,"_metadataCanceller",void 0),t([o({type:Object}),e("design:type",Object)],xIt.prototype,"_imageCanceller",void 0),t([o({type:Array,notify:!0}),e("design:type",Array)],xIt.prototype,"_steps",void 0),t([o({type:Number,notify:!0}),e("design:type",Number)],xIt.prototype,"_stepIndex",void 0),t([o({type:Boolean}),e("design:type",Boolean)],xIt.prototype,"_isImageLoading",void 0),t([s("run"),e("design:type",String),e("design:paramtypes",[])],xIt.prototype,"_runColor",null),t([s("_steps"),e("design:type",Boolean),e("design:paramtypes",[])],xIt.prototype,"_hasAtLeastOneStep",null),t([s("_steps"),e("design:type",Boolean),e("design:paramtypes",[])],xIt.prototype,"_hasMultipleSteps",null),t([s("_steps","_stepIndex"),e("design:type",Object),e("design:paramtypes",[])],xIt.prototype,"_currentStep",null),t([s("_currentStep"),e("design:type",Number),e("design:paramtypes",[])],xIt.prototype,"_stepValue",null),t([s("_currentStep"),e("design:type",String),e("design:paramtypes",[])],xIt.prototype,"_currentWallTime",null),t([s("_steps"),e("design:type",Number),e("design:paramtypes",[])],xIt.prototype,"_maxStepIndex",null),t([s("sample"),e("design:type",String),e("design:paramtypes",[])],xIt.prototype,"_sampleText",null),t([s("ofSamples"),e("design:type",Boolean),e("design:paramtypes",[])],xIt.prototype,"_hasMultipleSamples",null),t([a("run","tag"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],xIt.prototype,"reload",null),t([a("_currentStep","brightnessAdjustment","contrastPercentage"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],xIt.prototype,"_updateImageUrl",null),xIt=t([i("tf-image-loader")],xIt);let wIt=class extends(tr(ye)){constructor(){super(...arguments),this.reloadOnReady=!0,this._defaultBrightnessAdjustment=1,this._defaultContrastPercentage=100,this._brightnessAdjustment=1,this._contrastPercentage=100,this._requestManager=new hr}ready(){super.ready(),this.reloadOnReady&&this.reload()}reload(){this._fetchTags().then((()=>{this._reloadImages()}))}_fetchTags(){const t=gr().pluginRoute("images","/tags");return this._requestManager.request(t).then((t=>{if(we.isEqual(t,this._runToTagInfo))return;const e=or(we.mapValues(t,(t=>Object.keys(t))));this.set("_dataNotFound",0===e.length),this.set("_runToTagInfo",t),this.async((()=>{this.set("_categoriesDomReady",!0)}))}))}_reloadImages(){this.root.querySelectorAll("tf-image-loader").forEach((t=>{t.reload()}))}_shouldOpen(t){return t<=2}_resetBrightness(){this._brightnessAdjustment=this._defaultBrightnessAdjustment}_resetContrast(){this._contrastPercentage=this._defaultContrastPercentage}get _brightnessIsDefault(){return this._brightnessAdjustment===this._defaultBrightnessAdjustment}get _contrastIsDefault(){return this._contrastPercentage===this._defaultContrastPercentage}get _categories(){var t=this._runToTagInfo,e=this._selectedRuns,n=this._tagFilter;function i(e){const n=t[e.run][e.tag].samples;return we.range(n).map((t=>Object.assign({},e,{sample:t,ofSamples:n})))}return Sr(we.mapValues(t,(t=>Object.keys(t))),e,n).map((t=>Object.assign({},t,{items:[].concat.apply([],t.items.map(i))})))}_tagMetadata(t,e,n){return t[e][n]}};var SIt,MIt,EIt;wIt.template=_e`
    <tf-dashboard-layout>
      <div class="sidebar" slot="sidebar">
        <div class="settings">
          <div class="sidebar-section">
            <div class="line-item">
              <paper-checkbox checked="{{_actualSize}}"
                >Show actual image size</paper-checkbox
              >
            </div>
          </div>
          <div class="sidebar-section">
            <h3 class="tooltip-container">Brightness adjustment</h3>
            <div class="resettable-slider-container">
              <paper-slider
                min="0"
                max="2"
                snaps
                pin
                step="0.01"
                value="{{_brightnessAdjustment}}"
                immediate-value="{{_brightnessAdjustment}}"
              ></paper-slider>
              <paper-button
                class="x-button"
                on-tap="_resetBrightness"
                disabled="[[_brightnessIsDefault]]"
                >Reset</paper-button
              >
            </div>
          </div>
          <div class="sidebar-section">
            <h3 class="tooltip-container">Contrast adjustment</h3>
            <div class="resettable-slider-container">
              <paper-slider
                min="0"
                max="500"
                snaps
                pin
                step="1"
                value="{{_contrastPercentage}}"
                immediate-value="{{_contrastPercentage}}"
              ></paper-slider>
              <paper-button
                class="x-button"
                on-tap="_resetContrast"
                disabled="[[_contrastIsDefault]]"
                >Reset</paper-button
              >
            </div>
          </div>
        </div>
        <div class="sidebar-section runs-selector">
          <tf-runs-selector
            id="runs-selector"
            selected-runs="{{_selectedRuns}}"
          ></tf-runs-selector>
        </div>
      </div>
      <div class="center" slot="center">
        <template is="dom-if" if="[[_dataNotFound]]">
          <div class="no-data-warning">
            <h3>No image data was found.</h3>
            <p>Probable causes:</p>
            <ul>
              <li>You haven’t written any image data to your event files.</li>
              <li>TensorBoard can’t find your event files.</li>
            </ul>

            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>

            <p>
              If you think TensorBoard is configured properly, please see
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
                >the section of the README devoted to missing data problems</a
              >
              and consider filing an issue on GitHub.
            </p>
          </div>
        </template>
        <template is="dom-if" if="[[!_dataNotFound]]">
          <tf-tag-filterer tag-filter="{{_tagFilter}}"></tf-tag-filterer>
          <template is="dom-repeat" items="[[_categories]]" as="category">
            <tf-category-paginated-view
              category="[[category]]"
              initial-opened="[[_shouldOpen(index)]]"
            >
              <template>
                <tf-image-loader
                  active="[[active]]"
                  run="[[item.run]]"
                  tag="[[item.tag]]"
                  sample="[[item.sample]]"
                  of-samples="[[item.ofSamples]]"
                  tag-metadata="[[_tagMetadata(_runToTagInfo, item.run, item.tag)]]"
                  request-manager="[[_requestManager]]"
                  actual-size="[[_actualSize]]"
                  brightness-adjustment="[[_brightnessAdjustment]]"
                  contrast-percentage="[[_contrastPercentage]]"
                ></tf-image-loader>
              </template>
            </tf-category-paginated-view>
          </template>
        </template>
      </div>
    </tf-dashboard-layout>
    <style include="dashboard-style"></style>
    <style>
      .resettable-slider-container {
        display: flex;
      }
      .resettable-slider-container paper-slider {
        flex-grow: 1;
      }
      .resettable-slider-container paper-button {
        flex-grow: 0;
      }
      .resettable-slider-container paper-button[disabled] {
        background-color: unset;
      }
      .x-button {
        font-size: 13px;
        background-color: var(--tb-ui-light-accent);
        color: var(--tb-ui-dark-accent);
      }
      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }
      paper-slider {
        --paper-slider-active-color: var(--tb-orange-strong);
        --paper-slider-knob-color: var(--tb-orange-strong);
        --paper-slider-knob-start-border-color: var(--tb-orange-strong);
        --paper-slider-knob-start-color: var(--tb-orange-strong);
        --paper-slider-markers-color: var(--tb-orange-strong);
        --paper-slider-pin-color: var(--tb-orange-strong);
        --paper-slider-pin-start-color: var(--tb-orange-strong);
      }
    </style>
  `,t([o({type:Boolean}),e("design:type",Boolean)],wIt.prototype,"reloadOnReady",void 0),t([o({type:Array}),e("design:type",Array)],wIt.prototype,"_selectedRuns",void 0),t([o({type:Object}),e("design:type",Object)],wIt.prototype,"_runToTagInfo",void 0),t([o({type:Boolean}),e("design:type",Boolean)],wIt.prototype,"_dataNotFound",void 0),t([o({type:Boolean}),e("design:type",Boolean)],wIt.prototype,"_actualSize",void 0),t([o({type:Number}),e("design:type",Number)],wIt.prototype,"_defaultBrightnessAdjustment",void 0),t([o({type:Number}),e("design:type",Number)],wIt.prototype,"_defaultContrastPercentage",void 0),t([o({type:Number}),e("design:type",Number)],wIt.prototype,"_brightnessAdjustment",void 0),t([o({type:Number}),e("design:type",Number)],wIt.prototype,"_contrastPercentage",void 0),t([o({type:String}),e("design:type",String)],wIt.prototype,"_tagFilter",void 0),t([o({type:Boolean}),e("design:type",Boolean)],wIt.prototype,"_categoriesDomReady",void 0),t([o({type:Object}),e("design:type",Object)],wIt.prototype,"_requestManager",void 0),t([s("_brightnessAdjustment"),e("design:type",Boolean),e("design:paramtypes",[])],wIt.prototype,"_brightnessIsDefault",null),t([s("_contrastPercentage"),e("design:type",Boolean),e("design:paramtypes",[])],wIt.prototype,"_contrastIsDefault",null),t([s("_runToTagInfo","_selectedRuns","_tagFilter","_categoriesDomReady"),e("design:type",Array),e("design:paramtypes",[])],wIt.prototype,"_categories",null),wIt=t([i("tf-image-dashboard")],wIt),(function(t){t[t.CANCELLED=1]="CANCELLED"})(SIt||(SIt={})),(function(t){t[t.VERTEX=1]="VERTEX",t[t.FACE=2]="FACE",t[t.COLOR=3]="COLOR"})(MIt||(MIt={})),(function(t){t.VERTEX="float32",t.FACE="int32",t.COLOR="uint8"})(EIt||(EIt={}));class TIt{constructor(t){this._canceller=new NO,this._requestManager=t}reload(t,e,n){return this._canceller.cancelAll(),this._fetchMetadata(t,e,n)}_fetchDataByStep(t,e,n,i,r,o){const a=gr().pluginRoute("mesh","/data",new URLSearchParams({tag:e,run:t,content_type:n,sample:String(i),step:String(r)})),s=function(t){let e=[];for(let n=0;n<t.length/3;n++){let i=[];for(let e=0;e<3;e++)i.push(t[3*n+e]);e.push(i)}return e},l=this._canceller.cancellable((t=>{if(t.cancelled)return Promise.reject({code:SIt.CANCELLED,message:"Response was invalidated."});let e=t.value;switch(n){case"VERTEX":o.vertices=s(new Float32Array(e));break;case"FACE":o.faces=s(new Int32Array(e));break;case"COLOR":o.colors=s(new Uint8Array(e))}return o}));return this._requestManager.fetch(a,{method:"GET",headers:{responseType:"arraybuffer",contentType:EIt[n]}}).then((t=>t.arrayBuffer())).then(l)}fetchData(t,e,n,i){let r=[],o=new Map;return Object.keys(MIt).forEach((a=>{t.components&1<<MIt[a]&&r.push(this._fetchDataByStep(e,n,a,i,t.step,o))})),Promise.all(r)}_fetchMetadata(t,e,n){this._canceller.cancelAll();const i=gr().pluginRoute("mesh","/meshes",new URLSearchParams({tag:e,run:t,sample:n})),r=this._canceller.cancellable((t=>t.cancelled?Promise.reject({code:SIt.CANCELLED,message:"Response was invalidated."}):t.value));return this._requestManager.fetch(i).then((t=>t.json())).then(r).then(this._processMetadata.bind(this))}_processMetadata(t){if(!t)return;const e=new Map;for(let n=0;n<t.length;n++){let i=t[n];e.has(i.step)||e.set(i.step,[]),e.get(i.step).push(i)}let n=[];return e.forEach((t=>{let e=this._createStepDatum(t[0]);n.push(e)})),n}_createStepDatum(t){return{wall_time:new Date(1e3*t.wall_time),step:t.step,config:t.config,content_type:t.content_type,components:t.components}}}const CIt="125",AIt={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},kIt={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},LIt=100,PIt=300,NIt=301,IIt=302,OIt=303,RIt=304,zIt=306,DIt=307,BIt=1e3,HIt=1001,FIt=1002,VIt=1003,UIt=1004,jIt=1005,GIt=1006,WIt=1007,qIt=1008,YIt=1009,XIt=1012,$It=1014,KIt=1015,ZIt=1016,JIt=1020,QIt=1022,tOt=1023,eOt=1026,nOt=1027,iOt=33776,rOt=33777,oOt=33778,aOt=33779,sOt=35840,lOt=35841,cOt=35842,uOt=35843,hOt=37492,dOt=37496,pOt=2300,fOt=2301,mOt=2302,gOt=2400,_Ot=2401,yOt=2402,vOt=2500,bOt=2501,xOt=3e3,wOt=3001,SOt=3007,MOt=3002,EOt=3004,TOt=3005,COt=3006,AOt=7680,kOt=35044,LOt=35048,POt="300 es";function NOt(){}Object.assign(NOt.prototype,{addEventListener:function(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)},hasEventListener:function(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)},removeEventListener:function(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}},dispatchEvent:function(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e<i;e++)n[e].call(this,t)}}});const IOt=[];for(let t=0;t<256;t++)IOt[t]=(t<16?"0":"")+t.toString(16);let OOt=1234567;const ROt={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(IOt[255&t]+IOt[t>>8&255]+IOt[t>>16&255]+IOt[t>>24&255]+"-"+IOt[255&e]+IOt[e>>8&255]+"-"+IOt[e>>16&15|64]+IOt[e>>24&255]+"-"+IOt[63&n|128]+IOt[n>>8&255]+"-"+IOt[n>>16&255]+IOt[n>>24&255]+IOt[255&i]+IOt[i>>8&255]+IOt[i>>16&255]+IOt[i>>24&255]).toUpperCase()},clamp:function(t,e,n){return Math.max(e,Math.min(n,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},lerp:function(t,e,n){return(1-n)*t+n*e},damp:function(t,e,n,i){return ROt.lerp(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(ROt.euclideanModulo(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(OOt=t%2147483647),OOt=16807*OOt%2147483647,(OOt-1)/2147483646},degToRad:function(t){return t*ROt.DEG2RAD},radToDeg:function(t){return t*ROt.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))},setQuaternionFromProperEuler:function(t,e,n,i,r){const o=Math.cos,a=Math.sin,s=o(n/2),l=a(n/2),c=o((e+i)/2),u=a((e+i)/2),h=o((e-i)/2),d=a((e-i)/2),p=o((i-e)/2),f=a((i-e)/2);switch(r){case"XYX":t.set(s*u,l*h,l*d,s*c);break;case"YZY":t.set(l*d,s*u,l*h,s*c);break;case"ZXZ":t.set(l*h,l*d,s*u,s*c);break;case"XZX":t.set(s*u,l*f,l*p,s*c);break;case"YXY":t.set(l*p,s*u,l*f,s*c);break;case"ZYZ":t.set(l*f,l*p,s*u,s*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}};class zOt{constructor(t=0,e=0){Object.defineProperty(this,"isVector2",{value:!0}),this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,o=this.y-t.y;return this.x=r*n-o*i+t.x,this.y=r*i+o*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}class DOt{constructor(){Object.defineProperty(this,"isMatrix3",{value:!0}),this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,o,a,s,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=s,c[6]=n,c[7]=o,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}clone(){return(new this.constructor).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,o=n[0],a=n[3],s=n[6],l=n[1],c=n[4],u=n[7],h=n[2],d=n[5],p=n[8],f=i[0],m=i[3],g=i[6],_=i[1],y=i[4],v=i[7],b=i[2],x=i[5],w=i[8];return r[0]=o*f+a*_+s*b,r[3]=o*m+a*y+s*x,r[6]=o*g+a*v+s*w,r[1]=l*f+c*_+u*b,r[4]=l*m+c*y+u*x,r[7]=l*g+c*v+u*w,r[2]=h*f+d*_+p*b,r[5]=h*m+d*y+p*x,r[8]=h*g+d*v+p*w,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],o=t[4],a=t[5],s=t[6],l=t[7],c=t[8];return e*o*c-e*a*l-n*r*c+n*a*s+i*r*l-i*o*s}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],o=t[4],a=t[5],s=t[6],l=t[7],c=t[8],u=c*o-a*l,h=a*s-c*r,d=l*r-o*s,p=e*u+n*h+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return t[0]=u*f,t[1]=(i*l-c*n)*f,t[2]=(a*n-i*o)*f,t[3]=h*f,t[4]=(c*e-i*s)*f,t[5]=(i*r-a*e)*f,t[6]=d*f,t[7]=(n*s-l*e)*f,t[8]=(o*e-n*r)*f,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).copy(this).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,o,a){const s=Math.cos(r),l=Math.sin(r);return this.set(n*s,n*l,-n*(s*o+l*a)+o+t,-i*l,i*s,-i*(-l*o+s*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],o=i[3],a=i[6],s=i[1],l=i[4],c=i[7];return i[0]=e*r+n*s,i[3]=e*o+n*l,i[6]=e*a+n*c,i[1]=-n*r+e*s,i[4]=-n*o+e*l,i[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}}let BOt;const HOt={getDataURL:function(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===BOt&&(BOt=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),BOt.width=t.width,BOt.height=t.height;const n=BOt.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=BOt}return e.width>2048||e.height>2048?e.toDataURL("image/jpeg",.6):e.toDataURL("image/png")}};let FOt=0;function VOt(t=VOt.DEFAULT_IMAGE,e=VOt.DEFAULT_MAPPING,n=1001,i=1001,r=1006,o=1008,a=1023,s=1009,l=1,c=3e3){Object.defineProperty(this,"id",{value:FOt++}),this.uuid=ROt.generateUUID(),this.name="",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=o,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=s,this.offset=new zOt(0,0),this.repeat=new zOt(1,1),this.center=new zOt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new DOt,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}function UOt(t){return"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap?HOt.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}VOt.DEFAULT_IMAGE=void 0,VOt.DEFAULT_MAPPING=PIt,VOt.prototype=Object.assign(Object.create(NOt.prototype),{constructor:VOt,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},toJSON:function(t){const e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=ROt.generateUUID()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,n=i.length;t<n;t++)e.push(UOt(i[t].isDataTexture?i[t].image:i[t]))}else e=UOt(i);t.images[i.uuid]={uuid:i.uuid,url:e}}n.image=i.uuid}return e||(t.textures[this.uuid]=n),n},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(t){if(this.mapping!==PIt)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case BIt:t.x=t.x-Math.floor(t.x);break;case HIt:t.x=t.x<0?0:1;break;case FIt:t.x=1===Math.abs(Math.floor(t.x)%2)?Math.ceil(t.x)-t.x:t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case BIt:t.y=t.y-Math.floor(t.y);break;case HIt:t.y=t.y<0?0:1;break;case FIt:t.y=1===Math.abs(Math.floor(t.y)%2)?Math.ceil(t.y)-t.y:t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}}),Object.defineProperty(VOt.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}});class jOt{constructor(t=0,e=0,n=0,i=1){Object.defineProperty(this,"isVector4",{value:!0}),this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,o=t.elements;return this.x=o[0]*e+o[4]*n+o[8]*i+o[12]*r,this.y=o[1]*e+o[5]*n+o[9]*i+o[13]*r,this.z=o[2]*e+o[6]*n+o[10]*i+o[14]*r,this.w=o[3]*e+o[7]*n+o[11]*i+o[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const o=.01,a=.1,s=t.elements,l=s[0],c=s[4],u=s[8],h=s[1],d=s[5],p=s[9],f=s[2],m=s[6],g=s[10];if(Math.abs(c-h)<o&&Math.abs(u-f)<o&&Math.abs(p-m)<o){if(Math.abs(c+h)<a&&Math.abs(u+f)<a&&Math.abs(p+m)<a&&Math.abs(l+d+g-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,s=(d+1)/2,_=(g+1)/2,y=(c+h)/4,v=(u+f)/4,b=(p+m)/4;return t>s&&t>_?t<o?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(t),i=y/n,r=v/n):s>_?s<o?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(s),n=y/i,r=b/i):_<o?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(_),n=v/r,i=b/r),this.set(n,i,r,e),this}let _=Math.sqrt((m-p)*(m-p)+(u-f)*(u-f)+(h-c)*(h-c));return Math.abs(_)<.001&&(_=1),this.x=(m-p)/_,this.y=(u-f)/_,this.z=(h-c)/_,this.w=Math.acos((l+d+g-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}}class GOt extends NOt{constructor(t,e,n){super(),Object.defineProperty(this,"isWebGLRenderTarget",{value:!0}),this.width=t,this.height=e,this.scissor=new jOt(0,0,t,e),this.scissorTest=!1,this.viewport=new jOt(0,0,t,e),this.texture=new VOt(void 0,(n=n||{}).mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.image={},this.texture.image.width=t,this.texture.image.height=e,this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:GIt,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setSize(t,e){this.width===t&&this.height===e||(this.width=t,this.height=e,this.texture.image.width=t,this.texture.image.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:"dispose"})}}class WOt{constructor(t=0,e=0,n=0,i=1){Object.defineProperty(this,"isQuaternion",{value:!0}),this._x=t,this._y=e,this._z=n,this._w=i}static slerp(t,e,n,i){return n.copy(t).slerp(e,i)}static slerpFlat(t,e,n,i,r,o,a){let s=n[i+0],l=n[i+1],c=n[i+2],u=n[i+3];const h=r[o+0],d=r[o+1],p=r[o+2],f=r[o+3];if(u!==f||s!==h||l!==d||c!==p){let t=1-a;const e=s*h+l*d+c*p+u*f,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),o=Math.atan2(r,e*n);t=Math.sin(t*o)/r,a=Math.sin(a*o)/r}const r=a*n;if(s=s*t+h*r,l=l*t+d*r,c=c*t+p*r,u=u*t+f*r,t===1-a){const t=1/Math.sqrt(s*s+l*l+c*c+u*u);s*=t,l*=t,c*=t,u*=t}}t[e]=s,t[e+1]=l,t[e+2]=c,t[e+3]=u}static multiplyQuaternionsFlat(t,e,n,i,r,o){const a=n[i],s=n[i+1],l=n[i+2],c=n[i+3],u=r[o],h=r[o+1],d=r[o+2],p=r[o+3];return t[e]=a*p+c*u+s*d-l*h,t[e+1]=s*p+c*h+l*u-a*d,t[e+2]=l*p+c*d+a*h-s*u,t[e+3]=c*p-a*u-s*h-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=t._x,i=t._y,r=t._z,o=t._order,a=Math.cos,s=Math.sin,l=a(n/2),c=a(i/2),u=a(r/2),h=s(n/2),d=s(i/2),p=s(r/2);switch(o){case"XYZ":this._x=h*c*u+l*d*p,this._y=l*d*u-h*c*p,this._z=l*c*p+h*d*u,this._w=l*c*u-h*d*p;break;case"YXZ":this._x=h*c*u+l*d*p,this._y=l*d*u-h*c*p,this._z=l*c*p-h*d*u,this._w=l*c*u+h*d*p;break;case"ZXY":this._x=h*c*u-l*d*p,this._y=l*d*u+h*c*p,this._z=l*c*p+h*d*u,this._w=l*c*u-h*d*p;break;case"ZYX":this._x=h*c*u-l*d*p,this._y=l*d*u+h*c*p,this._z=l*c*p-h*d*u,this._w=l*c*u+h*d*p;break;case"YZX":this._x=h*c*u+l*d*p,this._y=l*d*u+h*c*p,this._z=l*c*p-h*d*u,this._w=l*c*u-h*d*p;break;case"XZY":this._x=h*c*u-l*d*p,this._y=l*d*u-h*c*p,this._z=l*c*p+h*d*u,this._w=l*c*u+h*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],o=e[1],a=e[5],s=e[9],l=e[2],c=e[6],u=e[10],h=n+a+u;if(h>0){const t=.5/Math.sqrt(h+1);this._w=.25/t,this._x=(c-s)*t,this._y=(r-l)*t,this._z=(o-i)*t}else if(n>a&&n>u){const t=2*Math.sqrt(1+n-a-u);this._w=(c-s)/t,this._x=.25*t,this._y=(i+o)/t,this._z=(r+l)/t}else if(a>u){const t=2*Math.sqrt(1+a-n-u);this._w=(r-l)/t,this._x=(i+o)/t,this._y=.25*t,this._z=(s+c)/t}else{const t=2*Math.sqrt(1+u-n-a);this._w=(o-i)/t,this._x=(r+l)/t,this._y=(s+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<1e-6?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ROt.clamp(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,o=t._w,a=e._x,s=e._y,l=e._z,c=e._w;return this._x=n*c+o*a+i*l-r*s,this._y=i*c+o*s+r*a-n*l,this._z=r*c+o*l+n*s-i*a,this._w=o*c-n*a-i*s-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,o=this._w;let a=o*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=n,this._y=i,this._z=r,this;const s=1-a*a;if(s<=Number.EPSILON){const t=1-e;return this._w=t*o+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(s),c=Math.atan2(l,a),u=Math.sin((1-e)*c)/l,h=Math.sin(e*c)/l;return this._w=o*u+this._w*h,this._x=n*u+this._x*h,this._y=i*u+this._y*h,this._z=r*u+this._z*h,this._onChangeCallback(),this}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}class qOt{constructor(t=0,e=0,n=0){Object.defineProperty(this,"isVector3",{value:!0}),this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(XOt.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(XOt.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,o=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*o,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*o,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*o,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,o=t.y,a=t.z,s=t.w,l=s*e+o*i-a*n,c=s*n+a*e-r*i,u=s*i+r*n-o*e,h=-r*e-o*n-a*i;return this.x=l*s+h*-r+c*-a-u*-o,this.y=c*s+h*-o+u*-r-l*-a,this.z=u*s+h*-a+l*-o-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,o=e.x,a=e.y,s=e.z;return this.x=i*s-r*a,this.y=r*o-n*s,this.z=n*a-i*o,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return YOt.copy(this).projectOnVector(t),this.sub(YOt)}reflect(t){return this.sub(YOt.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ROt.clamp(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}const YOt=new qOt,XOt=new WOt;class $Ot{constructor(t,e){Object.defineProperty(this,"isBox3",{value:!0}),this.min=void 0!==t?t:new qOt(1/0,1/0,1/0),this.max=void 0!==e?e:new qOt(-1/0,-1/0,-1/0)}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,o=-1/0,a=-1/0;for(let s=0,l=t.length;s<l;s+=3){const l=t[s],c=t[s+1],u=t[s+2];l<e&&(e=l),c<n&&(n=c),u<i&&(i=u),l>r&&(r=l),c>o&&(o=c),u>a&&(a=u)}return this.min.set(e,n,i),this.max.set(r,o,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,o=-1/0,a=-1/0;for(let s=0,l=t.count;s<l;s++){const l=t.getX(s),c=t.getY(s),u=t.getZ(s);l<e&&(e=l),c<n&&(n=c),u<i&&(i=u),l>r&&(r=l),c>o&&(o=c),u>a&&(a=u)}return this.min.set(e,n,i),this.max.set(r,o,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=JOt.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return void 0===t&&(console.warn("THREE.Box3: .getCenter() target is now required"),t=new qOt),this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return void 0===t&&(console.warn("THREE.Box3: .getSize() target is now required"),t=new qOt),this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),QOt.copy(e.boundingBox),QOt.applyMatrix4(t.matrixWorld),this.union(QOt));const n=t.children;for(let t=0,e=n.length;t<e;t++)this.expandByObject(n[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return void 0===e&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new qOt),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,JOt),JOt.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(aRt),sRt.subVectors(this.max,aRt),tRt.subVectors(t.a,aRt),eRt.subVectors(t.b,aRt),nRt.subVectors(t.c,aRt),iRt.subVectors(eRt,tRt),rRt.subVectors(nRt,eRt),oRt.subVectors(tRt,nRt);let e=[0,-iRt.z,iRt.y,0,-rRt.z,rRt.y,0,-oRt.z,oRt.y,iRt.z,0,-iRt.x,rRt.z,0,-rRt.x,oRt.z,0,-oRt.x,-iRt.y,iRt.x,0,-rRt.y,rRt.x,0,-oRt.y,oRt.x,0];return!!KOt(e,tRt,eRt,nRt,sRt)&&(e=[1,0,0,0,1,0,0,0,1],!!KOt(e,tRt,eRt,nRt,sRt)&&(lRt.crossVectors(iRt,rRt),e=[lRt.x,lRt.y,lRt.z],KOt(e,tRt,eRt,nRt,sRt)))}clampPoint(t,e){return void 0===e&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new qOt),e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return JOt.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return void 0===t&&console.error("THREE.Box3: .getBoundingSphere() target is now required"),this.getCenter(t.center),t.radius=.5*this.getSize(JOt).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(ZOt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),ZOt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),ZOt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),ZOt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),ZOt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),ZOt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),ZOt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),ZOt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(ZOt)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}function KOt(t,e,n,i,r){for(let o=0,a=t.length-3;o<=a;o+=3){cRt.fromArray(t,o);const a=r.x*Math.abs(cRt.x)+r.y*Math.abs(cRt.y)+r.z*Math.abs(cRt.z),s=e.dot(cRt),l=n.dot(cRt),c=i.dot(cRt);if(Math.max(-Math.max(s,l,c),Math.min(s,l,c))>a)return!1}return!0}const ZOt=[new qOt,new qOt,new qOt,new qOt,new qOt,new qOt,new qOt,new qOt],JOt=new qOt,QOt=new $Ot,tRt=new qOt,eRt=new qOt,nRt=new qOt,iRt=new qOt,rRt=new qOt,oRt=new qOt,aRt=new qOt,sRt=new qOt,lRt=new qOt,cRt=new qOt,uRt=new $Ot;class hRt{constructor(t,e){this.center=void 0!==t?t:new qOt,this.radius=void 0!==e?e:-1}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):uRt.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;e<r;e++)i=Math.max(i,n.distanceToSquared(t[e]));return this.radius=Math.sqrt(i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return void 0===e&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),e=new qOt),e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return void 0===t&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new $Ot),this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}}const dRt=new qOt,pRt=new qOt,fRt=new qOt,mRt=new qOt,gRt=new qOt,_Rt=new qOt,yRt=new qOt;class vRt{constructor(t,e){this.origin=void 0!==t?t:new qOt,this.direction=void 0!==e?e:new qOt(0,0,-1)}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return void 0===e&&(console.warn("THREE.Ray: .at() target is now required"),e=new qOt),e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,dRt)),this}closestPointToPoint(t,e){void 0===e&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),e=new qOt),e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=dRt.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(dRt.copy(this.direction).multiplyScalar(e).add(this.origin),dRt.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){pRt.copy(t).add(e).multiplyScalar(.5),fRt.copy(e).sub(t).normalize(),mRt.copy(this.origin).sub(pRt);const r=.5*t.distanceTo(e),o=-this.direction.dot(fRt),a=mRt.dot(this.direction),s=-mRt.dot(fRt),l=mRt.lengthSq(),c=Math.abs(1-o*o);let u,h,d,p;if(c>0)if(u=o*s-a,h=o*a-s,p=r*c,u>=0)if(h>=-p)if(h<=p){const t=1/c;u*=t,h*=t,d=u*(u+o*h+2*a)+h*(o*u+h+2*s)+l}else h=r,u=Math.max(0,-(o*h+a)),d=-u*u+h*(h+2*s)+l;else h=-r,u=Math.max(0,-(o*h+a)),d=-u*u+h*(h+2*s)+l;else h<=-p?(u=Math.max(0,-(-o*r+a)),h=u>0?-r:Math.min(Math.max(-r,-s),r),d=-u*u+h*(h+2*s)+l):h<=p?(u=0,h=Math.min(Math.max(-r,-s),r),d=h*(h+2*s)+l):(u=Math.max(0,-(o*r+a)),h=u>0?r:Math.min(Math.max(-r,-s),r),d=-u*u+h*(h+2*s)+l);else h=o>0?-r:r,u=Math.max(0,-(o*h+a)),d=-u*u+h*(h+2*s)+l;return n&&n.copy(this.direction).multiplyScalar(u).add(this.origin),i&&i.copy(fRt).multiplyScalar(h).add(pRt),d}intersectSphere(t,e){dRt.subVectors(t.center,this.origin);const n=dRt.dot(this.direction),i=dRt.dot(dRt)-n*n,r=t.radius*t.radius;if(i>r)return null;const o=Math.sqrt(r-i),a=n-o,s=n+o;return a<0&&s<0?null:this.at(a<0?s:a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,o,a,s;const l=1/this.direction.x,c=1/this.direction.y,u=1/this.direction.z,h=this.origin;return l>=0?(n=(t.min.x-h.x)*l,i=(t.max.x-h.x)*l):(n=(t.max.x-h.x)*l,i=(t.min.x-h.x)*l),c>=0?(r=(t.min.y-h.y)*c,o=(t.max.y-h.y)*c):(r=(t.max.y-h.y)*c,o=(t.min.y-h.y)*c),n>o||r>i?null:((r>n||n!=n)&&(n=r),(o<i||i!=i)&&(i=o),u>=0?(a=(t.min.z-h.z)*u,s=(t.max.z-h.z)*u):(a=(t.max.z-h.z)*u,s=(t.min.z-h.z)*u),n>s||a>i?null:((a>n||n!=n)&&(n=a),(s<i||i!=i)&&(i=s),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,dRt)}intersectTriangle(t,e,n,i,r){gRt.subVectors(e,t),_Rt.subVectors(n,t),yRt.crossVectors(gRt,_Rt);let o,a=this.direction.dot(yRt);if(a>0){if(i)return null;o=1}else{if(!(a<0))return null;o=-1,a=-a}mRt.subVectors(this.origin,t);const s=o*this.direction.dot(_Rt.crossVectors(mRt,_Rt));if(s<0)return null;const l=o*this.direction.dot(gRt.cross(mRt));if(l<0)return null;if(s+l>a)return null;const c=-o*mRt.dot(yRt);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}}class bRt{constructor(){Object.defineProperty(this,"isMatrix4",{value:!0}),this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,o,a,s,l,c,u,h,d,p,f,m){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=o,g[9]=a,g[13]=s,g[2]=l,g[6]=c,g[10]=u,g[14]=h,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new bRt).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/xRt.setFromMatrixColumn(t,0).length(),r=1/xRt.setFromMatrixColumn(t,1).length(),o=1/xRt.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const e=this.elements,n=t.x,i=t.y,r=t.z,o=Math.cos(n),a=Math.sin(n),s=Math.cos(i),l=Math.sin(i),c=Math.cos(r),u=Math.sin(r);if("XYZ"===t.order){const t=o*c,n=o*u,i=a*c,r=a*u;e[0]=s*c,e[4]=-s*u,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*s,e[2]=r-t*l,e[6]=i+n*l,e[10]=o*s}else if("YXZ"===t.order){const t=s*c,n=s*u,i=l*c,r=l*u;e[0]=t+r*a,e[4]=i*a-n,e[8]=o*l,e[1]=o*u,e[5]=o*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=o*s}else if("ZXY"===t.order){const t=s*c,n=s*u,i=l*c,r=l*u;e[0]=t-r*a,e[4]=-o*u,e[8]=i+n*a,e[1]=n+i*a,e[5]=o*c,e[9]=r-t*a,e[2]=-o*l,e[6]=a,e[10]=o*s}else if("ZYX"===t.order){const t=o*c,n=o*u,i=a*c,r=a*u;e[0]=s*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=s*u,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*s,e[10]=o*s}else if("YZX"===t.order){const t=o*s,n=o*l,i=a*s,r=a*l;e[0]=s*c,e[4]=r-t*u,e[8]=i*u+n,e[1]=u,e[5]=o*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*u+i,e[10]=t-r*u}else if("XZY"===t.order){const t=o*s,n=o*l,i=a*s,r=a*l;e[0]=s*c,e[4]=-u,e[8]=l*c,e[1]=t*u+r,e[5]=o*c,e[9]=n*u-i,e[2]=i*u-n,e[6]=a*c,e[10]=r*u+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(SRt,t,MRt)}lookAt(t,e,n){const i=this.elements;return CRt.subVectors(t,e),0===CRt.lengthSq()&&(CRt.z=1),CRt.normalize(),ERt.crossVectors(n,CRt),0===ERt.lengthSq()&&(1===Math.abs(n.z)?CRt.x+=1e-4:CRt.z+=1e-4,CRt.normalize(),ERt.crossVectors(n,CRt)),ERt.normalize(),TRt.crossVectors(CRt,ERt),i[0]=ERt.x,i[4]=TRt.x,i[8]=CRt.x,i[1]=ERt.y,i[5]=TRt.y,i[9]=CRt.y,i[2]=ERt.z,i[6]=TRt.z,i[10]=CRt.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,o=n[0],a=n[4],s=n[8],l=n[12],c=n[1],u=n[5],h=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],_=n[3],y=n[7],v=n[11],b=n[15],x=i[0],w=i[4],S=i[8],M=i[12],E=i[1],T=i[5],C=i[9],A=i[13],k=i[2],L=i[6],P=i[10],N=i[14],I=i[3],O=i[7],R=i[11],z=i[15];return r[0]=o*x+a*E+s*k+l*I,r[4]=o*w+a*T+s*L+l*O,r[8]=o*S+a*C+s*P+l*R,r[12]=o*M+a*A+s*N+l*z,r[1]=c*x+u*E+h*k+d*I,r[5]=c*w+u*T+h*L+d*O,r[9]=c*S+u*C+h*P+d*R,r[13]=c*M+u*A+h*N+d*z,r[2]=p*x+f*E+m*k+g*I,r[6]=p*w+f*T+m*L+g*O,r[10]=p*S+f*C+m*P+g*R,r[14]=p*M+f*A+m*N+g*z,r[3]=_*x+y*E+v*k+b*I,r[7]=_*w+y*T+v*L+b*O,r[11]=_*S+y*C+v*P+b*R,r[15]=_*M+y*A+v*N+b*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],o=t[1],a=t[5],s=t[9],l=t[13],c=t[2],u=t[6],h=t[10],d=t[14];return t[3]*(+r*s*u-i*l*u-r*a*h+n*l*h+i*a*d-n*s*d)+t[7]*(+e*s*d-e*l*h+r*o*h-i*o*d+i*l*c-r*s*c)+t[11]*(+e*l*u-e*a*d-r*o*u+n*o*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*s*u+e*a*h+i*o*u-n*o*h+n*s*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],o=t[4],a=t[5],s=t[6],l=t[7],c=t[8],u=t[9],h=t[10],d=t[11],p=t[12],f=t[13],m=t[14],g=t[15],_=u*m*l-f*h*l+f*s*d-a*m*d-u*s*g+a*h*g,y=p*h*l-c*m*l-p*s*d+o*m*d+c*s*g-o*h*g,v=c*f*l-p*u*l+p*a*d-o*f*d-c*a*g+o*u*g,b=p*u*s-c*f*s-p*a*h+o*f*h+c*a*m-o*u*m,x=e*_+n*y+i*v+r*b;if(0===x)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const w=1/x;return t[0]=_*w,t[1]=(f*h*r-u*m*r-f*i*d+n*m*d+u*i*g-n*h*g)*w,t[2]=(a*m*r-f*s*r+f*i*l-n*m*l-a*i*g+n*s*g)*w,t[3]=(u*s*r-a*h*r-u*i*l+n*h*l+a*i*d-n*s*d)*w,t[4]=y*w,t[5]=(c*m*r-p*h*r+p*i*d-e*m*d-c*i*g+e*h*g)*w,t[6]=(p*s*r-o*m*r-p*i*l+e*m*l+o*i*g-e*s*g)*w,t[7]=(o*h*r-c*s*r+c*i*l-e*h*l-o*i*d+e*s*d)*w,t[8]=v*w,t[9]=(p*u*r-c*f*r-p*n*d+e*f*d+c*n*g-e*u*g)*w,t[10]=(o*f*r-p*a*r+p*n*l-e*f*l-o*n*g+e*a*g)*w,t[11]=(c*a*r-o*u*r-c*n*l+e*u*l+o*n*d-e*a*d)*w,t[12]=b*w,t[13]=(c*f*i-p*u*i+p*n*h-e*f*h-c*n*m+e*u*m)*w,t[14]=(p*a*i-o*f*i-p*n*s+e*f*s+o*n*m-e*a*m)*w,t[15]=(o*u*i-c*a*i+c*n*s-e*u*s-o*n*h+e*a*h)*w,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements;return Math.sqrt(Math.max(t[0]*t[0]+t[1]*t[1]+t[2]*t[2],t[4]*t[4]+t[5]*t[5]+t[6]*t[6],t[8]*t[8]+t[9]*t[9]+t[10]*t[10]))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,o=t.x,a=t.y,s=t.z,l=r*o,c=r*a;return this.set(l*o+n,l*a-i*s,l*s+i*a,0,l*a+i*s,c*a+n,c*s-i*o,0,l*s-i*a,c*s+i*o,r*s*s+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n){return this.set(1,e,n,0,t,1,n,0,t,e,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,o=e._y,a=e._z,s=e._w,l=r+r,c=o+o,u=a+a,h=r*l,d=r*c,p=r*u,f=o*c,m=o*u,g=a*u,_=s*l,y=s*c,v=s*u,b=n.x,x=n.y,w=n.z;return i[0]=(1-(f+g))*b,i[1]=(d+v)*b,i[2]=(p-y)*b,i[3]=0,i[4]=(d-v)*x,i[5]=(1-(h+g))*x,i[6]=(m+_)*x,i[7]=0,i[8]=(p+y)*w,i[9]=(m-_)*w,i[10]=(1-(h+f))*w,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=xRt.set(i[0],i[1],i[2]).length();const o=xRt.set(i[4],i[5],i[6]).length(),a=xRt.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],wRt.copy(this);const s=1/r,l=1/o,c=1/a;return wRt.elements[0]*=s,wRt.elements[1]*=s,wRt.elements[2]*=s,wRt.elements[4]*=l,wRt.elements[5]*=l,wRt.elements[6]*=l,wRt.elements[8]*=c,wRt.elements[9]*=c,wRt.elements[10]*=c,e.setFromRotationMatrix(wRt),n.x=r,n.y=o,n.z=a,this}makePerspective(t,e,n,i,r,o){void 0===o&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const a=this.elements,s=2*r/(n-i),l=(e+t)/(e-t),c=(n+i)/(n-i),u=-(o+r)/(o-r),h=-2*o*r/(o-r);return a[0]=2*r/(e-t),a[4]=0,a[8]=l,a[12]=0,a[1]=0,a[5]=s,a[9]=c,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=h,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,o){const a=this.elements,s=1/(e-t),l=1/(n-i),c=1/(o-r),u=(e+t)*s,h=(n+i)*l,d=(o+r)*c;return a[0]=2*s,a[4]=0,a[8]=0,a[12]=-u,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-h,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const xRt=new qOt,wRt=new bRt,SRt=new qOt(0,0,0),MRt=new qOt(1,1,1),ERt=new qOt,TRt=new qOt,CRt=new qOt;class ARt{constructor(t=0,e=0,n=0,i=ARt.DefaultOrder){Object.defineProperty(this,"isEuler",{value:!0}),this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._order=i||this._order,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e,n){const i=ROt.clamp,r=t.elements,o=r[0],a=r[4],s=r[8],l=r[1],c=r[5],u=r[9],h=r[2],d=r[6],p=r[10];switch(e=e||this._order){case"XYZ":this._y=Math.asin(i(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-u,p),this._z=Math.atan2(-a,o)):(this._x=Math.atan2(d,c),this._z=0);break;case"YXZ":this._x=Math.asin(-i(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(s,p),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-h,o),this._z=0);break;case"ZXY":this._x=Math.asin(i(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-h,p),this._z=Math.atan2(-a,c)):(this._y=0,this._z=Math.atan2(l,o));break;case"ZYX":this._y=Math.asin(-i(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(d,p),this._z=Math.atan2(l,o)):(this._x=0,this._z=Math.atan2(-a,c));break;case"YZX":this._z=Math.asin(i(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,c),this._y=Math.atan2(-h,o)):(this._x=0,this._y=Math.atan2(s,p));break;case"XZY":this._z=Math.asin(-i(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(d,c),this._y=Math.atan2(s,o)):(this._x=Math.atan2(-u,p),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!1!==n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return kRt.makeRotationFromQuaternion(t),this.setFromRotationMatrix(kRt,e,n)}setFromVector3(t,e){return this.set(t.x,t.y,t.z,e||this._order)}reorder(t){return LRt.setFromEuler(this),this.setFromQuaternion(LRt,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new qOt(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}ARt.DefaultOrder="XYZ",ARt.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];const kRt=new bRt,LRt=new WOt;class PRt{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}let NRt=0;const IRt=new qOt,ORt=new WOt,RRt=new bRt,zRt=new qOt,DRt=new qOt,BRt=new qOt,HRt=new WOt,FRt=new qOt(1,0,0),VRt=new qOt(0,1,0),URt=new qOt(0,0,1),jRt={type:"added"},GRt={type:"removed"};function WRt(){Object.defineProperty(this,"id",{value:NRt++}),this.uuid=ROt.generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=WRt.DefaultUp.clone();const t=new qOt,e=new ARt,n=new WOt,i=new qOt(1,1,1);e._onChange((function r(){n.setFromEuler(e,!1)})),n._onChange((function o(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new bRt},normalMatrix:{value:new DOt}}),this.matrix=new bRt,this.matrixWorld=new bRt,this.matrixAutoUpdate=WRt.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new PRt,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}WRt.DefaultUp=new qOt(0,1,0),WRt.DefaultMatrixAutoUpdate=!0,WRt.prototype=Object.assign(Object.create(NOt.prototype),{constructor:WRt,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix4:function(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(t){return this.quaternion.premultiply(t),this},setRotationFromAxisAngle:function(t,e){this.quaternion.setFromAxisAngle(t,e)},setRotationFromEuler:function(t){this.quaternion.setFromEuler(t,!0)},setRotationFromMatrix:function(t){this.quaternion.setFromRotationMatrix(t)},setRotationFromQuaternion:function(t){this.quaternion.copy(t)},rotateOnAxis:function(t,e){return ORt.setFromAxisAngle(t,e),this.quaternion.multiply(ORt),this},rotateOnWorldAxis:function(t,e){return ORt.setFromAxisAngle(t,e),this.quaternion.premultiply(ORt),this},rotateX:function(t){return this.rotateOnAxis(FRt,t)},rotateY:function(t){return this.rotateOnAxis(VRt,t)},rotateZ:function(t){return this.rotateOnAxis(URt,t)},translateOnAxis:function(t,e){return IRt.copy(t).applyQuaternion(this.quaternion),this.position.add(IRt.multiplyScalar(e)),this},translateX:function(t){return this.translateOnAxis(FRt,t)},translateY:function(t){return this.translateOnAxis(VRt,t)},translateZ:function(t){return this.translateOnAxis(URt,t)},localToWorld:function(t){return t.applyMatrix4(this.matrixWorld)},worldToLocal:function(t){return t.applyMatrix4(RRt.copy(this.matrixWorld).invert())},lookAt:function(t,e,n){t.isVector3?zRt.copy(t):zRt.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),DRt.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?RRt.lookAt(DRt,zRt,this.up):RRt.lookAt(zRt,DRt,this.up),this.quaternion.setFromRotationMatrix(RRt),i&&(RRt.extractRotation(i.matrixWorld),ORt.setFromRotationMatrix(RRt),this.quaternion.premultiply(ORt.invert()))},add:function(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(jRt)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)},remove:function(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(GRt)),this},clear:function(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(GRt)}return this.children.length=0,this},attach:function(t){return this.updateWorldMatrix(!0,!1),RRt.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),RRt.multiply(t.parent.matrixWorld)),t.applyMatrix4(RRt),t.updateWorldMatrix(!1,!1),this.add(t),this},getObjectById:function(t){return this.getObjectByProperty("id",t)},getObjectByName:function(t){return this.getObjectByProperty("name",t)},getObjectByProperty:function(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}},getWorldPosition:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),t=new qOt),this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),t=new WOt),this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(DRt,t,BRt),t},getWorldScale:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),t=new qOt),this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(DRt,HRt,t),t},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),t=new qOt),this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()},raycast:function(){},traverse:function(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)},traverseVisible:function(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)},traverseAncestors:function(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].updateMatrixWorld(t)},updateWorldMatrix:function(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}},toJSON:function(t){const e=void 0===t||"string"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});const i={};function r(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),"{}"!==JSON.stringify(this.userData)&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON()),this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++)r(t.shapes,n[e]);else r(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(r(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(r(t.materials,this.material[n]));i.material=e}else i.material=r(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++)i.animations.push(r(t.animations,this.animations[e]))}if(e){const e=o(t.geometries),i=o(t.materials),r=o(t.textures),a=o(t.images),s=o(t.shapes),l=o(t.skeletons),c=o(t.animations);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),s.length>0&&(n.shapes=s),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=i,n;function o(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++)this.add(t.children[e].clone());return this}});const qRt=new qOt,YRt=new qOt,XRt=new DOt;class $Rt{constructor(t,e){Object.defineProperty(this,"isPlane",{value:!0}),this.normal=void 0!==t?t:new qOt(1,0,0),this.constant=void 0!==e?e:0}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=qRt.subVectors(n,e).cross(YRt.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return void 0===e&&(console.warn("THREE.Plane: .projectPoint() target is now required"),e=new qOt),e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){void 0===e&&(console.warn("THREE.Plane: .intersectLine() target is now required"),e=new qOt);const n=t.delta(qRt),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):void 0;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?void 0:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return void 0===t&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new qOt),t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||XRt.getNormalMatrix(t),i=this.coplanarPoint(qRt).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}}const KRt=new qOt,ZRt=new qOt,JRt=new qOt,QRt=new qOt,tzt=new qOt,ezt=new qOt,nzt=new qOt,izt=new qOt,rzt=new qOt,ozt=new qOt;class azt{constructor(t,e,n){this.a=void 0!==t?t:new qOt,this.b=void 0!==e?e:new qOt,this.c=void 0!==n?n:new qOt}static getNormal(t,e,n,i){void 0===i&&(console.warn("THREE.Triangle: .getNormal() target is now required"),i=new qOt),i.subVectors(n,e),KRt.subVectors(t,e),i.cross(KRt);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){KRt.subVectors(i,e),ZRt.subVectors(n,e),JRt.subVectors(t,e);const o=KRt.dot(KRt),a=KRt.dot(ZRt),s=KRt.dot(JRt),l=ZRt.dot(ZRt),c=ZRt.dot(JRt),u=o*l-a*a;if(void 0===r&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),r=new qOt),0===u)return r.set(-2,-1,-1);const h=1/u,d=(l*s-a*c)*h,p=(o*c-a*s)*h;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,QRt),QRt.x>=0&&QRt.y>=0&&QRt.x+QRt.y<=1}static getUV(t,e,n,i,r,o,a,s){return this.getBarycoord(t,e,n,i,QRt),s.set(0,0),s.addScaledVector(r,QRt.x),s.addScaledVector(o,QRt.y),s.addScaledVector(a,QRt.z),s}static isFrontFacing(t,e,n,i){return KRt.subVectors(n,e),ZRt.subVectors(t,e),KRt.cross(ZRt).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return KRt.subVectors(this.c,this.b),ZRt.subVectors(this.a,this.b),.5*KRt.cross(ZRt).length()}getMidpoint(t){return void 0===t&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),t=new qOt),t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return azt.getNormal(this.a,this.b,this.c,t)}getPlane(t){return void 0===t&&(console.warn("THREE.Triangle: .getPlane() target is now required"),t=new $Rt),t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return azt.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return azt.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return azt.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return azt.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){void 0===e&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),e=new qOt);const n=this.a,i=this.b,r=this.c;let o,a;tzt.subVectors(i,n),ezt.subVectors(r,n),izt.subVectors(t,n);const s=tzt.dot(izt),l=ezt.dot(izt);if(s<=0&&l<=0)return e.copy(n);rzt.subVectors(t,i);const c=tzt.dot(rzt),u=ezt.dot(rzt);if(c>=0&&u<=c)return e.copy(i);const h=s*u-c*l;if(h<=0&&s>=0&&c<=0)return o=s/(s-c),e.copy(n).addScaledVector(tzt,o);ozt.subVectors(t,r);const d=tzt.dot(ozt),p=ezt.dot(ozt);if(p>=0&&d<=p)return e.copy(r);const f=d*l-s*p;if(f<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(ezt,a);const m=c*p-d*u;if(m<=0&&u-c>=0&&d-p>=0)return nzt.subVectors(r,i),a=(u-c)/(u-c+(d-p)),e.copy(i).addScaledVector(nzt,a);const g=1/(m+f+h);return o=f*g,a=h*g,e.copy(n).addScaledVector(tzt,o).addScaledVector(ezt,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const szt={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},lzt={h:0,s:0,l:0},czt={h:0,s:0,l:0};function uzt(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function hzt(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function dzt(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class pzt{constructor(t,e,n){return Object.defineProperty(this,"isColor",{value:!0}),void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=ROt.euclideanModulo(t,1),e=ROt.clamp(e,0,1),n=ROt.clamp(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=uzt(r,i,t+1/3),this.g=uzt(r,i,t),this.b=uzt(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let t;const i=n[2];switch(n[1]){case"rgb":case"rgba":if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(i))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(i))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case"hsl":case"hsla":if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(i)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,r)}}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=szt[t];return void 0!==e?this.setHex(e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=hzt(t.r),this.g=hzt(t.g),this.b=hzt(t.b),this}copyLinearToSRGB(t){return this.r=dzt(t.r),this.g=dzt(t.g),this.b=dzt(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(t){void 0===t&&(console.warn("THREE.Color: .getHSL() target is now required"),t={h:0,s:0,l:0});const e=this.r,n=this.g,i=this.b,r=Math.max(e,n,i),o=Math.min(e,n,i);let a,s;const l=(o+r)/2;if(o===r)a=0,s=0;else{const t=r-o;switch(s=l<=.5?t/(r+o):t/(2-r-o),r){case e:a=(n-i)/t+(n<i?6:0);break;case n:a=(i-e)/t+2;break;case i:a=(e-n)/t+4}a/=6}return t.h=a,t.s=s,t.l=l,t}getStyle(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"}offsetHSL(t,e,n){return this.getHSL(lzt),lzt.h+=t,lzt.s+=e,lzt.l+=n,this.setHSL(lzt.h,lzt.s,lzt.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(lzt),t.getHSL(czt);const n=ROt.lerp(lzt.h,czt.h,e),i=ROt.lerp(lzt.s,czt.s,e),r=ROt.lerp(lzt.l,czt.l,e);return this.setHSL(n,i,r),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}pzt.NAMES=szt,pzt.prototype.r=1,pzt.prototype.g=1,pzt.prototype.b=1;class fzt{constructor(t,e,n,i,r,o=0){this.a=t,this.b=e,this.c=n,this.normal=i&&i.isVector3?i:new qOt,this.vertexNormals=Array.isArray(i)?i:[],this.color=r&&r.isColor?r:new pzt,this.vertexColors=Array.isArray(r)?r:[],this.materialIndex=o}clone(){return(new this.constructor).copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,n=t.vertexNormals.length;e<n;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,n=t.vertexColors.length;e<n;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}}let mzt=0;function gzt(){Object.defineProperty(this,"id",{value:mzt++}),this.uuid=ROt.generateUUID(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.flatShading=!1,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=LIt,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=AOt,this.stencilZFail=AOt,this.stencilZPass=AOt,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}function _zt(t){gzt.call(this),this.type="MeshBasicMaterial",this.color=new pzt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.setValues(t)}gzt.prototype=Object.assign(Object.create(NOt.prototype),{constructor:gzt,isMaterial:!0,onBeforeCompile:function(){},customProgramCacheKey:function(){return this.onBeforeCompile.toString()},setValues:function(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}if("shading"===e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}},toJSON:function(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,n.reflectivity=this.reflectivity,n.refractionRatio=this.refractionRatio,void 0!==this.combine&&(n.combine=this.combine),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity)),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(n.size=this.size),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),!0===this.flatShading&&(n.flatShading=this.flatShading),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.skinning&&(n.skinning=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.flatShading=t.flatShading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(gzt.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),(_zt.prototype=Object.create(gzt.prototype)).constructor=_zt,_zt.prototype.isMeshBasicMaterial=!0,_zt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this};const yzt=new qOt,vzt=new zOt;function bzt(t,e,n){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=kOt,this.updateRange={offset:0,count:-1},this.version=0}function xzt(t,e,n){bzt.call(this,new Int8Array(t),e,n)}function wzt(t,e,n){bzt.call(this,new Uint8Array(t),e,n)}function Szt(t,e,n){bzt.call(this,new Uint8ClampedArray(t),e,n)}function Mzt(t,e,n){bzt.call(this,new Int16Array(t),e,n)}function Ezt(t,e,n){bzt.call(this,new Uint16Array(t),e,n)}function Tzt(t,e,n){bzt.call(this,new Int32Array(t),e,n)}function Czt(t,e,n){bzt.call(this,new Uint32Array(t),e,n)}function Azt(t,e,n){bzt.call(this,new Uint16Array(t),e,n)}function kzt(t,e,n){bzt.call(this,new Float32Array(t),e,n)}function Lzt(t,e,n){bzt.call(this,new Float64Array(t),e,n)}function Pzt(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,i=t.length;n<i;++n)t[n]>e&&(e=t[n]);return e}Object.defineProperty(bzt.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(bzt.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this},copyAt:function(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this},copyArray:function(t){return this.array.set(t),this},copyColorsArray:function(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",i),r=new pzt),e[n++]=r.r,e[n++]=r.g,e[n++]=r.b}return this},copyVector2sArray:function(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",i),r=new zOt),e[n++]=r.x,e[n++]=r.y}return this},copyVector3sArray:function(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",i),r=new qOt),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z}return this},copyVector4sArray:function(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",i),r=new jOt),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z,e[n++]=r.w}return this},applyMatrix3:function(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)vzt.fromBufferAttribute(this,e),vzt.applyMatrix3(t),this.setXY(e,vzt.x,vzt.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)yzt.fromBufferAttribute(this,e),yzt.applyMatrix3(t),this.setXYZ(e,yzt.x,yzt.y,yzt.z);return this},applyMatrix4:function(t){for(let e=0,n=this.count;e<n;e++)yzt.x=this.getX(e),yzt.y=this.getY(e),yzt.z=this.getZ(e),yzt.applyMatrix4(t),this.setXYZ(e,yzt.x,yzt.y,yzt.z);return this},applyNormalMatrix:function(t){for(let e=0,n=this.count;e<n;e++)yzt.x=this.getX(e),yzt.y=this.getY(e),yzt.z=this.getZ(e),yzt.applyNormalMatrix(t),this.setXYZ(e,yzt.x,yzt.y,yzt.z);return this},transformDirection:function(t){for(let e=0,n=this.count;e<n;e++)yzt.x=this.getX(e),yzt.y=this.getY(e),yzt.z=this.getZ(e),yzt.transformDirection(t),this.setXYZ(e,yzt.x,yzt.y,yzt.z);return this},set:function(t,e=0){return this.array.set(t,e),this},getX:function(t){return this.array[t*this.itemSize]},setX:function(t,e){return this.array[t*this.itemSize]=e,this},getY:function(t){return this.array[t*this.itemSize+1]},setY:function(t,e){return this.array[t*this.itemSize+1]=e,this},getZ:function(t){return this.array[t*this.itemSize+2]},setZ:function(t,e){return this.array[t*this.itemSize+2]=e,this},getW:function(t){return this.array[t*this.itemSize+3]},setW:function(t,e){return this.array[t*this.itemSize+3]=e,this},setXY:function(t,e,n){return this.array[0+(t*=this.itemSize)]=e,this.array[t+1]=n,this},setXYZ:function(t,e,n,i){return this.array[0+(t*=this.itemSize)]=e,this.array[t+1]=n,this.array[t+2]=i,this},setXYZW:function(t,e,n,i,r){return this.array[0+(t*=this.itemSize)]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=r,this},onUpload:function(t){return this.onUploadCallback=t,this},clone:function(){return new this.constructor(this.array,this.itemSize).copy(this)},toJSON:function(){return{itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized}}}),(xzt.prototype=Object.create(bzt.prototype)).constructor=xzt,(wzt.prototype=Object.create(bzt.prototype)).constructor=wzt,(Szt.prototype=Object.create(bzt.prototype)).constructor=Szt,(Mzt.prototype=Object.create(bzt.prototype)).constructor=Mzt,(Ezt.prototype=Object.create(bzt.prototype)).constructor=Ezt,(Tzt.prototype=Object.create(bzt.prototype)).constructor=Tzt,(Czt.prototype=Object.create(bzt.prototype)).constructor=Czt,(Azt.prototype=Object.create(bzt.prototype)).constructor=Azt,Azt.prototype.isFloat16BufferAttribute=!0,(kzt.prototype=Object.create(bzt.prototype)).constructor=kzt,(Lzt.prototype=Object.create(bzt.prototype)).constructor=Lzt;const Nzt={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!=typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Izt(t,e){return new Nzt[t](e)}let Ozt=0;const Rzt=new bRt,zzt=new WRt,Dzt=new qOt,Bzt=new $Ot,Hzt=new $Ot,Fzt=new qOt;function Vzt(){Object.defineProperty(this,"id",{value:Ozt++}),this.uuid=ROt.generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}Vzt.prototype=Object.assign(Object.create(NOt.prototype),{constructor:Vzt,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(t){return this.index=Array.isArray(t)?new(Pzt(t)>65535?Czt:Ezt)(t,1):t,this},getAttribute:function(t){return this.attributes[t]},setAttribute:function(t,e){return this.attributes[t]=e,this},deleteAttribute:function(t){return delete this.attributes[t],this},hasAttribute:function(t){return void 0!==this.attributes[t]},addGroup:function(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,e){this.drawRange.start=t,this.drawRange.count=e},applyMatrix4:function(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new DOt).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(t){return Rzt.makeRotationX(t),this.applyMatrix4(Rzt),this},rotateY:function(t){return Rzt.makeRotationY(t),this.applyMatrix4(Rzt),this},rotateZ:function(t){return Rzt.makeRotationZ(t),this.applyMatrix4(Rzt),this},translate:function(t,e,n){return Rzt.makeTranslation(t,e,n),this.applyMatrix4(Rzt),this},scale:function(t,e,n){return Rzt.makeScale(t,e,n),this.applyMatrix4(Rzt),this},lookAt:function(t){return zzt.lookAt(t),zzt.updateMatrix(),this.applyMatrix4(zzt.matrix),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter(Dzt).negate(),this.translate(Dzt.x,Dzt.y,Dzt.z),this},setFromPoints:function(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}return this.setAttribute("position",new kzt(e,3)),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new $Ot);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingBox.set(new qOt(-1/0,-1/0,-1/0),new qOt(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++)Bzt.setFromBufferAttribute(e[t]),this.morphTargetsRelative?(Fzt.addVectors(this.boundingBox.min,Bzt.min),this.boundingBox.expandByPoint(Fzt),Fzt.addVectors(this.boundingBox.max,Bzt.max),this.boundingBox.expandByPoint(Fzt)):(this.boundingBox.expandByPoint(Bzt.min),this.boundingBox.expandByPoint(Bzt.max))}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new hRt);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingSphere.set(new qOt,1/0);if(t){const n=this.boundingSphere.center;if(Bzt.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++)Hzt.setFromBufferAttribute(e[t]),this.morphTargetsRelative?(Fzt.addVectors(Bzt.min,Hzt.min),Bzt.expandByPoint(Fzt),Fzt.addVectors(Bzt.max,Hzt.max),Bzt.expandByPoint(Fzt)):(Bzt.expandByPoint(Hzt.min),Bzt.expandByPoint(Hzt.max));Bzt.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++)Fzt.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(Fzt));if(e)for(let r=0,o=e.length;r<o;r++){const o=e[r],a=this.morphTargetsRelative;for(let e=0,r=o.count;e<r;e++)Fzt.fromBufferAttribute(o,e),a&&(Dzt.fromBufferAttribute(t,e),Fzt.add(Dzt)),i=Math.max(i,n.distanceToSquared(Fzt))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}},computeFaceNormals:function(){},computeTangents:function(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");const n=t.array,i=e.position.array,r=e.normal.array,o=e.uv.array,a=i.length/3;void 0===e.tangent&&this.setAttribute("tangent",new bzt(new Float32Array(4*a),4));const s=e.tangent.array,l=[],c=[];for(let t=0;t<a;t++)l[t]=new qOt,c[t]=new qOt;const u=new qOt,h=new qOt,d=new qOt,p=new zOt,f=new zOt,m=new zOt,g=new qOt,_=new qOt;function y(t,e,n){u.fromArray(i,3*t),h.fromArray(i,3*e),d.fromArray(i,3*n),p.fromArray(o,2*t),f.fromArray(o,2*e),m.fromArray(o,2*n),h.sub(u),d.sub(u),f.sub(p),m.sub(p);const r=1/(f.x*m.y-m.x*f.y);isFinite(r)&&(g.copy(h).multiplyScalar(m.y).addScaledVector(d,-f.y).multiplyScalar(r),_.copy(d).multiplyScalar(f.x).addScaledVector(h,-m.x).multiplyScalar(r),l[t].add(g),l[e].add(g),l[n].add(g),c[t].add(_),c[e].add(_),c[n].add(_))}let v=this.groups;0===v.length&&(v=[{start:0,count:n.length}]);for(let t=0,e=v.length;t<e;++t){const e=v[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)y(n[t+0],n[t+1],n[t+2])}const b=new qOt,x=new qOt,w=new qOt,S=new qOt;function M(t){w.fromArray(r,3*t),S.copy(w);const e=l[t];b.copy(e),b.sub(w.multiplyScalar(w.dot(e))).normalize(),x.crossVectors(S,e);const n=x.dot(c[t])<0?-1:1;s[4*t]=b.x,s[4*t+1]=b.y,s[4*t+2]=b.z,s[4*t+3]=n}for(let t=0,e=v.length;t<e;++t){const e=v[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)M(n[t+0]),M(n[t+1]),M(n[t+2])}},computeVertexNormals:function(){const t=this.index,e=this.getAttribute("position");if(void 0!==e){let n=this.getAttribute("normal");if(void 0===n)n=new bzt(new Float32Array(3*e.count),3),this.setAttribute("normal",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new qOt,r=new qOt,o=new qOt,a=new qOt,s=new qOt,l=new qOt,c=new qOt,u=new qOt;if(t)for(let h=0,d=t.count;h<d;h+=3){const d=t.getX(h+0),p=t.getX(h+1),f=t.getX(h+2);i.fromBufferAttribute(e,d),r.fromBufferAttribute(e,p),o.fromBufferAttribute(e,f),c.subVectors(o,r),u.subVectors(i,r),c.cross(u),a.fromBufferAttribute(n,d),s.fromBufferAttribute(n,p),l.fromBufferAttribute(n,f),a.add(c),s.add(c),l.add(c),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(p,s.x,s.y,s.z),n.setXYZ(f,l.x,l.y,l.z)}else for(let t=0,a=e.count;t<a;t+=3)i.fromBufferAttribute(e,t+0),r.fromBufferAttribute(e,t+1),o.fromBufferAttribute(e,t+2),c.subVectors(o,r),u.subVectors(i,r),c.cross(u),n.setXYZ(t+0,c.x,c.y,c.z),n.setXYZ(t+1,c.x,c.y,c.z),n.setXYZ(t+2,c.x,c.y,c.z);this.normalizeNormals(),n.needsUpdate=!0}},merge:function(t,e){if(!t||!t.isBufferGeometry)return void console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",t);void 0===e&&(e=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));const n=this.attributes;for(const i in n){if(void 0===t.attributes[i])continue;const r=n[i].array,o=t.attributes[i],a=o.array,s=o.itemSize*e,l=Math.min(a.length,r.length-s);for(let t=0,e=s;t<l;t++,e++)r[e]=a[t]}return this},normalizeNormals:function(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)Fzt.fromBufferAttribute(t,e),Fzt.normalize(),t.setXYZ(e,Fzt.x,Fzt.y,Fzt.z)},toNonIndexed:function(){function t(t,e){const n=t.array,i=t.itemSize,r=t.normalized,o=new n.constructor(e.length*i);let a=0,s=0;for(let t=0,r=e.length;t<r;t++){a=e[t]*i;for(let t=0;t<i;t++)o[s++]=n[a++]}return new bzt(o,i,r)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const e=new Vzt,n=this.index.array,i=this.attributes;for(const r in i){const o=t(i[r],n);e.setAttribute(r,o)}const r=this.morphAttributes;for(const i in r){const o=[],a=r[i];for(let e=0,i=a.length;e<i;e++){const i=t(a[e],n);o.push(i)}e.morphAttributes[i]=o}e.morphTargetsRelative=this.morphTargetsRelative;const o=this.groups;for(let t=0,n=o.length;t<n;t++){const n=o[t];e.addGroup(n.start,n.count,n.materialIndex)}return e},toJSON:function(){const t={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e],r=i.toJSON(t.data);""!==i.name&&(r.name=i.name),t.data.attributes[e]=r}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],o=[];for(let e=0,i=n.length;e<i;e++){const i=n[e],r=i.toJSON(t.data);""!==i.name&&(r.name=i.name),o.push(r)}o.length>0&&(i[e]=o,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(t.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t},clone:function(){return(new Vzt).copy(this)},copy:function(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i)this.setAttribute(t,i[t].clone(e));const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t<r;t++)n.push(i[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const o=t.groups;for(let t=0,e=o.length;t<e;t++){const e=o[t];this.addGroup(e.start,e.count,e.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const s=t.boundingSphere;return null!==s&&(this.boundingSphere=s.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this},dispose:function(){this.dispatchEvent({type:"dispose"})}});const Uzt=new bRt,jzt=new vRt,Gzt=new hRt,Wzt=new qOt,qzt=new qOt,Yzt=new qOt,Xzt=new qOt,$zt=new qOt,Kzt=new qOt,Zzt=new qOt,Jzt=new qOt,Qzt=new qOt,tDt=new zOt,eDt=new zOt,nDt=new zOt,iDt=new qOt,rDt=new qOt;function oDt(t=new Vzt,e=new _zt){WRt.call(this),this.type="Mesh",this.geometry=t,this.material=e,this.updateMorphTargets()}function aDt(t,e,n,i,r,o,a,s,l,c,u,h){Wzt.fromBufferAttribute(r,c),qzt.fromBufferAttribute(r,u),Yzt.fromBufferAttribute(r,h);const d=t.morphTargetInfluences;if(e.morphTargets&&o&&d){Zzt.set(0,0,0),Jzt.set(0,0,0),Qzt.set(0,0,0);for(let t=0,e=o.length;t<e;t++){const e=d[t],n=o[t];0!==e&&(Xzt.fromBufferAttribute(n,c),$zt.fromBufferAttribute(n,u),Kzt.fromBufferAttribute(n,h),a?(Zzt.addScaledVector(Xzt,e),Jzt.addScaledVector($zt,e),Qzt.addScaledVector(Kzt,e)):(Zzt.addScaledVector(Xzt.sub(Wzt),e),Jzt.addScaledVector($zt.sub(qzt),e),Qzt.addScaledVector(Kzt.sub(Yzt),e)))}Wzt.add(Zzt),qzt.add(Jzt),Yzt.add(Qzt)}t.isSkinnedMesh&&(t.boneTransform(c,Wzt),t.boneTransform(u,qzt),t.boneTransform(h,Yzt));const p=(function f(t,e,n,i,r,o,a,s){let l;if(l=1===e.side?i.intersectTriangle(a,o,r,!0,s):i.intersectTriangle(r,o,a,2!==e.side,s),null===l)return null;rDt.copy(s),rDt.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(rDt);return c<n.near||c>n.far?null:{distance:c,point:rDt.clone(),object:t}})(t,e,n,i,Wzt,qzt,Yzt,iDt);if(p){s&&(tDt.fromBufferAttribute(s,c),eDt.fromBufferAttribute(s,u),nDt.fromBufferAttribute(s,h),p.uv=azt.getUV(iDt,Wzt,qzt,Yzt,tDt,eDt,nDt,new zOt)),l&&(tDt.fromBufferAttribute(l,c),eDt.fromBufferAttribute(l,u),nDt.fromBufferAttribute(l,h),p.uv2=azt.getUV(iDt,Wzt,qzt,Yzt,tDt,eDt,nDt,new zOt));const t=new fzt(c,u,h);azt.getNormal(Wzt,qzt,Yzt,t.normal),p.face=t}return p}oDt.prototype=Object.assign(Object.create(WRt.prototype),{constructor:oDt,isMesh:!0,copy:function(t){return WRt.prototype.copy.call(this,t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this},updateMorphTargets:function(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}},raycast:function(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),Gzt.copy(n.boundingSphere),Gzt.applyMatrix4(r),!1===t.ray.intersectsSphere(Gzt))return;if(Uzt.copy(r).invert(),jzt.copy(t.ray).applyMatrix4(Uzt),null!==n.boundingBox&&!1===jzt.intersectsBox(n.boundingBox))return;let o;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position,s=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,u=n.attributes.uv2,h=n.groups,d=n.drawRange;if(null!==r)if(Array.isArray(i))for(let n=0,p=h.length;n<p;n++){const p=h[n],f=i[p.materialIndex];for(let n=Math.max(p.start,d.start),i=Math.min(p.start+p.count,d.start+d.count);n<i;n+=3){const i=r.getX(n),h=r.getX(n+1),d=r.getX(n+2);o=aDt(this,f,t,jzt,a,s,l,c,u,i,h,d),o&&(o.faceIndex=Math.floor(n/3),o.face.materialIndex=p.materialIndex,e.push(o))}}else for(let n=Math.max(0,d.start),h=Math.min(r.count,d.start+d.count);n<h;n+=3){const h=r.getX(n),d=r.getX(n+1),p=r.getX(n+2);o=aDt(this,i,t,jzt,a,s,l,c,u,h,d,p),o&&(o.faceIndex=Math.floor(n/3),e.push(o))}else if(void 0!==a)if(Array.isArray(i))for(let n=0,r=h.length;n<r;n++){const r=h[n],p=i[r.materialIndex];for(let n=Math.max(r.start,d.start),i=Math.min(r.start+r.count,d.start+d.count);n<i;n+=3)o=aDt(this,p,t,jzt,a,s,l,c,u,n,n+1,n+2),o&&(o.faceIndex=Math.floor(n/3),o.face.materialIndex=r.materialIndex,e.push(o))}else for(let n=Math.max(0,d.start),r=Math.min(a.count,d.start+d.count);n<r;n+=3)o=aDt(this,i,t,jzt,a,s,l,c,u,n,n+1,n+2),o&&(o.faceIndex=Math.floor(n/3),e.push(o))}else n.isGeometry&&console.error("THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}});class sDt extends Vzt{constructor(t=1,e=1,n=1,i=1,r=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:o};const a=this;i=Math.floor(i),r=Math.floor(r),o=Math.floor(o);const s=[],l=[],c=[],u=[];let h=0,d=0;function p(t,e,n,i,r,o,p,f,m,g,_){const y=o/m,v=p/g,b=o/2,x=p/2,w=f/2,S=m+1,M=g+1;let E=0,T=0;const C=new qOt;for(let o=0;o<M;o++){const a=o*v-x;for(let s=0;s<S;s++)C[t]=(s*y-b)*i,C[e]=a*r,C[n]=w,l.push(C.x,C.y,C.z),C[t]=0,C[e]=0,C[n]=f>0?1:-1,c.push(C.x,C.y,C.z),u.push(s/m),u.push(1-o/g),E+=1}for(let t=0;t<g;t++)for(let e=0;e<m;e++){const n=h+e+S*(t+1),i=h+(e+1)+S*(t+1),r=h+(e+1)+S*t;s.push(h+e+S*t,n,r),s.push(n,i,r),T+=6}a.addGroup(d,T,_),d+=T,h+=E}p("z","y","x",-1,-1,n,e,t,o,r,0),p("z","y","x",1,-1,n,e,-t,o,r,1),p("x","z","y",1,1,t,n,e,i,o,2),p("x","z","y",1,-1,t,n,-e,i,o,3),p("x","y","z",1,-1,t,e,n,i,r,4),p("x","y","z",-1,-1,t,e,-n,i,r,5),this.setIndex(s),this.setAttribute("position",new kzt(l,3)),this.setAttribute("normal",new kzt(c,3)),this.setAttribute("uv",new kzt(u,2))}}function lDt(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];e[n][i]=r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture)?r.clone():Array.isArray(r)?r.slice():r}}return e}function cDt(t){const e={};for(let n=0;n<t.length;n++){const i=lDt(t[n]);for(const t in i)e[t]=i[t]}return e}const uDt={clone:lDt,merge:cDt};function hDt(t){gzt.call(this),this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(t))}function dDt(){WRt.call(this),this.type="Camera",this.matrixWorldInverse=new bRt,this.projectionMatrix=new bRt,this.projectionMatrixInverse=new bRt}function pDt(t=50,e=1,n=.1,i=2e3){dDt.call(this),this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}(hDt.prototype=Object.create(gzt.prototype)).constructor=hDt,hDt.prototype.isShaderMaterial=!0,hDt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=lDt(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this},hDt.prototype.toJSON=function(t){const e=gzt.prototype.toJSON.call(this,t);e.glslVersion=this.glslVersion,e.uniforms={};for(const n in this.uniforms){const i=this.uniforms[n].value;e.uniforms[n]=i&&i.isTexture?{type:"t",value:i.toJSON(t).uuid}:i&&i.isColor?{type:"c",value:i.getHex()}:i&&i.isVector2?{type:"v2",value:i.toArray()}:i&&i.isVector3?{type:"v3",value:i.toArray()}:i&&i.isVector4?{type:"v4",value:i.toArray()}:i&&i.isMatrix3?{type:"m3",value:i.toArray()}:i&&i.isMatrix4?{type:"m4",value:i.toArray()}:{value:i}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e},dDt.prototype=Object.assign(Object.create(WRt.prototype),{constructor:dDt,isCamera:!0,copy:function(t,e){return WRt.prototype.copy.call(this,t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),t=new qOt),this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()},updateMatrixWorld:function(t){WRt.prototype.updateMatrixWorld.call(this,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()},updateWorldMatrix:function(t,e){WRt.prototype.updateWorldMatrix.call(this,t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()},clone:function(){return(new this.constructor).copy(this)}}),pDt.prototype=Object.assign(Object.create(dDt.prototype),{constructor:pDt,isPerspectiveCamera:!0,copy:function(t,e){return dDt.prototype.copy.call(this,t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this},setFocalLength:function(t){const e=.5*this.getFilmHeight()/t;this.fov=2*ROt.RAD2DEG*Math.atan(e),this.updateProjectionMatrix()},getFocalLength:function(){const t=Math.tan(.5*ROt.DEG2RAD*this.fov);return.5*this.getFilmHeight()/t},getEffectiveFOV:function(){return 2*ROt.RAD2DEG*Math.atan(Math.tan(.5*ROt.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(t,e,n,i,r,o){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){const t=this.near;let e=t*Math.tan(.5*ROt.DEG2RAD*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const o=this.view;if(null!==this.view&&this.view.enabled){const t=o.fullWidth,a=o.fullHeight;r+=o.offsetX*i/t,e-=o.offsetY*n/a,i*=o.width/t,n*=o.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()},toJSON:function(t){const e=WRt.prototype.toJSON.call(this,t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}});const fDt=90;function mDt(t,e,n){if(WRt.call(this),this.type="CubeCamera",!0!==n.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=n;const i=new pDt(fDt,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new qOt(1,0,0)),this.add(i);const r=new pDt(fDt,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new qOt(-1,0,0)),this.add(r);const o=new pDt(fDt,1,t,e);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(new qOt(0,1,0)),this.add(o);const a=new pDt(fDt,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new qOt(0,-1,0)),this.add(a);const s=new pDt(fDt,1,t,e);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new qOt(0,0,1)),this.add(s);const l=new pDt(fDt,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new qOt(0,0,-1)),this.add(l),this.update=function(t,e){null===this.parent&&this.updateMatrixWorld();const c=t.xr.enabled,u=t.getRenderTarget();t.xr.enabled=!1;const h=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,o),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,s),n.texture.generateMipmaps=h,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(u),t.xr.enabled=c}}function gDt(t,e,n,i,r,o,a,s,l,c){VOt.call(this,t=void 0!==t?t:[],e=void 0!==e?e:NIt,n,i,r,o,a=void 0!==a?a:QIt,s,l,c),this.flipY=!1,this._needsFlipEnvMap=!0}(mDt.prototype=Object.create(WRt.prototype)).constructor=mDt,(gDt.prototype=Object.create(VOt.prototype)).constructor=gDt,gDt.prototype.isCubeTexture=!0,Object.defineProperty(gDt.prototype,"images",{get:function(){return this.image},set:function(t){this.image=t}});class _Dt extends GOt{constructor(t,e,n){Number.isInteger(e)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),e=n),super(t,t,e),Object.defineProperty(this,"isWebGLCubeRenderTarget",{value:!0}),this.texture=new gDt(void 0,(e=e||{}).mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=tOt,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n=new sDt(5,5,5),i=new hDt({name:"CubemapFromEquirect",uniforms:lDt({tEquirect:{value:null}}),vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",side:1,blending:0});i.uniforms.tEquirect.value=e;const r=new oDt(n,i),o=e.minFilter;return e.minFilter===qIt&&(e.minFilter=GIt),new mDt(1,10,this).update(t,r),e.minFilter=o,r.geometry.dispose(),r.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}function yDt(t,e,n,i,r,o,a,s,l,c,u,h){VOt.call(this,null,o,a,s,l,c,i,r,u,h),this.image={data:t||null,width:e||1,height:n||1},this.magFilter=void 0!==l?l:VIt,this.minFilter=void 0!==c?c:VIt,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}(yDt.prototype=Object.create(VOt.prototype)).constructor=yDt,yDt.prototype.isDataTexture=!0;const vDt=new hRt,bDt=new qOt;class xDt{constructor(t,e,n,i,r,o){this.planes=[void 0!==t?t:new $Rt,void 0!==e?e:new $Rt,void 0!==n?n:new $Rt,void 0!==i?i:new $Rt,void 0!==r?r:new $Rt,void 0!==o?o:new $Rt]}set(t,e,n,i,r,o){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(o),this}clone(){return(new this.constructor).copy(this)}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],o=n[2],a=n[3],s=n[4],l=n[5],c=n[6],u=n[7],h=n[8],d=n[9],p=n[10],f=n[11],m=n[12],g=n[13],_=n[14],y=n[15];return e[0].setComponents(a-i,u-s,f-h,y-m).normalize(),e[1].setComponents(a+i,u+s,f+h,y+m).normalize(),e[2].setComponents(a+r,u+l,f+d,y+g).normalize(),e[3].setComponents(a-r,u-l,f-d,y-g).normalize(),e[4].setComponents(a-o,u-c,f-p,y-_).normalize(),e[5].setComponents(a+o,u+c,f+p,y+_).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),vDt.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(vDt)}intersectsSprite(t){return vDt.center.set(0,0,0),vDt.radius=.7071067811865476,vDt.applyMatrix4(t.matrixWorld),this.intersectsSphere(vDt)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++)if(e[t].distanceToPoint(n)<i)return!1;return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(bDt.x=i.normal.x>0?t.max.x:t.min.x,bDt.y=i.normal.y>0?t.max.y:t.min.y,bDt.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(bDt)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}}function wDt(){let t=null,e=!1,n=null,i=null;function r(e,o){n(e,o),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function SDt(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function r(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function o(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function a(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version<e.version)&&i.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const o=i.get(e);void 0===o?i.set(e,(function a(e,i){const r=e.array,o=e.usage,a=t.createBuffer();t.bindBuffer(i,a),t.bufferData(i,r,o),e.onUploadCallback();let s=5126;return r instanceof Float32Array?s=5126:r instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):r instanceof Uint16Array?e.isFloat16BufferAttribute?n?s=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):s=5123:r instanceof Int16Array?s=5122:r instanceof Uint32Array?s=5125:r instanceof Int32Array?s=5124:r instanceof Int8Array?s=5120:r instanceof Uint8Array&&(s=5121),{buffer:a,type:s,bytesPerElement:r.BYTES_PER_ELEMENT,version:e.version}})(e,r)):o.version<e.version&&((function s(e,i,r){const o=i.array,a=i.updateRange;t.bindBuffer(r,e),-1===a.count?t.bufferSubData(r,0,o):(n?t.bufferSubData(r,a.offset*o.BYTES_PER_ELEMENT,o,a.offset,a.count):t.bufferSubData(r,a.offset*o.BYTES_PER_ELEMENT,o.subarray(a.offset,a.offset+a.count)),a.count=-1)})(o.buffer,e,r),o.version=e.version)}}}class MDt extends Vzt{constructor(t=1,e=1,n=1,i=1){super(),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2,o=e/2,a=Math.floor(n),s=Math.floor(i),l=a+1,c=s+1,u=t/a,h=e/s,d=[],p=[],f=[],m=[];for(let t=0;t<c;t++){const e=t*h-o;for(let n=0;n<l;n++)p.push(n*u-r,-e,0),f.push(0,0,1),m.push(n/a),m.push(1-t/s)}for(let t=0;t<s;t++)for(let e=0;e<a;e++){const n=e+l*(t+1),i=e+1+l*(t+1),r=e+1+l*t;d.push(e+l*t,n,r),d.push(n,i,r)}this.setIndex(d),this.setAttribute("position",new kzt(p,3)),this.setAttribute("normal",new kzt(f,3)),this.setAttribute("uv",new kzt(m,2))}}const EDt={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor.xyz *= color.xyz;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_maxMipLevel 8.0\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_maxTileSize 256.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tif ( mipInt < cubeUV_maxMipLevel ) {\n\t\t\tuv.y += 2.0 * cubeUV_maxTileSize;\n\t\t}\n\t\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\n\t\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\n\t\tuv *= texelSize;\n\t\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tfogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat specularRoughness;\n\tvec3 specularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(    0, 1,    0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\t\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\t\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",normal_fragment_begin:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\tvec3 N = normalize( surf_norm );\n\t\tmat3 tsn = mat3( S, T, N );\n\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t  f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t  f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3(  1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,  1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,  1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmissionmap_fragment:"#ifdef USE_TRANSMISSIONMAP\n\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\n#endif",transmissionmap_pars_fragment:"#ifdef USE_TRANSMISSIONMAP\n\tuniform sampler2D transmissionMap;\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",cube_frag:"#include <envmap_common_pars_fragment>\nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include <envmap_fragment>\n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",cube_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <transmissionmap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <transmissionmap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",shadow_vert:"#include <common>\n#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}"},TDt={common:{diffuse:{value:new pzt(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new DOt},uv2Transform:{value:new DOt},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new zOt(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new pzt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new pzt(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new DOt}},sprite:{diffuse:{value:new pzt(15658734)},opacity:{value:1},center:{value:new zOt(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new DOt}}},CDt={basic:{uniforms:cDt([TDt.common,TDt.specularmap,TDt.envmap,TDt.aomap,TDt.lightmap,TDt.fog]),vertexShader:EDt.meshbasic_vert,fragmentShader:EDt.meshbasic_frag},lambert:{uniforms:cDt([TDt.common,TDt.specularmap,TDt.envmap,TDt.aomap,TDt.lightmap,TDt.emissivemap,TDt.fog,TDt.lights,{emissive:{value:new pzt(0)}}]),vertexShader:EDt.meshlambert_vert,fragmentShader:EDt.meshlambert_frag},phong:{uniforms:cDt([TDt.common,TDt.specularmap,TDt.envmap,TDt.aomap,TDt.lightmap,TDt.emissivemap,TDt.bumpmap,TDt.normalmap,TDt.displacementmap,TDt.fog,TDt.lights,{emissive:{value:new pzt(0)},specular:{value:new pzt(1118481)},shininess:{value:30}}]),vertexShader:EDt.meshphong_vert,fragmentShader:EDt.meshphong_frag},standard:{uniforms:cDt([TDt.common,TDt.envmap,TDt.aomap,TDt.lightmap,TDt.emissivemap,TDt.bumpmap,TDt.normalmap,TDt.displacementmap,TDt.roughnessmap,TDt.metalnessmap,TDt.fog,TDt.lights,{emissive:{value:new pzt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:EDt.meshphysical_vert,fragmentShader:EDt.meshphysical_frag},toon:{uniforms:cDt([TDt.common,TDt.aomap,TDt.lightmap,TDt.emissivemap,TDt.bumpmap,TDt.normalmap,TDt.displacementmap,TDt.gradientmap,TDt.fog,TDt.lights,{emissive:{value:new pzt(0)}}]),vertexShader:EDt.meshtoon_vert,fragmentShader:EDt.meshtoon_frag},matcap:{uniforms:cDt([TDt.common,TDt.bumpmap,TDt.normalmap,TDt.displacementmap,TDt.fog,{matcap:{value:null}}]),vertexShader:EDt.meshmatcap_vert,fragmentShader:EDt.meshmatcap_frag},points:{uniforms:cDt([TDt.points,TDt.fog]),vertexShader:EDt.points_vert,fragmentShader:EDt.points_frag},dashed:{uniforms:cDt([TDt.common,TDt.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:EDt.linedashed_vert,fragmentShader:EDt.linedashed_frag},depth:{uniforms:cDt([TDt.common,TDt.displacementmap]),vertexShader:EDt.depth_vert,fragmentShader:EDt.depth_frag},normal:{uniforms:cDt([TDt.common,TDt.bumpmap,TDt.normalmap,TDt.displacementmap,{opacity:{value:1}}]),vertexShader:EDt.normal_vert,fragmentShader:EDt.normal_frag},sprite:{uniforms:cDt([TDt.sprite,TDt.fog]),vertexShader:EDt.sprite_vert,fragmentShader:EDt.sprite_frag},background:{uniforms:{uvTransform:{value:new DOt},t2D:{value:null}},vertexShader:EDt.background_vert,fragmentShader:EDt.background_frag},cube:{uniforms:cDt([TDt.envmap,{opacity:{value:1}}]),vertexShader:EDt.cube_vert,fragmentShader:EDt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:EDt.equirect_vert,fragmentShader:EDt.equirect_frag},distanceRGBA:{uniforms:cDt([TDt.common,TDt.displacementmap,{referencePosition:{value:new qOt},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:EDt.distanceRGBA_vert,fragmentShader:EDt.distanceRGBA_frag},shadow:{uniforms:cDt([TDt.lights,TDt.fog,{color:{value:new pzt(0)},opacity:{value:1}}]),vertexShader:EDt.shadow_vert,fragmentShader:EDt.shadow_frag}};function ADt(t,e,n,i,r){const o=new pzt(0);let a,s,l=0,c=null,u=0,h=null;function d(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,r)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),l=e,d(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(t){l=t,d(o,l)},render:function p(n,r,f,m){let g=!0===r.isScene?r.background:null;g&&g.isTexture&&(g=e.get(g));const _=t.xr,y=_.getSession&&_.getSession();y&&"additive"===y.environmentBlendMode&&(g=null),null===g?d(o,l):g&&g.isColor&&(d(g,1),m=!0),(t.autoClear||m)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),g&&(g.isCubeTexture||g.isWebGLCubeRenderTarget||g.mapping===zIt)?(void 0===s&&(s=new oDt(new sDt(1,1,1),new hDt({name:"BackgroundCubeMaterial",uniforms:lDt(CDt.cube.uniforms),vertexShader:CDt.cube.vertexShader,fragmentShader:CDt.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),s.geometry.deleteAttribute("normal"),s.geometry.deleteAttribute("uv"),s.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(s.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(s)),g.isWebGLCubeRenderTarget&&(g=g.texture),s.material.uniforms.envMap.value=g,s.material.uniforms.flipEnvMap.value=g.isCubeTexture&&g._needsFlipEnvMap?-1:1,c===g&&u===g.version&&h===t.toneMapping||(s.material.needsUpdate=!0,c=g,u=g.version,h=t.toneMapping),n.unshift(s,s.geometry,s.material,0,0,null)):g&&g.isTexture&&(void 0===a&&(a=new oDt(new MDt(2,2),new hDt({name:"BackgroundMaterial",uniforms:lDt(CDt.background.uniforms),vertexShader:CDt.background.vertexShader,fragmentShader:CDt.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),Object.defineProperty(a.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(a)),a.material.uniforms.t2D.value=g,!0===g.matrixAutoUpdate&&g.updateMatrix(),a.material.uniforms.uvTransform.value.copy(g.matrix),c===g&&u===g.version&&h===t.toneMapping||(a.material.needsUpdate=!0,c=g,u=g.version,h=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null))}}}function kDt(t,e,n,i){const r=t.getParameter(34921),o=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==o,s={},l=d(null);let c=l;function u(e){return i.isWebGL2?t.bindVertexArray(e):o.bindVertexArrayOES(e)}function h(e){return i.isWebGL2?t.deleteVertexArray(e):o.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t<r;t++)e[t]=0,n[t]=0,i[t]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:i,object:t,attributes:{},index:null}}function p(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function f(t){m(t,0)}function m(n,r){const o=c.enabledAttributes,a=c.attributeDivisors;c.newAttributes[n]=1,0===o[n]&&(t.enableVertexAttribArray(n),o[n]=1),a[n]!==r&&((i.isWebGL2?t:e.get("ANGLE_instanced_arrays"))[i.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](n,r),a[n]=r)}function g(){const e=c.newAttributes,n=c.enabledAttributes;for(let i=0,r=n.length;i<r;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function _(e,n,r,o,a,s){!0!==i.isWebGL2||5124!==r&&5125!==r?t.vertexAttribPointer(e,n,r,o,a,s):t.vertexAttribIPointer(e,n,r,a,s)}function y(){v(),c!==l&&(c=l,u(c.object))}function v(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function b(r,l,h,y,v){let b=!1;if(a){const e=(function x(e,n,r){const a=!0===r.wireframe;let l=s[e.id];void 0===l&&(l={},s[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let u=c[a];return void 0===u&&(u=d((function h(){return i.isWebGL2?t.createVertexArray():o.createVertexArrayOES()})()),c[a]=u),u})(y,h,l);c!==e&&(c=e,u(c.object)),b=(function w(t,e){const n=c.attributes,i=t.attributes;let r=0;for(const t in i){const e=n[t],o=i[t];if(void 0===e)return!0;if(e.attribute!==o)return!0;if(e.data!==o.data)return!0;r++}return c.attributesNum!==r||c.index!==e})(y,v),b&&(function S(t,e){const n={},i=t.attributes;let r=0;for(const t in i){const e=i[t],o={};o.attribute=e,e.data&&(o.data=e.data),n[t]=o,r++}c.attributes=n,c.attributesNum=r,c.index=e})(y,v)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===h.id&&c.wireframe===t||(c.geometry=y.id,c.program=h.id,c.wireframe=t,b=!0)}!0===r.isInstancedMesh&&(b=!0),null!==v&&n.update(v,34963),b&&((function M(r,o,a,s){if(!1===i.isWebGL2&&(r.isInstancedMesh||s.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;p();const l=s.attributes,c=a.getAttributes(),u=o.defaultAttributeValues;for(const e in c){const i=c[e];if(i>=0){const o=l[e];if(void 0!==o){const e=o.normalized,r=o.itemSize,a=n.get(o);if(void 0===a)continue;const l=a.buffer,c=a.type,u=a.bytesPerElement;if(o.isInterleavedBufferAttribute){const n=o.data,a=n.stride,h=o.offset;n&&n.isInstancedInterleavedBuffer?(m(i,n.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=n.meshPerAttribute*n.count)):f(i),t.bindBuffer(34962,l),_(i,r,c,e,a*u,h*u)}else o.isInstancedBufferAttribute?(m(i,o.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=o.meshPerAttribute*o.count)):f(i),t.bindBuffer(34962,l),_(i,r,c,e,0,0)}else if("instanceMatrix"===e){const e=n.get(r.instanceMatrix);if(void 0===e)continue;const o=e.buffer,a=e.type;m(i+0,1),m(i+1,1),m(i+2,1),m(i+3,1),t.bindBuffer(34962,o),t.vertexAttribPointer(i+0,4,a,!1,64,0),t.vertexAttribPointer(i+1,4,a,!1,64,16),t.vertexAttribPointer(i+2,4,a,!1,64,32),t.vertexAttribPointer(i+3,4,a,!1,64,48)}else if("instanceColor"===e){const e=n.get(r.instanceColor);if(void 0===e)continue;const o=e.buffer,a=e.type;m(i,1),t.bindBuffer(34962,o),t.vertexAttribPointer(i,3,a,!1,12,0)}else if(void 0!==u){const n=u[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(i,n);break;case 3:t.vertexAttrib3fv(i,n);break;case 4:t.vertexAttrib4fv(i,n);break;default:t.vertexAttrib1fv(i,n)}}}}g()})(r,l,h,y),null!==v&&t.bindBuffer(34963,n.get(v).buffer))},reset:y,resetDefaultState:v,dispose:function x(){y();for(const t in s){const e=s[t];for(const t in e){const n=e[t];for(const t in n)h(n[t].object),delete n[t];delete e[t]}delete s[t]}},releaseStatesOfGeometry:function w(t){if(void 0===s[t.id])return;const e=s[t.id];for(const t in e){const n=e[t];for(const t in n)h(n[t].object),delete n[t];delete e[t]}delete s[t.id]},releaseStatesOfProgram:function S(t){for(const e in s){const n=s[e];if(void 0===n[t.id])continue;const i=n[t.id];for(const t in i)h(i[t].object),delete i[t];delete n[t.id]}},initAttributes:p,enableAttribute:f,disableUnusedAttributes:g}}function LDt(t,e,n,i){const r=i.isWebGL2;let o;this.setMode=function a(t){o=t},this.render=function s(e,i){t.drawArrays(o,e,i),n.update(i,o,1)},this.renderInstances=function l(i,a,s){if(0===s)return;let l,c;if(r)l=t,c="drawArraysInstanced";else if(l=e.get("ANGLE_instanced_arrays"),c="drawArraysInstancedANGLE",null===l)return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");l[c](o,i,a,s),n.update(a,o,s)}}function PDt(t,e,n){let i;function r(e){if("highp"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const o="undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:"highp";const s=r(a);s!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",s,"instead."),a=s);const l=!0===n.logarithmicDepthBuffer,c=t.getParameter(34930),u=t.getParameter(35660),h=t.getParameter(3379),d=t.getParameter(34076),p=t.getParameter(34921),f=t.getParameter(36347),m=t.getParameter(36348),g=t.getParameter(36349),_=u>0,y=o||!!e.get("OES_texture_float");return{isWebGL2:o,getMaxAnisotropy:function v(){if(void 0!==i)return i;const n=e.get("EXT_texture_filter_anisotropic");return i=null!==n?t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:l,maxTextures:c,maxVertexTextures:u,maxTextureSize:h,maxCubemapSize:d,maxAttributes:p,maxVertexUniforms:f,maxVaryings:m,maxFragmentUniforms:g,vertexTextures:_,floatFragmentTextures:y,floatVertexTextures:_&&y,maxSamples:o?t.getParameter(36183):0}}function NDt(t){const e=this;let n=null,i=0,r=!1,o=!1;const a=new $Rt,s=new DOt,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function u(t,n,i,r){const o=null!==t?t.length:0;let c=null;if(0!==o){if(c=l.value,!0!==r||null===c){const e=i+4*o,r=n.matrixWorldInverse;s.getNormalMatrix(r),(null===c||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=i;e!==o;++e,n+=4)a.copy(t[e]).applyMatrix4(r,s),a.normal.toArray(c,n),c[n+3]=a.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=o,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,o){const a=0!==t.length||e||0!==i||r;return r=e,n=u(t,o,0),i=t.length,a},this.beginShadows=function(){o=!0,u(null)},this.endShadows=function(){o=!1,c()},this.setState=function(e,a,s){const h=e.clippingPlanes,d=e.clipIntersection,p=e.clipShadows,f=t.get(e);if(!r||null===h||0===h.length||o&&!p)o?u(null):c();else{const t=o?0:i,e=4*t;let r=f.clippingState||null;l.value=r,r=u(h,a,e,s);for(let t=0;t!==e;++t)r[t]=n[t];f.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function IDt(t){let e=new WeakMap;function n(t,e){return e===OIt?t.mapping=NIt:e===RIt&&(t.mapping=IIt),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function r(o){if(o&&o.isTexture){const r=o.mapping;if(r===OIt||r===RIt){if(e.has(o))return n(e.get(o).texture,o.mapping);{const r=o.image;if(r&&r.height>0){const a=t.getRenderList(),s=t.getRenderTarget(),l=new _Dt(r.height/2);return l.fromEquirectangularTexture(t,o),e.set(o,l),t.setRenderTarget(s),t.setRenderList(a),o.addEventListener("dispose",i),n(l.texture,o.mapping)}return null}}}return o},dispose:function o(){e=new WeakMap}}}function ODt(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case"WEBGL_depth_texture":i=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float")},get:function(t){const e=n(t);return null===e&&console.warn("THREE.WebGLRenderer: "+t+" extension not supported."),e}}}function RDt(t,e,n,i){const r={},o=new WeakMap;function a(t){const s=t.target;null!==s.index&&e.remove(s.index);for(const t in s.attributes)e.remove(s.attributes[t]);s.removeEventListener("dispose",a),delete r[s.id];const l=o.get(s);l&&(e.remove(l),o.delete(s)),i.releaseStatesOfGeometry(s),!0===s.isInstancedBufferGeometry&&delete s._maxInstanceCount,n.memory.geometries--}function s(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],r=t[e+1],o=t[e+2];n.push(i,r,r,o,o,i)}}else{a=r.version;for(let t=0,e=r.array.length/3-1;t<e;t+=3){const e=t+0,i=t+1,r=t+2;n.push(e,i,i,r,r,e)}}const s=new(Pzt(n)>65535?Czt:Ezt)(n,1);s.version=a;const l=o.get(t);l&&e.remove(l),o.set(t,s)}return{get:function l(t,e){return!0===r[e.id]||(e.addEventListener("dispose",a),r[e.id]=!0,n.memory.geometries++),e},update:function c(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const i=t.morphAttributes;for(const t in i){const n=i[t];for(let t=0,i=n.length;t<i;t++)e.update(n[t],34962)}},getWireframeAttribute:function u(t){const e=o.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&s(t)}else s(t);return o.get(t)}}}function zDt(t,e,n,i){const r=i.isWebGL2;let o,a,s;this.setMode=function l(t){o=t},this.setIndex=function c(t){a=t.type,s=t.bytesPerElement},this.render=function u(e,i){t.drawElements(o,i,a,e*s),n.update(i,o,1)},this.renderInstances=function h(i,l,c){if(0===c)return;let u,h;if(r)u=t,h="drawElementsInstanced";else if(u=e.get("ANGLE_instanced_arrays"),h="drawElementsInstancedANGLE",null===u)return void console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");u[h](o,l,a,i*s,c),n.update(l,o,c)}}function DDt(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function n(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function i(t,n,r){switch(e.calls++,n){case 4:e.triangles+=r*(t/3);break;case 1:e.lines+=r*(t/2);break;case 3:e.lines+=r*(t-1);break;case 2:e.lines+=r*t;break;case 0:e.points+=r*t;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",n)}}}}function BDt(t,e){return t[0]-e[0]}function HDt(t,e){return Math.abs(e[1])-Math.abs(t[1])}function FDt(t){const e={},n=new Float32Array(8),i=[];for(let t=0;t<8;t++)i[t]=[t,0];return{update:function r(o,a,s,l){const c=o.morphTargetInfluences,u=void 0===c?0:c.length;let h=e[a.id];if(void 0===h){h=[];for(let t=0;t<u;t++)h[t]=[t,0];e[a.id]=h}for(let t=0;t<u;t++){const e=h[t];e[0]=t,e[1]=c[t]}h.sort(HDt);for(let t=0;t<8;t++)t<u&&h[t][1]?(i[t][0]=h[t][0],i[t][1]=h[t][1]):(i[t][0]=Number.MAX_SAFE_INTEGER,i[t][1]=0);i.sort(BDt);const d=s.morphTargets&&a.morphAttributes.position,p=s.morphNormals&&a.morphAttributes.normal;let f=0;for(let t=0;t<8;t++){const e=i[t],r=e[0],o=e[1];r!==Number.MAX_SAFE_INTEGER&&o?(d&&a.getAttribute("morphTarget"+t)!==d[r]&&a.setAttribute("morphTarget"+t,d[r]),p&&a.getAttribute("morphNormal"+t)!==p[r]&&a.setAttribute("morphNormal"+t,p[r]),n[t]=o,f+=o):(d&&!0===a.hasAttribute("morphTarget"+t)&&a.deleteAttribute("morphTarget"+t),p&&!0===a.hasAttribute("morphNormal"+t)&&a.deleteAttribute("morphNormal"+t),n[t]=0)}const m=a.morphTargetsRelative?1:1-f;l.getUniforms().setValue(t,"morphTargetBaseInfluence",m),l.getUniforms().setValue(t,"morphTargetInfluences",n)}}}function VDt(t,e,n,i){let r=new WeakMap;function o(t){const e=t.target;e.removeEventListener("dispose",o),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function a(t){const a=i.render.frame,s=e.get(t,t.geometry);return r.get(s)!==a&&(e.update(s),r.set(s,a)),t.isInstancedMesh&&(!1===t.hasEventListener("dispose",o)&&t.addEventListener("dispose",o),n.update(t.instanceMatrix,34962),null!==t.instanceColor&&n.update(t.instanceColor,34962)),s},dispose:function s(){r=new WeakMap}}}function UDt(t=null,e=1,n=1,i=1){VOt.call(this,null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=VIt,this.minFilter=VIt,this.wrapR=HIt,this.generateMipmaps=!1,this.flipY=!1,this.needsUpdate=!0}function jDt(t=null,e=1,n=1,i=1){VOt.call(this,null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=VIt,this.minFilter=VIt,this.wrapR=HIt,this.generateMipmaps=!1,this.flipY=!1,this.needsUpdate=!0}CDt.physical={uniforms:cDt([CDt.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new zOt(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new pzt(0)},transmission:{value:0},transmissionMap:{value:null}}]),vertexShader:EDt.meshphysical_vert,fragmentShader:EDt.meshphysical_frag},(UDt.prototype=Object.create(VOt.prototype)).constructor=UDt,UDt.prototype.isDataTexture2DArray=!0,(jDt.prototype=Object.create(VOt.prototype)).constructor=jDt,jDt.prototype.isDataTexture3D=!0;const GDt=new VOt,WDt=new UDt,qDt=new jDt,YDt=new gDt,XDt=[],$Dt=[],KDt=new Float32Array(16),ZDt=new Float32Array(9),JDt=new Float32Array(4);function QDt(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let o=XDt[r];if(void 0===o&&(o=new Float32Array(r),XDt[r]=o),0!==e){i.toArray(o,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(o,r)}return o}function tBt(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function eBt(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function nBt(t,e){let n=$Dt[e];void 0===n&&(n=new Int32Array(e),$Dt[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function iBt(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function rBt(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(tBt(n,e))return;t.uniform2fv(this.addr,e),eBt(n,e)}}function oBt(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(tBt(n,e))return;t.uniform3fv(this.addr,e),eBt(n,e)}}function aBt(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(tBt(n,e))return;t.uniform4fv(this.addr,e),eBt(n,e)}}function sBt(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(tBt(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),eBt(n,e)}else{if(tBt(n,i))return;JDt.set(i),t.uniformMatrix2fv(this.addr,!1,JDt),eBt(n,i)}}function lBt(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(tBt(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),eBt(n,e)}else{if(tBt(n,i))return;ZDt.set(i),t.uniformMatrix3fv(this.addr,!1,ZDt),eBt(n,i)}}function cBt(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(tBt(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),eBt(n,e)}else{if(tBt(n,i))return;KDt.set(i),t.uniformMatrix4fv(this.addr,!1,KDt),eBt(n,i)}}function uBt(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTexture2D(e||GDt,r)}function hBt(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||WDt,r)}function dBt(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||qDt,r)}function pBt(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTextureCube(e||YDt,r)}function fBt(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function mBt(t,e){const n=this.cache;tBt(n,e)||(t.uniform2iv(this.addr,e),eBt(n,e))}function gBt(t,e){const n=this.cache;tBt(n,e)||(t.uniform3iv(this.addr,e),eBt(n,e))}function _Bt(t,e){const n=this.cache;tBt(n,e)||(t.uniform4iv(this.addr,e),eBt(n,e))}function yBt(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function vBt(t,e){t.uniform1fv(this.addr,e)}function bBt(t,e){t.uniform1iv(this.addr,e)}function xBt(t,e){t.uniform2iv(this.addr,e)}function wBt(t,e){t.uniform3iv(this.addr,e)}function SBt(t,e){t.uniform4iv(this.addr,e)}function MBt(t,e){const n=QDt(e,this.size,2);t.uniform2fv(this.addr,n)}function EBt(t,e){const n=QDt(e,this.size,3);t.uniform3fv(this.addr,n)}function TBt(t,e){const n=QDt(e,this.size,4);t.uniform4fv(this.addr,n)}function CBt(t,e){const n=QDt(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function ABt(t,e){const n=QDt(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function kBt(t,e){const n=QDt(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function LBt(t,e,n){const i=e.length,r=nBt(n,i);t.uniform1iv(this.addr,r);for(let t=0;t!==i;++t)n.safeSetTexture2D(e[t]||GDt,r[t])}function PBt(t,e,n){const i=e.length,r=nBt(n,i);t.uniform1iv(this.addr,r);for(let t=0;t!==i;++t)n.safeSetTextureCube(e[t]||YDt,r[t])}function NBt(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=(function i(t){switch(t){case 5126:return iBt;case 35664:return rBt;case 35665:return oBt;case 35666:return aBt;case 35674:return sBt;case 35675:return lBt;case 35676:return cBt;case 5124:case 35670:return fBt;case 35667:case 35671:return mBt;case 35668:case 35672:return gBt;case 35669:case 35673:return _Bt;case 5125:return yBt;case 35678:case 36198:case 36298:case 36306:case 35682:return uBt;case 35679:case 36299:case 36307:return dBt;case 35680:case 36300:case 36308:case 36293:return pBt;case 36289:case 36303:case 36311:case 36292:return hBt}})(e.type)}function IBt(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=(function i(t){switch(t){case 5126:return vBt;case 35664:return MBt;case 35665:return EBt;case 35666:return TBt;case 35674:return CBt;case 35675:return ABt;case 35676:return kBt;case 5124:case 35670:return bBt;case 35667:case 35671:return xBt;case 35668:case 35672:return wBt;case 35669:case 35673:return SBt;case 35678:case 36198:case 36298:case 36306:case 35682:return LBt;case 35680:case 36300:case 36308:case 36293:return PBt}})(e.type)}function OBt(t){this.id=t,this.seq=[],this.map={}}IBt.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),eBt(e,t)},OBt.prototype.setValue=function(t,e,n){const i=this.seq;for(let r=0,o=i.length;r!==o;++r){const o=i[r];o.setValue(t,e[o.id],n)}};const RBt=/(\w+)(\])?(\[|\.)?/g;function zBt(t,e){t.seq.push(e),t.map[e.id]=e}function DBt(t,e,n){const i=t.name,r=i.length;for(RBt.lastIndex=0;;){const o=RBt.exec(i),a=RBt.lastIndex;let s=o[1];const l=o[3];if("]"===o[2]&&(s|=0),void 0===l||"["===l&&a+2===r){zBt(n,void 0===l?new NBt(s,t,e):new IBt(s,t,e));break}{let t=n.map[s];void 0===t&&(t=new OBt(s),zBt(n,t)),n=t}}}function BBt(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,35718);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i);DBt(n,t.getUniformLocation(e,n.name),this)}}function HBt(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}BBt.prototype.setValue=function(t,e,n,i){const r=this.map[e];void 0!==r&&r.setValue(t,n,i)},BBt.prototype.setOptional=function(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)},BBt.upload=function(t,e,n,i){for(let r=0,o=e.length;r!==o;++r){const o=e[r],a=n[o.id];!1!==a.needsUpdate&&o.setValue(t,a.value,i)}},BBt.seqWithValue=function(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n};let FBt=0;function VBt(t){switch(t){case xOt:return["Linear","( value )"];case wOt:return["sRGB","( value )"];case MOt:return["RGBE","( value )"];case EOt:return["RGBM","( value, 7.0 )"];case TOt:return["RGBM","( value, 16.0 )"];case COt:return["RGBD","( value, 256.0 )"];case SOt:return["Gamma","( value, float( GAMMA_FACTOR ) )"];case 3003:return["LogLuv","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",t),["Linear","( value )"]}}function UBt(t,e,n){const i=t.getShaderParameter(e,35713),r=t.getShaderInfoLog(e).trim();return i&&""===r?"":"THREE.WebGLShader: gl.getShaderInfoLog() "+n+"\n"+r+(function o(t){const e=t.split("\n");for(let t=0;t<e.length;t++)e[t]=t+1+": "+e[t];return e.join("\n")})(t.getShaderSource(e))}function jBt(t,e){const n=VBt(e);return"vec4 "+t+"( vec4 value ) { return "+n[0]+"ToLinear"+n[1]+"; }"}function GBt(t,e){const n=VBt(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function WBt(t,e){let n;switch(e){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="OptimizedCineon";break;case 4:n="ACESFilmic";break;case 5:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function qBt(t){return""!==t}function YBt(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function XBt(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const $Bt=/^[ \t]*#include +<([\w\d./]+)>/gm;function KBt(t){return t.replace($Bt,ZBt)}function ZBt(t,e){const n=EDt[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return KBt(n)}const JBt=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,QBt=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function tHt(t){return t.replace(QBt,nHt).replace(JBt,eHt)}function eHt(t,e,n,i){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),nHt(0,e,n,i)}function nHt(t,e,n,i){let r="";for(let t=parseInt(e);t<parseInt(n);t++)r+=i.replace(/\[\s*i\s*\]/g,"[ "+t+" ]").replace(/UNROLLED_LOOP_INDEX/g,t);return r}function iHt(t){let e="precision "+t.precision+" float;\nprecision "+t.precision+" int;";return"highp"===t.precision?e+="\n#define HIGH_PRECISION":"mediump"===t.precision?e+="\n#define MEDIUM_PRECISION":"lowp"===t.precision&&(e+="\n#define LOW_PRECISION"),e}function rHt(t,e,n,i){const r=t.getContext(),o=n.defines;let a=n.vertexShader,s=n.fragmentShader;const l=(function c(t){let e="SHADOWMAP_TYPE_BASIC";return 1===t.shadowMapType?e="SHADOWMAP_TYPE_PCF":2===t.shadowMapType?e="SHADOWMAP_TYPE_PCF_SOFT":3===t.shadowMapType&&(e="SHADOWMAP_TYPE_VSM"),e})(n),u=(function h(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case NIt:case IIt:e="ENVMAP_TYPE_CUBE";break;case zIt:case DIt:e="ENVMAP_TYPE_CUBE_UV"}return e})(n),d=(function p(t){let e="ENVMAP_MODE_REFLECTION";if(t.envMap)switch(t.envMapMode){case IIt:case DIt:e="ENVMAP_MODE_REFRACTION"}return e})(n),f=(function m(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case 0:e="ENVMAP_BLENDING_MULTIPLY";break;case 1:e="ENVMAP_BLENDING_MIX";break;case 2:e="ENVMAP_BLENDING_ADD"}return e})(n),g=t.gammaFactor>0?t.gammaFactor:1,_=n.isWebGL2?"":(function y(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||"physical"===t.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(qBt).join("\n")})(n),v=(function b(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push("#define "+n+" "+i)}return e.join("\n")})(o),x=r.createProgram();let w,S,M=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?(w=[v].filter(qBt).join("\n"),w.length>0&&(w+="\n"),S=[_,v].filter(qBt).join("\n"),S.length>0&&(S+="\n")):(w=[iHt(n),"#define SHADER_NAME "+n.shaderName,v,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+g,"#define MAX_BONES "+n.maxBones,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.useVertexTexture?"#define BONE_TEXTURE":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(qBt).join("\n"),S=[_,iHt(n),"#define SHADER_NAME "+n.shaderName,v,n.alphaTest?"#define ALPHATEST "+n.alphaTest+(n.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+g,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+u:"",n.envMap?"#define "+d:"",n.envMap?"#define "+f:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.sheen?"#define USE_SHEEN":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?EDt.tonemapping_pars_fragment:"",0!==n.toneMapping?WBt("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",EDt.encodings_pars_fragment,n.map?jBt("mapTexelToLinear",n.mapEncoding):"",n.matcap?jBt("matcapTexelToLinear",n.matcapEncoding):"",n.envMap?jBt("envMapTexelToLinear",n.envMapEncoding):"",n.emissiveMap?jBt("emissiveMapTexelToLinear",n.emissiveMapEncoding):"",n.lightMap?jBt("lightMapTexelToLinear",n.lightMapEncoding):"",GBt("linearToOutputTexel",n.outputEncoding),n.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(qBt).join("\n")),a=KBt(a),a=YBt(a,n),a=XBt(a,n),s=KBt(s),s=YBt(s,n),s=XBt(s,n),a=tHt(a),s=tHt(s),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",w=["#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+w,S=["#define varying in",n.glslVersion===POt?"":"out highp vec4 pc_fragColor;",n.glslVersion===POt?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+S);const E=M+S+s,T=HBt(r,35633,M+w+a),C=HBt(r,35632,E);if(r.attachShader(x,T),r.attachShader(x,C),void 0!==n.index0AttributeName?r.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(x,0,"position"),r.linkProgram(x),t.debug.checkShaderErrors){const t=r.getProgramInfoLog(x).trim(),e=r.getShaderInfoLog(T).trim(),n=r.getShaderInfoLog(C).trim();let i=!0,o=!0;if(!1===r.getProgramParameter(x,35714)){i=!1;const e=UBt(r,T,"vertex"),n=UBt(r,C,"fragment");console.error("THREE.WebGLProgram: shader error: ",r.getError(),"35715",r.getProgramParameter(x,35715),"gl.getProgramInfoLog",t,e,n)}else""!==t?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",t):""!==e&&""!==n||(o=!1);o&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:w},fragmentShader:{log:n,prefix:S}})}let A,k;return r.deleteShader(T),r.deleteShader(C),this.getUniforms=function(){return void 0===A&&(A=new BBt(r,x)),A},this.getAttributes=function(){return void 0===k&&(k=(function t(e,n){const i={},r=e.getProgramParameter(n,35721);for(let t=0;t<r;t++){const r=e.getActiveAttrib(n,t).name;i[r]=e.getAttribLocation(n,r)}return i})(r,x)),k},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(x),this.program=void 0},this.name=n.shaderName,this.id=FBt++,this.cacheKey=e,this.usedTimes=1,this.program=x,this.vertexShader=T,this.fragmentShader=C,this}function oHt(t,e,n,i,r,o){const a=[],s=i.isWebGL2,l=i.logarithmicDepthBuffer,c=i.floatVertexTextures,u=i.maxVertexUniforms,h=i.vertexTextures;let d=i.precision;const p={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},f=["precision","isWebGL2","supportsVertexTextures","outputEncoding","instancing","instancingColor","map","mapEncoding","matcap","matcapEncoding","envMap","envMapMode","envMapEncoding","envMapCubeUV","lightMap","lightMapEncoding","aoMap","emissiveMap","emissiveMapEncoding","bumpMap","normalMap","objectSpaceNormalMap","tangentSpaceNormalMap","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","displacementMap","specularMap","roughnessMap","metalnessMap","gradientMap","alphaMap","combine","vertexColors","vertexTangents","vertexUvs","uvsVertexOnly","fog","useFog","fogExp2","flatShading","sizeAttenuation","logarithmicDepthBuffer","skinning","maxBones","useVertexTexture","morphTargets","morphNormals","maxMorphTargets","maxMorphNormals","premultipliedAlpha","numDirLights","numPointLights","numSpotLights","numHemiLights","numRectAreaLights","numDirLightShadows","numPointLightShadows","numSpotLightShadows","shadowMapEnabled","shadowMapType","toneMapping","physicallyCorrectLights","alphaTest","doubleSided","flipSided","numClippingPlanes","numClipIntersection","depthPacking","dithering","sheen","transmissionMap"];function m(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),e=t.texture.encoding):e=xOt,e}return{getParameters:function g(r,a,f,_,y){const v=_.fog,b=e.get(r.envMap||(r.isMeshStandardMaterial?_.environment:null)),x=p[r.type],w=y.isSkinnedMesh?(function S(t){const e=t.skeleton.bones;if(c)return 1024;{const t=Math.floor((u-20)/4),n=Math.min(t,e.length);return n<e.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+e.length+" bones. This GPU supports "+n+"."),0):n}})(y):0;let M,E;if(null!==r.precision&&(d=i.getMaxPrecision(r.precision),d!==r.precision&&console.warn("THREE.WebGLProgram.getParameters:",r.precision,"not supported, using",d,"instead.")),x){const t=CDt[x];M=t.vertexShader,E=t.fragmentShader}else M=r.vertexShader,E=r.fragmentShader;const T=t.getRenderTarget();return{isWebGL2:s,shaderID:x,shaderName:r.type,vertexShader:M,fragmentShader:E,defines:r.defines,isRawShaderMaterial:!0===r.isRawShaderMaterial,glslVersion:r.glslVersion,precision:d,instancing:!0===y.isInstancedMesh,instancingColor:!0===y.isInstancedMesh&&null!==y.instanceColor,supportsVertexTextures:h,outputEncoding:null!==T?m(T.texture):t.outputEncoding,map:!!r.map,mapEncoding:m(r.map),matcap:!!r.matcap,matcapEncoding:m(r.matcap),envMap:!!b,envMapMode:b&&b.mapping,envMapEncoding:m(b),envMapCubeUV:!!b&&(b.mapping===zIt||b.mapping===DIt),lightMap:!!r.lightMap,lightMapEncoding:m(r.lightMap),aoMap:!!r.aoMap,emissiveMap:!!r.emissiveMap,emissiveMapEncoding:m(r.emissiveMap),bumpMap:!!r.bumpMap,normalMap:!!r.normalMap,objectSpaceNormalMap:1===r.normalMapType,tangentSpaceNormalMap:0===r.normalMapType,clearcoatMap:!!r.clearcoatMap,clearcoatRoughnessMap:!!r.clearcoatRoughnessMap,clearcoatNormalMap:!!r.clearcoatNormalMap,displacementMap:!!r.displacementMap,roughnessMap:!!r.roughnessMap,metalnessMap:!!r.metalnessMap,specularMap:!!r.specularMap,alphaMap:!!r.alphaMap,gradientMap:!!r.gradientMap,sheen:!!r.sheen,transmissionMap:!!r.transmissionMap,combine:r.combine,vertexTangents:r.normalMap&&r.vertexTangents,vertexColors:r.vertexColors,vertexUvs:!!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatMap||r.clearcoatRoughnessMap||r.clearcoatNormalMap||r.displacementMap||r.transmissionMap),uvsVertexOnly:!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatNormalMap||r.transmissionMap||!r.displacementMap),fog:!!v,useFog:r.fog,fogExp2:v&&v.isFogExp2,flatShading:r.flatShading,sizeAttenuation:r.sizeAttenuation,logarithmicDepthBuffer:l,skinning:r.skinning&&w>0,maxBones:w,useVertexTexture:c,morphTargets:r.morphTargets,morphNormals:r.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:r.dithering,shadowMapEnabled:t.shadowMap.enabled&&f.length>0,shadowMapType:t.shadowMap.type,toneMapping:r.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,alphaTest:r.alphaTest,doubleSided:2===r.side,flipSided:1===r.side,depthPacking:void 0!==r.depthPacking&&r.depthPacking,index0AttributeName:r.index0AttributeName,extensionDerivatives:r.extensions&&r.extensions.derivatives,extensionFragDepth:r.extensions&&r.extensions.fragDepth,extensionDrawBuffers:r.extensions&&r.extensions.drawBuffers,extensionShaderTextureLOD:r.extensions&&r.extensions.shaderTextureLOD,rendererExtensionFragDepth:s||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:s||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:s||n.has("EXT_shader_texture_lod"),customProgramCacheKey:r.customProgramCacheKey()}},getProgramCacheKey:function _(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<f.length;t++)n.push(e[f[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function y(t){const e=p[t.type];let n;return n=e?uDt.clone(CDt[e].uniforms):t.uniforms,n},acquireProgram:function v(e,n){let i;for(let t=0,e=a.length;t<e;t++){const e=a[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new rHt(t,n,e,r),a.push(i)),i},releaseProgram:function b(t){if(0==--t.usedTimes){const e=a.indexOf(t);a[e]=a[a.length-1],a.pop(),t.destroy()}},programs:a}}function aHt(){let t=new WeakMap;return{get:function e(n){let i=t.get(n);return void 0===i&&(i={},t.set(n,i)),i},remove:function n(e){t.delete(e)},update:function i(e,n,r){t.get(e)[n]=r},dispose:function r(){t=new WeakMap}}}function sHt(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function lHt(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function cHt(t){const e=[];let n=0;const i=[],r=[],o={id:-1};function a(i,r,a,s,l,c){let u=e[n];const h=t.get(a);return void 0===u?(u={id:i.id,object:i,geometry:r,material:a,program:h.program||o,groupOrder:s,renderOrder:i.renderOrder,z:l,group:c},e[n]=u):(u.id=i.id,u.object=i,u.geometry=r,u.material=a,u.program=h.program||o,u.groupOrder=s,u.renderOrder=i.renderOrder,u.z=l,u.group=c),n++,u}return{opaque:i,transparent:r,init:function s(){n=0,i.length=0,r.length=0},push:function l(t,e,n,o,s,c){const u=a(t,e,n,o,s,c);(!0===n.transparent?r:i).push(u)},unshift:function c(t,e,n,o,s,l){const c=a(t,e,n,o,s,l);(!0===n.transparent?r:i).unshift(c)},finish:function u(){for(let t=n,i=e.length;t<i;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function h(t,e){i.length>1&&i.sort(t||sHt),r.length>1&&r.sort(e||lHt)}}}function uHt(t){let e=new WeakMap;return{get:function n(i,r){const o=e.get(i);let a;return void 0===o?(a=new cHt(t),e.set(i,new WeakMap),e.get(i).set(r,a)):(a=o.get(r),void 0===a&&(a=new cHt(t),o.set(r,a))),a},dispose:function i(){e=new WeakMap}}}function hHt(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new qOt,color:new pzt};break;case"SpotLight":n={position:new qOt,direction:new qOt,color:new pzt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new qOt,color:new pzt,distance:0,decay:0};break;case"HemisphereLight":n={direction:new qOt,skyColor:new pzt,groundColor:new pzt};break;case"RectAreaLight":n={color:new pzt,position:new qOt,halfWidth:new qOt,halfHeight:new qOt}}return t[e.id]=n,n}}}let dHt=0;function pHt(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function fHt(t,e){const n=new hHt,i=(function r(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new zOt};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new zOt,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}})(),o={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)o.probe.push(new qOt);const a=new qOt,s=new bRt,l=new bRt;return{setup:function c(r){let a=0,s=0,l=0;for(let t=0;t<9;t++)o.probe[t].set(0,0,0);let c=0,u=0,h=0,d=0,p=0,f=0,m=0,g=0;r.sort(pHt);for(let t=0,e=r.length;t<e;t++){const e=r[t],_=e.color,y=e.intensity,v=e.distance,b=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)a+=_.r*y,s+=_.g*y,l+=_.b*y;else if(e.isLightProbe)for(let t=0;t<9;t++)o.probe[t].addScaledVector(e.sh.coefficients[t],y);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,o.directionalShadow[c]=n,o.directionalShadowMap[c]=b,o.directionalShadowMatrix[c]=e.shadow.matrix,f++}o.directional[c]=t,c++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(_).multiplyScalar(y),t.distance=v,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,o.spotShadow[h]=n,o.spotShadowMap[h]=b,o.spotShadowMatrix[h]=e.shadow.matrix,g++}o.spot[h]=t,h++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(_).multiplyScalar(y),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),o.rectArea[d]=t,d++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,o.pointShadow[u]=n,o.pointShadowMap[u]=b,o.pointShadowMatrix[u]=e.shadow.matrix,m++}o.point[u]=t,u++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(y),t.groundColor.copy(e.groundColor).multiplyScalar(y),o.hemi[p]=t,p++}}d>0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(o.rectAreaLTC1=TDt.LTC_FLOAT_1,o.rectAreaLTC2=TDt.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(o.rectAreaLTC1=TDt.LTC_HALF_1,o.rectAreaLTC2=TDt.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),o.ambient[0]=a,o.ambient[1]=s,o.ambient[2]=l;const _=o.hash;_.directionalLength===c&&_.pointLength===u&&_.spotLength===h&&_.rectAreaLength===d&&_.hemiLength===p&&_.numDirectionalShadows===f&&_.numPointShadows===m&&_.numSpotShadows===g||(o.directional.length=c,o.spot.length=h,o.rectArea.length=d,o.point.length=u,o.hemi.length=p,o.directionalShadow.length=f,o.directionalShadowMap.length=f,o.pointShadow.length=m,o.pointShadowMap.length=m,o.spotShadow.length=g,o.spotShadowMap.length=g,o.directionalShadowMatrix.length=f,o.pointShadowMatrix.length=m,o.spotShadowMatrix.length=g,_.directionalLength=c,_.pointLength=u,_.spotLength=h,_.rectAreaLength=d,_.hemiLength=p,_.numDirectionalShadows=f,_.numPointShadows=m,_.numSpotShadows=g,o.version=dHt++)},setupView:function u(t,e){let n=0,i=0,r=0,c=0,u=0;const h=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=o.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld),a.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(a),t.direction.transformDirection(h),n++}else if(d.isSpotLight){const t=o.spot[r];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(h),t.direction.setFromMatrixPosition(d.matrixWorld),a.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(a),t.direction.transformDirection(h),r++}else if(d.isRectAreaLight){const t=o.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(h),l.identity(),s.copy(d.matrixWorld),s.premultiply(h),l.extractRotation(s),t.halfWidth.set(.5*d.width,0,0),t.halfHeight.set(0,.5*d.height,0),t.halfWidth.applyMatrix4(l),t.halfHeight.applyMatrix4(l),c++}else if(d.isPointLight){const t=o.point[i];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(h),i++}else if(d.isHemisphereLight){const t=o.hemi[u];t.direction.setFromMatrixPosition(d.matrixWorld),t.direction.transformDirection(h),t.direction.normalize(),u++}}},state:o}}function mHt(t,e){const n=new fHt(t,e),i=[],r=[];return{init:function o(){i.length=0,r.length=0},state:{lightsArray:i,shadowsArray:r,lights:n},setupLights:function a(){n.setup(i)},setupLightsView:function s(t){n.setupView(i,t)},pushLight:function l(t){i.push(t)},pushShadow:function c(t){r.push(t)}}}function gHt(t,e){let n=new WeakMap;return{get:function i(r,o=0){let a;return!1===n.has(r)?(a=new mHt(t,e),n.set(r,[]),n.get(r).push(a)):o>=n.get(r).length?(a=new mHt(t,e),n.get(r).push(a)):a=n.get(r)[o],a},dispose:function r(){n=new WeakMap}}}function _Ht(t){gzt.call(this),this.type="MeshDepthMaterial",this.depthPacking=3200,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}function yHt(t){gzt.call(this),this.type="MeshDistanceMaterial",this.referencePosition=new qOt,this.nearDistance=1,this.farDistance=1e3,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}function vHt(t,e,n){let i=new xDt;const r=new zOt,o=new zOt,a=new jOt,s=[],l=[],c={},u={0:1,1:0,2:2},h=new hDt({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new zOt},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean * HALF_SAMPLE_RATE;\n\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),d=h.clone();d.defines.HORIZONTAL_PASS=1;const p=new Vzt;p.setAttribute("position",new bzt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const f=new oDt(p,h),m=this;function g(n,i){const r=e.update(f);h.uniforms.shadow_pass.value=n.map.texture,h.uniforms.resolution.value=n.mapSize,h.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,r,h,f,null),d.uniforms.shadow_pass.value=n.mapPass.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,r,d,f,null)}function _(t,e,n){const i=t<<0|e<<1|n<<2;let r=s[i];return void 0===r&&(r=new _Ht({depthPacking:3201,morphTargets:t,skinning:e}),s[i]=r),r}function y(t,e,n){const i=t<<0|e<<1|n<<2;let r=l[i];return void 0===r&&(r=new yHt({morphTargets:t,skinning:e}),l[i]=r),r}function v(e,n,i,r,o,a,s){let l=null,h=_,d=e.customDepthMaterial;if(!0===r.isPointLight&&(h=y,d=e.customDistanceMaterial),void 0===d){let t=!1;!0===i.morphTargets&&(t=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0);let r=!1;!0===e.isSkinnedMesh&&(!0===i.skinning?r=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",e)),l=h(t,r,!0===e.isInstancedMesh)}else l=d;if(t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length){const t=l.uuid,e=i.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let r=n[e];void 0===r&&(r=l.clone(),n[e]=r),l=r}return l.visible=i.visible,l.wireframe=i.wireframe,l.side=3===s?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:u[i.side],l.clipShadows=i.clipShadows,l.clippingPlanes=i.clippingPlanes,l.clipIntersection=i.clipIntersection,l.wireframeLinewidth=i.wireframeLinewidth,l.linewidth=i.linewidth,!0===r.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(r.matrixWorld),l.nearDistance=o,l.farDistance=a),l}function b(n,r,o,a,s){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===s)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(o.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],u=r[c.materialIndex];if(u&&u.visible){const e=v(n,i,u,a,o.near,o.far,s);t.renderBufferDirect(o,null,i,e,n,c)}}}else if(r.visible){const e=v(n,i,r,a,o.near,o.far,s);t.renderBufferDirect(o,null,i,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)b(l[t],r,o,a,s)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,s,l){if(!1===m.enabled)return;if(!1===m.autoUpdate&&!1===m.needsUpdate)return;if(0===e.length)return;const c=t.getRenderTarget(),u=t.getActiveCubeFace(),h=t.getActiveMipmapLevel(),d=t.state;d.setBlending(0),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(let c=0,u=e.length;c<u;c++){const u=e[c],h=u.shadow;if(void 0===h){console.warn("THREE.WebGLShadowMap:",u,"has no shadow.");continue}if(!1===h.autoUpdate&&!1===h.needsUpdate)continue;r.copy(h.mapSize);const p=h.getFrameExtents();if(r.multiply(p),o.copy(h.mapSize),(r.x>n||r.y>n)&&(r.x>n&&(o.x=Math.floor(n/p.x),r.x=o.x*p.x,h.mapSize.x=o.x),r.y>n&&(o.y=Math.floor(n/p.y),r.y=o.y*p.y,h.mapSize.y=o.y)),null===h.map&&!h.isPointLightShadow&&3===this.type){const t={minFilter:GIt,magFilter:GIt,format:tOt};h.map=new GOt(r.x,r.y,t),h.map.texture.name=u.name+".shadowMap",h.mapPass=new GOt(r.x,r.y,t),h.camera.updateProjectionMatrix()}null===h.map&&(h.map=new GOt(r.x,r.y,{minFilter:VIt,magFilter:VIt,format:tOt}),h.map.texture.name=u.name+".shadowMap",h.camera.updateProjectionMatrix()),t.setRenderTarget(h.map),t.clear();const f=h.getViewportCount();for(let t=0;t<f;t++){const e=h.getViewport(t);a.set(o.x*e.x,o.y*e.y,o.x*e.z,o.y*e.w),d.viewport(a),h.updateMatrices(u,t),i=h.getFrustum(),b(s,l,h.camera,u,this.type)}h.isPointLightShadow||3!==this.type||g(h,l),h.needsUpdate=!1}m.needsUpdate=!1,t.setRenderTarget(c,u,h)}}function bHt(t,e,n){const i=n.isWebGL2,r=new(function o(){let e=!1;const n=new jOt;let i=null;const r=new jOt(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,o,a,s){!0===s&&(e*=a,i*=a,o*=a),n.set(e,i,o,a),!1===r.equals(n)&&(t.clearColor(e,i,o,a),r.copy(n))},reset:function(){e=!1,i=null,r.set(-1,0,0,0)}}}),a=new(function s(){let e=!1,n=null,i=null,r=null;return{setTest:function(t){t?z(2929):D(2929)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);i=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,n=null,i=null,r=null}}}),l=new(function c(){let e=!1,n=null,i=null,r=null,o=null,a=null,s=null,l=null,c=null;return{setTest:function(t){e||(t?z(2960):D(2960))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,a){i===e&&r===n&&o===a||(t.stencilFunc(e,n,a),i=e,r=n,o=a)},setOp:function(e,n,i){a===e&&s===n&&l===i||(t.stencilOp(e,n,i),a=e,s=n,l=i)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,i=null,r=null,o=null,a=null,s=null,l=null,c=null}}});let u={},h=null,d=null,p=null,f=null,m=null,g=null,_=null,y=null,v=null,b=!1,x=null,w=null,S=null,M=null,E=null;const T=t.getParameter(35661);let C=!1,A=0;const k=t.getParameter(7938);-1!==k.indexOf("WebGL")?(A=parseFloat(/^WebGL (\d)/.exec(k)[1]),C=A>=1):-1!==k.indexOf("OpenGL ES")&&(A=parseFloat(/^OpenGL ES (\d)/.exec(k)[1]),C=A>=2);let L=null,P={};const N=new jOt,I=new jOt;function O(e,n,i){const r=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;e<i;e++)t.texImage2D(n+e,0,6408,1,1,0,6408,5121,r);return o}const R={};function z(e){!0!==u[e]&&(t.enable(e),u[e]=!0)}function D(e){!1!==u[e]&&(t.disable(e),u[e]=!1)}R[3553]=O(3553,3553,1),R[34067]=O(34067,34069,6),r.setClear(0,0,0,1),a.setClear(1),l.setClear(0),z(2929),a.setFunc(3),V(!1),U(1),z(2884),F(0);const B={[LIt]:32774,101:32778,102:32779};if(i)B[103]=32775,B[104]=32776;else{const t=e.get("EXT_blend_minmax");null!==t&&(B[103]=t.MIN_EXT,B[104]=t.MAX_EXT)}const H={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function F(e,n,i,r,o,a,s,l){if(0!==e){if(d||(z(3042),d=!0),5===e)o=o||n,a=a||i,s=s||r,n===f&&o===_||(t.blendEquationSeparate(B[n],B[o]),f=n,_=o),i===m&&r===g&&a===y&&s===v||(t.blendFuncSeparate(H[i],H[r],H[a],H[s]),m=i,g=r,y=a,v=s),p=e,b=null;else if(e!==p||l!==b){if(f===LIt&&_===LIt||(t.blendEquation(32774),f=LIt,_=LIt),l)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}m=null,g=null,y=null,v=null,p=e,b=l}}else d&&(D(3042),d=!1)}function V(e){x!==e&&(t.frontFace(e?2304:2305),x=e)}function U(e){0!==e?(z(2884),e!==w&&t.cullFace(1===e?1029:2===e?1028:1032)):D(2884),w=e}function j(e,n,i){e?(z(32823),M===n&&E===i||(t.polygonOffset(n,i),M=n,E=i)):D(32823)}function G(e){void 0===e&&(e=33984+T-1),L!==e&&(t.activeTexture(e),L=e)}return{buffers:{color:r,depth:a,stencil:l},enable:z,disable:D,useProgram:function W(e){return h!==e&&(t.useProgram(e),h=e,!0)},setBlending:F,setMaterial:function q(t,e){2===t.side?D(2884):z(2884);let n=1===t.side;e&&(n=!n),V(n),1===t.blending&&!1===t.transparent?F(0):F(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),a.setFunc(t.depthFunc),a.setTest(t.depthTest),a.setMask(t.depthWrite),r.setMask(t.colorWrite);const i=t.stencilWrite;l.setTest(i),i&&(l.setMask(t.stencilWriteMask),l.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),l.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),j(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits)},setFlipSided:V,setCullFace:U,setLineWidth:function Y(e){e!==S&&(C&&t.lineWidth(e),S=e)},setPolygonOffset:j,setScissorTest:function X(t){t?z(3089):D(3089)},activeTexture:G,bindTexture:function $(e,n){null===L&&G();let i=P[L];void 0===i&&(i={type:void 0,texture:void 0},P[L]=i),i.type===e&&i.texture===n||(t.bindTexture(e,n||R[e]),i.type=e,i.texture=n)},unbindTexture:function K(){const e=P[L];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function Z(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texImage2D:function J(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texImage3D:function Q(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},scissor:function tt(e){!1===N.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),N.copy(e))},viewport:function et(e){!1===I.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),I.copy(e))},reset:function nt(){u={},L=null,P={},h=null,d=null,p=null,f=null,m=null,g=null,_=null,y=null,v=null,b=!1,x=null,w=null,S=null,M=null,E=null,r.reset(),a.reset(),l.reset()}}}function xHt(t,e,n,i,r,o,a){const s=r.isWebGL2,l=r.maxTextures,c=r.maxCubemapSize,u=r.maxTextureSize,h=r.maxSamples,d=new WeakMap;let p,f=!1;try{f="undefined"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(t){}function m(t,e){return f?new OffscreenCanvas(t,e):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function g(t,e,n,i){let r=1;if((t.width>i||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?ROt.floorPowerOfTwo:Math.floor,o=i(r*t.width),a=i(r*t.height);void 0===p&&(p=m(o,a));const s=n?m(o,a):p;return s.width=o,s.height=a,s.getContext("2d").drawImage(t,0,0,o,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+o+"x"+a+")."),s}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function _(t){return ROt.isPowerOfTwo(t.width)&&ROt.isPowerOfTwo(t.height)}function y(t,e){return t.generateMipmaps&&e&&t.minFilter!==VIt&&t.minFilter!==GIt}function v(e,n,r,o){t.generateMipmap(e),i.get(n).__maxMipLevel=Math.log(Math.max(r,o))*Math.LOG2E}function b(n,i,r){if(!1===s)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let o=i;return 6403===i&&(5126===r&&(o=33326),5131===r&&(o=33325),5121===r&&(o=33321)),6407===i&&(5126===r&&(o=34837),5131===r&&(o=34843),5121===r&&(o=32849)),6408===i&&(5126===r&&(o=34836),5131===r&&(o=34842),5121===r&&(o=32856)),33325!==o&&33326!==o&&34842!==o&&34836!==o||e.get("EXT_color_buffer_float"),o}function x(t){return t===VIt||t===UIt||t===jIt?9728:9729}function w(e){const n=e.target;n.removeEventListener("dispose",w),(function r(e){const n=i.get(e);void 0!==n.__webglInit&&(t.deleteTexture(n.__webglTexture),i.remove(e))})(n),n.isVideoTexture&&d.delete(n),a.memory.textures--}function S(e){const n=e.target;n.removeEventListener("dispose",S),(function r(e){const n=i.get(e),r=i.get(e.texture);if(e){if(void 0!==r.__webglTexture&&t.deleteTexture(r.__webglTexture),e.depthTexture&&e.depthTexture.dispose(),e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(n.__webglFramebuffer[e]),n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer[e]);else t.deleteFramebuffer(n.__webglFramebuffer),n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer),n.__webglMultisampledFramebuffer&&t.deleteFramebuffer(n.__webglMultisampledFramebuffer),n.__webglColorRenderbuffer&&t.deleteRenderbuffer(n.__webglColorRenderbuffer),n.__webglDepthRenderbuffer&&t.deleteRenderbuffer(n.__webglDepthRenderbuffer);i.remove(e.texture),i.remove(e)}})(n),a.memory.textures--}let M=0;function E(t,e){const r=i.get(t);if(t.isVideoTexture&&(function o(t){const e=a.render.frame;d.get(t)!==e&&(d.set(t,e),t.update())})(t),t.version>0&&r.__version!==t.version){const n=t.image;if(void 0===n)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==n.complete)return void P(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}function T(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?(function l(e,i,r){if(6!==i.image.length)return;L(e,i),n.activeTexture(33984+r),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment);const a=i&&(i.isCompressedTexture||i.image[0].isCompressedTexture),l=i.image[0]&&i.image[0].isDataTexture,u=[];for(let t=0;t<6;t++)u[t]=a||l?l?i.image[t].image:i.image[t]:g(i.image[t],!1,!0,c);const h=u[0],d=_(h)||s,p=o.convert(i.format),f=o.convert(i.type),m=b(i.internalFormat,p,f);let x;if(k(34067,i,d),a){for(let t=0;t<6;t++){x=u[t].mipmaps;for(let e=0;e<x.length;e++){const r=x[e];i.format!==tOt&&i.format!==QIt?null!==p?n.compressedTexImage2D(34069+t,e,m,r.width,r.height,0,r.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):n.texImage2D(34069+t,e,m,r.width,r.height,0,p,f,r.data)}}e.__maxMipLevel=x.length-1}else{x=i.mipmaps;for(let t=0;t<6;t++)if(l){n.texImage2D(34069+t,0,m,u[t].width,u[t].height,0,p,f,u[t].data);for(let e=0;e<x.length;e++){const i=x[e].image[t].image;n.texImage2D(34069+t,e+1,m,i.width,i.height,0,p,f,i.data)}}else{n.texImage2D(34069+t,0,m,p,f,u[t]);for(let e=0;e<x.length;e++)n.texImage2D(34069+t,e+1,m,p,f,x[e].image[t])}e.__maxMipLevel=x.length}y(i,d)&&v(34067,i,h.width,h.height),e.__version=i.version,i.onUpdate&&i.onUpdate(i)})(a,e,r):(n.activeTexture(33984+r),n.bindTexture(34067,a.__webglTexture))}const C={[BIt]:10497,[HIt]:33071,[FIt]:33648},A={[VIt]:9728,[UIt]:9984,[jIt]:9986,[GIt]:9729,[WIt]:9985,[qIt]:9987};function k(n,o,a){a?(t.texParameteri(n,10242,C[o.wrapS]),t.texParameteri(n,10243,C[o.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,C[o.wrapR]),t.texParameteri(n,10240,A[o.magFilter]),t.texParameteri(n,10241,A[o.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),o.wrapS===HIt&&o.wrapT===HIt||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,x(o.magFilter)),t.texParameteri(n,10241,x(o.minFilter)),o.minFilter!==VIt&&o.minFilter!==GIt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));const l=e.get("EXT_texture_filter_anisotropic");if(l){if(o.type===KIt&&null===e.get("OES_texture_float_linear"))return;if(o.type===ZIt&&null===(s||e.get("OES_texture_half_float_linear")))return;(o.anisotropy>1||i.get(o).__currentAnisotropy)&&(t.texParameterf(n,l.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(o.anisotropy,r.getMaxAnisotropy())),i.get(o).__currentAnisotropy=o.anisotropy)}}function L(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",w),e.__webglTexture=t.createTexture(),a.memory.textures++)}function P(e,i,r){let a=3553;i.isDataTexture2DArray&&(a=35866),i.isDataTexture3D&&(a=32879),L(e,i),n.activeTexture(33984+r),n.bindTexture(a,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment);const l=(function c(t){return!s&&(t.wrapS!==HIt||t.wrapT!==HIt||t.minFilter!==VIt&&t.minFilter!==GIt)})(i)&&!1===_(i.image),h=g(i.image,l,!1,u),d=_(h)||s,p=o.convert(i.format);let f,m=o.convert(i.type),x=b(i.internalFormat,p,m);k(a,i,d);const w=i.mipmaps;if(i.isDepthTexture)x=6402,s?x=i.type===KIt?36012:i.type===$It?33190:i.type===JIt?35056:33189:i.type===KIt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===eOt&&6402===x&&i.type!==XIt&&i.type!==$It&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=XIt,m=o.convert(i.type)),i.format===nOt&&6402===x&&(x=34041,i.type!==JIt&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=JIt,m=o.convert(i.type))),n.texImage2D(3553,0,x,h.width,h.height,0,p,m,null);else if(i.isDataTexture)if(w.length>0&&d){for(let t=0,e=w.length;t<e;t++)f=w[t],n.texImage2D(3553,t,x,f.width,f.height,0,p,m,f.data);i.generateMipmaps=!1,e.__maxMipLevel=w.length-1}else n.texImage2D(3553,0,x,h.width,h.height,0,p,m,h.data),e.__maxMipLevel=0;else if(i.isCompressedTexture){for(let t=0,e=w.length;t<e;t++)f=w[t],i.format!==tOt&&i.format!==QIt?null!==p?n.compressedTexImage2D(3553,t,x,f.width,f.height,0,f.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):n.texImage2D(3553,t,x,f.width,f.height,0,p,m,f.data);e.__maxMipLevel=w.length-1}else if(i.isDataTexture2DArray)n.texImage3D(35866,0,x,h.width,h.height,h.depth,0,p,m,h.data),e.__maxMipLevel=0;else if(i.isDataTexture3D)n.texImage3D(32879,0,x,h.width,h.height,h.depth,0,p,m,h.data),e.__maxMipLevel=0;else if(w.length>0&&d){for(let t=0,e=w.length;t<e;t++)f=w[t],n.texImage2D(3553,t,x,p,m,f);i.generateMipmaps=!1,e.__maxMipLevel=w.length-1}else n.texImage2D(3553,0,x,p,m,h),e.__maxMipLevel=0;y(i,d)&&v(a,i,h.width,h.height),e.__version=i.version,i.onUpdate&&i.onUpdate(i)}function N(e,r,a,s){const l=o.convert(r.texture.format),c=o.convert(r.texture.type),u=b(r.texture.internalFormat,l,c);n.texImage2D(s,0,u,r.width,r.height,0,l,c,null),t.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,a,s,i.get(r.texture).__webglTexture,0),t.bindFramebuffer(36160,null)}function I(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let r=33189;if(i){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===KIt?r=36012:e.type===$It&&(r=33190));const i=O(n);t.renderbufferStorageMultisample(36161,i,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){if(i){const e=O(n);t.renderbufferStorageMultisample(36161,e,35056,n.width,n.height)}else t.renderbufferStorage(36161,34041,n.width,n.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=o.convert(n.texture.format),r=o.convert(n.texture.type),a=b(n.texture.internalFormat,e,r);if(i){const e=O(n);t.renderbufferStorageMultisample(36161,e,a,n.width,n.height)}else t.renderbufferStorage(36161,a,n.width,n.height)}t.bindRenderbuffer(36161,null)}function O(t){return s&&t.isWebGLMultisampleRenderTarget?Math.min(h,t.samples):0}let R=!1,z=!1;this.allocateTextureUnit=function D(){const t=M;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),M+=1,t},this.resetTextureUnits=function B(){M=0},this.setTexture2D=E,this.setTexture2DArray=function H(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?P(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function F(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?P(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))},this.setTextureCube=T,this.setupRenderTarget=function V(e){const r=i.get(e),l=i.get(e.texture);e.addEventListener("dispose",S),l.__webglTexture=t.createTexture(),a.memory.textures++;const c=!0===e.isWebGLCubeRenderTarget,u=!0===e.isWebGLMultisampleRenderTarget,h=_(e)||s;if(!s||e.texture.format!==QIt||e.texture.type!==KIt&&e.texture.type!==ZIt||(e.texture.format=tOt,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.")),c){r.__webglFramebuffer=[];for(let e=0;e<6;e++)r.__webglFramebuffer[e]=t.createFramebuffer()}else if(r.__webglFramebuffer=t.createFramebuffer(),u)if(s){r.__webglMultisampledFramebuffer=t.createFramebuffer(),r.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,r.__webglColorRenderbuffer);const n=o.convert(e.texture.format),i=o.convert(e.texture.type),a=b(e.texture.internalFormat,n,i),s=O(e);t.renderbufferStorageMultisample(36161,s,a,e.width,e.height),t.bindFramebuffer(36160,r.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,r.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(r.__webglDepthRenderbuffer=t.createRenderbuffer(),I(r.__webglDepthRenderbuffer,e,!0)),t.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(c){n.bindTexture(34067,l.__webglTexture),k(34067,e.texture,h);for(let t=0;t<6;t++)N(r.__webglFramebuffer[t],e,36064,34069+t);y(e.texture,h)&&v(34067,e.texture,e.width,e.height),n.bindTexture(34067,null)}else n.bindTexture(3553,l.__webglTexture),k(3553,e.texture,h),N(r.__webglFramebuffer,e,36064,3553),y(e.texture,h)&&v(3553,e.texture,e.width,e.height),n.bindTexture(3553,null);e.depthBuffer&&(function d(e){const n=i.get(e),r=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(r)throw new Error("target.depthTexture not supported in Cube render targets");!(function o(e,n){if(n&&n.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,e),!n.depthTexture||!n.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");i.get(n.depthTexture).__webglTexture&&n.depthTexture.image.width===n.width&&n.depthTexture.image.height===n.height||(n.depthTexture.image.width=n.width,n.depthTexture.image.height=n.height,n.depthTexture.needsUpdate=!0),E(n.depthTexture,0);const r=i.get(n.depthTexture).__webglTexture;if(n.depthTexture.format===eOt)t.framebufferTexture2D(36160,36096,3553,r,0);else{if(n.depthTexture.format!==nOt)throw new Error("Unknown depthTexture format");t.framebufferTexture2D(36160,33306,3553,r,0)}})(n.__webglFramebuffer,e)}else if(r){n.__webglDepthbuffer=[];for(let i=0;i<6;i++)t.bindFramebuffer(36160,n.__webglFramebuffer[i]),n.__webglDepthbuffer[i]=t.createRenderbuffer(),I(n.__webglDepthbuffer[i],e,!1)}else t.bindFramebuffer(36160,n.__webglFramebuffer),n.__webglDepthbuffer=t.createRenderbuffer(),I(n.__webglDepthbuffer,e,!1);t.bindFramebuffer(36160,null)})(e)},this.updateRenderTargetMipmap=function U(t){const e=t.texture;if(y(e,_(t)||s)){const r=t.isWebGLCubeRenderTarget?34067:3553,o=i.get(e).__webglTexture;n.bindTexture(r,o),v(r,e,t.width,t.height),n.bindTexture(r,null)}},this.updateMultisampleRenderTarget=function j(e){if(e.isWebGLMultisampleRenderTarget)if(s){const n=i.get(e);t.bindFramebuffer(36008,n.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,n.__webglFramebuffer);const r=e.width,o=e.height;let a=16384;e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024),t.blitFramebuffer(0,0,r,o,0,0,r,o,a,9728),t.bindFramebuffer(36160,n.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")},this.safeSetTexture2D=function G(t,e){t&&t.isWebGLRenderTarget&&(!1===R&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),R=!0),t=t.texture),E(t,e)},this.safeSetTextureCube=function W(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===z&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),z=!0),t=t.texture),T(t,e)}}function wHt(t,e,n){const i=n.isWebGL2;return{convert:function r(t){let n;if(t===YIt)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===XIt)return 5123;if(1013===t)return 5124;if(t===$It)return 5125;if(t===KIt)return 5126;if(t===ZIt)return i?5131:(n=e.get("OES_texture_half_float"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===QIt)return 6407;if(t===tOt)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===eOt)return 6402;if(t===nOt)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(t===iOt||t===rOt||t===oOt||t===aOt){if(n=e.get("WEBGL_compressed_texture_s3tc"),null===n)return null;if(t===iOt)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===rOt)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===oOt)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===aOt)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(t===sOt||t===lOt||t===cOt||t===uOt){if(n=e.get("WEBGL_compressed_texture_pvrtc"),null===n)return null;if(t===sOt)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===lOt)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===cOt)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===uOt)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get("WEBGL_compressed_texture_etc1"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((t===hOt||t===dOt)&&(n=e.get("WEBGL_compressed_texture_etc"),null!==n)){if(t===hOt)return n.COMPRESSED_RGB8_ETC2;if(t===dOt)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get("WEBGL_compressed_texture_astc"),null!==n?t:null):36492===t?(n=e.get("EXT_texture_compression_bptc"),null!==n?t:null):t===JIt?i?34042:(n=e.get("WEBGL_depth_texture"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}function SHt(t=[]){pDt.call(this),this.cameras=t}function MHt(){WRt.call(this),this.type="Group"}function EHt(){this._targetRay=null,this._grip=null,this._hand=null}function THt(t,e){const n=this;let i=null,r=1,o=null,a="local-floor",s=null;const l=[],c=new Map,u=new pDt;u.layers.enable(1),u.viewport=new jOt;const h=new pDt;h.layers.enable(2),h.viewport=new jOt;const d=[u,h],p=new SHt;p.layers.enable(1),p.layers.enable(2);let f=null,m=null;function g(t){const e=c.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function _(){c.forEach((function(t,e){t.disconnect(e)})),c.clear(),f=null,m=null,t.setFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),S.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}function y(t){const e=i.inputSources;for(let t=0;t<l.length;t++)c.set(e[t],l[t]);for(let e=0;e<t.removed.length;e++){const n=t.removed[e],i=c.get(n);i&&(i.dispatchEvent({type:"disconnected",data:n}),c.delete(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e],i=c.get(n);i&&i.dispatchEvent({type:"connected",data:n})}}this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=l[t];return void 0===e&&(e=new EHt,l[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=l[t];return void 0===e&&(e=new EHt,l[t]=e),e.getGripSpace()},this.getHand=function(t){let e=l[t];return void 0===e&&(e=new EHt,l[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return o},this.getSession=function(){return i},this.setSession=async function(t){if(i=t,null!==i){i.addEventListener("select",g),i.addEventListener("selectstart",g),i.addEventListener("selectend",g),i.addEventListener("squeeze",g),i.addEventListener("squeezestart",g),i.addEventListener("squeezeend",g),i.addEventListener("end",_),i.addEventListener("inputsourceschange",y);const t=e.getContextAttributes();!0!==t.xrCompatible&&await e.makeXRCompatible();const s=new XRWebGLLayer(i,e,{antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:r});i.updateRenderState({baseLayer:s}),o=await i.requestReferenceSpace(a),S.setContext(i),S.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};const v=new qOt,b=new qOt;function x(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.getCamera=function(t){p.near=h.near=u.near=t.near,p.far=h.far=u.far=t.far,f===p.near&&m===p.far||(i.updateRenderState({depthNear:p.near,depthFar:p.far}),f=p.near,m=p.far);const e=t.parent,n=p.cameras;x(p,e);for(let t=0;t<n.length;t++)x(n[t],e);t.matrixWorld.copy(p.matrixWorld),t.matrix.copy(p.matrix),t.matrix.decompose(t.position,t.quaternion,t.scale);const r=t.children;for(let t=0,e=r.length;t<e;t++)r[t].updateMatrixWorld(!0);return 2===n.length?(function o(t,e,n){v.setFromMatrixPosition(e.matrixWorld),b.setFromMatrixPosition(n.matrixWorld);const i=v.distanceTo(b),r=e.projectionMatrix.elements,o=n.projectionMatrix.elements,a=r[14]/(r[10]-1),s=r[14]/(r[10]+1),l=(r[9]+1)/r[5],c=(r[9]-1)/r[5],u=(r[8]-1)/r[0],h=(o[8]+1)/o[0],d=a*u,p=a*h,f=i/(-u+h),m=f*-u;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(f),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+f,_=s+f;t.projectionMatrix.makePerspective(d-m,p+(i-m),l*s/_*g,c*s/_*g,g,_)})(p,u,h):p.projectionMatrix.copy(u.projectionMatrix),p};let w=null;const S=new wDt;S.setAnimationLoop((function M(e,n){if(s=n.getViewerPose(o),null!==s){const e=s.views,n=i.renderState.baseLayer;t.setFramebuffer(n.framebuffer);let r=!1;e.length!==p.cameras.length&&(p.cameras.length=0,r=!0);for(let t=0;t<e.length;t++){const i=e[t],o=n.getViewport(i),a=d[t];a.matrix.fromArray(i.transform.matrix),a.projectionMatrix.fromArray(i.projectionMatrix),a.viewport.set(o.x,o.y,o.width,o.height),0===t&&p.matrix.copy(a.matrix),!0===r&&p.cameras.push(a)}}const r=i.inputSources;for(let t=0;t<l.length;t++)l[t].update(r[t],n,o);w&&w(e,n)})),this.setAnimationLoop=function(t){w=t},this.dispose=function(){}}function CHt(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap);const i=t.get(n).envMap;if(i){e.envMap.value=i,e.flipEnvMap.value=i.isCubeTexture&&i._needsFlipEnvMap?-1:1,e.reflectivity.value=n.reflectivity,e.refractionRatio.value=n.refractionRatio;const r=t.get(i).__maxMipLevel;void 0!==r&&(e.maxMipLevel.value=r)}let r,o;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?r=n.map:n.specularMap?r=n.specularMap:n.displacementMap?r=n.displacementMap:n.normalMap?r=n.normalMap:n.bumpMap?r=n.bumpMap:n.roughnessMap?r=n.roughnessMap:n.metalnessMap?r=n.metalnessMap:n.alphaMap?r=n.alphaMap:n.emissiveMap?r=n.emissiveMap:n.clearcoatMap?r=n.clearcoatMap:n.clearcoatNormalMap?r=n.clearcoatNormalMap:n.clearcoatRoughnessMap&&(r=n.clearcoatRoughnessMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),e.uvTransform.value.copy(r.matrix)),n.aoMap?o=n.aoMap:n.lightMap&&(o=n.lightMap),void 0!==o&&(o.isWebGLRenderTarget&&(o=o.texture),!0===o.matrixAutoUpdate&&o.updateMatrix(),e.uv2Transform.value.copy(o.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias),t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function i(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function r(t,i,o,a){i.isMeshBasicMaterial?e(t,i):i.isMeshLambertMaterial?(e(t,i),(function s(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)})(t,i)):i.isMeshToonMaterial?(e(t,i),(function l(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,i)):i.isMeshPhongMaterial?(e(t,i),(function c(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,i)):i.isMeshStandardMaterial?(e(t,i),i.isMeshPhysicalMaterial?(function u(t,e){n(t,e),t.reflectivity.value=e.reflectivity,t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&t.sheen.value.copy(e.sheen),e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap),e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate()),t.transmission.value=e.transmission,e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap)})(t,i):n(t,i)):i.isMeshMatcapMaterial?(e(t,i),(function h(t,e){e.matcap&&(t.matcap.value=e.matcap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,i)):i.isMeshDepthMaterial?(e(t,i),(function d(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,i)):i.isMeshDistanceMaterial?(e(t,i),(function p(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance})(t,i)):i.isMeshNormalMaterial?(e(t,i),(function f(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,i)):i.isLineBasicMaterial?((function m(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity})(t,i),i.isLineDashedMaterial&&(function g(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale})(t,i)):i.isPointsMaterial?(function _(t,e,n,i){let r;t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map),e.alphaMap&&(t.alphaMap.value=e.alphaMap),e.map?r=e.map:e.alphaMap&&(r=e.alphaMap),void 0!==r&&(!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix))})(t,i,o,a):i.isSpriteMaterial?(function y(t,e){let n;t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map),e.alphaMap&&(t.alphaMap.value=e.alphaMap),e.map?n=e.map:e.alphaMap&&(n=e.alphaMap),void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))})(t,i):i.isShadowMaterial?(t.color.value.copy(i.color),t.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function AHt(t){const e=void 0!==(t=t||{}).canvas?t.canvas:(function n(){const t=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return t.style.display="block",t})(),i=void 0!==t.context?t.context:null,r=void 0!==t.alpha&&t.alpha,o=void 0===t.depth||t.depth,a=void 0===t.stencil||t.stencil,s=void 0!==t.antialias&&t.antialias,l=void 0===t.premultipliedAlpha||t.premultipliedAlpha,c=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,u=void 0!==t.powerPreference?t.powerPreference:"default",h=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let d=null,p=null;const f=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=xOt,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1,this.maxMorphTargets=8,this.maxMorphNormals=4;const m=this;let g=!1,_=null,y=0,v=0,b=null,x=null,w=-1,S=null;const M=new jOt,E=new jOt;let T=null,C=e.width,A=e.height,k=1,L=null,P=null;const N=new jOt(0,0,C,A),I=new jOt(0,0,C,A);let O=!1;const R=new xDt;let z=!1,D=!1;const B=new bRt,H=new qOt,F={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function V(){return null===b?k:1}let U,j,G,W,q,Y,X,$,K,Z,J,Q,tt,et,nt,it,rt,ot,at,st,lt,ct=i;function ut(t,n){for(let i=0;i<t.length;i++){const r=e.getContext(t[i],n);if(null!==r)return r}return null}try{const t={alpha:r,depth:o,stencil:a,antialias:s,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:u,failIfMajorPerformanceCaveat:h};if(e.addEventListener("webglcontextlost",ft,!1),e.addEventListener("webglcontextrestored",mt,!1),null===ct){const e=["webgl2","webgl","experimental-webgl"];if(!0===m.isWebGL1Renderer&&e.shift(),ct=ut(e,t),null===ct)throw ut(e)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}void 0===ct.getShaderPrecisionFormat&&(ct.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw console.error("THREE.WebGLRenderer: "+t.message),t}function ht(){U=new ODt(ct),j=new PDt(ct,U,t),U.init(j),st=new wHt(ct,U,j),G=new bHt(ct,U,j),G.scissor(E.copy(I).multiplyScalar(k).floor()),G.viewport(M.copy(N).multiplyScalar(k).floor()),W=new DDt(ct),q=new aHt,Y=new xHt(ct,U,G,q,j,st,W),X=new IDt(m),$=new SDt(ct,j),lt=new kDt(ct,U,$,j),K=new RDt(ct,$,W,lt),Z=new VDt(ct,K,$,W),rt=new FDt(ct),nt=new NDt(q),J=new oHt(m,X,U,j,lt,nt),Q=new CHt(q),tt=new uHt(q),et=new gHt(U,j),it=new ADt(m,X,G,Z,l),ot=new LDt(ct,U,W,j),at=new zDt(ct,U,W,j),W.programs=J.programs,m.capabilities=j,m.extensions=U,m.properties=q,m.renderLists=tt,m.state=G,m.info=W}ht();const dt=new THt(m,ct);this.xr=dt;const pt=new vHt(m,Z,j.maxTextureSize);function ft(t){t.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),g=!0}function mt(){console.log("THREE.WebGLRenderer: Context Restored."),g=!1,ht()}function gt(t){const e=t.target;e.removeEventListener("dispose",gt),(function n(t){_t(t),q.remove(t)})(e)}function _t(t){const e=q.get(t).program;void 0!==e&&J.releaseProgram(e)}this.shadowMap=pt,this.getContext=function(){return ct},this.getContextAttributes=function(){return ct.getContextAttributes()},this.forceContextLoss=function(){const t=U.get("WEBGL_lose_context");t&&t.loseContext()},this.forceContextRestore=function(){const t=U.get("WEBGL_lose_context");t&&t.restoreContext()},this.getPixelRatio=function(){return k},this.setPixelRatio=function(t){void 0!==t&&(k=t,this.setSize(C,A,!1))},this.getSize=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),t=new zOt),t.set(C,A)},this.setSize=function(t,n,i){dt.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(C=t,A=n,e.width=Math.floor(t*k),e.height=Math.floor(n*k),!1!==i&&(e.style.width=t+"px",e.style.height=n+"px"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),t=new zOt),t.set(C*k,A*k).floor()},this.setDrawingBufferSize=function(t,n,i){C=t,A=n,k=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),t=new jOt),t.copy(M)},this.getViewport=function(t){return t.copy(N)},this.setViewport=function(t,e,n,i){t.isVector4?N.set(t.x,t.y,t.z,t.w):N.set(t,e,n,i),G.viewport(M.copy(N).multiplyScalar(k).floor())},this.getScissor=function(t){return t.copy(I)},this.setScissor=function(t,e,n,i){t.isVector4?I.set(t.x,t.y,t.z,t.w):I.set(t,e,n,i),G.scissor(E.copy(I).multiplyScalar(k).floor())},this.getScissorTest=function(){return O},this.setScissorTest=function(t){G.setScissorTest(O=t)},this.setOpaqueSort=function(t){L=t},this.setTransparentSort=function(t){P=t},this.getClearColor=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getClearColor() now requires a Color as an argument"),t=new pzt),t.copy(it.getClearColor())},this.setClearColor=function(){it.setClearColor.apply(it,arguments)},this.getClearAlpha=function(){return it.getClearAlpha()},this.setClearAlpha=function(){it.setClearAlpha.apply(it,arguments)},this.clear=function(t,e,n){let i=0;(void 0===t||t)&&(i|=16384),(void 0===e||e)&&(i|=256),(void 0===n||n)&&(i|=1024),ct.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",ft,!1),e.removeEventListener("webglcontextrestored",mt,!1),tt.dispose(),et.dispose(),q.dispose(),X.dispose(),Z.dispose(),lt.dispose(),dt.dispose(),vt.stop()},this.renderBufferImmediate=function(t,e){lt.initAttributes();const n=q.get(t);t.hasPositions&&!n.position&&(n.position=ct.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=ct.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=ct.createBuffer()),t.hasColors&&!n.color&&(n.color=ct.createBuffer());const i=e.getAttributes();t.hasPositions&&(ct.bindBuffer(34962,n.position),ct.bufferData(34962,t.positionArray,35048),lt.enableAttribute(i.position),ct.vertexAttribPointer(i.position,3,5126,!1,0,0)),t.hasNormals&&(ct.bindBuffer(34962,n.normal),ct.bufferData(34962,t.normalArray,35048),lt.enableAttribute(i.normal),ct.vertexAttribPointer(i.normal,3,5126,!1,0,0)),t.hasUvs&&(ct.bindBuffer(34962,n.uv),ct.bufferData(34962,t.uvArray,35048),lt.enableAttribute(i.uv),ct.vertexAttribPointer(i.uv,2,5126,!1,0,0)),t.hasColors&&(ct.bindBuffer(34962,n.color),ct.bufferData(34962,t.colorArray,35048),lt.enableAttribute(i.color),ct.vertexAttribPointer(i.color,3,5126,!1,0,0)),lt.disableUnusedAttributes(),ct.drawArrays(4,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,i,r,o){null===e&&(e=F);const a=r.isMesh&&r.matrixWorld.determinant()<0,s=Mt(t,e,i,r);G.setMaterial(i,a);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let u,h=1;!0===i.wireframe&&(l=K.getWireframeAttribute(n),h=2),(i.morphTargets||i.morphNormals)&&rt.update(r,n,i,s),lt.setup(r,i,s,n,l);let d=ot;null!==l&&(u=$.get(l),d=at,d.setIndex(u));const p=null!==l?l.count:c.count,f=n.drawRange.start*h,m=n.drawRange.count*h,g=null!==o?o.start*h:0,_=null!==o?o.count*h:1/0,y=Math.max(f,g),v=Math.min(p,f+m,g+_)-1,b=Math.max(0,v-y+1);if(0!==b){if(r.isMesh)!0===i.wireframe?(G.setLineWidth(i.wireframeLinewidth*V()),d.setMode(1)):d.setMode(4);else if(r.isLine){let t=i.linewidth;void 0===t&&(t=1),G.setLineWidth(t*V()),d.setMode(r.isLineSegments?1:r.isLineLoop?2:3)}else r.isPoints?d.setMode(0):r.isSprite&&d.setMode(4);if(r.isInstancedMesh)d.renderInstances(y,b,r.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(y,b,t)}else d.render(y,b)}},this.compile=function(t,e){p=et.get(t),p.init(),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(p.pushLight(t),t.castShadow&&p.pushShadow(t))})),p.setupLights();const n=new WeakMap;t.traverse((function(e){const i=e.material;if(i)if(Array.isArray(i))for(let r=0;r<i.length;r++){const o=i[r];!1===n.has(o)&&(St(o,t,e),n.set(o))}else!1===n.has(i)&&(St(i,t,e),n.set(i))}))};let yt=null;const vt=new wDt;function bt(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)p.pushLight(t),t.castShadow&&p.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||R.intersectsSprite(t)){i&&H.setFromMatrixPosition(t.matrixWorld).applyMatrix4(B);const e=Z.update(t),r=t.material;r.visible&&d.push(t,e,r,n,H.z,null)}}else if(t.isImmediateRenderObject)i&&H.setFromMatrixPosition(t.matrixWorld).applyMatrix4(B),d.push(t,null,t.material,n,H.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==W.render.frame&&(t.skeleton.update(),t.skeleton.frame=W.render.frame),!t.frustumCulled||R.intersectsObject(t))){i&&H.setFromMatrixPosition(t.matrixWorld).applyMatrix4(B);const e=Z.update(t),r=t.material;if(Array.isArray(r)){const i=e.groups;for(let o=0,a=i.length;o<a;o++){const a=i[o],s=r[a.materialIndex];s&&s.visible&&d.push(t,e,s,n,H.z,a)}}else r.visible&&d.push(t,e,r,n,H.z,null)}const r=t.children;for(let t=0,o=r.length;t<o;t++)bt(r[t],e,n,i)}function xt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,o=t.length;r<o;r++){const o=t[r],a=o.object,s=o.geometry,l=null===i?o.material:i,c=o.group;if(n.isArrayCamera){const t=n.cameras;for(let n=0,i=t.length;n<i;n++){const i=t[n];a.layers.test(i.layers)&&(G.viewport(M.copy(i.viewport)),p.setupLightsView(i),wt(a,e,i,s,l,c))}}else wt(a,e,n,s,l,c)}}function wt(t,e,n,i,r,o){if(t.onBeforeRender(m,e,n,i,r,o),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),t.isImmediateRenderObject){const i=Mt(n,e,r,t);G.setMaterial(r),lt.reset(),(function a(t,e){t.render((function(t){m.renderBufferImmediate(t,e)}))})(t,i)}else m.renderBufferDirect(n,e,i,r,t,o);t.onAfterRender(m,e,n,i,r,o)}function St(t,e,n){!0!==e.isScene&&(e=F);const i=q.get(t),r=p.state.lights,o=r.state.version,a=J.getParameters(t,r.state,p.state.shadowsArray,e,n),s=J.getProgramCacheKey(a);let l=i.program,c=!0;if(i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=X.get(t.envMap||i.environment),void 0===l)t.addEventListener("dispose",gt);else if(l.cacheKey!==s)_t(t);else if(i.lightsStateVersion!==o)c=!1;else{if(void 0!==a.shaderID)return;c=!1}c&&(a.uniforms=J.getUniforms(t),t.onBeforeCompile(a,m),l=J.acquireProgram(a,s),i.program=l,i.uniforms=a.uniforms,i.outputEncoding=a.outputEncoding);const u=i.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(i.numClippingPlanes=nt.numPlanes,i.numIntersection=nt.numIntersection,u.clippingPlanes=nt.uniform),i.needsLights=(function h(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights})(t),i.lightsStateVersion=o,i.needsLights&&(u.ambientLightColor.value=r.state.ambient,u.lightProbe.value=r.state.probe,u.directionalLights.value=r.state.directional,u.directionalLightShadows.value=r.state.directionalShadow,u.spotLights.value=r.state.spot,u.spotLightShadows.value=r.state.spotShadow,u.rectAreaLights.value=r.state.rectArea,u.ltc_1.value=r.state.rectAreaLTC1,u.ltc_2.value=r.state.rectAreaLTC2,u.pointLights.value=r.state.point,u.pointLightShadows.value=r.state.pointShadow,u.hemisphereLights.value=r.state.hemi,u.directionalShadowMap.value=r.state.directionalShadowMap,u.directionalShadowMatrix.value=r.state.directionalShadowMatrix,u.spotShadowMap.value=r.state.spotShadowMap,u.spotShadowMatrix.value=r.state.spotShadowMatrix,u.pointShadowMap.value=r.state.pointShadowMap,u.pointShadowMatrix.value=r.state.pointShadowMatrix);const d=i.program.getUniforms(),f=BBt.seqWithValue(d.seq,u);i.uniformsList=f}function Mt(t,e,n,i){!0!==e.isScene&&(e=F),Y.resetTextureUnits();const r=e.fog,o=n.isMeshStandardMaterial?e.environment:null,a=null===b?m.outputEncoding:b.texture.encoding,s=X.get(n.envMap||o),l=q.get(n),c=p.state.lights;!0!==z||!0!==D&&t===S||nt.setState(n,t,t===S&&n.id===w),n.version===l.__version?n.fog&&l.fog!==r||l.environment!==o||l.needsLights&&l.lightsStateVersion!==c.state.version?St(n,e,i):void 0===l.numClippingPlanes||l.numClippingPlanes===nt.numPlanes&&l.numIntersection===nt.numIntersection?(l.outputEncoding!==a||l.envMap!==s)&&St(n,e,i):St(n,e,i):(St(n,e,i),l.__version=n.version);let u=!1,h=!1,d=!1;const f=l.program,g=f.getUniforms(),_=l.uniforms;if(G.useProgram(f.program)&&(u=!0,h=!0,d=!0),n.id!==w&&(w=n.id,h=!0),u||S!==t){if(g.setValue(ct,"projectionMatrix",t.projectionMatrix),j.logarithmicDepthBuffer&&g.setValue(ct,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),S!==t&&(S=t,h=!0,d=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshStandardMaterial||n.envMap){const e=g.map.cameraPosition;void 0!==e&&e.setValue(ct,H.setFromMatrixPosition(t.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial)&&g.setValue(ct,"isOrthographic",!0===t.isOrthographicCamera),(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.isShadowMaterial||n.skinning)&&g.setValue(ct,"viewMatrix",t.matrixWorldInverse)}if(n.skinning){g.setOptional(ct,i,"bindMatrix"),g.setOptional(ct,i,"bindMatrixInverse");const t=i.skeleton;if(t){const e=t.bones;if(j.floatVertexTextures){if(null===t.boneTexture){let n=Math.sqrt(4*e.length);n=ROt.ceilPowerOfTwo(n),n=Math.max(n,4);const i=new Float32Array(n*n*4);i.set(t.boneMatrices);const r=new yDt(i,n,n,tOt,KIt);t.boneMatrices=i,t.boneTexture=r,t.boneTextureSize=n}g.setValue(ct,"boneTexture",t.boneTexture,Y),g.setValue(ct,"boneTextureSize",t.boneTextureSize)}else g.setOptional(ct,t,"boneMatrices")}}return(h||l.receiveShadow!==i.receiveShadow)&&(l.receiveShadow=i.receiveShadow,g.setValue(ct,"receiveShadow",i.receiveShadow)),h&&(g.setValue(ct,"toneMappingExposure",m.toneMappingExposure),l.needsLights&&(function y(t,e){t.ambientLightColor.needsUpdate=e,t.lightProbe.needsUpdate=e,t.directionalLights.needsUpdate=e,t.directionalLightShadows.needsUpdate=e,t.pointLights.needsUpdate=e,t.pointLightShadows.needsUpdate=e,t.spotLights.needsUpdate=e,t.spotLightShadows.needsUpdate=e,t.rectAreaLights.needsUpdate=e,t.hemisphereLights.needsUpdate=e})(_,d),r&&n.fog&&Q.refreshFogUniforms(_,r),Q.refreshMaterialUniforms(_,n,k,A),BBt.upload(ct,l.uniformsList,_,Y)),n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&(BBt.upload(ct,l.uniformsList,_,Y),n.uniformsNeedUpdate=!1),n.isSpriteMaterial&&g.setValue(ct,"center",i.center),g.setValue(ct,"modelViewMatrix",i.modelViewMatrix),g.setValue(ct,"normalMatrix",i.normalMatrix),g.setValue(ct,"modelMatrix",i.matrixWorld),f}vt.setAnimationLoop((function Et(t){dt.isPresenting||yt&&yt(t)})),"undefined"!=typeof window&&vt.setContext(window),this.setAnimationLoop=function(t){yt=t,dt.setAnimationLoop(t),null===t?vt.stop():vt.start()},this.render=function(t,e){let n,i;if(void 0!==arguments[2]&&(console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead."),n=arguments[2]),void 0!==arguments[3]&&(console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead."),i=arguments[3]),void 0!==e&&!0!==e.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===g)return;lt.resetDefaultState(),w=-1,S=null,!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===dt.enabled&&!0===dt.isPresenting&&(e=dt.getCamera(e)),!0===t.isScene&&t.onBeforeRender(m,t,e,n||b),p=et.get(t,f.length),p.init(),f.push(p),B.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),R.setFromProjectionMatrix(B),D=this.localClippingEnabled,z=nt.init(this.clippingPlanes,D,e),d=tt.get(t,e),d.init(),bt(t,e,0,m.sortObjects),d.finish(),!0===m.sortObjects&&d.sort(L,P),!0===z&&nt.beginShadows();const r=p.state.shadowsArray;pt.render(r,t,e),p.setupLights(),p.setupLightsView(e),!0===z&&nt.endShadows(),!0===this.info.autoReset&&this.info.reset(),void 0!==n&&this.setRenderTarget(n),it.render(d,t,e,i);const o=d.opaque,a=d.transparent;o.length>0&&xt(o,t,e),a.length>0&&xt(a,t,e),!0===t.isScene&&t.onAfterRender(m,t,e),null!==b&&(Y.updateRenderTargetMipmap(b),Y.updateMultisampleRenderTarget(b)),G.buffers.depth.setTest(!0),G.buffers.depth.setMask(!0),G.buffers.color.setMask(!0),G.setPolygonOffset(!1),f.pop(),p=f.length>0?f[f.length-1]:null,d=null},this.setFramebuffer=function(t){_!==t&&null===b&&ct.bindFramebuffer(36160,t),_=t},this.getActiveCubeFace=function(){return y},this.getActiveMipmapLevel=function(){return v},this.getRenderList=function(){return d},this.setRenderList=function(t){d=t},this.getRenderTarget=function(){return b},this.setRenderTarget=function(t,e=0,n=0){b=t,y=e,v=n,t&&void 0===q.get(t).__webglFramebuffer&&Y.setupRenderTarget(t);let i=_,r=!1;if(t){const n=q.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(i=n[e],r=!0):i=t.isWebGLMultisampleRenderTarget?q.get(t).__webglMultisampledFramebuffer:n,M.copy(t.viewport),E.copy(t.scissor),T=t.scissorTest}else M.copy(N).multiplyScalar(k).floor(),E.copy(I).multiplyScalar(k).floor(),T=O;if(x!==i&&(ct.bindFramebuffer(36160,i),x=i),G.viewport(M),G.scissor(E),G.setScissorTest(T),r){const i=q.get(t.texture);ct.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}},this.readRenderTargetPixels=function(t,e,n,i,r,o,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let s=q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(s=s[a]),s){let a=!1;s!==x&&(ct.bindFramebuffer(36160,s),a=!0);try{const s=t.texture,l=s.format,c=s.type;if(l!==tOt&&st.convert(l)!==ct.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const u=c===ZIt&&(U.has("EXT_color_buffer_half_float")||j.isWebGL2&&U.has("EXT_color_buffer_float"));if(!(c===YIt||st.convert(c)===ct.getParameter(35738)||c===KIt&&(j.isWebGL2||U.has("OES_texture_float")||U.has("WEBGL_color_buffer_float"))||u))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===ct.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&ct.readPixels(e,n,i,r,st.convert(l),st.convert(c),o):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{a&&ct.bindFramebuffer(36160,x)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),o=Math.floor(e.image.height*i),a=st.convert(e.format);Y.setTexture2D(e,0),ct.copyTexImage2D(3553,n,a,t.x,t.y,r,o,0),G.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,o=e.image.height,a=st.convert(n.format),s=st.convert(n.type);Y.setTexture2D(n,0),ct.pixelStorei(37440,n.flipY),ct.pixelStorei(37441,n.premultiplyAlpha),ct.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?ct.texSubImage2D(3553,i,t.x,t.y,r,o,a,s,e.image.data):e.isCompressedTexture?ct.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):ct.texSubImage2D(3553,i,t.x,t.y,a,s,e.image),0===i&&n.generateMipmaps&&ct.generateMipmap(3553),G.unbindTexture()},this.initTexture=function(t){Y.setTexture2D(t,0),G.unbindTexture()},this.resetState=function(){G.reset(),lt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function kHt(t){AHt.call(this,t)}(_Ht.prototype=Object.create(gzt.prototype)).constructor=_Ht,_Ht.prototype.isMeshDepthMaterial=!0,_Ht.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.depthPacking=t.depthPacking,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this},(yHt.prototype=Object.create(gzt.prototype)).constructor=yHt,yHt.prototype.isMeshDistanceMaterial=!0,yHt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this},SHt.prototype=Object.assign(Object.create(pDt.prototype),{constructor:SHt,isArrayCamera:!0}),MHt.prototype=Object.assign(Object.create(WRt.prototype),{constructor:MHt,isGroup:!0}),Object.assign(EHt.prototype,{constructor:EHt,getHandSpace:function(){return null===this._hand&&(this._hand=new MHt,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},getTargetRaySpace:function(){return null===this._targetRay&&(this._targetRay=new MHt,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1),this._targetRay},getGripSpace:function(){return null===this._grip&&(this._grip=new MHt,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1),this._grip},dispatchEvent:function(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this},disconnect:function(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this},update:function(t,e,n){let i=null,r=null,o=null;const a=this._targetRay,s=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState)if(l&&t.hand){o=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new MHt;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const r=l.joints[i.jointName];null!==t&&(r.matrix.fromArray(t.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale),r.jointRadius=t.radius),r.visible=null!==t}const i=l.joints["index-finger-tip"].position.distanceTo(l.joints["thumb-tip"].position),r=.02,a=.005;l.inputState.pinching&&i>r+a?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&i<=r-a&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==a&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale))),null!==s&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(s.matrix.fromArray(r.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale)));return null!==a&&(a.visible=null!==i),null!==s&&(s.visible=null!==r),null!==l&&(l.visible=null!==o),this}}),Object.assign(THt.prototype,NOt.prototype),kHt.prototype=Object.assign(Object.create(AHt.prototype),{constructor:kHt,isWebGL1Renderer:!0});class LHt{constructor(t,e){Object.defineProperty(this,"isFogExp2",{value:!0}),this.name="",this.color=new pzt(t),this.density=void 0!==e?e:25e-5}clone(){return new LHt(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class PHt{constructor(t,e,n){Object.defineProperty(this,"isFog",{value:!0}),this.name="",this.color=new pzt(t),this.near=void 0!==e?e:1,this.far=void 0!==n?n:1e3}clone(){return new PHt(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class NHt extends WRt{constructor(){super(),Object.defineProperty(this,"isScene",{value:!0}),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.background&&(e.object.background=this.background.toJSON(t)),null!==this.environment&&(e.object.environment=this.environment.toJSON(t)),null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}function IHt(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=kOt,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ROt.generateUUID()}Object.defineProperty(IHt.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(IHt.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this},copyAt:function(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[n+i];return this},set:function(t,e=0){return this.array.set(t,e),this},clone:function(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ROt.generateUUID()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new IHt(new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),this.stride);return e.setUsage(this.usage),e},onUpload:function(t){return this.onUploadCallback=t,this},toJSON:function(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ROt.generateUUID()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}});const OHt=new qOt;function RHt(t,e,n,i){this.name="",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===i}function zHt(t){gzt.call(this),this.type="SpriteMaterial",this.color=new pzt(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}let DHt;Object.defineProperties(RHt.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}},needsUpdate:{set:function(t){this.data.needsUpdate=t}}}),Object.assign(RHt.prototype,{isInterleavedBufferAttribute:!0,applyMatrix4:function(t){for(let e=0,n=this.data.count;e<n;e++)OHt.x=this.getX(e),OHt.y=this.getY(e),OHt.z=this.getZ(e),OHt.applyMatrix4(t),this.setXYZ(e,OHt.x,OHt.y,OHt.z);return this},setX:function(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this},setY:function(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this},setZ:function(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this},setW:function(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this},getX:function(t){return this.data.array[t*this.data.stride+this.offset]},getY:function(t){return this.data.array[t*this.data.stride+this.offset+1]},getZ:function(t){return this.data.array[t*this.data.stride+this.offset+2]},getW:function(t){return this.data.array[t*this.data.stride+this.offset+3]},setXY:function(t,e,n){return this.data.array[(t=t*this.data.stride+this.offset)+0]=e,this.data.array[t+1]=n,this},setXYZ:function(t,e,n,i){return this.data.array[(t=t*this.data.stride+this.offset)+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this},setXYZW:function(t,e,n,i,r){return this.data.array[(t=t*this.data.stride+this.offset)+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this.data.array[t+3]=r,this},clone:function(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new bzt(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new RHt(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)},toJSON:function(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}),(zHt.prototype=Object.create(gzt.prototype)).constructor=zHt,zHt.prototype.isSpriteMaterial=!0,zHt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this};const BHt=new qOt,HHt=new qOt,FHt=new qOt,VHt=new zOt,UHt=new zOt,jHt=new bRt,GHt=new qOt,WHt=new qOt,qHt=new qOt,YHt=new zOt,XHt=new zOt,$Ht=new zOt;function KHt(t){if(WRt.call(this),this.type="Sprite",void 0===DHt){DHt=new Vzt;const t=new IHt(new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),5);DHt.setIndex([0,1,2,0,2,3]),DHt.setAttribute("position",new RHt(t,3,0,!1)),DHt.setAttribute("uv",new RHt(t,2,3,!1))}this.geometry=DHt,this.material=void 0!==t?t:new zHt,this.center=new zOt(.5,.5)}function ZHt(t,e,n,i,r,o){VHt.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(UHt.x=o*VHt.x-r*VHt.y,UHt.y=r*VHt.x+o*VHt.y):UHt.copy(VHt),t.copy(e),t.x+=UHt.x,t.y+=UHt.y,t.applyMatrix4(jHt)}KHt.prototype=Object.assign(Object.create(WRt.prototype),{constructor:KHt,isSprite:!0,raycast:function(t,e){null===t.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),HHt.setFromMatrixScale(this.matrixWorld),jHt.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),FHt.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&HHt.multiplyScalar(-FHt.z);const n=this.material.rotation;let i,r;0!==n&&(r=Math.cos(n),i=Math.sin(n));const o=this.center;ZHt(GHt.set(-.5,-.5,0),FHt,o,HHt,i,r),ZHt(WHt.set(.5,-.5,0),FHt,o,HHt,i,r),ZHt(qHt.set(.5,.5,0),FHt,o,HHt,i,r),YHt.set(0,0),XHt.set(1,0),$Ht.set(1,1);let a=t.ray.intersectTriangle(GHt,WHt,qHt,!1,BHt);if(null===a&&(ZHt(WHt.set(-.5,.5,0),FHt,o,HHt,i,r),XHt.set(0,1),a=t.ray.intersectTriangle(GHt,qHt,WHt,!1,BHt),null===a))return;const s=t.ray.origin.distanceTo(BHt);s<t.near||s>t.far||e.push({distance:s,point:BHt.clone(),uv:azt.getUV(BHt,GHt,WHt,qHt,YHt,XHt,$Ht,new zOt),face:null,object:this})},copy:function(t){return WRt.prototype.copy.call(this,t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}});const JHt=new qOt,QHt=new qOt;function tFt(){WRt.call(this),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}tFt.prototype=Object.assign(Object.create(WRt.prototype),{constructor:tFt,isLOD:!0,copy:function(t){WRt.prototype.copy.call(this,t,!1);const e=t.levels;for(let t=0,n=e.length;t<n;t++){const n=e[t];this.addLevel(n.object.clone(),n.distance)}return this.autoUpdate=t.autoUpdate,this},addLevel:function(t,e=0){e=Math.abs(e);const n=this.levels;let i;for(i=0;i<n.length&&!(e<n[i].distance);i++);return n.splice(i,0,{distance:e,object:t}),this.add(t),this},getCurrentLevel:function(){return this._currentLevel},getObjectForDistance:function(t){const e=this.levels;if(e.length>0){let n,i;for(n=1,i=e.length;n<i&&!(t<e[n].distance);n++);return e[n-1].object}return null},raycast:function(t,e){if(this.levels.length>0){JHt.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(JHt);this.getObjectForDistance(n).raycast(t,e)}},update:function(t){const e=this.levels;if(e.length>1){JHt.setFromMatrixPosition(t.matrixWorld),QHt.setFromMatrixPosition(this.matrixWorld);const n=JHt.distanceTo(QHt)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i<r&&n>=e[i].distance;i++)e[i-1].object.visible=!1,e[i].object.visible=!0;for(this._currentLevel=i-1;i<r;i++)e[i].object.visible=!1}},toJSON:function(t){const e=WRt.prototype.toJSON.call(this,t);!1===this.autoUpdate&&(e.object.autoUpdate=!1),e.object.levels=[];const n=this.levels;for(let t=0,i=n.length;t<i;t++){const i=n[t];e.object.levels.push({object:i.object.uuid,distance:i.distance})}return e}});const eFt=new qOt,nFt=new jOt,iFt=new jOt,rFt=new qOt,oFt=new bRt;function aFt(t,e){t&&t.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead."),oDt.call(this,t,e),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new bRt,this.bindMatrixInverse=new bRt}function sFt(){WRt.call(this),this.type="Bone"}aFt.prototype=Object.assign(Object.create(oDt.prototype),{constructor:aFt,isSkinnedMesh:!0,copy:function(t){return oDt.prototype.copy.call(this,t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this},bind:function(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){const t=new jOt,e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}},updateMatrixWorld:function(t){oDt.prototype.updateMatrixWorld.call(this,t),"attached"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():"detached"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},boneTransform:function(t,e){const n=this.skeleton,i=this.geometry;nFt.fromBufferAttribute(i.attributes.skinIndex,t),iFt.fromBufferAttribute(i.attributes.skinWeight,t),eFt.fromBufferAttribute(i.attributes.position,t).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const i=iFt.getComponent(t);if(0!==i){const r=nFt.getComponent(t);oFt.multiplyMatrices(n.bones[r].matrixWorld,n.boneInverses[r]),e.addScaledVector(rFt.copy(eFt).applyMatrix4(oFt),i)}}return e.applyMatrix4(this.bindMatrixInverse)}}),sFt.prototype=Object.assign(Object.create(WRt.prototype),{constructor:sFt,isBone:!0});const lFt=new bRt,cFt=new bRt;function uFt(t=[],e=[]){this.uuid=ROt.generateUUID(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.frame=-1,this.init()}Object.assign(uFt.prototype,{init:function(){const t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(16*t.length),0===e.length)this.calculateInverses();else if(t.length!==e.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new bRt)}},calculateInverses:function(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new bRt;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(e)}},pose:function(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&(e.parent&&e.parent.isBone?(e.matrix.copy(e.parent.matrixWorld).invert(),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))}},update:function(){const t=this.bones,e=this.boneInverses,n=this.boneMatrices,i=this.boneTexture;for(let i=0,r=t.length;i<r;i++)lFt.multiplyMatrices(t[i]?t[i].matrixWorld:cFt,e[i]),lFt.toArray(n,16*i);null!==i&&(i.needsUpdate=!0)},clone:function(){return new uFt(this.bones,this.boneInverses)},getBoneByName:function(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}},dispose:function(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)},fromJSON:function(t,e){this.uuid=t.uuid;for(let n=0,i=t.bones.length;n<i;n++){const i=t.bones[n];let r=e[i];void 0===r&&(console.warn("THREE.Skeleton: No bone found with UUID:",i),r=new sFt),this.bones.push(r),this.boneInverses.push((new bRt).fromArray(t.boneInverses[n]))}return this.init(),this},toJSON:function(){const t={metadata:{version:4.5,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones,n=this.boneInverses;for(let i=0,r=e.length;i<r;i++)t.bones.push(e[i].uuid),t.boneInverses.push(n[i].toArray());return t}});const hFt=new bRt,dFt=new bRt,pFt=[],fFt=new oDt;function mFt(t,e,n){oDt.call(this,t,e),this.instanceMatrix=new bzt(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}function gFt(t){gzt.call(this),this.type="LineBasicMaterial",this.color=new pzt(16777215),this.linewidth=1,this.linecap="round",this.linejoin="round",this.morphTargets=!1,this.setValues(t)}mFt.prototype=Object.assign(Object.create(oDt.prototype),{constructor:mFt,isInstancedMesh:!0,copy:function(t){return oDt.prototype.copy.call(this,t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this},getColorAt:function(t,e){e.fromArray(this.instanceColor.array,3*t)},getMatrixAt:function(t,e){e.fromArray(this.instanceMatrix.array,16*t)},raycast:function(t,e){const n=this.matrixWorld,i=this.count;if(fFt.geometry=this.geometry,fFt.material=this.material,void 0!==fFt.material)for(let r=0;r<i;r++){this.getMatrixAt(r,hFt),dFt.multiplyMatrices(n,hFt),fFt.matrixWorld=dFt,fFt.raycast(t,pFt);for(let t=0,n=pFt.length;t<n;t++){const n=pFt[t];n.instanceId=r,n.object=this,e.push(n)}pFt.length=0}},setColorAt:function(t,e){null===this.instanceColor&&(this.instanceColor=new bzt(new Float32Array(3*this.count),3)),e.toArray(this.instanceColor.array,3*t)},setMatrixAt:function(t,e){e.toArray(this.instanceMatrix.array,16*t)},updateMorphTargets:function(){},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(gFt.prototype=Object.create(gzt.prototype)).constructor=gFt,gFt.prototype.isLineBasicMaterial=!0,gFt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.morphTargets=t.morphTargets,this};const _Ft=new qOt,yFt=new qOt,vFt=new bRt,bFt=new vRt,xFt=new hRt;function wFt(t=new Vzt,e=new gFt){WRt.call(this),this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}wFt.prototype=Object.assign(Object.create(WRt.prototype),{constructor:wFt,isLine:!0,copy:function(t){return WRt.prototype.copy.call(this,t),this.material=t.material,this.geometry=t.geometry,this},computeLineDistances:function(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,i=e.count;t<i;t++)_Ft.fromBufferAttribute(e,t-1),yFt.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=_Ft.distanceTo(yFt);t.setAttribute("lineDistance",new kzt(n,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else t.isGeometry&&console.error("THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this},raycast:function(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Line.threshold;if(null===n.boundingSphere&&n.computeBoundingSphere(),xFt.copy(n.boundingSphere),xFt.applyMatrix4(i),xFt.radius+=r,!1===t.ray.intersectsSphere(xFt))return;vFt.copy(i).invert(),bFt.copy(t.ray).applyMatrix4(vFt);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),a=o*o,s=new qOt,l=new qOt,c=new qOt,u=new qOt,h=this.isLineSegments?2:1;if(n.isBufferGeometry){const i=n.index,r=n.attributes.position;if(null!==i){const n=i.array;for(let i=0,o=n.length-1;i<o;i+=h){const o=n[i+1];if(s.fromBufferAttribute(r,n[i]),l.fromBufferAttribute(r,o),bFt.distanceSqToSegment(s,l,u,c)>a)continue;u.applyMatrix4(this.matrixWorld);const h=t.ray.origin.distanceTo(u);h<t.near||h>t.far||e.push({distance:h,point:c.clone().applyMatrix4(this.matrixWorld),index:i,face:null,faceIndex:null,object:this})}}else for(let n=0,i=r.count-1;n<i;n+=h){if(s.fromBufferAttribute(r,n),l.fromBufferAttribute(r,n+1),bFt.distanceSqToSegment(s,l,u,c)>a)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);i<t.near||i>t.far||e.push({distance:i,point:c.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")},updateMorphTargets:function(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}});const SFt=new qOt,MFt=new qOt;function EFt(t,e){wFt.call(this,t,e),this.type="LineSegments"}function TFt(t,e){wFt.call(this,t,e),this.type="LineLoop"}function CFt(t){gzt.call(this),this.type="PointsMaterial",this.color=new pzt(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.setValues(t)}EFt.prototype=Object.assign(Object.create(wFt.prototype),{constructor:EFt,isLineSegments:!0,computeLineDistances:function(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t<i;t+=2)SFt.fromBufferAttribute(e,t),MFt.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+SFt.distanceTo(MFt);t.setAttribute("lineDistance",new kzt(n,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else t.isGeometry&&console.error("THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this}}),TFt.prototype=Object.assign(Object.create(wFt.prototype),{constructor:TFt,isLineLoop:!0}),(CFt.prototype=Object.create(gzt.prototype)).constructor=CFt,CFt.prototype.isPointsMaterial=!0,CFt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this};const AFt=new bRt,kFt=new vRt,LFt=new hRt,PFt=new qOt;function NFt(t=new Vzt,e=new CFt){WRt.call(this),this.type="Points",this.geometry=t,this.material=e,this.updateMorphTargets()}function IFt(t,e,n,i,r,o,a){const s=kFt.distanceSqToPoint(t);if(s<n){const n=new qOt;kFt.closestPointToPoint(t,n),n.applyMatrix4(i);const l=r.ray.origin.distanceTo(n);if(l<r.near||l>r.far)return;o.push({distance:l,distanceToRay:Math.sqrt(s),point:n,index:e,face:null,object:a})}}function OFt(t,e,n,i,r,o,a,s,l){VOt.call(this,t,e,n,i,r,o,a,s,l),this.format=void 0!==a?a:QIt,this.minFilter=void 0!==o?o:GIt,this.magFilter=void 0!==r?r:GIt,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}function RFt(t,e,n,i,r,o,a,s,l,c,u,h){VOt.call(this,null,o,a,s,l,c,i,r,u,h),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}function zFt(t,e,n,i,r,o,a,s,l){VOt.call(this,t,e,n,i,r,o,a,s,l),this.needsUpdate=!0}function DFt(t,e,n,i,r,o,a,s,l,c){if((c=void 0!==c?c:eOt)!==eOt&&c!==nOt)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===eOt&&(n=XIt),void 0===n&&c===nOt&&(n=JIt),VOt.call(this,null,i,r,o,a,s,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:VIt,this.minFilter=void 0!==s?s:VIt,this.flipY=!1,this.generateMipmaps=!1}NFt.prototype=Object.assign(Object.create(WRt.prototype),{constructor:NFt,isPoints:!0,copy:function(t){return WRt.prototype.copy.call(this,t),this.material=t.material,this.geometry=t.geometry,this},raycast:function(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Points.threshold;if(null===n.boundingSphere&&n.computeBoundingSphere(),LFt.copy(n.boundingSphere),LFt.applyMatrix4(i),LFt.radius+=r,!1===t.ray.intersectsSphere(LFt))return;AFt.copy(i).invert(),kFt.copy(t.ray).applyMatrix4(AFt);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),a=o*o;if(n.isBufferGeometry){const r=n.index,o=n.attributes.position;if(null!==r){const n=r.array;for(let r=0,s=n.length;r<s;r++){const s=n[r];PFt.fromBufferAttribute(o,s),IFt(PFt,s,a,i,t,e,this)}}else for(let n=0,r=o.count;n<r;n++)PFt.fromBufferAttribute(o,n),IFt(PFt,n,a,i,t,e,this)}else console.error("THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")},updateMorphTargets:function(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}),OFt.prototype=Object.assign(Object.create(VOt.prototype),{constructor:OFt,clone:function(){return new this.constructor(this.image).copy(this)},isVideoTexture:!0,update:function(){const t=this.image;0=="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}),(RFt.prototype=Object.create(VOt.prototype)).constructor=RFt,RFt.prototype.isCompressedTexture=!0,(zFt.prototype=Object.create(VOt.prototype)).constructor=zFt,zFt.prototype.isCanvasTexture=!0,(DFt.prototype=Object.create(VOt.prototype)).constructor=DFt,DFt.prototype.isDepthTexture=!0;class BFt extends Vzt{constructor(t=1,e=8,n=0,i=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],o=[],a=[],s=[],l=new qOt,c=new zOt;o.push(0,0,0),a.push(0,0,1),s.push(.5,.5);for(let r=0,u=3;r<=e;r++,u+=3){const h=n+r/e*i;l.x=t*Math.cos(h),l.y=t*Math.sin(h),o.push(l.x,l.y,l.z),a.push(0,0,1),c.x=(o[u]/t+1)/2,c.y=(o[u+1]/t+1)/2,s.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r),this.setAttribute("position",new kzt(o,3)),this.setAttribute("normal",new kzt(a,3)),this.setAttribute("uv",new kzt(s,2))}}class HFt extends Vzt{constructor(t=1,e=1,n=1,i=8,r=1,o=!1,a=0,s=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:o,thetaStart:a,thetaLength:s};const l=this;i=Math.floor(i),r=Math.floor(r);const c=[],u=[],h=[],d=[];let p=0;const f=[],m=n/2;let g=0;function _(n){const r=p,o=new zOt,f=new qOt;let _=0;const y=!0===n?t:e,v=!0===n?1:-1;for(let t=1;t<=i;t++)u.push(0,m*v,0),h.push(0,v,0),d.push(.5,.5),p++;const b=p;for(let t=0;t<=i;t++){const e=t/i*s+a,n=Math.cos(e),r=Math.sin(e);f.x=y*r,f.y=m*v,f.z=y*n,u.push(f.x,f.y,f.z),h.push(0,v,0),o.x=.5*n+.5,o.y=.5*r*v+.5,d.push(o.x,o.y),p++}for(let t=0;t<i;t++){const e=r+t,i=b+t;!0===n?c.push(i,i+1,e):c.push(i+1,i,e),_+=3}l.addGroup(g,_,!0===n?1:2),g+=_}!(function y(){const o=new qOt,_=new qOt;let y=0;const v=(e-t)/n;for(let l=0;l<=r;l++){const c=[],g=l/r,y=g*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i,r=e*s+a,l=Math.sin(r),f=Math.cos(r);_.x=y*l,_.y=-g*n+m,_.z=y*f,u.push(_.x,_.y,_.z),o.set(l,v,f).normalize(),h.push(o.x,o.y,o.z),d.push(e,1-g),c.push(p++)}f.push(c)}for(let t=0;t<i;t++)for(let e=0;e<r;e++){const n=f[e+1][t],i=f[e+1][t+1],r=f[e][t+1];c.push(f[e][t],n,r),c.push(n,i,r),y+=6}l.addGroup(g,y,0),g+=y})(),!1===o&&(t>0&&_(!0),e>0&&_(!1)),this.setIndex(c),this.setAttribute("position",new kzt(u,3)),this.setAttribute("normal",new kzt(h,3)),this.setAttribute("uv",new kzt(d,2))}}class FFt extends HFt{constructor(t=1,e=1,n=8,i=1,r=!1,o=0,a=2*Math.PI){super(0,t,e,n,i,r,o,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:o,thetaLength:a}}}class VFt extends Vzt{constructor(t,e,n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],o=[];function a(t,e,n,i){const r=i+1,o=[];for(let i=0;i<=r;i++){o[i]=[];const a=t.clone().lerp(n,i/r),s=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)o[i][t]=0===t&&i===r?a:a.clone().lerp(s,t/l)}for(let t=0;t<r;t++)for(let e=0;e<2*(r-t)-1;e++){const n=Math.floor(e/2);e%2==0?(s(o[t][n+1]),s(o[t+1][n]),s(o[t][n])):(s(o[t][n+1]),s(o[t+1][n+1]),s(o[t+1][n]))}}function s(t){r.push(t.x,t.y,t.z)}function l(e,n){const i=3*e;n.x=t[i+0],n.y=t[i+1],n.z=t[i+2]}function c(t,e,n,i){i<0&&1===t.x&&(o[e]=t.x-1),0===n.x&&0===n.z&&(o[e]=i/2/Math.PI+.5)}function u(t){return Math.atan2(t.z,-t.x)}!(function h(t){const n=new qOt,i=new qOt,r=new qOt;for(let o=0;o<e.length;o+=3)l(e[o+0],n),l(e[o+1],i),l(e[o+2],r),a(n,i,r,t)})(i),(function d(t){const e=new qOt;for(let n=0;n<r.length;n+=3)e.x=r[n+0],e.y=r[n+1],e.z=r[n+2],e.normalize().multiplyScalar(t),r[n+0]=e.x,r[n+1]=e.y,r[n+2]=e.z})(n),(function p(){const t=new qOt;for(let n=0;n<r.length;n+=3){t.x=r[n+0],t.y=r[n+1],t.z=r[n+2];const i=u(t)/2/Math.PI+.5,a=(e=t,Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))/Math.PI+.5);o.push(i,1-a)}var e;(function n(){const t=new qOt,e=new qOt,n=new qOt,i=new qOt,a=new zOt,s=new zOt,l=new zOt;for(let h=0,d=0;h<r.length;h+=9,d+=6){t.set(r[h+0],r[h+1],r[h+2]),e.set(r[h+3],r[h+4],r[h+5]),n.set(r[h+6],r[h+7],r[h+8]),a.set(o[d+0],o[d+1]),s.set(o[d+2],o[d+3]),l.set(o[d+4],o[d+5]),i.copy(t).add(e).add(n).divideScalar(3);const p=u(i);c(a,d+0,t,p),c(s,d+2,e,p),c(l,d+4,n,p)}})(),(function i(){for(let t=0;t<o.length;t+=6){const e=o[t+0],n=o[t+2],i=o[t+4],r=Math.max(e,n,i),a=Math.min(e,n,i);r>.9&&a<.1&&(e<.2&&(o[t+0]+=1),n<.2&&(o[t+2]+=1),i<.2&&(o[t+4]+=1))}})()})(),this.setAttribute("position",new kzt(r,3)),this.setAttribute("normal",new kzt(r.slice(),3)),this.setAttribute("uv",new kzt(o,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}}class UFt extends VFt{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}}const jFt=new qOt,GFt=new qOt,WFt=new qOt,qFt=new azt;class YFt extends Vzt{constructor(t,e){if(super(),this.type="EdgesGeometry",this.parameters={thresholdAngle:e},e=void 0!==e?e:1,!0===t.isGeometry)return void console.error("THREE.EdgesGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");const n=Math.pow(10,4),i=Math.cos(ROt.DEG2RAD*e),r=t.getIndex(),o=t.getAttribute("position"),a=r?r.count:o.count,s=[0,0,0],l=["a","b","c"],c=new Array(3),u={},h=[];for(let t=0;t<a;t+=3){r?(s[0]=r.getX(t),s[1]=r.getX(t+1),s[2]=r.getX(t+2)):(s[0]=t,s[1]=t+1,s[2]=t+2);const{a:e,b:a,c:d}=qFt;if(e.fromBufferAttribute(o,s[0]),a.fromBufferAttribute(o,s[1]),d.fromBufferAttribute(o,s[2]),qFt.getNormal(WFt),c[0]=`${Math.round(e.x*n)},${Math.round(e.y*n)},${Math.round(e.z*n)}`,c[1]=`${Math.round(a.x*n)},${Math.round(a.y*n)},${Math.round(a.z*n)}`,c[2]=`${Math.round(d.x*n)},${Math.round(d.y*n)},${Math.round(d.z*n)}`,c[0]!==c[1]&&c[1]!==c[2]&&c[2]!==c[0])for(let t=0;t<3;t++){const e=(t+1)%3,n=c[t],r=c[e],o=qFt[l[t]],a=qFt[l[e]],d=`${n}_${r}`,p=`${r}_${n}`;p in u&&u[p]?(WFt.dot(u[p].normal)<=i&&(h.push(o.x,o.y,o.z),h.push(a.x,a.y,a.z)),u[p]=null):d in u||(u[d]={index0:s[t],index1:s[e],normal:WFt.clone()})}}for(const t in u)if(u[t]){const{index0:e,index1:n}=u[t];jFt.fromBufferAttribute(o,e),GFt.fromBufferAttribute(o,n),h.push(jFt.x,jFt.y,jFt.z),h.push(GFt.x,GFt.y,GFt.z)}this.setAttribute("position",new kzt(h,3))}}function XFt(t,e,n,i,r){let o,a;if(r===(function s(t,e,n,i){let r=0;for(let o=e,a=n-i;o<n;o+=i)r+=(t[a]-t[o])*(t[o+1]+t[a+1]),a=o;return r})(t,e,n,i)>0)for(o=e;o<n;o+=i)a=mVt(o,t[o],t[o+1],a);else for(o=n-i;o>=e;o-=i)a=mVt(o,t[o],t[o+1],a);return a&&cVt(a,a.next)&&(gVt(a),a=a.next),a}function $Ft(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!cVt(i,i.next)&&0!==lVt(i.prev,i,i.next))i=i.next;else{if(gVt(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function KFt(t,e,n,i,r,o,a){if(!t)return;!a&&o&&(function s(t,e,n,i){let r=t;do{null===r.z&&(r.z=rVt(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,(function o(t){let e,n,i,r,o,a,s,l,c=1;do{for(n=t,t=null,o=null,a=0;n;){for(a++,i=n,s=0,e=0;e<c&&(s++,i=i.nextZ,i);e++);for(l=c;s>0||l>0&&i;)0!==s&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,s--):(r=i,i=i.nextZ,l--),o?o.nextZ=r:t=r,r.prevZ=o,o=r;n=i}o.nextZ=null,c*=2}while(a>1)})(r)})(t,i,r,o);let l,c,u=t;for(;t.prev!==t.next;)if(l=t.prev,c=t.next,o?JFt(t,i,r,o):ZFt(t))e.push(l.i/n),e.push(t.i/n),e.push(c.i/n),gVt(t),t=c.next,u=c.next;else if((t=c)===u){a?1===a?KFt(t=QFt($Ft(t),e,n),e,n,i,r,o,2):2===a&&tVt(t,e,n,i,r,o):KFt($Ft(t),e,n,i,r,o,1);break}}function ZFt(t){const e=t.prev,n=t,i=t.next;if(lVt(e,n,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(aVt(e.x,e.y,n.x,n.y,i.x,i.y,r.x,r.y)&&lVt(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function JFt(t,e,n,i){const r=t.prev,o=t,a=t.next;if(lVt(r,o,a)>=0)return!1;const s=r.x>o.x?r.x>a.x?r.x:a.x:o.x>a.x?o.x:a.x,l=r.y>o.y?r.y>a.y?r.y:a.y:o.y>a.y?o.y:a.y,c=rVt(r.x<o.x?r.x<a.x?r.x:a.x:o.x<a.x?o.x:a.x,r.y<o.y?r.y<a.y?r.y:a.y:o.y<a.y?o.y:a.y,e,n,i),u=rVt(s,l,e,n,i);let h=t.prevZ,d=t.nextZ;for(;h&&h.z>=c&&d&&d.z<=u;){if(h!==t.prev&&h!==t.next&&aVt(r.x,r.y,o.x,o.y,a.x,a.y,h.x,h.y)&&lVt(h.prev,h,h.next)>=0)return!1;if(h=h.prevZ,d!==t.prev&&d!==t.next&&aVt(r.x,r.y,o.x,o.y,a.x,a.y,d.x,d.y)&&lVt(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;h&&h.z>=c;){if(h!==t.prev&&h!==t.next&&aVt(r.x,r.y,o.x,o.y,a.x,a.y,h.x,h.y)&&lVt(h.prev,h,h.next)>=0)return!1;h=h.prevZ}for(;d&&d.z<=u;){if(d!==t.prev&&d!==t.next&&aVt(r.x,r.y,o.x,o.y,a.x,a.y,d.x,d.y)&&lVt(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function QFt(t,e,n){let i=t;do{const r=i.prev,o=i.next.next;!cVt(r,o)&&uVt(r,i,i.next,o)&&pVt(r,o)&&pVt(o,r)&&(e.push(r.i/n),e.push(i.i/n),e.push(o.i/n),gVt(i),gVt(i.next),i=t=o),i=i.next}while(i!==t);return $Ft(i)}function tVt(t,e,n,i,r,o){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&sVt(a,t)){let s=fVt(a,t);return a=$Ft(a,a.next),s=$Ft(s,s.next),KFt(a,e,n,i,r,o),void KFt(s,e,n,i,r,o)}t=t.next}a=a.next}while(a!==t)}function eVt(t,e){return t.x-e.x}function nVt(t,e){if(e=(function n(t,e){let n=e;const i=t.x,r=t.y;let o,a=-1/0;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){const t=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>a){if(a=t,t===i){if(r===n.y)return n;if(r===n.next.y)return n.next}o=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!o)return null;if(i===a)return o;const s=o,l=o.x,c=o.y;let u,h=1/0;n=o;do{i>=n.x&&n.x>=l&&i!==n.x&&aVt(r<c?i:a,r,l,c,r<c?a:i,r,n.x,n.y)&&(u=Math.abs(r-n.y)/(i-n.x),pVt(n,t)&&(u<h||u===h&&(n.x>o.x||n.x===o.x&&iVt(o,n)))&&(o=n,h=u)),n=n.next}while(n!==s);return o})(t,e)){const n=fVt(e,t);$Ft(e,e.next),$Ft(n,n.next)}}function iVt(t,e){return lVt(t.prev,t,e.prev)<0&&lVt(e.next,t,t.next)<0}function rVt(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function oVt(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function aVt(t,e,n,i,r,o,a,s){return(r-a)*(e-s)-(t-a)*(o-s)>=0&&(t-a)*(i-s)-(n-a)*(e-s)>=0&&(n-a)*(o-s)-(r-a)*(i-s)>=0}function sVt(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!(function n(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&uVt(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1})(t,e)&&(pVt(t,e)&&pVt(e,t)&&(function i(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&r<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i})(t,e)&&(lVt(t.prev,t,e.prev)||lVt(t,e.prev,e))||cVt(t,e)&&lVt(t.prev,t,t.next)>0&&lVt(e.prev,e,e.next)>0)}function lVt(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function cVt(t,e){return t.x===e.x&&t.y===e.y}function uVt(t,e,n,i){const r=dVt(lVt(t,e,n)),o=dVt(lVt(t,e,i)),a=dVt(lVt(n,i,t)),s=dVt(lVt(n,i,e));return r!==o&&a!==s||!(0!==r||!hVt(t,n,e))||!(0!==o||!hVt(t,i,e))||!(0!==a||!hVt(n,t,i))||!(0!==s||!hVt(n,e,i))}function hVt(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function dVt(t){return t>0?1:t<0?-1:0}function pVt(t,e){return lVt(t.prev,t,t.next)<0?lVt(t,e,t.next)>=0&&lVt(t,t.prev,e)>=0:lVt(t,e,t.prev)<0||lVt(t,t.next,e)<0}function fVt(t,e){const n=new _Vt(t.i,t.x,t.y),i=new _Vt(e.i,e.x,e.y),r=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,o.next=i,i.prev=o,i}function mVt(t,e,n,i){const r=new _Vt(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function gVt(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function _Vt(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}const yVt={area:function(t){const e=t.length;let n=0;for(let i=e-1,r=0;r<e;i=r++)n+=t[i].x*t[r].y-t[r].x*t[i].y;return.5*n},isClockWise:function(t){return yVt.area(t)<0},triangulateShape:function(t,e){const n=[],i=[],r=[];vVt(t),bVt(n,t);let o=t.length;e.forEach(vVt);for(let t=0;t<e.length;t++)i.push(o),o+=e[t].length,bVt(n,e[t]);const a=(function(t,e,n){n=n||2;const i=e&&e.length,r=i?e[0]*n:t.length;let o=XFt(t,0,r,n,!0);const a=[];if(!o||o.next===o.prev)return a;let s,l,c,u,h,d,p;if(i&&(o=(function f(t,e,n,i){const r=[];let o,a,s,l,c;for(o=0,a=e.length;o<a;o++)s=e[o]*i,l=o<a-1?e[o+1]*i:t.length,c=XFt(t,s,l,i,!1),c===c.next&&(c.steiner=!0),r.push(oVt(c));for(r.sort(eVt),o=0;o<r.length;o++)nVt(r[o],n),n=$Ft(n,n.next);return n})(t,e,o,n)),t.length>80*n){s=c=t[0],l=u=t[1];for(let e=n;e<r;e+=n)h=t[e],d=t[e+1],h<s&&(s=h),d<l&&(l=d),h>c&&(c=h),d>u&&(u=d);p=Math.max(c-s,u-l),p=0!==p?1/p:0}return KFt(o,a,n,s,l,p),a})(n,i);for(let t=0;t<a.length;t+=3)r.push(a.slice(t,t+3));return r}};function vVt(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function bVt(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class xVt extends Vzt{constructor(t,e){super(),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,i=[],r=[];for(let e=0,n=t.length;e<n;e++)o(t[e]);function o(t){const o=[],a=void 0!==e.curveSegments?e.curveSegments:12,s=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:100,c=void 0===e.bevelEnabled||e.bevelEnabled,u=void 0!==e.bevelThickness?e.bevelThickness:6,h=void 0!==e.bevelSize?e.bevelSize:u-2,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const f=e.extrudePath,m=void 0!==e.UVGenerator?e.UVGenerator:wVt;void 0!==e.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),l=e.amount);let g,_,y,v,b,x=!1;f&&(g=f.getSpacedPoints(s),x=!0,c=!1,_=f.computeFrenetFrames(s,!1),y=new qOt,v=new qOt,b=new qOt),c||(p=0,u=0,h=0,d=0);const w=t.extractPoints(a);let S=w.shape;const M=w.holes;if(!yVt.isClockWise(S)){S=S.reverse();for(let t=0,e=M.length;t<e;t++){const e=M[t];yVt.isClockWise(e)&&(M[t]=e.reverse())}}const E=yVt.triangulateShape(S,M),T=S;for(let t=0,e=M.length;t<e;t++)S=S.concat(M[t]);function C(t,e,n){return e||console.error("THREE.ExtrudeGeometry: vec does not exist"),e.clone().multiplyScalar(n).add(t)}const A=S.length,k=E.length;function L(t,e,n){let i,r,o;const a=t.x-e.x,s=t.y-e.y,l=n.x-t.x,c=n.y-t.y,u=a*a+s*s;if(Math.abs(a*c-s*l)>Number.EPSILON){const h=Math.sqrt(u),d=Math.sqrt(l*l+c*c),p=e.x-s/h,f=e.y+a/h,m=((n.x-c/d-p)*c-(n.y+l/d-f)*l)/(a*c-s*l);i=p+a*m-t.x,r=f+s*m-t.y;const g=i*i+r*r;if(g<=2)return new zOt(i,r);o=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(s)===Math.sign(c)&&(t=!0),t?(i=-s,r=a,o=Math.sqrt(u)):(i=a,r=s,o=Math.sqrt(u/2))}return new zOt(i/o,r/o)}const P=[];for(let t=0,e=T.length,n=e-1,i=t+1;t<e;t++,n++,i++)n===e&&(n=0),i===e&&(i=0),P[t]=L(T[t],T[n],T[i]);const N=[];let I,O=P.concat();for(let t=0,e=M.length;t<e;t++){const e=M[t];I=[];for(let t=0,n=e.length,i=n-1,r=t+1;t<n;t++,i++,r++)i===n&&(i=0),r===n&&(r=0),I[t]=L(e[t],e[i],e[r]);N.push(I),O=O.concat(I)}for(let t=0;t<p;t++){const e=t/p,n=u*Math.cos(e*Math.PI/2),i=h*Math.sin(e*Math.PI/2)+d;for(let t=0,e=T.length;t<e;t++){const e=C(T[t],P[t],i);D(e.x,e.y,-n)}for(let t=0,e=M.length;t<e;t++){const e=M[t];I=N[t];for(let t=0,r=e.length;t<r;t++){const r=C(e[t],I[t],i);D(r.x,r.y,-n)}}}const R=h+d;for(let t=0;t<A;t++){const e=c?C(S[t],O[t],R):S[t];x?(v.copy(_.normals[0]).multiplyScalar(e.x),y.copy(_.binormals[0]).multiplyScalar(e.y),b.copy(g[0]).add(v).add(y),D(b.x,b.y,b.z)):D(e.x,e.y,0)}for(let t=1;t<=s;t++)for(let e=0;e<A;e++){const n=c?C(S[e],O[e],R):S[e];x?(v.copy(_.normals[t]).multiplyScalar(n.x),y.copy(_.binormals[t]).multiplyScalar(n.y),b.copy(g[t]).add(v).add(y),D(b.x,b.y,b.z)):D(n.x,n.y,l/s*t)}for(let t=p-1;t>=0;t--){const e=t/p,n=u*Math.cos(e*Math.PI/2),i=h*Math.sin(e*Math.PI/2)+d;for(let t=0,e=T.length;t<e;t++){const e=C(T[t],P[t],i);D(e.x,e.y,l+n)}for(let t=0,e=M.length;t<e;t++){const e=M[t];I=N[t];for(let t=0,r=e.length;t<r;t++){const r=C(e[t],I[t],i);x?D(r.x,r.y+g[s-1].y,g[s-1].x+n):D(r.x,r.y,l+n)}}}function z(t,e){let n=t.length;for(;--n>=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=s+2*p;t<n;t++){const n=A*t,o=A*(t+1);H(e+i+n,e+r+n,e+r+o,e+i+o)}}}function D(t,e,n){o.push(t),o.push(e),o.push(n)}function B(t,e,r){F(t),F(e),F(r);const o=i.length/3,a=m.generateTopUV(n,i,o-3,o-2,o-1);V(a[0]),V(a[1]),V(a[2])}function H(t,e,r,o){F(t),F(e),F(o),F(e),F(r),F(o);const a=i.length/3,s=m.generateSideWallUV(n,i,a-6,a-3,a-2,a-1);V(s[0]),V(s[1]),V(s[3]),V(s[1]),V(s[2]),V(s[3])}function F(t){i.push(o[3*t+0]),i.push(o[3*t+1]),i.push(o[3*t+2])}function V(t){r.push(t.x),r.push(t.y)}!(function U(){const t=i.length/3;if(c){let t=0,e=A*t;for(let t=0;t<k;t++){const n=E[t];B(n[2]+e,n[1]+e,n[0]+e)}t=s+2*p,e=A*t;for(let t=0;t<k;t++){const n=E[t];B(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<k;t++){const e=E[t];B(e[2],e[1],e[0])}for(let t=0;t<k;t++){const e=E[t];B(e[0]+A*s,e[1]+A*s,e[2]+A*s)}}n.addGroup(t,i.length/3-t,0)})(),(function j(){const t=i.length/3;let e=0;z(T,e),e+=T.length;for(let t=0,n=M.length;t<n;t++){const n=M[t];z(n,e),e+=n.length}n.addGroup(t,i.length/3-t,1)})()}this.setAttribute("position",new kzt(i,3)),this.setAttribute("uv",new kzt(r,2)),this.computeVertexNormals()}toJSON(){const t=Vzt.prototype.toJSON.call(this);return(function e(t,n,i){if(i.shapes=[],Array.isArray(t))for(let e=0,n=t.length;e<n;e++)i.shapes.push(t[e].uuid);else i.shapes.push(t.uuid);return void 0!==n.extrudePath&&(i.options.extrudePath=n.extrudePath.toJSON()),i})(this.parameters.shapes,this.parameters.options,t)}}const wVt={generateTopUV:function(t,e,n,i,r){const o=e[3*i],a=e[3*i+1],s=e[3*r],l=e[3*r+1];return[new zOt(e[3*n],e[3*n+1]),new zOt(o,a),new zOt(s,l)]},generateSideWallUV:function(t,e,n,i,r,o){const a=e[3*n],s=e[3*n+1],l=e[3*n+2],c=e[3*i],u=e[3*i+1],h=e[3*i+2],d=e[3*r],p=e[3*r+1],f=e[3*r+2],m=e[3*o],g=e[3*o+1],_=e[3*o+2];return Math.abs(s-u)<.01?[new zOt(a,1-l),new zOt(c,1-h),new zOt(d,1-f),new zOt(m,1-_)]:[new zOt(s,1-l),new zOt(u,1-h),new zOt(p,1-f),new zOt(g,1-_)]}};class SVt extends VFt{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;super([-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],t,e),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e}}}class MVt extends Vzt{constructor(t,e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=ROt.clamp(i,0,2*Math.PI);const r=[],o=[],a=[],s=1/e,l=new qOt,c=new zOt;for(let r=0;r<=e;r++){const u=n+r*s*i,h=Math.sin(u),d=Math.cos(u);for(let n=0;n<=t.length-1;n++)l.x=t[n].x*h,l.y=t[n].y,l.z=t[n].x*d,o.push(l.x,l.y,l.z),c.x=r/e,c.y=n/(t.length-1),a.push(c.x,c.y)}for(let n=0;n<e;n++)for(let e=0;e<t.length-1;e++){const i=e+n*t.length,o=i+t.length,a=i+t.length+1,s=i+1;r.push(i,o,s),r.push(o,a,s)}if(this.setIndex(r),this.setAttribute("position",new kzt(o,3)),this.setAttribute("uv",new kzt(a,2)),this.computeVertexNormals(),i===2*Math.PI){const n=this.attributes.normal.array,i=new qOt,r=new qOt,o=new qOt,a=e*t.length*3;for(let e=0,s=0;e<t.length;e++,s+=3)i.x=n[s+0],i.y=n[s+1],i.z=n[s+2],r.x=n[a+s+0],r.y=n[a+s+1],r.z=n[a+s+2],o.addVectors(i,r).normalize(),n[s+0]=n[a+s+0]=o.x,n[s+1]=n[a+s+1]=o.y,n[s+2]=n[a+s+2]=o.z}}}class EVt extends VFt{constructor(t=1,e=0){super([1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],t,e),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e}}}function TVt(t,e,n){Vzt.call(this),this.type="ParametricGeometry",this.parameters={func:t,slices:e,stacks:n};const i=[],r=[],o=[],a=[],s=1e-5,l=new qOt,c=new qOt,u=new qOt,h=new qOt,d=new qOt;t.length<3&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");const p=e+1;for(let i=0;i<=n;i++){const p=i/n;for(let n=0;n<=e;n++){const i=n/e;t(i,p,c),r.push(c.x,c.y,c.z),i-s>=0?(t(i-s,p,u),h.subVectors(c,u)):(t(i+s,p,u),h.subVectors(u,c)),p-s>=0?(t(i,p-s,u),d.subVectors(c,u)):(t(i,p+s,u),d.subVectors(u,c)),l.crossVectors(h,d).normalize(),o.push(l.x,l.y,l.z),a.push(i,p)}}for(let t=0;t<n;t++)for(let n=0;n<e;n++){const e=t*p+n+1,r=(t+1)*p+n+1,o=(t+1)*p+n;i.push(t*p+n,e,o),i.push(e,r,o)}this.setIndex(i),this.setAttribute("position",new kzt(r,3)),this.setAttribute("normal",new kzt(o,3)),this.setAttribute("uv",new kzt(a,2))}(TVt.prototype=Object.create(Vzt.prototype)).constructor=TVt;class CVt extends Vzt{constructor(t=.5,e=1,n=8,i=1,r=0,o=2*Math.PI){super(),this.type="RingGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:i,thetaStart:r,thetaLength:o},n=Math.max(3,n);const a=[],s=[],l=[],c=[];let u=t;const h=(e-t)/(i=Math.max(1,i)),d=new qOt,p=new zOt;for(let t=0;t<=i;t++){for(let t=0;t<=n;t++){const i=r+t/n*o;d.x=u*Math.cos(i),d.y=u*Math.sin(i),s.push(d.x,d.y,d.z),l.push(0,0,1),p.x=(d.x/e+1)/2,p.y=(d.y/e+1)/2,c.push(p.x,p.y)}u+=h}for(let t=0;t<i;t++){const e=t*(n+1);for(let t=0;t<n;t++){const i=t+e,r=i+n+1,o=i+n+2,s=i+1;a.push(i,r,s),a.push(r,o,s)}}this.setIndex(a),this.setAttribute("position",new kzt(s,3)),this.setAttribute("normal",new kzt(l,3)),this.setAttribute("uv",new kzt(c,2))}}class AVt extends Vzt{constructor(t,e=12){super(),this.type="ShapeGeometry",this.parameters={shapes:t,curveSegments:e};const n=[],i=[],r=[],o=[];let a=0,s=0;if(!1===Array.isArray(t))l(t);else for(let e=0;e<t.length;e++)l(t[e]),this.addGroup(a,s,e),a+=s,s=0;function l(t){const a=i.length/3,l=t.extractPoints(e);let c=l.shape;const u=l.holes;!1===yVt.isClockWise(c)&&(c=c.reverse());for(let t=0,e=u.length;t<e;t++){const e=u[t];!0===yVt.isClockWise(e)&&(u[t]=e.reverse())}const h=yVt.triangulateShape(c,u);for(let t=0,e=u.length;t<e;t++)c=c.concat(u[t]);for(let t=0,e=c.length;t<e;t++){const e=c[t];i.push(e.x,e.y,0),r.push(0,0,1),o.push(e.x,e.y)}for(let t=0,e=h.length;t<e;t++){const e=h[t];n.push(e[0]+a,e[1]+a,e[2]+a),s+=3}}this.setIndex(n),this.setAttribute("position",new kzt(i,3)),this.setAttribute("normal",new kzt(r,3)),this.setAttribute("uv",new kzt(o,2))}toJSON(){const t=Vzt.prototype.toJSON.call(this);return(function e(t,n){if(n.shapes=[],Array.isArray(t))for(let e=0,i=t.length;e<i;e++)n.shapes.push(t[e].uuid);else n.shapes.push(t.uuid);return n})(this.parameters.shapes,t)}}class kVt extends Vzt{constructor(t=1,e=8,n=6,i=0,r=2*Math.PI,o=0,a=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:o,thetaLength:a},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const s=Math.min(o+a,Math.PI);let l=0;const c=[],u=new qOt,h=new qOt,d=[],p=[],f=[],m=[];for(let d=0;d<=n;d++){const g=[],_=d/n;let y=0;0==d&&0==o?y=.5/e:d==n&&s==Math.PI&&(y=-.5/e);for(let n=0;n<=e;n++){const s=n/e;u.x=-t*Math.cos(i+s*r)*Math.sin(o+_*a),u.y=t*Math.cos(o+_*a),u.z=t*Math.sin(i+s*r)*Math.sin(o+_*a),p.push(u.x,u.y,u.z),h.copy(u).normalize(),f.push(h.x,h.y,h.z),m.push(s+y,1-_),g.push(l++)}c.push(g)}for(let t=0;t<n;t++)for(let i=0;i<e;i++){const e=c[t][i+1],r=c[t][i],a=c[t+1][i],l=c[t+1][i+1];(0!==t||o>0)&&d.push(e,r,l),(t!==n-1||s<Math.PI)&&d.push(r,a,l)}this.setIndex(d),this.setAttribute("position",new kzt(p,3)),this.setAttribute("normal",new kzt(f,3)),this.setAttribute("uv",new kzt(m,2))}}class LVt extends VFt{constructor(t=1,e=0){super([1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type="TetrahedronGeometry",this.parameters={radius:t,detail:e}}}class PVt extends xVt{constructor(t,e={}){const n=e.font;if(!n||!n.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new Vzt;const i=n.generateShapes(t,e.size);e.depth=void 0!==e.height?e.height:50,void 0===e.bevelThickness&&(e.bevelThickness=10),void 0===e.bevelSize&&(e.bevelSize=8),void 0===e.bevelEnabled&&(e.bevelEnabled=!1),super(i,e),this.type="TextGeometry"}}class NVt extends Vzt{constructor(t=1,e=.4,n=8,i=6,r=2*Math.PI){super(),this.type="TorusGeometry",this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:i,arc:r},n=Math.floor(n),i=Math.floor(i);const o=[],a=[],s=[],l=[],c=new qOt,u=new qOt,h=new qOt;for(let o=0;o<=n;o++)for(let d=0;d<=i;d++){const p=d/i*r,f=o/n*Math.PI*2;u.x=(t+e*Math.cos(f))*Math.cos(p),u.y=(t+e*Math.cos(f))*Math.sin(p),u.z=e*Math.sin(f),a.push(u.x,u.y,u.z),c.x=t*Math.cos(p),c.y=t*Math.sin(p),h.subVectors(u,c).normalize(),s.push(h.x,h.y,h.z),l.push(d/i),l.push(o/n)}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+e-1,r=(i+1)*(t-1)+e,a=(i+1)*t+e;o.push((i+1)*t+e-1,n,a),o.push(n,r,a)}this.setIndex(o),this.setAttribute("position",new kzt(a,3)),this.setAttribute("normal",new kzt(s,3)),this.setAttribute("uv",new kzt(l,2))}}class IVt extends Vzt{constructor(t=1,e=.4,n=64,i=8,r=2,o=3){super(),this.type="TorusKnotGeometry",this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:i,p:r,q:o},n=Math.floor(n),i=Math.floor(i);const a=[],s=[],l=[],c=[],u=new qOt,h=new qOt,d=new qOt,p=new qOt,f=new qOt,m=new qOt,g=new qOt;for(let a=0;a<=n;++a){const y=a/n*r*Math.PI*2;_(y,r,o,t,d),_(y+.01,r,o,t,p),m.subVectors(p,d),g.addVectors(p,d),f.crossVectors(m,g),g.crossVectors(f,m),f.normalize(),g.normalize();for(let t=0;t<=i;++t){const r=t/i*Math.PI*2,o=-e*Math.cos(r),p=e*Math.sin(r);u.x=d.x+(o*g.x+p*f.x),u.y=d.y+(o*g.y+p*f.y),u.z=d.z+(o*g.z+p*f.z),s.push(u.x,u.y,u.z),h.subVectors(u,d).normalize(),l.push(h.x,h.y,h.z),c.push(a/n),c.push(t/i)}}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*t+(e-1),r=(i+1)*t+e,o=(i+1)*(t-1)+e;a.push((i+1)*(t-1)+(e-1),n,o),a.push(n,r,o)}function _(t,e,n,i,r){const o=Math.cos(t),a=Math.sin(t),s=n/e*t,l=Math.cos(s);r.x=i*(2+l)*.5*o,r.y=i*(2+l)*a*.5,r.z=i*Math.sin(s)*.5}this.setIndex(a),this.setAttribute("position",new kzt(s,3)),this.setAttribute("normal",new kzt(l,3)),this.setAttribute("uv",new kzt(c,2))}}class OVt extends Vzt{constructor(t,e=64,n=1,i=8,r=!1){super(),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:r};const o=t.computeFrenetFrames(e,r);this.tangents=o.tangents,this.normals=o.normals,this.binormals=o.binormals;const a=new qOt,s=new qOt,l=new zOt;let c=new qOt;const u=[],h=[],d=[],p=[];function f(r){c=t.getPointAt(r/e,c);const l=o.normals[r],d=o.binormals[r];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2,r=Math.sin(e),o=-Math.cos(e);s.x=o*l.x+r*d.x,s.y=o*l.y+r*d.y,s.z=o*l.z+r*d.z,s.normalize(),h.push(s.x,s.y,s.z),a.x=c.x+n*s.x,a.y=c.y+n*s.y,a.z=c.z+n*s.z,u.push(a.x,a.y,a.z)}}!(function m(){for(let t=0;t<e;t++)f(t);f(!1===r?e:0),(function t(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++)l.x=t/e,l.y=n/i,d.push(l.x,l.y)})(),(function n(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*t+(e-1),r=(i+1)*t+e,o=(i+1)*(t-1)+e;p.push((i+1)*(t-1)+(e-1),n,o),p.push(n,r,o)}})()})(),this.setIndex(p),this.setAttribute("position",new kzt(u,3)),this.setAttribute("normal",new kzt(h,3)),this.setAttribute("uv",new kzt(d,2))}toJSON(){const t=Vzt.prototype.toJSON.call(this);return t.path=this.parameters.path.toJSON(),t}}class RVt extends Vzt{constructor(t){if(super(),this.type="WireframeGeometry",!0===t.isGeometry)return void console.error("THREE.WireframeGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");const e=[],n=[0,0],i={},r=new qOt;if(null!==t.index){const o=t.attributes.position,a=t.index;let s=t.groups;0===s.length&&(s=[{start:0,count:a.count,materialIndex:0}]);for(let t=0,e=s.length;t<e;++t){const e=s[t],r=e.start;for(let t=r,o=r+e.count;t<o;t+=3)for(let e=0;e<3;e++){const r=a.getX(t+e),o=a.getX(t+(e+1)%3);n[0]=Math.min(r,o),n[1]=Math.max(r,o);const s=n[0]+","+n[1];void 0===i[s]&&(i[s]={index1:n[0],index2:n[1]})}}for(const t in i){const n=i[t];r.fromBufferAttribute(o,n.index1),e.push(r.x,r.y,r.z),r.fromBufferAttribute(o,n.index2),e.push(r.x,r.y,r.z)}}else{const n=t.attributes.position;for(let t=0,i=n.count/3;t<i;t++)for(let i=0;i<3;i++)r.fromBufferAttribute(n,3*t+i),e.push(r.x,r.y,r.z),r.fromBufferAttribute(n,3*t+(i+1)%3),e.push(r.x,r.y,r.z)}this.setAttribute("position",new kzt(e,3))}}var zVt=Object.freeze({__proto__:null,BoxGeometry:sDt,BoxBufferGeometry:sDt,CircleGeometry:BFt,CircleBufferGeometry:BFt,ConeGeometry:FFt,ConeBufferGeometry:FFt,CylinderGeometry:HFt,CylinderBufferGeometry:HFt,DodecahedronGeometry:UFt,DodecahedronBufferGeometry:UFt,EdgesGeometry:YFt,ExtrudeGeometry:xVt,ExtrudeBufferGeometry:xVt,IcosahedronGeometry:SVt,IcosahedronBufferGeometry:SVt,LatheGeometry:MVt,LatheBufferGeometry:MVt,OctahedronGeometry:EVt,OctahedronBufferGeometry:EVt,ParametricGeometry:TVt,ParametricBufferGeometry:TVt,PlaneGeometry:MDt,PlaneBufferGeometry:MDt,PolyhedronGeometry:VFt,PolyhedronBufferGeometry:VFt,RingGeometry:CVt,RingBufferGeometry:CVt,ShapeGeometry:AVt,ShapeBufferGeometry:AVt,SphereGeometry:kVt,SphereBufferGeometry:kVt,TetrahedronGeometry:LVt,TetrahedronBufferGeometry:LVt,TextGeometry:PVt,TextBufferGeometry:PVt,TorusGeometry:NVt,TorusBufferGeometry:NVt,TorusKnotGeometry:IVt,TorusKnotBufferGeometry:IVt,TubeGeometry:OVt,TubeBufferGeometry:OVt,WireframeGeometry:RVt});function DVt(t){gzt.call(this),this.type="ShadowMaterial",this.color=new pzt(0),this.transparent=!0,this.setValues(t)}function BVt(t){hDt.call(this,t),this.type="RawShaderMaterial"}function HVt(t){gzt.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new pzt(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new pzt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zOt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.vertexTangents=!1,this.setValues(t)}function FVt(t){HVt.call(this),this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.clearcoat=0,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new zOt(1,1),this.clearcoatNormalMap=null,this.reflectivity=.5,Object.defineProperty(this,"ior",{get:function(){return(1+.4*this.reflectivity)/(1-.4*this.reflectivity)},set:function(t){this.reflectivity=ROt.clamp(2.5*(t-1)/(t+1),0,1)}}),this.sheen=null,this.transmission=0,this.transmissionMap=null,this.setValues(t)}function VVt(t){gzt.call(this),this.type="MeshPhongMaterial",this.color=new pzt(16777215),this.specular=new pzt(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new pzt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zOt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function UVt(t){gzt.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new pzt(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new pzt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zOt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function jVt(t){gzt.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zOt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function GVt(t){gzt.call(this),this.type="MeshLambertMaterial",this.color=new pzt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new pzt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function WVt(t){gzt.call(this),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new pzt(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zOt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function qVt(t){gFt.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}(DVt.prototype=Object.create(gzt.prototype)).constructor=DVt,DVt.prototype.isShadowMaterial=!0,DVt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.color.copy(t.color),this},(BVt.prototype=Object.create(hDt.prototype)).constructor=BVt,BVt.prototype.isRawShaderMaterial=!0,(HVt.prototype=Object.create(gzt.prototype)).constructor=HVt,HVt.prototype.isMeshStandardMaterial=!0,HVt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.vertexTangents=t.vertexTangents,this},(FVt.prototype=Object.create(HVt.prototype)).constructor=FVt,FVt.prototype.isMeshPhysicalMaterial=!0,FVt.prototype.copy=function(t){return HVt.prototype.copy.call(this,t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.reflectivity=t.reflectivity,this.sheen=t.sheen?(this.sheen||new pzt).copy(t.sheen):null,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this},(VVt.prototype=Object.create(gzt.prototype)).constructor=VVt,VVt.prototype.isMeshPhongMaterial=!0,VVt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(UVt.prototype=Object.create(gzt.prototype)).constructor=UVt,UVt.prototype.isMeshToonMaterial=!0,UVt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(jVt.prototype=Object.create(gzt.prototype)).constructor=jVt,jVt.prototype.isMeshNormalMaterial=!0,jVt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(GVt.prototype=Object.create(gzt.prototype)).constructor=GVt,GVt.prototype.isMeshLambertMaterial=!0,GVt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(WVt.prototype=Object.create(gzt.prototype)).constructor=WVt,WVt.prototype.isMeshMatcapMaterial=!0,WVt.prototype.copy=function(t){return gzt.prototype.copy.call(this,t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(qVt.prototype=Object.create(gFt.prototype)).constructor=qVt,qVt.prototype.isLineDashedMaterial=!0,qVt.prototype.copy=function(t){return gFt.prototype.copy.call(this,t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this};var YVt=Object.freeze({__proto__:null,ShadowMaterial:DVt,SpriteMaterial:zHt,RawShaderMaterial:BVt,ShaderMaterial:hDt,PointsMaterial:CFt,MeshPhysicalMaterial:FVt,MeshStandardMaterial:HVt,MeshPhongMaterial:VVt,MeshToonMaterial:UVt,MeshNormalMaterial:jVt,MeshLambertMaterial:GVt,MeshDepthMaterial:_Ht,MeshDistanceMaterial:yHt,MeshBasicMaterial:_zt,MeshMatcapMaterial:WVt,LineDashedMaterial:qVt,LineBasicMaterial:gFt,Material:gzt});const XVt={arraySlice:function(t,e,n){return XVt.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function i(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const i=t.length,r=new t.constructor(i);for(let o=0,a=0;a!==i;++o){const i=n[o]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r},flattenJSON:function(t,e,n,i){let r=1,o=t[0];for(;void 0!==o&&void 0===o[i];)o=t[r++];if(void 0===o)return;let a=o[i];if(void 0!==a)if(Array.isArray(a))do{a=o[i],void 0!==a&&(e.push(o.time),n.push.apply(n,a)),o=t[r++]}while(void 0!==o);else if(void 0!==a.toArray)do{a=o[i],void 0!==a&&(e.push(o.time),a.toArray(n,n.length)),o=t[r++]}while(void 0!==o);else do{a=o[i],void 0!==a&&(e.push(o.time),n.push(a)),o=t[r++]}while(void 0!==o)},subclip:function(t,e,n,i,r=30){const o=t.clone();o.name=e;const a=[];for(let t=0;t<o.tracks.length;++t){const e=o.tracks[t],s=e.getValueSize(),l=[],c=[];for(let t=0;t<e.times.length;++t){const o=e.times[t]*r;if(!(o<n||o>=i)){l.push(e.times[t]);for(let n=0;n<s;++n)c.push(e.values[t*s+n])}}0!==l.length&&(e.times=XVt.convertArray(l,e.times.constructor),e.values=XVt.convertArray(c,e.values.constructor),a.push(e))}o.tracks=a;let s=1/0;for(let t=0;t<o.tracks.length;++t)s>o.tracks[t].times[0]&&(s=o.tracks[t].times[0]);for(let t=0;t<o.tracks.length;++t)o.tracks[t].shift(-1*s);return o.resetDuration(),o},makeClipAdditive:function(t,e=0,n=t,i=30){i<=0&&(i=30);const r=n.tracks.length,o=e/i;for(let e=0;e<r;++e){const i=n.tracks[e],r=i.ValueTypeName;if("bool"===r||"string"===r)continue;const a=t.tracks.find((function(t){return t.name===i.name&&t.ValueTypeName===r}));if(void 0===a)continue;let s=0;const l=i.getValueSize();i.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(s=l/3);let c=0;const u=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=u/3);const h=i.times.length-1;let d;if(o<=i.times[0])d=XVt.arraySlice(i.values,s,l-s);else if(o>=i.times[h]){const t=h*l+s;d=XVt.arraySlice(i.values,t,t+l-s)}else{const t=i.createInterpolant(),e=s,n=l-s;t.evaluate(o),d=XVt.arraySlice(t.resultBuffer,e,n)}"quaternion"===r&&(new WOt).fromArray(d).normalize().conjugate().toArray(d);const p=a.times.length;for(let t=0;t<p;++t){const e=t*u+c;if("quaternion"===r)WOt.multiplyQuaternionsFlat(a.values,e,d,0,a.values,e);else{const t=u-2*c;for(let n=0;n<t;++n)a.values[e+n]-=d[n]}}}return t.blendMode=bOt,t}};function $Vt(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n}function KVt(t,e,n,i){$Vt.call(this,t,e,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0}function ZVt(t,e,n,i){$Vt.call(this,t,e,n,i)}function JVt(t,e,n,i){$Vt.call(this,t,e,n,i)}function QVt(t,e,n,i){if(void 0===t)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===e||0===e.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=XVt.convertArray(e,this.TimeBufferType),this.values=XVt.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}function tUt(t,e,n){QVt.call(this,t,e,n)}function eUt(t,e,n,i){QVt.call(this,t,e,n,i)}function nUt(t,e,n,i){QVt.call(this,t,e,n,i)}function iUt(t,e,n,i){$Vt.call(this,t,e,n,i)}function rUt(t,e,n,i){QVt.call(this,t,e,n,i)}function oUt(t,e,n,i){QVt.call(this,t,e,n,i)}function aUt(t,e,n,i){QVt.call(this,t,e,n,i)}function sUt(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=ROt.generateUUID(),this.duration<0&&this.resetDuration()}function lUt(t){if(void 0===t.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const e=(function n(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return nUt;case"vector":case"vector2":case"vector3":case"vector4":return aUt;case"color":return eUt;case"quaternion":return rUt;case"bool":case"boolean":return tUt;case"string":return oUt}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+t)})(t.type);if(void 0===t.times){const e=[],n=[];XVt.flattenJSON(t.keys,e,n,"value"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}Object.assign($Vt.prototype,{evaluate:function(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let o;n:{i:if(!(t<i)){for(let o=n+2;;){if(void 0===i){if(t<r)break i;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,r)}if(n===o)break;if(r=i,i=e[++n],t<i)break e}o=e.length;break n}if(t>=r)break t;{const a=e[1];t<a&&(n=2,r=a);for(let o=n-2;;){if(void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(n===o)break;if(i=r,r=e[--n-1],t>=r)break e}o=n,n=0}}for(;n<o;){const i=n+o>>>1;t<e[i]?o=i:n=i+1}if(i=e[n],r=e[n-1],void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(void 0===i)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,r,t)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let t=0;t!==i;++t)e[t]=n[r+t];return e},interpolate_:function(){throw new Error("call to abstract method")},intervalChanged_:function(){}}),Object.assign($Vt.prototype,{beforeStart_:$Vt.prototype.copySampleValue_,afterEnd_:$Vt.prototype.copySampleValue_}),KVt.prototype=Object.assign(Object.create($Vt.prototype),{constructor:KVt,DefaultSettings_:{endingStart:gOt,endingEnd:gOt},intervalChanged_:function(t,e,n){const i=this.parameterPositions;let r=t-2,o=t+1,a=i[r],s=i[o];if(void 0===a)switch(this.getSettings_().endingStart){case _Ot:r=t,a=2*e-n;break;case yOt:r=i.length-2,a=e+i[r]-i[r+1];break;default:r=t,a=n}if(void 0===s)switch(this.getSettings_().endingEnd){case _Ot:o=t,s=2*n-e;break;case yOt:o=1,s=n+i[1]-i[0];break;default:o=t-1,s=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-a),this._weightNext=l/(s-n),this._offsetPrev=r*c,this._offsetNext=o*c},interpolate_:function(t,e,n,i){const r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=t*a,l=s-a,c=this._offsetPrev,u=this._offsetNext,h=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),f=p*p,m=f*p,g=-h*m+2*h*f-h*p,_=(1+h)*m+(-1.5-2*h)*f+(-.5+h)*p+1,y=(-1-d)*m+(1.5+d)*f+.5*p,v=d*m-d*f;for(let t=0;t!==a;++t)r[t]=g*o[c+t]+_*o[l+t]+y*o[s+t]+v*o[u+t];return r}}),ZVt.prototype=Object.assign(Object.create($Vt.prototype),{constructor:ZVt,interpolate_:function(t,e,n,i){const r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=t*a,l=s-a,c=(n-e)/(i-e),u=1-c;for(let t=0;t!==a;++t)r[t]=o[l+t]*u+o[s+t]*c;return r}}),JVt.prototype=Object.assign(Object.create($Vt.prototype),{constructor:JVt,interpolate_:function(t){return this.copySampleValue_(t-1)}}),Object.assign(QVt,{toJSON:function(t){const e=t.constructor;let n;if(void 0!==e.toJSON)n=e.toJSON(t);else{n={name:t.name,times:XVt.convertArray(t.times,Array),values:XVt.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}}),Object.assign(QVt.prototype,{constructor:QVt,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:fOt,InterpolantFactoryMethodDiscrete:function(t){return new JVt(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodLinear:function(t){return new ZVt(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:function(t){return new KVt(this.times,this.values,this.getValueSize(),t)},setInterpolation:function(t){let e;switch(t){case pOt:e=this.InterpolantFactoryMethodDiscrete;break;case fOt:e=this.InterpolantFactoryMethodLinear;break;case mOt:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",e),this}return this.createInterpolant=e,this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return pOt;case this.InterpolantFactoryMethodLinear:return fOt;case this.InterpolantFactoryMethodSmooth:return mOt}},getValueSize:function(){return this.values.length/this.times.length},shift:function(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this},scale:function(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this},trim:function(t,e){const n=this.times,i=n.length;let r=0,o=i-1;for(;r!==i&&n[r]<t;)++r;for(;-1!==o&&n[o]>e;)--o;if(++o,0!==r||o!==i){r>=o&&(o=Math.max(o,1),r=o-1);const t=this.getValueSize();this.times=XVt.arraySlice(n,r,o),this.values=XVt.arraySlice(this.values,r*t,o*t)}return this},validate:function(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==o&&o>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,o),t=!1;break}o=i}if(void 0!==i&&XVt.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t},optimize:function(){const t=XVt.arraySlice(this.times),e=XVt.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===mOt,r=t.length-1;let o=1;for(let a=1;a<r;++a){let r=!1;const s=t[a];if(s!==t[a+1]&&(1!==a||s!==t[0]))if(i)r=!0;else{const t=a*n,i=t-n,o=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[o+a]){r=!0;break}}}if(r){if(a!==o){t[o]=t[a];const i=a*n,r=o*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++o}}if(r>0){t[o]=t[r];for(let t=r*n,i=o*n,a=0;a!==n;++a)e[i+a]=e[t+a];++o}return o!==t.length?(this.times=XVt.arraySlice(t,0,o),this.values=XVt.arraySlice(e,0,o*n)):(this.times=t,this.values=e),this},clone:function(){const t=XVt.arraySlice(this.times,0),e=XVt.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}),tUt.prototype=Object.assign(Object.create(QVt.prototype),{constructor:tUt,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:pOt,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),eUt.prototype=Object.assign(Object.create(QVt.prototype),{constructor:eUt,ValueTypeName:"color"}),nUt.prototype=Object.assign(Object.create(QVt.prototype),{constructor:nUt,ValueTypeName:"number"}),iUt.prototype=Object.assign(Object.create($Vt.prototype),{constructor:iUt,interpolate_:function(t,e,n,i){const r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)WOt.slerpFlat(r,0,o,l-a,o,l,s);return r}}),rUt.prototype=Object.assign(Object.create(QVt.prototype),{constructor:rUt,ValueTypeName:"quaternion",DefaultInterpolation:fOt,InterpolantFactoryMethodLinear:function(t){return new iUt(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:void 0}),oUt.prototype=Object.assign(Object.create(QVt.prototype),{constructor:oUt,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:pOt,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),aUt.prototype=Object.assign(Object.create(QVt.prototype),{constructor:aUt,ValueTypeName:"vector"}),Object.assign(sUt,{parse:function(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(lUt(n[t]).scale(i));const r=new sUt(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r},toJSON:function(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(QVt.toJSON(n[t]));return i},CreateFromMorphTargetSequence:function(t,e,n,i){const r=e.length,o=[];for(let t=0;t<r;t++){let a=[],s=[];a.push((t+r-1)%r,t,(t+1)%r),s.push(0,1,0);const l=XVt.getKeyframeOrder(a);a=XVt.sortedArray(a,1,l),s=XVt.sortedArray(s,1,l),i||0!==a[0]||(a.push(r),s.push(s[0])),o.push(new nUt(".morphTargetInfluences["+e[t].name+"]",a,s).scale(1/n))}return new sUt(t,-1,o)},findByName:function(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null},CreateClipsFromMorphTargetSequences:function(t,e,n){const i={},r=/^([\w-]*?)([\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e],o=n.name.match(r);if(o&&o.length>1){const t=o[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const o=[];for(const t in i)o.push(sUt.CreateFromMorphTargetSequence(t,i[t],e,n));return o},parseAnimation:function(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const o=[],a=[];XVt.flattenJSON(n,o,a,i),0!==o.length&&r.push(new t(e,o,a))}},i=[],r=t.name||"default",o=t.fps||30,a=t.blendMode;let s=t.length||-1;const l=t.hierarchy||[];for(let t=0;t<l.length;t++){const r=l[t].keys;if(r&&0!==r.length)if(r[0].morphTargets){const t={};let e;for(e=0;e<r.length;e++)if(r[e].morphTargets)for(let n=0;n<r[e].morphTargets.length;n++)t[r[e].morphTargets[n]]=-1;for(const n in t){const t=[],o=[];for(let i=0;i!==r[e].morphTargets.length;++i){const i=r[e];t.push(i.time),o.push(i.morphTarget===n?1:0)}i.push(new nUt(".morphTargetInfluence["+n+"]",t,o))}s=t.length*(o||1)}else{const o=".bones["+e[t].name+"]";n(aUt,o+".position",r,"pos",i),n(rUt,o+".quaternion",r,"rot",i),n(aUt,o+".scale",r,"scl",i)}}return 0===i.length?null:new sUt(r,s,i,a)}}),Object.assign(sUt.prototype,{resetDuration:function(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this},trim:function(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this},validate:function(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t},optimize:function(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this},clone:function(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new sUt(this.name,this.duration,t,this.blendMode)},toJSON:function(){return sUt.toJSON(this)}});const cUt={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};function uUt(t,e,n){const i=this;let r,o=!1,a=0,s=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){s++,!1===o&&void 0!==i.onStart&&i.onStart(t,a,s),o=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,s),a===s&&(o=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return r?r(t):t},this.setURLModifier=function(t){return r=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],i=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}const hUt=new uUt;function dUt(t){this.manager=void 0!==t?t:hUt,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}Object.assign(dUt.prototype,{load:function(){},loadAsync:function(t,e){const n=this;return new Promise((function(i,r){n.load(t,i,e,r)}))},parse:function(){},setCrossOrigin:function(t){return this.crossOrigin=t,this},setWithCredentials:function(t){return this.withCredentials=t,this},setPath:function(t){return this.path=t,this},setResourcePath:function(t){return this.resourcePath=t,this},setRequestHeader:function(t){return this.requestHeader=t,this}});const pUt={};function fUt(t){dUt.call(this,t)}function mUt(t){dUt.call(this,t)}function gUt(t){dUt.call(this,t)}function _Ut(t){dUt.call(this,t)}function yUt(t){dUt.call(this,t)}function vUt(t){dUt.call(this,t)}function bUt(t){dUt.call(this,t)}function xUt(){this.type="Curve",this.arcLengthDivisions=200}function wUt(t,e,n,i,r,o,a,s){xUt.call(this),this.type="EllipseCurve",this.aX=t||0,this.aY=e||0,this.xRadius=n||1,this.yRadius=i||1,this.aStartAngle=r||0,this.aEndAngle=o||2*Math.PI,this.aClockwise=a||!1,this.aRotation=s||0}function SUt(t,e,n,i,r,o){wUt.call(this,t,e,n,n,i,r,o),this.type="ArcCurve"}function MUt(){let t=0,e=0,n=0,i=0;function r(r,o,a,s){t=r,e=a,n=-3*r+3*o-2*a-s,i=2*r-2*o+a+s}return{initCatmullRom:function(t,e,n,i,o){r(e,n,o*(n-t),o*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,o,a,s){let l=(e-t)/o-(n-t)/(o+a)+(n-e)/a,c=(n-e)/a-(i-e)/(a+s)+(i-n)/s;l*=a,c*=a,r(e,n,l,c)},calc:function(r){const o=r*r;return t+e*r+n*o+i*(o*r)}}}fUt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:fUt,load:function(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,o=cUt.get(t);if(void 0!==o)return r.manager.itemStart(t),setTimeout((function(){e&&e(o),r.manager.itemEnd(t)}),0),o;if(void 0!==pUt[t])return void pUt[t].push({onLoad:e,onProgress:n,onError:i});const a=t.match(/^data:(.*?)(;base64)?,(.*)$/);let s;if(a){const n=a[1],o=!!a[2];let s=a[3];s=decodeURIComponent(s),o&&(s=atob(s));try{let i;const o=(this.responseType||"").toLowerCase();switch(o){case"arraybuffer":case"blob":const t=new Uint8Array(s.length);for(let e=0;e<s.length;e++)t[e]=s.charCodeAt(e);i="blob"===o?new Blob([t.buffer],{type:n}):t.buffer;break;case"document":const e=new DOMParser;i=e.parseFromString(s,n);break;case"json":i=JSON.parse(s);break;default:i=s}setTimeout((function(){e&&e(i),r.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}),0)}}else{pUt[t]=[],pUt[t].push({onLoad:e,onProgress:n,onError:i}),s=new XMLHttpRequest,s.open("GET",t,!0),s.addEventListener("load",(function(e){const n=this.response,i=pUt[t];if(delete pUt[t],200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),cUt.add(t,n);for(let t=0,e=i.length;t<e;t++){const e=i[t];e.onLoad&&e.onLoad(n)}r.manager.itemEnd(t)}else{for(let t=0,n=i.length;t<n;t++){const n=i[t];n.onError&&n.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}}),!1),s.addEventListener("progress",(function(e){const n=pUt[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onProgress&&i.onProgress(e)}}),!1),s.addEventListener("error",(function(e){const n=pUt[t];delete pUt[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),s.addEventListener("abort",(function(e){const n=pUt[t];delete pUt[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(s.responseType=this.responseType),void 0!==this.withCredentials&&(s.withCredentials=this.withCredentials),s.overrideMimeType&&s.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(const t in this.requestHeader)s.setRequestHeader(t,this.requestHeader[t]);s.send(null)}return r.manager.itemStart(t),s},setResponseType:function(t){return this.responseType=t,this},setMimeType:function(t){return this.mimeType=t,this}}),mUt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:mUt,load:function(t,e,n,i){const r=this,o=new fUt(r.manager);o.setPath(r.path),o.setRequestHeader(r.requestHeader),o.setWithCredentials(r.withCredentials),o.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)},parse:function(t){const e=[];for(let n=0;n<t.length;n++){const i=sUt.parse(t[n]);e.push(i)}return e}}),gUt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:gUt,load:function(t,e,n,i){const r=this,o=[],a=new RFt,s=new fUt(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(r.withCredentials);let l=0;function c(c){s.load(t[c],(function(t){const n=r.parse(t,!0);o[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=GIt),a.image=o,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e<n;++e)c(e);else s.load(t,(function(t){const n=r.parse(t,!0);if(n.isCubemap){const t=n.mipmaps.length/n.mipmapCount;for(let e=0;e<t;e++){o[e]={mipmaps:[]};for(let t=0;t<n.mipmapCount;t++)o[e].mipmaps.push(n.mipmaps[e*n.mipmapCount+t]),o[e].format=n.format,o[e].width=n.width,o[e].height=n.height}a.image=o}else a.image.width=n.width,a.image.height=n.height,a.mipmaps=n.mipmaps;1===n.mipmapCount&&(a.minFilter=GIt),a.format=n.format,a.needsUpdate=!0,e&&e(a)}),n,i);return a}}),_Ut.prototype=Object.assign(Object.create(dUt.prototype),{constructor:_Ut,load:function(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,o=cUt.get(t);if(void 0!==o)return r.manager.itemStart(t),setTimeout((function(){e&&e(o),r.manager.itemEnd(t)}),0),o;const a=document.createElementNS("http://www.w3.org/1999/xhtml","img");function s(){a.removeEventListener("load",s,!1),a.removeEventListener("error",l,!1),cUt.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){a.removeEventListener("load",s,!1),a.removeEventListener("error",l,!1),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}return a.addEventListener("load",s,!1),a.addEventListener("error",l,!1),"data:"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}),yUt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:yUt,load:function(t,e,n,i){const r=new gDt,o=new _Ut(this.manager);o.setCrossOrigin(this.crossOrigin),o.setPath(this.path);let a=0;function s(n){o.load(t[n],(function(t){r.images[n]=t,a++,6===a&&(r.needsUpdate=!0,e&&e(r))}),void 0,i)}for(let e=0;e<t.length;++e)s(e);return r}}),vUt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:vUt,load:function(t,e,n,i){const r=this,o=new yDt,a=new fUt(this.manager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(r.withCredentials),a.load(t,(function(t){const n=r.parse(t);n&&(void 0!==n.image?o.image=n.image:void 0!==n.data&&(o.image.width=n.width,o.image.height=n.height,o.image.data=n.data),o.wrapS=void 0!==n.wrapS?n.wrapS:HIt,o.wrapT=void 0!==n.wrapT?n.wrapT:HIt,o.magFilter=void 0!==n.magFilter?n.magFilter:GIt,o.minFilter=void 0!==n.minFilter?n.minFilter:GIt,o.anisotropy=void 0!==n.anisotropy?n.anisotropy:1,void 0!==n.encoding&&(o.encoding=n.encoding),void 0!==n.flipY&&(o.flipY=n.flipY),void 0!==n.format&&(o.format=n.format),void 0!==n.type&&(o.type=n.type),void 0!==n.mipmaps&&(o.mipmaps=n.mipmaps,o.minFilter=qIt),1===n.mipmapCount&&(o.minFilter=GIt),o.needsUpdate=!0,e&&e(o,n))}),n,i),o}}),bUt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:bUt,load:function(t,e,n,i){const r=new VOt,o=new _Ut(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,(function(n){r.image=n;const i=t.search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/);r.format=i?QIt:tOt,r.needsUpdate=!0,void 0!==e&&e(r)}),n,i),r}}),Object.assign(xUt.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)},getPoints:function(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e},getSpacedPoints:function(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e},getLength:function(){const t=this.getLengths();return t[t.length-1]},getLengths:function(t){if(void 0===t&&(t=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(t,e){const n=this.getLengths();let i=0;const r=n.length;let o;o=e||t*n[r-1];let a,s=0,l=r-1;for(;s<=l;)if(i=Math.floor(s+(l-s)/2),a=n[i]-o,a<0)s=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===o)return i/(r-1);const c=n[i];return(i+(o-c)/(n[i+1]-c))/(r-1)},getTangent:function(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const o=this.getPoint(i),a=this.getPoint(r),s=e||(o.isVector2?new zOt:new qOt);return s.copy(a).sub(o).normalize(),s},getTangentAt:function(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)},computeFrenetFrames:function(t,e){const n=new qOt,i=[],r=[],o=[],a=new qOt,s=new bRt;for(let e=0;e<=t;e++)i[e]=this.getTangentAt(e/t,new qOt),i[e].normalize();r[0]=new qOt,o[0]=new qOt;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),u=Math.abs(i[0].y),h=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),u<=l&&(l=u,n.set(0,1,0)),h<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),o[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),o[e]=o[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(ROt.clamp(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(s.makeRotationAxis(a,t))}o[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(ROt.clamp(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(s.makeRotationAxis(i[n],e*n)),o[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:o}},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this},toJSON:function(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t},fromJSON:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}),(wUt.prototype=Object.create(xUt.prototype)).constructor=wUt,wUt.prototype.isEllipseCurve=!0,wUt.prototype.getPoint=function(t,e){const n=e||new zOt,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const o=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(r=o?0:i),!0!==this.aClockwise||o||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let s=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=s-this.aX,i=l-this.aY;s=n*t-i*e+this.aX,l=n*e+i*t+this.aY}return n.set(s,l)},wUt.prototype.copy=function(t){return xUt.prototype.copy.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},wUt.prototype.toJSON=function(){const t=xUt.prototype.toJSON.call(this);return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t},wUt.prototype.fromJSON=function(t){return xUt.prototype.fromJSON.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},(SUt.prototype=Object.create(wUt.prototype)).constructor=SUt,SUt.prototype.isArcCurve=!0;const EUt=new qOt,TUt=new MUt,CUt=new MUt,AUt=new MUt;function kUt(t=[],e=!1,n="centripetal",i=.5){xUt.call(this),this.type="CatmullRomCurve3",this.points=t,this.closed=e,this.curveType=n,this.tension=i}function LUt(t,e,n,i,r){const o=.5*(i-e),a=.5*(r-n),s=t*t;return(2*n-2*i+o+a)*(t*s)+(-3*n+3*i-2*o-a)*s+o*t+n}function PUt(t,e,n,i){return(function r(t,e){const n=1-t;return n*n*e})(t,e)+(function o(t,e){return 2*(1-t)*t*e})(t,n)+(function a(t,e){return t*t*e})(t,i)}function NUt(t,e,n,i,r){return(function o(t,e){const n=1-t;return n*n*n*e})(t,e)+(function a(t,e){const n=1-t;return 3*n*n*t*e})(t,n)+(function s(t,e){return 3*(1-t)*t*t*e})(t,i)+(function l(t,e){return t*t*t*e})(t,r)}function IUt(t=new zOt,e=new zOt,n=new zOt,i=new zOt){xUt.call(this),this.type="CubicBezierCurve",this.v0=t,this.v1=e,this.v2=n,this.v3=i}function OUt(t=new qOt,e=new qOt,n=new qOt,i=new qOt){xUt.call(this),this.type="CubicBezierCurve3",this.v0=t,this.v1=e,this.v2=n,this.v3=i}function RUt(t=new zOt,e=new zOt){xUt.call(this),this.type="LineCurve",this.v1=t,this.v2=e}function zUt(t=new qOt,e=new qOt){xUt.call(this),this.type="LineCurve3",this.v1=t,this.v2=e}function DUt(t=new zOt,e=new zOt,n=new zOt){xUt.call(this),this.type="QuadraticBezierCurve",this.v0=t,this.v1=e,this.v2=n}function BUt(t=new qOt,e=new qOt,n=new qOt){xUt.call(this),this.type="QuadraticBezierCurve3",this.v0=t,this.v1=e,this.v2=n}function HUt(t=[]){xUt.call(this),this.type="SplineCurve",this.points=t}(kUt.prototype=Object.create(xUt.prototype)).constructor=kUt,kUt.prototype.isCatmullRomCurve3=!0,kUt.prototype.getPoint=function(t,e=new qOt){const n=e,i=this.points,r=i.length,o=(r-(this.closed?0:1))*t;let a,s,l=Math.floor(o),c=o-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(EUt.subVectors(i[0],i[1]).add(i[0]),a=EUt);const u=i[l%r],h=i[(l+1)%r];if(this.closed||l+2<r?s=i[(l+2)%r]:(EUt.subVectors(i[r-1],i[r-2]).add(i[r-1]),s=EUt),"centripetal"===this.curveType||"chordal"===this.curveType){const t="chordal"===this.curveType?.5:.25;let e=Math.pow(a.distanceToSquared(u),t),n=Math.pow(u.distanceToSquared(h),t),i=Math.pow(h.distanceToSquared(s),t);n<1e-4&&(n=1),e<1e-4&&(e=n),i<1e-4&&(i=n),TUt.initNonuniformCatmullRom(a.x,u.x,h.x,s.x,e,n,i),CUt.initNonuniformCatmullRom(a.y,u.y,h.y,s.y,e,n,i),AUt.initNonuniformCatmullRom(a.z,u.z,h.z,s.z,e,n,i)}else"catmullrom"===this.curveType&&(TUt.initCatmullRom(a.x,u.x,h.x,s.x,this.tension),CUt.initCatmullRom(a.y,u.y,h.y,s.y,this.tension),AUt.initCatmullRom(a.z,u.z,h.z,s.z,this.tension));return n.set(TUt.calc(c),CUt.calc(c),AUt.calc(c)),n},kUt.prototype.copy=function(t){xUt.prototype.copy.call(this,t),this.points=[];for(let e=0,n=t.points.length;e<n;e++)this.points.push(t.points[e].clone());return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},kUt.prototype.toJSON=function(){const t=xUt.prototype.toJSON.call(this);t.points=[];for(let e=0,n=this.points.length;e<n;e++)t.points.push(this.points[e].toArray());return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t},kUt.prototype.fromJSON=function(t){xUt.prototype.fromJSON.call(this,t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new qOt).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},(IUt.prototype=Object.create(xUt.prototype)).constructor=IUt,IUt.prototype.isCubicBezierCurve=!0,IUt.prototype.getPoint=function(t,e=new zOt){const n=e,i=this.v0,r=this.v1,o=this.v2,a=this.v3;return n.set(NUt(t,i.x,r.x,o.x,a.x),NUt(t,i.y,r.y,o.y,a.y)),n},IUt.prototype.copy=function(t){return xUt.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},IUt.prototype.toJSON=function(){const t=xUt.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},IUt.prototype.fromJSON=function(t){return xUt.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},(OUt.prototype=Object.create(xUt.prototype)).constructor=OUt,OUt.prototype.isCubicBezierCurve3=!0,OUt.prototype.getPoint=function(t,e=new qOt){const n=e,i=this.v0,r=this.v1,o=this.v2,a=this.v3;return n.set(NUt(t,i.x,r.x,o.x,a.x),NUt(t,i.y,r.y,o.y,a.y),NUt(t,i.z,r.z,o.z,a.z)),n},OUt.prototype.copy=function(t){return xUt.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},OUt.prototype.toJSON=function(){const t=xUt.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},OUt.prototype.fromJSON=function(t){return xUt.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},(RUt.prototype=Object.create(xUt.prototype)).constructor=RUt,RUt.prototype.isLineCurve=!0,RUt.prototype.getPoint=function(t,e=new zOt){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n},RUt.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},RUt.prototype.getTangent=function(t,e){const n=e||new zOt;return n.copy(this.v2).sub(this.v1).normalize(),n},RUt.prototype.copy=function(t){return xUt.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},RUt.prototype.toJSON=function(){const t=xUt.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},RUt.prototype.fromJSON=function(t){return xUt.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(zUt.prototype=Object.create(xUt.prototype)).constructor=zUt,zUt.prototype.isLineCurve3=!0,zUt.prototype.getPoint=function(t,e=new qOt){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n},zUt.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},zUt.prototype.copy=function(t){return xUt.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},zUt.prototype.toJSON=function(){const t=xUt.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},zUt.prototype.fromJSON=function(t){return xUt.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(DUt.prototype=Object.create(xUt.prototype)).constructor=DUt,DUt.prototype.isQuadraticBezierCurve=!0,DUt.prototype.getPoint=function(t,e=new zOt){const n=e,i=this.v0,r=this.v1,o=this.v2;return n.set(PUt(t,i.x,r.x,o.x),PUt(t,i.y,r.y,o.y)),n},DUt.prototype.copy=function(t){return xUt.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},DUt.prototype.toJSON=function(){const t=xUt.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},DUt.prototype.fromJSON=function(t){return xUt.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(BUt.prototype=Object.create(xUt.prototype)).constructor=BUt,BUt.prototype.isQuadraticBezierCurve3=!0,BUt.prototype.getPoint=function(t,e=new qOt){const n=e,i=this.v0,r=this.v1,o=this.v2;return n.set(PUt(t,i.x,r.x,o.x),PUt(t,i.y,r.y,o.y),PUt(t,i.z,r.z,o.z)),n},BUt.prototype.copy=function(t){return xUt.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},BUt.prototype.toJSON=function(){const t=xUt.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},BUt.prototype.fromJSON=function(t){return xUt.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(HUt.prototype=Object.create(xUt.prototype)).constructor=HUt,HUt.prototype.isSplineCurve=!0,HUt.prototype.getPoint=function(t,e=new zOt){const n=e,i=this.points,r=(i.length-1)*t,o=Math.floor(r),a=r-o,s=i[0===o?o:o-1],l=i[o],c=i[o>i.length-2?i.length-1:o+1],u=i[o>i.length-3?i.length-1:o+2];return n.set(LUt(a,s.x,l.x,c.x,u.x),LUt(a,s.y,l.y,c.y,u.y)),n},HUt.prototype.copy=function(t){xUt.prototype.copy.call(this,t),this.points=[];for(let e=0,n=t.points.length;e<n;e++)this.points.push(t.points[e].clone());return this},HUt.prototype.toJSON=function(){const t=xUt.prototype.toJSON.call(this);t.points=[];for(let e=0,n=this.points.length;e<n;e++)t.points.push(this.points[e].toArray());return t},HUt.prototype.fromJSON=function(t){xUt.prototype.fromJSON.call(this,t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new zOt).fromArray(n))}return this};var FUt=Object.freeze({__proto__:null,ArcCurve:SUt,CatmullRomCurve3:kUt,CubicBezierCurve:IUt,CubicBezierCurve3:OUt,EllipseCurve:wUt,LineCurve:RUt,LineCurve3:zUt,QuadraticBezierCurve:DUt,QuadraticBezierCurve3:BUt,SplineCurve:HUt});function VUt(){xUt.call(this),this.type="CurvePath",this.curves=[],this.autoClose=!1}function UUt(t){VUt.call(this),this.type="Path",this.currentPoint=new zOt,t&&this.setFromPoints(t)}function jUt(t){UUt.call(this,t),this.uuid=ROt.generateUUID(),this.type="Shape",this.holes=[]}function GUt(t,e=1){WRt.call(this),this.type="Light",this.color=new pzt(t),this.intensity=e}function WUt(t,e,n){GUt.call(this,t,n),this.type="HemisphereLight",this.position.copy(WRt.DefaultUp),this.updateMatrix(),this.groundColor=new pzt(e)}function qUt(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.mapSize=new zOt(512,512),this.map=null,this.mapPass=null,this.matrix=new bRt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new xDt,this._frameExtents=new zOt(1,1),this._viewportCount=1,this._viewports=[new jOt(0,0,1,1)]}function YUt(){qUt.call(this,new pDt(50,1,.5,500)),this.focus=1}function XUt(t,e,n,i,r,o){GUt.call(this,t,e),this.type="SpotLight",this.position.copy(WRt.DefaultUp),this.updateMatrix(),this.target=new WRt,Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(t){this.intensity=t/Math.PI}}),this.distance=void 0!==n?n:0,this.angle=void 0!==i?i:Math.PI/3,this.penumbra=void 0!==r?r:0,this.decay=void 0!==o?o:1,this.shadow=new YUt}function $Ut(){qUt.call(this,new pDt(90,1,.5,500)),this._frameExtents=new zOt(4,2),this._viewportCount=6,this._viewports=[new jOt(2,1,1,1),new jOt(0,1,1,1),new jOt(3,1,1,1),new jOt(1,1,1,1),new jOt(3,0,1,1),new jOt(1,0,1,1)],this._cubeDirections=[new qOt(1,0,0),new qOt(-1,0,0),new qOt(0,0,1),new qOt(0,0,-1),new qOt(0,1,0),new qOt(0,-1,0)],this._cubeUps=[new qOt(0,1,0),new qOt(0,1,0),new qOt(0,1,0),new qOt(0,1,0),new qOt(0,0,1),new qOt(0,0,-1)]}function KUt(t,e,n,i){GUt.call(this,t,e),this.type="PointLight",Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(t){this.intensity=t/(4*Math.PI)}}),this.distance=void 0!==n?n:0,this.decay=void 0!==i?i:1,this.shadow=new $Ut}function ZUt(t=-1,e=1,n=1,i=-1,r=.1,o=2e3){dDt.call(this),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=o,this.updateProjectionMatrix()}function JUt(){qUt.call(this,new ZUt(-5,5,5,-5,.5,500))}function QUt(t,e){GUt.call(this,t,e),this.type="DirectionalLight",this.position.copy(WRt.DefaultUp),this.updateMatrix(),this.target=new WRt,this.shadow=new JUt}function tjt(t,e){GUt.call(this,t,e),this.type="AmbientLight"}function ejt(t,e,n,i){GUt.call(this,t,e),this.type="RectAreaLight",this.width=void 0!==n?n:10,this.height=void 0!==i?i:10}VUt.prototype=Object.assign(Object.create(xUt.prototype),{constructor:VUt,add:function(t){this.curves.push(t)},closePath:function(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new RUt(e,t))},getPoint:function(t){const e=t*this.getLength(),n=this.getCurveLengths();let i=0;for(;i<n.length;){if(n[i]>=e){const t=n[i]-e,r=this.curves[i],o=r.getLength();return r.getPointAt(0===o?0:1-t/o)}i++}return null},getLength:function(){const t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t},getSpacedPoints:function(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e},getPoints:function(t=12){const e=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const o=r[i],a=o.getPoints(o&&o.isEllipseCurve?2*t:o&&(o.isLineCurve||o.isLineCurve3)?1:o&&o.isSplineCurve?t*o.points.length:t);for(let t=0;t<a.length;t++){const i=a[t];n&&n.equals(i)||(e.push(i),n=i)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e},copy:function(t){xUt.prototype.copy.call(this,t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++)this.curves.push(t.curves[e].clone());return this.autoClose=t.autoClose,this},toJSON:function(){const t=xUt.prototype.toJSON.call(this);t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++)t.curves.push(this.curves[e].toJSON());return t},fromJSON:function(t){xUt.prototype.fromJSON.call(this,t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new FUt[n.type]).fromJSON(n))}return this}}),UUt.prototype=Object.assign(Object.create(VUt.prototype),{constructor:UUt,setFromPoints:function(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this},moveTo:function(t,e){return this.currentPoint.set(t,e),this},lineTo:function(t,e){const n=new RUt(this.currentPoint.clone(),new zOt(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this},quadraticCurveTo:function(t,e,n,i){const r=new DUt(this.currentPoint.clone(),new zOt(t,e),new zOt(n,i));return this.curves.push(r),this.currentPoint.set(n,i),this},bezierCurveTo:function(t,e,n,i,r,o){const a=new IUt(this.currentPoint.clone(),new zOt(t,e),new zOt(n,i),new zOt(r,o));return this.curves.push(a),this.currentPoint.set(r,o),this},splineThru:function(t){const e=new HUt([this.currentPoint.clone()].concat(t));return this.curves.push(e),this.currentPoint.copy(t[t.length-1]),this},arc:function(t,e,n,i,r,o){return this.absarc(t+this.currentPoint.x,e+this.currentPoint.y,n,i,r,o),this},absarc:function(t,e,n,i,r,o){return this.absellipse(t,e,n,n,i,r,o),this},ellipse:function(t,e,n,i,r,o,a,s){return this.absellipse(t+this.currentPoint.x,e+this.currentPoint.y,n,i,r,o,a,s),this},absellipse:function(t,e,n,i,r,o,a,s){const l=new wUt(t,e,n,i,r,o,a,s);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this},copy:function(t){return VUt.prototype.copy.call(this,t),this.currentPoint.copy(t.currentPoint),this},toJSON:function(){const t=VUt.prototype.toJSON.call(this);return t.currentPoint=this.currentPoint.toArray(),t},fromJSON:function(t){return VUt.prototype.fromJSON.call(this,t),this.currentPoint.fromArray(t.currentPoint),this}}),jUt.prototype=Object.assign(Object.create(UUt.prototype),{constructor:jUt,getPointsHoles:function(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e},extractPoints:function(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}},copy:function(t){UUt.prototype.copy.call(this,t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++)this.holes.push(t.holes[e].clone());return this},toJSON:function(){const t=UUt.prototype.toJSON.call(this);t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++)t.holes.push(this.holes[e].toJSON());return t},fromJSON:function(t){UUt.prototype.fromJSON.call(this,t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new UUt).fromJSON(n))}return this}}),GUt.prototype=Object.assign(Object.create(WRt.prototype),{constructor:GUt,isLight:!0,copy:function(t){return WRt.prototype.copy.call(this,t),this.color.copy(t.color),this.intensity=t.intensity,this},toJSON:function(t){const e=WRt.prototype.toJSON.call(this,t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}),WUt.prototype=Object.assign(Object.create(GUt.prototype),{constructor:WUt,isHemisphereLight:!0,copy:function(t){return GUt.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}),Object.assign(qUt.prototype,{_projScreenMatrix:new bRt,_lightPositionWorld:new qOt,_lookTarget:new qOt,getViewportCount:function(){return this._viewportCount},getFrustum:function(){return this._frustum},updateMatrices:function(t){const e=this.camera,n=this.matrix,i=this._projScreenMatrix,r=this._lookTarget,o=this._lightPositionWorld;o.setFromMatrixPosition(t.matrixWorld),e.position.copy(o),r.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(r),e.updateMatrixWorld(),i.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(i),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)},getViewport:function(t){return this._viewports[t]},getFrameExtents:function(){return this._frameExtents},copy:function(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}),YUt.prototype=Object.assign(Object.create(qUt.prototype),{constructor:YUt,isSpotLightShadow:!0,updateMatrices:function(t){const e=this.camera,n=2*ROt.RAD2DEG*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),qUt.prototype.updateMatrices.call(this,t)}}),XUt.prototype=Object.assign(Object.create(GUt.prototype),{constructor:XUt,isSpotLight:!0,copy:function(t){return GUt.prototype.copy.call(this,t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),$Ut.prototype=Object.assign(Object.create(qUt.prototype),{constructor:$Ut,isPointLightShadow:!0,updateMatrices:function(t,e=0){const n=this.camera,i=this.matrix,r=this._lightPositionWorld,o=this._lookTarget,a=this._projScreenMatrix;r.setFromMatrixPosition(t.matrixWorld),n.position.copy(r),o.copy(n.position),o.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(o),n.updateMatrixWorld(),i.makeTranslation(-r.x,-r.y,-r.z),a.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(a)}}),KUt.prototype=Object.assign(Object.create(GUt.prototype),{constructor:KUt,isPointLight:!0,copy:function(t){return GUt.prototype.copy.call(this,t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}),ZUt.prototype=Object.assign(Object.create(dDt.prototype),{constructor:ZUt,isOrthographicCamera:!0,copy:function(t,e){return dDt.prototype.copy.call(this,t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this},setViewOffset:function(t,e,n,i,r,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,o=n+t,a=i+e,s=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,o=r+t*this.view.width,a-=e*this.view.offsetY,s=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,o,a,s,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()},toJSON:function(t){const e=WRt.prototype.toJSON.call(this,t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}),JUt.prototype=Object.assign(Object.create(qUt.prototype),{constructor:JUt,isDirectionalLightShadow:!0,updateMatrices:function(t){qUt.prototype.updateMatrices.call(this,t)}}),QUt.prototype=Object.assign(Object.create(GUt.prototype),{constructor:QUt,isDirectionalLight:!0,copy:function(t){return GUt.prototype.copy.call(this,t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),tjt.prototype=Object.assign(Object.create(GUt.prototype),{constructor:tjt,isAmbientLight:!0}),ejt.prototype=Object.assign(Object.create(GUt.prototype),{constructor:ejt,isRectAreaLight:!0,copy:function(t){return GUt.prototype.copy.call(this,t),this.width=t.width,this.height=t.height,this},toJSON:function(t){const e=GUt.prototype.toJSON.call(this,t);return e.object.width=this.width,e.object.height=this.height,e}});class njt{constructor(){Object.defineProperty(this,"isSphericalHarmonics3",{value:!0}),this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new qOt)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,o=this.coefficients;return e.copy(o[0]).multiplyScalar(.282095),e.addScaledVector(o[1],.488603*i),e.addScaledVector(o[2],.488603*r),e.addScaledVector(o[3],.488603*n),e.addScaledVector(o[4],n*i*1.092548),e.addScaledVector(o[5],i*r*1.092548),e.addScaledVector(o[6],.315392*(3*r*r-1)),e.addScaledVector(o[7],n*r*1.092548),e.addScaledVector(o[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,o=this.coefficients;return e.copy(o[0]).multiplyScalar(.886227),e.addScaledVector(o[1],1.023328*i),e.addScaledVector(o[2],1.023328*r),e.addScaledVector(o[3],1.023328*n),e.addScaledVector(o[4],.858086*n*i),e.addScaledVector(o[5],.858086*i*r),e.addScaledVector(o[6],.743125*r*r-.247708),e.addScaledVector(o[7],.858086*n*r),e.addScaledVector(o[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}function ijt(t,e){GUt.call(this,void 0,e),this.type="LightProbe",this.sh=void 0!==t?t:new njt}function rjt(t){dUt.call(this,t),this.textures={}}ijt.prototype=Object.assign(Object.create(GUt.prototype),{constructor:ijt,isLightProbe:!0,copy:function(t){return GUt.prototype.copy.call(this,t),this.sh.copy(t.sh),this},fromJSON:function(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this},toJSON:function(t){const e=GUt.prototype.toJSON.call(this,t);return e.object.sh=this.sh.toArray(),e}}),rjt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:rjt,load:function(t,e,n,i){const r=this,o=new fUt(r.manager);o.setPath(r.path),o.setRequestHeader(r.requestHeader),o.setWithCredentials(r.withCredentials),o.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)},parse:function(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn("THREE.MaterialLoader: Undefined texture",t),e[t]}const i=new YVt[t.type];if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=(new pzt).setHex(t.sheen)),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),1!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.skinning&&(i.skinning=t.skinning),void 0!==t.morphTargets&&(i.morphTargets=t.morphTargets),void 0!==t.morphNormals&&(i.morphNormals=t.morphNormals),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.vertexTangents&&(i.vertexTangents=t.vertexTangents),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&(i.vertexColors="number"==typeof t.vertexColors?t.vertexColors>0:t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new pzt).setHex(r.value);break;case"v2":i.uniforms[e].value=(new zOt).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new qOt).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new jOt).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new DOt).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new bRt).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(i.flatShading=1===t.shading),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new zOt).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new zOt).fromArray(t.clearcoatNormalScale)),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),i},setTextures:function(t){return this.textures=t,this}});const ojt={decodeText:function(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n<i;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}},extractUrlBase:function(t){const e=t.lastIndexOf("/");return-1===e?"./":t.substr(0,e+1)}};function ajt(){Vzt.call(this),this.type="InstancedBufferGeometry",this.instanceCount=1/0}function sjt(t,e,n,i){"number"==typeof n&&(i=n,n=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),bzt.call(this,t,e,n),this.meshPerAttribute=i||1}function ljt(t){dUt.call(this,t)}ajt.prototype=Object.assign(Object.create(Vzt.prototype),{constructor:ajt,isInstancedBufferGeometry:!0,copy:function(t){return Vzt.prototype.copy.call(this,t),this.instanceCount=t.instanceCount,this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){const t=Vzt.prototype.toJSON.call(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}),sjt.prototype=Object.assign(Object.create(bzt.prototype),{constructor:sjt,isInstancedBufferAttribute:!0,copy:function(t){return bzt.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this},toJSON:function(){const t=bzt.prototype.toJSON.call(this);return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}),ljt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:ljt,load:function(t,e,n,i){const r=this,o=new fUt(r.manager);o.setPath(r.path),o.setRequestHeader(r.requestHeader),o.setWithCredentials(r.withCredentials),o.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)},parse:function(t){const e={},n={};function i(t,i){if(void 0!==e[i])return e[i];const r=t.interleavedBuffers[i],o=(function a(t,e){if(void 0!==n[e])return n[e];const i=new Uint32Array(t.arrayBuffers[e]).buffer;return n[e]=i,i})(t,r.buffer),s=new IHt(Izt(r.type,o),r.stride);return s.uuid=r.uuid,e[i]=s,s}const r=t.isInstancedBufferGeometry?new ajt:new Vzt,o=t.data.index;if(void 0!==o){const t=Izt(o.type,o.array);r.setIndex(new bzt(t,1))}const a=t.data.attributes;for(const e in a){const n=a[e];let o;if(n.isInterleavedBufferAttribute)o=new RHt(i(t.data,n.data),n.itemSize,n.offset,n.normalized);else{const t=Izt(n.type,n.array);o=new(n.isInstancedBufferAttribute?sjt:bzt)(t,n.itemSize,n.normalized)}void 0!==n.name&&(o.name=n.name),r.setAttribute(e,o)}const s=t.data.morphAttributes;if(s)for(const e in s){const n=s[e],o=[];for(let e=0,r=n.length;e<r;e++){const r=n[e];let a;a=r.isInterleavedBufferAttribute?new RHt(i(t.data,r.data),r.itemSize,r.offset,r.normalized):new bzt(Izt(r.type,r.array),r.itemSize,r.normalized),void 0!==r.name&&(a.name=r.name),o.push(a)}r.morphAttributes[e]=o}t.data.morphTargetsRelative&&(r.morphTargetsRelative=!0);const l=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==l)for(let t=0,e=l.length;t!==e;++t){const e=l[t];r.addGroup(e.start,e.count,e.materialIndex)}const c=t.data.boundingSphere;if(void 0!==c){const t=new qOt;void 0!==c.center&&t.fromArray(c.center),r.boundingSphere=new hRt(t,c.radius)}return t.name&&(r.name=t.name),t.userData&&(r.userData=t.userData),r}});const cjt={UVMapping:PIt,CubeReflectionMapping:NIt,CubeRefractionMapping:IIt,EquirectangularReflectionMapping:OIt,EquirectangularRefractionMapping:RIt,CubeUVReflectionMapping:zIt,CubeUVRefractionMapping:DIt},ujt={RepeatWrapping:BIt,ClampToEdgeWrapping:HIt,MirroredRepeatWrapping:FIt},hjt={NearestFilter:VIt,NearestMipmapNearestFilter:UIt,NearestMipmapLinearFilter:jIt,LinearFilter:GIt,LinearMipmapNearestFilter:WIt,LinearMipmapLinearFilter:qIt};function djt(t){"undefined"==typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),"undefined"==typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),dUt.call(this,t),this.options={premultiplyAlpha:"none"}}function pjt(){this.type="ShapePath",this.color=new pzt,this.subPaths=[],this.currentPath=null}djt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:djt,isImageBitmapLoader:!0,setOptions:function t(e){return this.options=e,this},load:function(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,o=cUt.get(t);if(void 0!==o)return r.manager.itemStart(t),setTimeout((function(){e&&e(o),r.manager.itemEnd(t)}),0),o;const a={};a.credentials="anonymous"===this.crossOrigin?"same-origin":"include",fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,r.options)})).then((function(n){cUt.add(t,n),e&&e(n),r.manager.itemEnd(t)})).catch((function(e){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)})),r.manager.itemStart(t)}}),Object.assign(pjt.prototype,{moveTo:function(t,e){return this.currentPath=new UUt,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this},lineTo:function(t,e){return this.currentPath.lineTo(t,e),this},quadraticCurveTo:function(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this},bezierCurveTo:function(t,e,n,i,r,o){return this.currentPath.bezierCurveTo(t,e,n,i,r,o),this},splineThru:function(t){return this.currentPath.splineThru(t),this},toShapes:function(t,e){function n(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n],r=new jUt;r.curves=i.curves,e.push(r)}return e}function i(t,e){const n=e.length;let i=!1;for(let r=n-1,o=0;o<n;r=o++){let n=e[r],a=e[o],s=a.x-n.x,l=a.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0&&(n=e[o],s=-s,a=e[r],l=-l),t.y<n.y||t.y>a.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-s*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const r=yVt.isClockWise,o=this.subPaths;if(0===o.length)return[];if(!0===e)return n(o);let a,s,l;const c=[];if(1===o.length)return s=o[0],l=new jUt,l.curves=s.curves,c.push(l),c;let u=!r(o[0].getPoints());u=t?!u:u;const h=[],d=[];let p,f,m=[],g=0;d[g]=void 0,m[g]=[];for(let e=0,n=o.length;e<n;e++)s=o[e],p=s.getPoints(),a=r(p),a=t?!a:a,a?(!u&&d[g]&&g++,d[g]={s:new jUt,p:p},d[g].s.curves=s.curves,u&&g++,m[g]=[]):m[g].push({h:s,p:p[0]});if(!d[0])return n(o);if(d.length>1){let t=!1;const e=[];for(let t=0,e=d.length;t<e;t++)h[t]=[];for(let n=0,r=d.length;n<r;n++){const r=m[n];for(let o=0;o<r.length;o++){const a=r[o];let s=!0;for(let r=0;r<d.length;r++)i(a.p,d[r].p)&&(n!==r&&e.push({froms:n,tos:r,hole:o}),s?(s=!1,h[r].push(a)):t=!0);s&&h[n].push(a)}}e.length>0&&(t||(m=h))}for(let t=0,e=d.length;t<e;t++){l=d[t].s,c.push(l),f=m[t];for(let t=0,e=f.length;t<e;t++)l.holes.push(f[t].h)}return c}});class fjt{constructor(t){Object.defineProperty(this,"isFont",{value:!0}),this.type="Font",this.data=t}generateShapes(t,e=100){const n=[],i=(function r(t,e,n){const i=Array.from?Array.from(t):String(t).split(""),r=e/n.resolution,o=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*r,a=[];let s=0,l=0;for(let t=0;t<i.length;t++){const e=i[t];if("\n"===e)s=0,l-=o;else{const t=mjt(e,r,s,l,n);s+=t.offsetX,a.push(t.path)}}return a})(t,e,this.data);for(let t=0,e=i.length;t<e;t++)Array.prototype.push.apply(n,i[t].toShapes());return n}}function mjt(t,e,n,i,r){const o=r.glyphs[t]||r.glyphs["?"];if(!o)return void console.error('THREE.Font: character "'+t+'" does not exists in font family '+r.familyName+".");const a=new pjt;let s,l,c,u,h,d,p,f;if(o.o){const t=o._cachedOutline||(o._cachedOutline=o.o.split(" "));for(let r=0,o=t.length;r<o;)switch(t[r++]){case"m":s=t[r++]*e+n,l=t[r++]*e+i,a.moveTo(s,l);break;case"l":s=t[r++]*e+n,l=t[r++]*e+i,a.lineTo(s,l);break;case"q":c=t[r++]*e+n,u=t[r++]*e+i,h=t[r++]*e+n,d=t[r++]*e+i,a.quadraticCurveTo(h,d,c,u);break;case"b":c=t[r++]*e+n,u=t[r++]*e+i,h=t[r++]*e+n,d=t[r++]*e+i,p=t[r++]*e+n,f=t[r++]*e+i,a.bezierCurveTo(h,d,p,f,c,u)}}return{offsetX:o.ha*e,path:a}}function gjt(t){dUt.call(this,t)}let _jt;gjt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:gjt,load:function(t,e,n,i){const r=this,o=new fUt(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials),o.load(t,(function(t){let n;try{n=JSON.parse(t)}catch(e){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),n=JSON.parse(t.substring(65,t.length-2))}const i=r.parse(n);e&&e(i)}),n,i)},parse:function(t){return new fjt(t)}});const yjt={getContext:function(){return void 0===_jt&&(_jt=new(window.AudioContext||window.webkitAudioContext)),_jt},setContext:function(t){_jt=t}};function vjt(t){dUt.call(this,t)}function bjt(t,e,n){ijt.call(this,void 0,n);const i=(new pzt).set(t),r=(new pzt).set(e),o=new qOt(i.r,i.g,i.b),a=new qOt(r.r,r.g,r.b),s=Math.sqrt(Math.PI),l=s*Math.sqrt(.75);this.sh.coefficients[0].copy(o).add(a).multiplyScalar(s),this.sh.coefficients[1].copy(o).sub(a).multiplyScalar(l)}function xjt(t,e){ijt.call(this,void 0,e);const n=(new pzt).set(t);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}vjt.prototype=Object.assign(Object.create(dUt.prototype),{constructor:vjt,load:function(t,e,n,i){const r=this,o=new fUt(r.manager);o.setResponseType("arraybuffer"),o.setPath(r.path),o.setRequestHeader(r.requestHeader),o.setWithCredentials(r.withCredentials),o.load(t,(function(n){try{const t=n.slice(0);yjt.getContext().decodeAudioData(t,(function(t){e(t)}))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}}),bjt.prototype=Object.assign(Object.create(ijt.prototype),{constructor:bjt,isHemisphereLightProbe:!0,copy:function(t){return ijt.prototype.copy.call(this,t),this},toJSON:function(t){return ijt.prototype.toJSON.call(this,t)}}),xjt.prototype=Object.assign(Object.create(ijt.prototype),{constructor:xjt,isAmbientLightProbe:!0,copy:function(t){return ijt.prototype.copy.call(this,t),this},toJSON:function(t){return ijt.prototype.toJSON.call(this,t)}});const wjt=new bRt,Sjt=new bRt;function Mjt(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new pDt,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new pDt,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}Object.assign(Mjt.prototype,{update:function(t){const e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep;const n=t.projectionMatrix.clone(),i=e.eyeSep/2,r=i*e.near/e.focus,o=e.near*Math.tan(ROt.DEG2RAD*e.fov*.5)/e.zoom;let a,s;Sjt.elements[12]=-i,wjt.elements[12]=i,a=-o*e.aspect+r,s=o*e.aspect+r,n.elements[0]=2*e.near/(s-a),n.elements[8]=(s+a)/(s-a),this.cameraL.projectionMatrix.copy(n),a=-o*e.aspect-r,s=o*e.aspect-r,n.elements[0]=2*e.near/(s-a),n.elements[8]=(s+a)/(s-a),this.cameraR.projectionMatrix.copy(n)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(Sjt),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(wjt)}});class Ejt{constructor(t){this.autoStart=void 0===t||t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Tjt(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Tjt();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Tjt(){return("undefined"==typeof performance?Date:performance).now()}const Cjt=new qOt,Ajt=new WOt,kjt=new qOt,Ljt=new qOt;class Pjt extends WRt{constructor(t){super(),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn("THREE.Audio: this Audio has no playback control.")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}const Njt=new qOt,Ijt=new WOt,Ojt=new qOt,Rjt=new qOt;class zjt{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}}function Djt(t,e,n){let i,r,o;switch(this.binding=t,this.valueSize=n,e){case"quaternion":i=this._slerp,r=this._slerpAdditive,o=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case"string":case"bool":i=this._select,r=this._select,o=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:i=this._lerp,r=this._lerpAdditive,o=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=r,this._setIdentity=o,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}Object.assign(Djt.prototype,{accumulate:function(t,e){const n=this.buffer,i=this.valueSize,r=t*i+i;let o=this.cumulativeWeight;if(0===o){for(let t=0;t!==i;++t)n[r+t]=n[t];o=e}else o+=e,this._mixBufferRegion(n,r,0,e/o,i);this.cumulativeWeight=o},accumulateAdditive:function(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,i,0,t,n),this.cumulativeWeightAdditive+=t},apply:function(t){const e=this.valueSize,n=this.buffer,i=t*e+e,r=this.cumulativeWeight,o=this.cumulativeWeightAdditive,a=this.binding;this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,r<1&&this._mixBufferRegion(n,i,e*this._origIndex,1-r,e),o>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}},saveOriginalState:function(){const t=this.buffer,e=this.valueSize,n=e*this._origIndex;this.binding.getValue(t,n);for(let i=e,r=n;i!==r;++i)t[i]=t[n+i%e];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_setAdditiveIdentityNumeric:function(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0},_setAdditiveIdentityQuaternion:function(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1},_setAdditiveIdentityOther:function(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]},_select:function(t,e,n,i,r){if(i>=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]},_slerp:function(t,e,n,i){WOt.slerpFlat(t,e,t,e,t,n,i)},_slerpAdditive:function(t,e,n,i,r){const o=this._workIndex*r;WOt.multiplyQuaternionsFlat(t,o,t,e,t,n),WOt.slerpFlat(t,e,t,e,t,o,i)},_lerp:function(t,e,n,i,r){const o=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*o+t[n+a]*i}},_lerpAdditive:function(t,e,n,i,r){for(let o=0;o!==r;++o){const r=e+o;t[r]=t[r]+t[n+o]*i}}});const Bjt=new RegExp("[\\[\\]\\.:\\/]","g"),Hjt="[^\\[\\]\\.:\\/]",Fjt="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",Vjt=/((?:WC+[\/:])*)/.source.replace("WC",Hjt),Ujt=/(WCOD+)?/.source.replace("WCOD",Fjt),jjt=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Hjt),Gjt=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Hjt),Wjt=new RegExp("^"+Vjt+Ujt+jjt+Gjt+"$"),qjt=["material","materials","bones"];function Yjt(t,e,n){const i=n||Xjt.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}function Xjt(t,e,n){this.path=e,this.parsedPath=n||Xjt.parseTrackName(e),this.node=Xjt.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}function $jt(){this.uuid=ROt.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let e=0,n=arguments.length;e!==n;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}Object.assign(Yjt.prototype,{getValue:function(t,e){this.bind();const n=this._bindings[this._targetGroup.nCachedObjects_];void 0!==n&&n.getValue(t,e)},setValue:function(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)},bind:function(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()},unbind:function(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}),Object.assign(Xjt,{Composite:Yjt,create:function(t,e,n){return t&&t.isAnimationObjectGroup?new Xjt.Composite(t,e,n):new Xjt(t,e,n)},sanitizeNodeName:function(t){return t.replace(/\s/g,"_").replace(Bjt,"")},parseTrackName:function(t){const e=Wjt.exec(t);if(!e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==qjt.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n},findNode:function(t,e){if(!e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const r=t[i];if(r.name===e||r.uuid===e)return r;const o=n(r.children);if(o)return o}return null},i=n(t.children);if(i)return i}return null}}),Object.assign(Xjt.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function t(e,n){e[n]=this.node[this.propertyName]},function t(e,n){const i=this.resolvedProperty;for(let t=0,r=i.length;t!==r;++t)e[n++]=i[t]},function t(e,n){e[n]=this.resolvedProperty[this.propertyIndex]},function t(e,n){this.resolvedProperty.toArray(e,n)}],SetterByBindingTypeAndVersioning:[[function t(e,n){this.targetObject[this.propertyName]=e[n]},function t(e,n){this.targetObject[this.propertyName]=e[n],this.targetObject.needsUpdate=!0},function t(e,n){this.targetObject[this.propertyName]=e[n],this.targetObject.matrixWorldNeedsUpdate=!0}],[function t(e,n){const i=this.resolvedProperty;for(let t=0,r=i.length;t!==r;++t)i[t]=e[n++]},function t(e,n){const i=this.resolvedProperty;for(let t=0,r=i.length;t!==r;++t)i[t]=e[n++];this.targetObject.needsUpdate=!0},function t(e,n){const i=this.resolvedProperty;for(let t=0,r=i.length;t!==r;++t)i[t]=e[n++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function t(e,n){this.resolvedProperty[this.propertyIndex]=e[n]},function t(e,n){this.resolvedProperty[this.propertyIndex]=e[n],this.targetObject.needsUpdate=!0},function t(e,n){this.resolvedProperty[this.propertyIndex]=e[n],this.targetObject.matrixWorldNeedsUpdate=!0}],[function t(e,n){this.resolvedProperty.fromArray(e,n)},function t(e,n){this.resolvedProperty.fromArray(e,n),this.targetObject.needsUpdate=!0},function t(e,n){this.resolvedProperty.fromArray(e,n),this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function t(e,n){this.bind(),this.getValue(e,n)},setValue:function t(e,n){this.bind(),this.setValue(e,n)},bind:function(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let r=e.propertyIndex;if(t||(t=Xjt.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.");if(n){let i=e.objectIndex;switch(n){case"materials":if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;default:if(void 0===t[n])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);t=t[i]}}const o=t[i];if(void 0===o)return void console.error("THREE.PropertyBinding: Trying to update property for track: "+e.nodeName+"."+i+" but it wasn't found.",t);let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let s=this.BindingType.Direct;if(void 0!==r){if("morphTargetInfluences"===i){if(!t.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(!t.geometry.isBufferGeometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",this);if(!t.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);void 0!==t.morphTargetDictionary[r]&&(r=t.morphTargetDictionary[r])}s=this.BindingType.ArrayElement,this.resolvedProperty=o,this.propertyIndex=r}else void 0!==o.fromArray&&void 0!==o.toArray?(s=this.BindingType.HasFromToArray,this.resolvedProperty=o):Array.isArray(o)?(s=this.BindingType.EntireArray,this.resolvedProperty=o):this.propertyName=i;this.getValue=this.GetterByBindingType[s],this.setValue=this.SetterByBindingTypeAndVersioning[s][a]},unbind:function(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}),Object.assign(Xjt.prototype,{_getValue_unbound:Xjt.prototype.getValue,_setValue_unbound:Xjt.prototype.setValue}),Object.assign($jt.prototype,{isAnimationObjectGroup:!0,add:function(){const t=this._objects,e=this._indicesByUUID,n=this._paths,i=this._parsedPaths,r=this._bindings,o=r.length;let a,s=t.length,l=this.nCachedObjects_;for(let c=0,u=arguments.length;c!==u;++c){const u=arguments[c],h=u.uuid;let d=e[h];if(void 0===d){d=s++,e[h]=d,t.push(u);for(let t=0,e=o;t!==e;++t)r[t].push(new Xjt(u,n[t],i[t]))}else if(d<l){a=t[d];const s=--l,c=t[s];e[c.uuid]=d,t[d]=c,e[h]=s,t[s]=u;for(let t=0,e=o;t!==e;++t){const e=r[t];let o=e[d];e[d]=e[s],void 0===o&&(o=new Xjt(u,n[t],i[t])),e[s]=o}}else t[d]!==a&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=l},remove:function(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_;for(let o=0,a=arguments.length;o!==a;++o){const a=arguments[o],s=a.uuid,l=e[s];if(void 0!==l&&l>=r){const o=r++,c=t[o];e[c.uuid]=l,t[l]=c,e[s]=o,t[o]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[l];e[l]=e[o],e[o]=i}}}this.nCachedObjects_=r},uncache:function(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,o=t.length;for(let a=0,s=arguments.length;a!==s;++a){const s=arguments[a].uuid,l=e[s];if(void 0!==l)if(delete e[s],l<r){const a=--r,s=t[a],c=--o,u=t[c];e[s.uuid]=l,t[l]=s,e[u.uuid]=a,t[a]=u,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[c];e[l]=e[a],e[a]=i,e.pop()}}else{const r=--o,a=t[r];r>0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r},subscribe_:function(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const o=this._paths,a=this._parsedPaths,s=this._objects,l=this.nCachedObjects_,c=new Array(s.length);i=r.length,n[t]=i,o.push(t),a.push(e),r.push(c);for(let n=l,i=s.length;n!==i;++n)c[n]=new Xjt(s[n],t,e);return c},unsubscribe_:function(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,o=this._bindings,a=o.length-1,s=o[a];e[t[a]]=n,o[n]=s,o.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}});class Kjt{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,o=r.length,a=new Array(o),s={endingStart:gOt,endingEnd:gOt};for(let t=0;t!==o;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=s}this._interpolantSettings=s,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=n/i;t.warp(1,i/n,e),this.warp(r,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,o=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const s=a.parameterPositions,l=a.sampleValues;return s[0]=r,s[1]=r+n,l[0]=t/o,l[1]=e/o,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const o=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case bOt:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(o),e[n].accumulateAdditive(a);break;case vOt:default:for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(o),e[n].accumulate(i,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;null!==n&&(e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e))}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const o=2202===n;if(0===t)return-1===r?i:o&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,o)):this._setEndings(0===this.repetitions,!0,o)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,o)}else this._setEndings(!1,!1,o);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(o&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=_Ot,i.endingEnd=_Ot):(i.endingStart=t?this.zeroSlopeAtStart?_Ot:gOt:yOt,i.endingEnd=e?this.zeroSlopeAtEnd?_Ot:gOt:yOt)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let o=this._weightInterpolant;null===o&&(o=i._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,s=o.sampleValues;return a[0]=r,s[0]=e,a[1]=r+t,s[1]=n,this}}function Zjt(t){this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}Zjt.prototype=Object.assign(Object.create(NOt.prototype),{constructor:Zjt,_bindAction:function(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,o=t._propertyBindings,a=t._interpolants,s=n.uuid,l=this._bindingsByRootAndName;let c=l[s];void 0===c&&(c={},l[s]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let u=c[l];if(void 0!==u)o[t]=u;else{if(u=o[t],void 0!==u){null===u._cacheIndex&&(++u.referenceCount,this._addInactiveBinding(u,s,l));continue}u=new Djt(Xjt.create(n,l,e&&e._propertyBindings[t].binding.parsedPath),r.ValueTypeName,r.getValueSize()),++u.referenceCount,this._addInactiveBinding(u,s,l),o[t]=u}a[t].resultBuffer=u.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}},_isActiveAction:function(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions},_addInactiveAction:function(t,e,n){const i=this._actions,r=this._actionsByClip;let o=r[e];if(void 0===o)o={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,r[e]=o;else{const e=o.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=i.length,i.push(t),o.actionByRoot[n]=t},_removeInactiveAction:function(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i,e[i]=n,e.pop(),t._cacheIndex=null;const r=t._clip.uuid,o=this._actionsByClip,a=o[r],s=a.knownActions,l=s[s.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,s[c]=l,s.pop(),t._byClipCacheIndex=null,delete a.actionByRoot[(t._localRoot||this._root).uuid],0===s.length&&delete o[r],this._removeInactiveBindingsForAction(t)},_removeInactiveBindingsForAction:function(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}},_lendAction:function(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r},_takeBackAction:function(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r},_addInactiveBinding:function(t,e,n){const i=this._bindingsByRootAndName,r=this._bindings;let o=i[e];void 0===o&&(o={},i[e]=o),o[n]=t,t._cacheIndex=r.length,r.push(t)},_removeInactiveBinding:function(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,r=n.path,o=this._bindingsByRootAndName,a=o[i],s=e[e.length-1],l=t._cacheIndex;s._cacheIndex=l,e[l]=s,e.pop(),delete a[r],0===Object.keys(a).length&&delete o[i]},_lendBinding:function(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r},_takeBackBinding:function(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r},_lendControlInterpolant:function(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new ZVt(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n},_takeBackControlInterpolant:function(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,r=e[i];t.__cacheIndex=i,e[i]=t,r.__cacheIndex=n,e[n]=r},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(t,e,n){const i=e||this._root,r=i.uuid;let o="string"==typeof t?sUt.findByName(i,t):t;const a=null!==o?o.uuid:t,s=this._actionsByClip[a];let l=null;if(void 0===n&&(n=null!==o?o.blendMode:vOt),void 0!==s){const t=s.actionByRoot[r];if(void 0!==t&&t.blendMode===n)return t;l=s.knownActions[0],null===o&&(o=l._clip)}if(null===o)return null;const c=new Kjt(this,o,e,n);return this._bindAction(c,l),this._addInactiveAction(c,a,r),c},existingAction:function(t,e){const n=e||this._root,i=n.uuid,r="string"==typeof t?sUt.findByName(n,t):t,o=this._actionsByClip[r?r.uuid:t];return void 0!==o&&o.actionByRoot[i]||null},stopAllAction:function(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this},update:function(t){const e=this._actions,n=this._nActiveActions,i=this.time+=t*=this.timeScale,r=Math.sign(t),o=this._accuIndex^=1;for(let a=0;a!==n;++a)e[a]._update(i,t,r,o);const a=this._bindings,s=this._nActiveBindings;for(let t=0;t!==s;++t)a[t].apply(o);return this},setTime:function(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)},getRoot:function(){return this._root},uncacheClip:function(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,r=i[n];if(void 0!==r){const t=r.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const r=i._cacheIndex,o=e[e.length-1];i._cacheIndex=null,i._byClipCacheIndex=null,o._cacheIndex=r,e[r]=o,e.pop(),this._removeInactiveBindingsForAction(i)}delete i[n]}},uncacheRoot:function(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const i=n[t].actionByRoot[e];void 0!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}const i=this._bindingsByRootAndName[e];if(void 0!==i)for(const t in i){const e=i[t];e.restoreOriginalState(),this._removeInactiveBinding(e)}},uncacheAction:function(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}});class Jjt{constructor(t){"string"==typeof t&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),t=arguments[1]),this.value=t}clone(){return new Jjt(void 0===this.value.clone?this.value:this.value.clone())}}function Qjt(t,e,n){IHt.call(this,t,e),this.meshPerAttribute=n||1}function tGt(t,e,n,i,r){this.buffer=t,this.type=e,this.itemSize=n,this.elementSize=i,this.count=r,this.version=0}function eGt(t,e,n,i){this.ray=new vRt(t,e),this.near=n||0,this.far=i||1/0,this.camera=null,this.layers=new PRt,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function nGt(t,e){return t.distance-e.distance}function iGt(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,r=i.length;t<r;t++)iGt(i[t],e,n,!0)}}Qjt.prototype=Object.assign(Object.create(IHt.prototype),{constructor:Qjt,isInstancedInterleavedBuffer:!0,copy:function(t){return IHt.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this},clone:function(t){const e=IHt.prototype.clone.call(this,t);return e.meshPerAttribute=this.meshPerAttribute,e},toJSON:function(t){const e=IHt.prototype.toJSON.call(this,t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}),Object.defineProperty(tGt.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(tGt.prototype,{isGLBufferAttribute:!0,setBuffer:function(t){return this.buffer=t,this},setType:function(t,e){return this.type=t,this.elementSize=e,this},setItemSize:function(t){return this.itemSize=t,this},setCount:function(t){return this.count=t,this}}),Object.assign(eGt.prototype,{set:function(t,e){this.ray.set(t,e)},setFromCamera:function(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error("THREE.Raycaster: Unsupported camera type: "+e.type)},intersectObject:function(t,e,n){const i=n||[];return iGt(t,this,i,e),i.sort(nGt),i},intersectObjects:function(t,e,n){const i=n||[];if(!1===Array.isArray(t))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),i;for(let n=0,r=t.length;n<r;n++)iGt(t[n],this,i,e);return i.sort(nGt),i}});class rGt{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}clone(){return(new this.constructor).copy(this)}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(ROt.clamp(e/this.radius,-1,1))),this}}const oGt=new zOt;class aGt{constructor(t,e){Object.defineProperty(this,"isBox2",{value:!0}),this.min=void 0!==t?t:new zOt(1/0,1/0),this.max=void 0!==e?e:new zOt(-1/0,-1/0)}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=oGt.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return void 0===t&&(console.warn("THREE.Box2: .getCenter() target is now required"),t=new zOt),this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return void 0===t&&(console.warn("THREE.Box2: .getSize() target is now required"),t=new zOt),this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return void 0===e&&(console.warn("THREE.Box2: .getParameter() target is now required"),e=new zOt),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return void 0===e&&(console.warn("THREE.Box2: .clampPoint() target is now required"),e=new zOt),e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return oGt.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const sGt=new qOt,lGt=new qOt;class cGt{constructor(t,e){this.start=void 0!==t?t:new qOt,this.end=void 0!==e?e:new qOt}set(t,e){return this.start.copy(t),this.end.copy(e),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return void 0===t&&(console.warn("THREE.Line3: .getCenter() target is now required"),t=new qOt),t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return void 0===t&&(console.warn("THREE.Line3: .delta() target is now required"),t=new qOt),t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return void 0===e&&(console.warn("THREE.Line3: .at() target is now required"),e=new qOt),this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){sGt.subVectors(t,this.start),lGt.subVectors(this.end,this.start);const n=lGt.dot(lGt);let i=lGt.dot(sGt)/n;return e&&(i=ROt.clamp(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return void 0===n&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),n=new qOt),this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}}function uGt(t){WRt.call(this),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}(uGt.prototype=Object.create(WRt.prototype)).constructor=uGt,uGt.prototype.isImmediateRenderObject=!0;const hGt=new qOt,dGt=new qOt,pGt=new bRt,fGt=new bRt;class mGt extends EFt{constructor(t){const e=gGt(t),n=new Vzt,i=[],r=[],o=new pzt(0,0,1),a=new pzt(0,1,0);for(let t=0;t<e.length;t++){const n=e[t];n.parent&&n.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),r.push(o.r,o.g,o.b),r.push(a.r,a.g,a.b))}n.setAttribute("position",new kzt(i,3)),n.setAttribute("color",new kzt(r,3)),super(n,new gFt({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.type="SkeletonHelper",this.isSkeletonHelper=!0,this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,i=n.getAttribute("position");fGt.copy(this.root.matrixWorld).invert();for(let t=0,n=0;t<e.length;t++){const r=e[t];r.parent&&r.parent.isBone&&(pGt.multiplyMatrices(fGt,r.matrixWorld),dGt.setFromMatrixPosition(pGt),i.setXYZ(n,dGt.x,dGt.y,dGt.z),pGt.multiplyMatrices(fGt,r.parent.matrixWorld),dGt.setFromMatrixPosition(pGt),i.setXYZ(n+1,dGt.x,dGt.y,dGt.z),n+=2)}n.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(t)}}function gGt(t){const e=[];t&&t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,gGt(t.children[n]));return e}const _Gt=new qOt,yGt=new pzt,vGt=new pzt;class bGt extends EFt{constructor(t=10,e=10,n=4473924,i=8947848){n=new pzt(n),i=new pzt(i);const r=e/2,o=t/e,a=t/2,s=[],l=[];for(let t=0,c=0,u=-a;t<=e;t++,u+=o){s.push(-a,0,u,a,0,u),s.push(u,0,-a,u,0,a);const e=t===r?n:i;e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3}const c=new Vzt;c.setAttribute("position",new kzt(s,3)),c.setAttribute("color",new kzt(l,3)),super(c,new gFt({vertexColors:!0,toneMapped:!1})),this.type="GridHelper"}}const xGt=new qOt,wGt=new qOt,SGt=new qOt,MGt=new qOt,EGt=new dDt;function TGt(t,e,n,i,r,o,a){MGt.set(r,o,a).unproject(i);const s=e[t];if(void 0!==s){const t=n.getAttribute("position");for(let e=0,n=s.length;e<n;e++)t.setXYZ(s[e],MGt.x,MGt.y,MGt.z)}}const CGt=new $Ot;class AGt extends EFt{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new Vzt;r.setIndex(new bzt(n,1)),r.setAttribute("position",new bzt(i,3)),super(r,new gFt({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&CGt.setFromObject(this.object),CGt.isEmpty())return;const e=CGt.min,n=CGt.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t){return EFt.prototype.copy.call(this,t),this.object=t.object,this}}const kGt=new qOt;let LGt,PGt;class NGt extends EFt{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new Vzt;n.setAttribute("position",new kzt(e,3)),n.setAttribute("color",new kzt([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(n,new gFt({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}}const IGt=new Float32Array(1),OGt=new Int32Array(IGt.buffer),RGt={toHalfFloat:function(t){IGt[0]=t;const e=OGt[0];let n=e>>16&32768,i=e>>12&2047;const r=e>>23&255;return r<103?n:r>142?(n|=31744,n|=(255==r?0:1)&&8388607&e,n):r<113?(i|=2048,n|=(i>>114-r)+(i>>113-r&1),n):(n|=r-112<<10|i>>1,n+=1&i,n)}},zGt=Math.pow(2,8),DGt=[.125,.215,.35,.446,.526,.582],BGt=5+DGt.length,HGt={[xOt]:0,[wOt]:1,[MOt]:2,[EOt]:3,[TOt]:4,[COt]:5,[SOt]:6},FGt=new _zt({side:1,depthWrite:!1,depthTest:!1}),VGt=new oDt(new sDt,FGt),UGt=new ZUt,{_lodPlanes:jGt,_sizeLods:GGt,_sigmas:WGt}=QGt(),qGt=new pzt;let YGt=null;const XGt=(1+Math.sqrt(5))/2,$Gt=1/XGt,KGt=[new qOt(1,1,1),new qOt(-1,1,1),new qOt(1,1,-1),new qOt(-1,1,-1),new qOt(0,XGt,$Gt),new qOt(0,XGt,-$Gt),new qOt($Gt,0,XGt),new qOt(-$Gt,0,XGt),new qOt(XGt,$Gt,0),new qOt(-XGt,$Gt,0)];function ZGt(t){const e=Math.max(t.r,t.g,t.b),n=Math.min(Math.max(Math.ceil(Math.log2(e)),-128),127);return t.multiplyScalar(Math.pow(2,-n)),(n+128)/255}function JGt(t){return void 0!==t&&t.type===YIt&&(t.encoding===xOt||t.encoding===wOt||t.encoding===SOt)}function QGt(){const t=[],e=[],n=[];let i=8;for(let r=0;r<BGt;r++){const o=Math.pow(2,i);e.push(o);let a=1/o;r>4?a=DGt[r-8+4-1]:0==r&&(a=0),n.push(a);const s=1/(o-1),l=-s/2,c=1+s/2,u=[l,l,c,l,c,c,l,l,c,c,l,c],h=6,d=6,p=3,f=2,m=1,g=new Float32Array(p*d*h),_=new Float32Array(f*d*h),y=new Float32Array(m*d*h);for(let t=0;t<h;t++){const e=t%3*2/3-1,n=t>2?0:-1;g.set([e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0],p*d*t),_.set(u,f*d*t),y.set([t,t,t,t,t,t],m*d*t)}const v=new Vzt;v.setAttribute("position",new bzt(g,p)),v.setAttribute("uv",new bzt(_,f)),v.setAttribute("faceIndex",new bzt(y,m)),t.push(v),i>4&&i--}return{_lodPlanes:t,_sizeLods:e,_sigmas:n}}function tWt(t){const e=new GOt(3*zGt,3*zGt,t);return e.texture.mapping=zIt,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function eWt(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function nWt(){return new BVt({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:new zOt(1,1)},inputEncoding:{value:HGt[3e3]},outputEncoding:{value:HGt[3e3]}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include <encodings_pars_fragment>\n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tvec2 f = fract( uv / texelSize - 0.5 );\n\t\t\t\tuv -= f * texelSize;\n\t\t\t\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\n\t\t\t\tvec3 tm = mix( tl, tr, f.x );\n\t\t\t\tvec3 bm = mix( bl, br, f.x );\n\t\t\t\tgl_FragColor.rgb = mix( tm, bm, f.y );\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function iWt(){return new BVt({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},inputEncoding:{value:HGt[3e3]},outputEncoding:{value:HGt[3e3]}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\t\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include <encodings_pars_fragment>\n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function rWt(t){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),kUt.call(this,t),this.type="catmullrom",this.closed=!0}function oWt(t){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),kUt.call(this,t),this.type="catmullrom"}function aWt(t){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),kUt.call(this,t),this.type="catmullrom"}xUt.create=function(t,e){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(xUt.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Object.assign(UUt.prototype,{fromPoints:function(t){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(t)}}),rWt.prototype=Object.create(kUt.prototype),oWt.prototype=Object.create(kUt.prototype),aWt.prototype=Object.create(kUt.prototype),Object.assign(aWt.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}}),bGt.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},mGt.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},Object.assign(dUt.prototype,{extractUrlBase:function(t){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),ojt.extractUrlBase(t)}}),dUt.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}},Object.assign(aGt.prototype,{center:function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},size:function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)}}),Object.assign($Ot.prototype,{center:function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionSphere:function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},size:function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)}}),Object.assign(hRt.prototype,{empty:function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()}}),xDt.prototype.setFromMatrix=function(t){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(t)},cGt.prototype.center=function(t){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(t)},Object.assign(ROt,{random16:function(){return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."),Math.random()},nearestPowerOfTwo:function(t){return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."),ROt.floorPowerOfTwo(t)},nextPowerOfTwo:function(t){return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."),ROt.ceilPowerOfTwo(t)}}),Object.assign(DOt.prototype,{flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},multiplyVector3:function(t){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBufferAttribute:function(t){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")},getInverse:function(t){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()}}),Object.assign(bRt.prototype,{extractPosition:function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},getPosition:function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),(new qOt).setFromMatrixColumn(this,3)},setRotationFromQuaternion:function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector4:function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},crossVector:function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBufferAttribute:function(t){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(t,e,n,i,r,o){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,e,i,n,r,o)},getInverse:function(t){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()}}),$Rt.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},Object.assign(WOt.prototype,{multiplyVector3:function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},inverse:function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()}}),Object.assign(vRt.prototype,{isIntersectionBox:function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionPlane:function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},isIntersectionSphere:function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)}}),Object.assign(azt.prototype,{area:function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},barycoordFromPoint:function(t,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(t,e)},midpoint:function(t){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(t)},normal:function(t){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(t)},plane:function(t){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(t)}}),Object.assign(azt,{barycoordFromPoint:function(t,e,n,i,r){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),azt.getBarycoord(t,e,n,i,r)},normal:function(t,e,n,i){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),azt.getNormal(t,e,n,i)}}),Object.assign(jUt.prototype,{extractAllPoints:function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},extrude:function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new xVt(this,t)},makeGeometry:function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new AVt(this,t)}}),Object.assign(zOt.prototype,{fromAttribute:function(t,e,n){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},distanceToManhattan:function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(qOt.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},getScaleFromMatrix:function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},getColumnFromMatrix:function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)},applyProjection:function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},fromAttribute:function(t,e,n){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},distanceToManhattan:function(t){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(jOt.prototype,{fromAttribute:function(t,e,n){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},lengthManhattan:function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(WRt.prototype,{getChildByName:function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(t,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,t)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},applyMatrix:function(t){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}}),Object.defineProperties(WRt.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),Object.assign(oDt.prototype,{setDrawMode:function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}),Object.defineProperties(oDt.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),0},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}}),Object.defineProperties(tFt.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(uFt.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),aFt.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},Object.defineProperty(xUt.prototype,"__arcLengthDivisions",{get:function(){return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions},set:function(t){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions=t}}),pDt.prototype.setLens=function(t,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(GUt.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties(bzt.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},dynamic:{get:function(){return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.usage===LOt},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(LOt)}}}),Object.assign(bzt.prototype,{setDynamic:function(t){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?LOt:kOt),this},copyIndicesArray:function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},setArray:function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}}),Object.assign(Vzt.prototype,{addIndex:function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},addAttribute:function(t,e){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):this.setAttribute(t,e):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(t,new bzt(arguments[1],arguments[2])))},addDrawCall:function(t,e,n){void 0!==n&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,e)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},removeAttribute:function(t){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(t)},applyMatrix:function(t){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}}),Object.defineProperties(Vzt.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Object.defineProperties(ajt.prototype,{maxInstancedCount:{get:function(){return console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount."),this.instanceCount},set:function(t){console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount."),this.instanceCount=t}}}),Object.defineProperties(eGt.prototype,{linePrecision:{get:function(){return console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold},set:function(t){console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold=t}}}),Object.defineProperties(IHt.prototype,{dynamic:{get:function(){return console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.usage===LOt},set:function(t){console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.setUsage(t)}}}),Object.assign(IHt.prototype,{setDynamic:function(t){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?LOt:kOt),this},setArray:function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}}),Object.assign(xVt.prototype,{getArrays:function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")},addShapeList:function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")}}),Object.assign(NHt.prototype,{dispose:function(){console.error("THREE.Scene: .dispose() has been removed.")}}),Object.defineProperties(Jjt.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this}}}),Object.defineProperties(gzt.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new pzt}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(t){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=t}}}),Object.defineProperties(VVt.prototype,{metal:{get:function(){return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."),!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}}),Object.defineProperties(FVt.prototype,{transparency:{get:function(){return console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission."),this.transmission},set:function(t){console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission."),this.transmission=t}}}),Object.defineProperties(hDt.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),Object.assign(AHt.prototype,{clearTarget:function(t,e,n,i){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(t),this.clear(e,n,i)},animate:function(t){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(t)},getCurrentRenderTarget:function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},getMaxAnisotropy:function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},getPrecision:function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},resetGLState:function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},supportsFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},supportsInstancedArrays:function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},allocTextureUnit:function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},setTexture:function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},setTexture2D:function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},setTextureCube:function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},getActiveMipMapLevel:function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()}}),Object.defineProperties(AHt.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."),this.getContext()}},vr:{get:function(){return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"),this.xr}},gammaInput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."),!1},set:function(){console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.")}},gammaOutput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),!1},set:function(t){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=!0===t?wOt:xOt}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}}}),Object.defineProperties(vHt.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(GOt.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),Object.defineProperties(Pjt.prototype,{load:{value:function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");const e=this;return(new vjt).load(t,(function(t){e.setBuffer(t)})),this}},startTime:{set:function(){console.warn("THREE.Audio: .startTime is now .play( delay ).")}}}),zjt.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},mDt.prototype.updateCubeMap=function(t,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(t,e)},mDt.prototype.clear=function(t,e,n,i){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(t,e,n,i)};const sWt={merge:function(t,e,n){let i;console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead."),e.isMesh&&(e.matrixAutoUpdate&&e.updateMatrix(),i=e.matrix,e=e.geometry),t.merge(e,i,n)},center:function(t){return console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead."),t.center()}};HOt.crossOrigin=void 0,HOt.loadTexture=function(t,e,n,i){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");const r=new bUt;r.setCrossOrigin(this.crossOrigin);const o=r.load(t,n,void 0,i);return e&&(o.mapping=e),o},HOt.loadTextureCube=function(t,e,n,i){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");const r=new yUt;r.setCrossOrigin(this.crossOrigin);const o=r.load(t,n,void 0,i);return e&&(o.mapping=e),o},HOt.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},HOt.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};const lWt={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")}};"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:CIt}})),"undefined"!=typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=CIt);var cWt=Object.freeze({__proto__:null,ACESFilmicToneMapping:4,AddEquation:LIt,AddOperation:2,AdditiveAnimationBlendMode:bOt,AdditiveBlending:2,AlphaFormat:1021,AlwaysDepth:1,AlwaysStencilFunc:519,AmbientLight:tjt,AmbientLightProbe:xjt,AnimationClip:sUt,AnimationLoader:mUt,AnimationMixer:Zjt,AnimationObjectGroup:$jt,AnimationUtils:XVt,ArcCurve:SUt,ArrayCamera:SHt,ArrowHelper:class extends WRt{constructor(t,e,n,i,r,o){super(),this.type="ArrowHelper",void 0===t&&(t=new qOt(0,0,1)),void 0===e&&(e=new qOt(0,0,0)),void 0===n&&(n=1),void 0===i&&(i=16776960),void 0===r&&(r=.2*n),void 0===o&&(o=.2*r),void 0===LGt&&(LGt=new Vzt,LGt.setAttribute("position",new kzt([0,0,0,0,1,0],3)),PGt=new HFt(0,.5,1,5,1),PGt.translate(0,-.5,0)),this.position.copy(e),this.line=new wFt(LGt,new gFt({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new oDt(PGt,new _zt({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,o)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{kGt.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(kGt,e)}}setLength(t,e,n){void 0===e&&(e=.2*t),void 0===n&&(n=.2*e),this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}},Audio:Pjt,AudioAnalyser:zjt,AudioContext:yjt,AudioListener:class extends WRt{constructor(){super(),this.type="AudioListener",this.context=yjt.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Ejt}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Cjt,Ajt,kjt),Ljt.set(0,0,-1).applyQuaternion(Ajt),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(Cjt.x,t),e.positionY.linearRampToValueAtTime(Cjt.y,t),e.positionZ.linearRampToValueAtTime(Cjt.z,t),e.forwardX.linearRampToValueAtTime(Ljt.x,t),e.forwardY.linearRampToValueAtTime(Ljt.y,t),e.forwardZ.linearRampToValueAtTime(Ljt.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(Cjt.x,Cjt.y,Cjt.z),e.setOrientation(Ljt.x,Ljt.y,Ljt.z,n.x,n.y,n.z)}},AudioLoader:vjt,AxesHelper:NGt,AxisHelper:function uWt(t){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new NGt(t)},BackSide:1,BasicDepthPacking:3200,BasicShadowMap:0,BinaryTextureLoader:function hWt(t){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new vUt(t)},Bone:sFt,BooleanKeyframeTrack:tUt,BoundingBoxHelper:function dWt(t,e){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new AGt(t,e)},Box2:aGt,Box3:$Ot,Box3Helper:class extends EFt{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Vzt;i.setIndex(new bzt(n,1)),i.setAttribute("position",new kzt([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new gFt({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}},BoxBufferGeometry:sDt,BoxGeometry:sDt,BoxHelper:AGt,BufferAttribute:bzt,BufferGeometry:Vzt,BufferGeometryLoader:ljt,ByteType:1010,Cache:cUt,Camera:dDt,CameraHelper:class extends EFt{constructor(t){const e=new Vzt,n=new gFt({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],o={},a=new pzt(16755200),s=new pzt(16711680),l=new pzt(43775),c=new pzt(16777215),u=new pzt(3355443);function h(t,e,n){d(t,n),d(e,n)}function d(t,e){i.push(0,0,0),r.push(e.r,e.g,e.b),void 0===o[t]&&(o[t]=[]),o[t].push(i.length/3-1)}h("n1","n2",a),h("n2","n4",a),h("n4","n3",a),h("n3","n1",a),h("f1","f2",a),h("f2","f4",a),h("f4","f3",a),h("f3","f1",a),h("n1","f1",a),h("n2","f2",a),h("n3","f3",a),h("n4","f4",a),h("p","n1",s),h("p","n2",s),h("p","n3",s),h("p","n4",s),h("u1","u2",l),h("u2","u3",l),h("u3","u1",l),h("c","t",c),h("p","c",u),h("cn1","cn2",u),h("cn3","cn4",u),h("cf1","cf2",u),h("cf3","cf4",u),e.setAttribute("position",new kzt(i,3)),e.setAttribute("color",new kzt(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=o,this.update()}update(){const t=this.geometry,e=this.pointMap;EGt.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),TGt("c",e,t,EGt,0,0,-1),TGt("t",e,t,EGt,0,0,1),TGt("n1",e,t,EGt,-1,-1,-1),TGt("n2",e,t,EGt,1,-1,-1),TGt("n3",e,t,EGt,-1,1,-1),TGt("n4",e,t,EGt,1,1,-1),TGt("f1",e,t,EGt,-1,-1,1),TGt("f2",e,t,EGt,1,-1,1),TGt("f3",e,t,EGt,-1,1,1),TGt("f4",e,t,EGt,1,1,1),TGt("u1",e,t,EGt,.7,1.1,-1),TGt("u2",e,t,EGt,-.7,1.1,-1),TGt("u3",e,t,EGt,0,2,-1),TGt("cf1",e,t,EGt,-1,0,1),TGt("cf2",e,t,EGt,1,0,1),TGt("cf3",e,t,EGt,0,-1,1),TGt("cf4",e,t,EGt,0,1,1),TGt("cn1",e,t,EGt,-1,0,-1),TGt("cn2",e,t,EGt,1,0,-1),TGt("cn3",e,t,EGt,0,-1,-1),TGt("cn4",e,t,EGt,0,1,-1),t.getAttribute("position").needsUpdate=!0}},CanvasRenderer:function pWt(){console.error("THREE.CanvasRenderer has been removed")},CanvasTexture:zFt,CatmullRomCurve3:kUt,CineonToneMapping:3,CircleBufferGeometry:BFt,CircleGeometry:BFt,ClampToEdgeWrapping:HIt,Clock:Ejt,ClosedSplineCurve3:rWt,Color:pzt,ColorKeyframeTrack:eUt,CompressedTexture:RFt,CompressedTextureLoader:gUt,ConeBufferGeometry:FFt,ConeGeometry:FFt,CubeCamera:mDt,CubeReflectionMapping:NIt,CubeRefractionMapping:IIt,CubeTexture:gDt,CubeTextureLoader:yUt,CubeUVReflectionMapping:zIt,CubeUVRefractionMapping:DIt,CubicBezierCurve:IUt,CubicBezierCurve3:OUt,CubicInterpolant:KVt,CullFaceBack:1,CullFaceFront:2,CullFaceFrontBack:3,CullFaceNone:0,Curve:xUt,CurvePath:VUt,CustomBlending:5,CustomToneMapping:5,CylinderBufferGeometry:HFt,CylinderGeometry:HFt,Cylindrical:class{constructor(t,e,n){return this.radius=void 0!==t?t:1,this.theta=void 0!==e?e:0,this.y=void 0!==n?n:0,this}set(t,e,n){return this.radius=t,this.theta=e,this.y=n,this}clone(){return(new this.constructor).copy(this)}copy(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+n*n),this.theta=Math.atan2(t,n),this.y=e,this}},DataTexture:yDt,DataTexture2DArray:UDt,DataTexture3D:jDt,DataTextureLoader:vUt,DataUtils:RGt,DecrementStencilOp:7683,DecrementWrapStencilOp:34056,DefaultLoadingManager:hUt,DepthFormat:eOt,DepthStencilFormat:nOt,DepthTexture:DFt,DirectionalLight:QUt,DirectionalLightHelper:class extends WRt{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,void 0===e&&(e=1);let i=new Vzt;i.setAttribute("position",new kzt([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new gFt({fog:!1,toneMapped:!1});this.lightPlane=new wFt(i,r),this.add(this.lightPlane),i=new Vzt,i.setAttribute("position",new kzt([0,0,0,0,0,1],3)),this.targetLine=new wFt(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){xGt.setFromMatrixPosition(this.light.matrixWorld),wGt.setFromMatrixPosition(this.light.target.matrixWorld),SGt.subVectors(wGt,xGt),this.lightPlane.lookAt(wGt),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(wGt),this.targetLine.scale.z=SGt.length()}},DiscreteInterpolant:JVt,DodecahedronBufferGeometry:UFt,DodecahedronGeometry:UFt,DoubleSide:2,DstAlphaFactor:206,DstColorFactor:208,DynamicBufferAttribute:function fWt(t,e){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead."),new bzt(t,e).setUsage(LOt)},DynamicCopyUsage:35050,DynamicDrawUsage:LOt,DynamicReadUsage:35049,EdgesGeometry:YFt,EdgesHelper:function mWt(t,e){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new EFt(new YFt(t.geometry),new gFt({color:void 0!==e?e:16777215}))},EllipseCurve:wUt,EqualDepth:4,EqualStencilFunc:514,EquirectangularReflectionMapping:OIt,EquirectangularRefractionMapping:RIt,Euler:ARt,EventDispatcher:NOt,ExtrudeBufferGeometry:xVt,ExtrudeGeometry:xVt,Face3:fzt,Face4:function gWt(t,e,n,i,r,o,a){return console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead."),new fzt(t,e,n,r,o,a)},FaceColors:1,FileLoader:fUt,FlatShading:1,Float16BufferAttribute:Azt,Float32Attribute:function _Wt(t,e){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new kzt(t,e)},Float32BufferAttribute:kzt,Float64Attribute:function yWt(t,e){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new Lzt(t,e)},Float64BufferAttribute:Lzt,FloatType:KIt,Fog:PHt,FogExp2:LHt,Font:fjt,FontLoader:gjt,FrontSide:0,Frustum:xDt,GLBufferAttribute:tGt,GLSL1:"100",GLSL3:POt,GammaEncoding:SOt,GeometryUtils:sWt,GreaterDepth:6,GreaterEqualDepth:5,GreaterEqualStencilFunc:518,GreaterStencilFunc:516,GridHelper:bGt,Group:MHt,HalfFloatType:ZIt,HemisphereLight:WUt,HemisphereLightHelper:class extends WRt{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n;const i=new EVt(e);i.rotateY(.5*Math.PI),this.material=new _zt({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute("position"),o=new Float32Array(3*r.count);i.setAttribute("color",new bzt(o,3)),this.add(new oDt(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute("color");yGt.copy(this.light.color),vGt.copy(this.light.groundColor);for(let t=0,n=e.count;t<n;t++){const i=t<n/2?yGt:vGt;e.setXYZ(t,i.r,i.g,i.b)}e.needsUpdate=!0}t.lookAt(_Gt.setFromMatrixPosition(this.light.matrixWorld).negate())}},HemisphereLightProbe:bjt,IcosahedronBufferGeometry:SVt,IcosahedronGeometry:SVt,ImageBitmapLoader:djt,ImageLoader:_Ut,ImageUtils:HOt,ImmediateRenderObject:uGt,IncrementStencilOp:7682,IncrementWrapStencilOp:34055,InstancedBufferAttribute:sjt,InstancedBufferGeometry:ajt,InstancedInterleavedBuffer:Qjt,InstancedMesh:mFt,Int16Attribute:function vWt(t,e){return console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead."),new Mzt(t,e)},Int16BufferAttribute:Mzt,Int32Attribute:function bWt(t,e){return console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead."),new Tzt(t,e)},Int32BufferAttribute:Tzt,Int8Attribute:function xWt(t,e){return console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead."),new xzt(t,e)},Int8BufferAttribute:xzt,IntType:1013,InterleavedBuffer:IHt,InterleavedBufferAttribute:RHt,Interpolant:$Vt,InterpolateDiscrete:pOt,InterpolateLinear:fOt,InterpolateSmooth:mOt,InvertStencilOp:5386,JSONLoader:function wWt(){console.error("THREE.JSONLoader has been removed.")},KeepStencilOp:AOt,KeyframeTrack:QVt,LOD:tFt,LatheBufferGeometry:MVt,LatheGeometry:MVt,Layers:PRt,LensFlare:function SWt(){console.error("THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js")},LessDepth:2,LessEqualDepth:3,LessEqualStencilFunc:515,LessStencilFunc:513,Light:GUt,LightProbe:ijt,Line:wFt,Line3:cGt,LineBasicMaterial:gFt,LineCurve:RUt,LineCurve3:zUt,LineDashedMaterial:qVt,LineLoop:TFt,LinePieces:1,LineSegments:EFt,LineStrip:0,LinearEncoding:xOt,LinearFilter:GIt,LinearInterpolant:ZVt,LinearMipMapLinearFilter:1008,LinearMipMapNearestFilter:1007,LinearMipmapLinearFilter:qIt,LinearMipmapNearestFilter:WIt,LinearToneMapping:1,Loader:dUt,LoaderUtils:ojt,LoadingManager:uUt,LogLuvEncoding:3003,LoopOnce:2200,LoopPingPong:2202,LoopRepeat:2201,LuminanceAlphaFormat:1025,LuminanceFormat:1024,MOUSE:AIt,Material:gzt,MaterialLoader:rjt,Math:ROt,MathUtils:ROt,Matrix3:DOt,Matrix4:bRt,MaxEquation:104,Mesh:oDt,MeshBasicMaterial:_zt,MeshDepthMaterial:_Ht,MeshDistanceMaterial:yHt,MeshFaceMaterial:function MWt(t){return console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead."),t},MeshLambertMaterial:GVt,MeshMatcapMaterial:WVt,MeshNormalMaterial:jVt,MeshPhongMaterial:VVt,MeshPhysicalMaterial:FVt,MeshStandardMaterial:HVt,MeshToonMaterial:UVt,MinEquation:103,MirroredRepeatWrapping:FIt,MixOperation:1,MultiMaterial:function EWt(t=[]){return console.warn("THREE.MultiMaterial has been removed. Use an Array instead."),t.isMultiMaterial=!0,t.materials=t,t.clone=function(){return t.slice()},t},MultiplyBlending:4,MultiplyOperation:0,NearestFilter:VIt,NearestMipMapLinearFilter:1005,NearestMipMapNearestFilter:1004,NearestMipmapLinearFilter:jIt,NearestMipmapNearestFilter:UIt,NeverDepth:0,NeverStencilFunc:512,NoBlending:0,NoColors:0,NoToneMapping:0,NormalAnimationBlendMode:vOt,NormalBlending:1,NotEqualDepth:7,NotEqualStencilFunc:517,NumberKeyframeTrack:nUt,Object3D:WRt,ObjectLoader:class extends dUt{constructor(t){super(t)}load(t,e,n,i){const r=this,o=""===this.path?ojt.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||o;const a=new fUt(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(t,(function(n){let o=null;try{o=JSON.parse(n)}catch(e){return void 0!==i&&i(e),void console.error("THREE:ObjectLoader: Can't parse "+t+".",e.message)}const a=o.metadata;void 0!==a&&void 0!==a.type&&"geometry"!==a.type.toLowerCase()?r.parse(o,e):console.error("THREE.ObjectLoader: Can't load "+t)}),n,i)}parse(t,e){const n=this.parseAnimations(t.animations),i=this.parseShapes(t.shapes),r=this.parseGeometries(t.geometries,i),o=this.parseImages(t.images,(function(){void 0!==e&&e(l)})),a=this.parseTextures(t.textures,o),s=this.parseMaterials(t.materials,a),l=this.parseObject(t.object,r,s,n),c=this.parseSkeletons(t.skeletons,l);if(this.bindSkeletons(l,c),void 0!==e){let t=!1;for(const e in o)if(o[e]instanceof HTMLImageElement){t=!0;break}!1===t&&e(l)}return l}parseShapes(t){const e={};if(void 0!==t)for(let n=0,i=t.length;n<i;n++){const i=(new jUt).fromJSON(t[n]);e[i.uuid]=i}return e}parseSkeletons(t,e){const n={},i={};if(e.traverse((function(t){t.isBone&&(i[t.uuid]=t)})),void 0!==t)for(let e=0,r=t.length;e<r;e++){const r=(new uFt).fromJSON(t[e],i);n[r.uuid]=r}return n}parseGeometries(t,e){const n={};let i;if(void 0!==t){const r=new ljt;for(let o=0,a=t.length;o<a;o++){let a;const s=t[o];switch(s.type){case"PlaneGeometry":case"PlaneBufferGeometry":a=new zVt[s.type](s.width,s.height,s.widthSegments,s.heightSegments);break;case"BoxGeometry":case"BoxBufferGeometry":a=new zVt[s.type](s.width,s.height,s.depth,s.widthSegments,s.heightSegments,s.depthSegments);break;case"CircleGeometry":case"CircleBufferGeometry":a=new zVt[s.type](s.radius,s.segments,s.thetaStart,s.thetaLength);break;case"CylinderGeometry":case"CylinderBufferGeometry":a=new zVt[s.type](s.radiusTop,s.radiusBottom,s.height,s.radialSegments,s.heightSegments,s.openEnded,s.thetaStart,s.thetaLength);break;case"ConeGeometry":case"ConeBufferGeometry":a=new zVt[s.type](s.radius,s.height,s.radialSegments,s.heightSegments,s.openEnded,s.thetaStart,s.thetaLength);break;case"SphereGeometry":case"SphereBufferGeometry":a=new zVt[s.type](s.radius,s.widthSegments,s.heightSegments,s.phiStart,s.phiLength,s.thetaStart,s.thetaLength);break;case"DodecahedronGeometry":case"DodecahedronBufferGeometry":case"IcosahedronGeometry":case"IcosahedronBufferGeometry":case"OctahedronGeometry":case"OctahedronBufferGeometry":case"TetrahedronGeometry":case"TetrahedronBufferGeometry":a=new zVt[s.type](s.radius,s.detail);break;case"RingGeometry":case"RingBufferGeometry":a=new zVt[s.type](s.innerRadius,s.outerRadius,s.thetaSegments,s.phiSegments,s.thetaStart,s.thetaLength);break;case"TorusGeometry":case"TorusBufferGeometry":a=new zVt[s.type](s.radius,s.tube,s.radialSegments,s.tubularSegments,s.arc);break;case"TorusKnotGeometry":case"TorusKnotBufferGeometry":a=new zVt[s.type](s.radius,s.tube,s.tubularSegments,s.radialSegments,s.p,s.q);break;case"TubeGeometry":case"TubeBufferGeometry":a=new zVt[s.type]((new FUt[s.path.type]).fromJSON(s.path),s.tubularSegments,s.radius,s.radialSegments,s.closed);break;case"LatheGeometry":case"LatheBufferGeometry":a=new zVt[s.type](s.points,s.segments,s.phiStart,s.phiLength);break;case"PolyhedronGeometry":case"PolyhedronBufferGeometry":a=new zVt[s.type](s.vertices,s.indices,s.radius,s.details);break;case"ShapeGeometry":case"ShapeBufferGeometry":i=[];for(let t=0,n=s.shapes.length;t<n;t++)i.push(e[s.shapes[t]]);a=new zVt[s.type](i,s.curveSegments);break;case"ExtrudeGeometry":case"ExtrudeBufferGeometry":i=[];for(let t=0,n=s.shapes.length;t<n;t++)i.push(e[s.shapes[t]]);const t=s.options.extrudePath;void 0!==t&&(s.options.extrudePath=(new FUt[t.type]).fromJSON(t)),a=new zVt[s.type](i,s.options);break;case"BufferGeometry":case"InstancedBufferGeometry":a=r.parse(s);break;case"Geometry":console.error('THREE.ObjectLoader: Loading "Geometry" is not supported anymore.');break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+s.type+'"');continue}a.uuid=s.uuid,void 0!==s.name&&(a.name=s.name),!0===a.isBufferGeometry&&void 0!==s.userData&&(a.userData=s.userData),n[s.uuid]=a}}return n}parseMaterials(t,e){const n={},i={};if(void 0!==t){const r=new rjt;r.setTextures(e);for(let e=0,o=t.length;e<o;e++){const o=t[e];if("MultiMaterial"===o.type){const t=[];for(let e=0;e<o.materials.length;e++){const i=o.materials[e];void 0===n[i.uuid]&&(n[i.uuid]=r.parse(i)),t.push(n[i.uuid])}i[o.uuid]=t}else void 0===n[o.uuid]&&(n[o.uuid]=r.parse(o)),i[o.uuid]=n[o.uuid]}}return i}parseAnimations(t){const e={};if(void 0!==t)for(let n=0;n<t.length;n++){const i=sUt.parse(t[n]);e[i.uuid]=i}return e}parseImages(t,e){const n=this,i={};let r;function o(t){if("string"==typeof t){const e=t;return(function e(t){return n.manager.itemStart(t),r.load(t,(function(){n.manager.itemEnd(t)}),void 0,(function(){n.manager.itemError(t),n.manager.itemEnd(t)}))})(/^(\/\/)|([a-z]+:(\/\/)?)/i.test(e)?e:n.resourcePath+e)}return t.data?{data:Izt(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){const n=new uUt(e);r=new _Ut(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e<n;e++){const n=t[e],r=n.url;if(Array.isArray(r)){i[n.uuid]=[];for(let t=0,e=r.length;t<e;t++){const e=o(r[t]);null!==e&&(e instanceof HTMLImageElement?i[n.uuid].push(e):i[n.uuid].push(new yDt(e.data,e.width,e.height)))}}else{const t=o(n.url);null!==t&&(i[n.uuid]=t)}}}return i}parseTextures(t,e){function n(t,e){return"number"==typeof t?t:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",t),e[t])}const i={};if(void 0!==t)for(let r=0,o=t.length;r<o;r++){const o=t[r];let a;void 0===o.image&&console.warn('THREE.ObjectLoader: No "image" specified for',o.uuid),void 0===e[o.image]&&console.warn("THREE.ObjectLoader: Undefined image",o.image);const s=e[o.image];Array.isArray(s)?(a=new gDt(s),6===s.length&&(a.needsUpdate=!0)):(a=s&&s.data?new yDt(s.data,s.width,s.height):new VOt(s),s&&(a.needsUpdate=!0)),a.uuid=o.uuid,void 0!==o.name&&(a.name=o.name),void 0!==o.mapping&&(a.mapping=n(o.mapping,cjt)),void 0!==o.offset&&a.offset.fromArray(o.offset),void 0!==o.repeat&&a.repeat.fromArray(o.repeat),void 0!==o.center&&a.center.fromArray(o.center),void 0!==o.rotation&&(a.rotation=o.rotation),void 0!==o.wrap&&(a.wrapS=n(o.wrap[0],ujt),a.wrapT=n(o.wrap[1],ujt)),void 0!==o.format&&(a.format=o.format),void 0!==o.type&&(a.type=o.type),void 0!==o.encoding&&(a.encoding=o.encoding),void 0!==o.minFilter&&(a.minFilter=n(o.minFilter,hjt)),void 0!==o.magFilter&&(a.magFilter=n(o.magFilter,hjt)),void 0!==o.anisotropy&&(a.anisotropy=o.anisotropy),void 0!==o.flipY&&(a.flipY=o.flipY),void 0!==o.premultiplyAlpha&&(a.premultiplyAlpha=o.premultiplyAlpha),void 0!==o.unpackAlignment&&(a.unpackAlignment=o.unpackAlignment),i[o.uuid]=a}return i}parseObject(t,e,n,i){let r,o,a;function s(t){return void 0===e[t]&&console.warn("THREE.ObjectLoader: Undefined geometry",t),e[t]}function l(t){if(void 0!==t){if(Array.isArray(t)){const e=[];for(let i=0,r=t.length;i<r;i++){const r=t[i];void 0===n[r]&&console.warn("THREE.ObjectLoader: Undefined material",r),e.push(n[r])}return e}return void 0===n[t]&&console.warn("THREE.ObjectLoader: Undefined material",t),n[t]}}switch(t.type){case"Scene":r=new NHt,void 0!==t.background&&Number.isInteger(t.background)&&(r.background=new pzt(t.background)),void 0!==t.fog&&("Fog"===t.fog.type?r.fog=new PHt(t.fog.color,t.fog.near,t.fog.far):"FogExp2"===t.fog.type&&(r.fog=new LHt(t.fog.color,t.fog.density)));break;case"PerspectiveCamera":r=new pDt(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(r.focus=t.focus),void 0!==t.zoom&&(r.zoom=t.zoom),void 0!==t.filmGauge&&(r.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(r.filmOffset=t.filmOffset),void 0!==t.view&&(r.view=Object.assign({},t.view));break;case"OrthographicCamera":r=new ZUt(t.left,t.right,t.top,t.bottom,t.near,t.far),void 0!==t.zoom&&(r.zoom=t.zoom),void 0!==t.view&&(r.view=Object.assign({},t.view));break;case"AmbientLight":r=new tjt(t.color,t.intensity);break;case"DirectionalLight":r=new QUt(t.color,t.intensity);break;case"PointLight":r=new KUt(t.color,t.intensity,t.distance,t.decay);break;case"RectAreaLight":r=new ejt(t.color,t.intensity,t.width,t.height);break;case"SpotLight":r=new XUt(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case"HemisphereLight":r=new WUt(t.color,t.groundColor,t.intensity);break;case"LightProbe":r=(new ijt).fromJSON(t);break;case"SkinnedMesh":o=s(t.geometry),a=l(t.material),r=new aFt(o,a),void 0!==t.bindMode&&(r.bindMode=t.bindMode),void 0!==t.bindMatrix&&r.bindMatrix.fromArray(t.bindMatrix),void 0!==t.skeleton&&(r.skeleton=t.skeleton);break;case"Mesh":o=s(t.geometry),a=l(t.material),r=new oDt(o,a);break;case"InstancedMesh":o=s(t.geometry),a=l(t.material);const e=t.instanceMatrix;r=new mFt(o,a,t.count),r.instanceMatrix=new bzt(new Float32Array(e.array),16);break;case"LOD":r=new tFt;break;case"Line":r=new wFt(s(t.geometry),l(t.material));break;case"LineLoop":r=new TFt(s(t.geometry),l(t.material));break;case"LineSegments":r=new EFt(s(t.geometry),l(t.material));break;case"PointCloud":case"Points":r=new NFt(s(t.geometry),l(t.material));break;case"Sprite":r=new KHt(l(t.material));break;case"Group":r=new MHt;break;case"Bone":r=new sFt;break;default:r=new WRt}if(r.uuid=t.uuid,void 0!==t.name&&(r.name=t.name),void 0!==t.matrix?(r.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(r.matrixAutoUpdate=t.matrixAutoUpdate),r.matrixAutoUpdate&&r.matrix.decompose(r.position,r.quaternion,r.scale)):(void 0!==t.position&&r.position.fromArray(t.position),void 0!==t.rotation&&r.rotation.fromArray(t.rotation),void 0!==t.quaternion&&r.quaternion.fromArray(t.quaternion),void 0!==t.scale&&r.scale.fromArray(t.scale)),void 0!==t.castShadow&&(r.castShadow=t.castShadow),void 0!==t.receiveShadow&&(r.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(r.shadow.bias=t.shadow.bias),void 0!==t.shadow.normalBias&&(r.shadow.normalBias=t.shadow.normalBias),void 0!==t.shadow.radius&&(r.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&r.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(r.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(r.visible=t.visible),void 0!==t.frustumCulled&&(r.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(r.renderOrder=t.renderOrder),void 0!==t.userData&&(r.userData=t.userData),void 0!==t.layers&&(r.layers.mask=t.layers),void 0!==t.children){const o=t.children;for(let t=0;t<o.length;t++)r.add(this.parseObject(o[t],e,n,i))}if(void 0!==t.animations){const e=t.animations;for(let t=0;t<e.length;t++)r.animations.push(i[e[t]])}if("LOD"===t.type){void 0!==t.autoUpdate&&(r.autoUpdate=t.autoUpdate);const e=t.levels;for(let t=0;t<e.length;t++){const n=e[t],i=r.getObjectByProperty("uuid",n.object);void 0!==i&&r.addLevel(i,n.distance)}}return r}bindSkeletons(t,e){0!==Object.keys(e).length&&t.traverse((function(t){if(!0===t.isSkinnedMesh&&void 0!==t.skeleton){const n=e[t.skeleton];void 0===n?console.warn("THREE.ObjectLoader: No skeleton found with UUID:",t.skeleton):t.bind(n,t.bindMatrix)}}))}setTexturePath(t){return console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath()."),this.setResourcePath(t)}},ObjectSpaceNormalMap:1,OctahedronBufferGeometry:EVt,OctahedronGeometry:EVt,OneFactor:201,OneMinusDstAlphaFactor:207,OneMinusDstColorFactor:209,OneMinusSrcAlphaFactor:205,OneMinusSrcColorFactor:203,OrthographicCamera:ZUt,PCFShadowMap:1,PCFSoftShadowMap:2,PMREMGenerator:class{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._blurMaterial=(function e(t){return new BVt({name:"SphericalGaussianBlur",defines:{n:t},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:new Float32Array(t)},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:new qOt(0,1,0)},inputEncoding:{value:HGt[3e3]},outputEncoding:{value:HGt[3e3]}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include <encodings_pars_fragment>\n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})})(20),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){YGt=this._renderer.getRenderTarget();const r=this._allocateTargets();return this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t){return this._fromTexture(t)}fromCubemap(t){return this._fromTexture(t)}compileCubemapShader(){null===this._cubemapShader&&(this._cubemapShader=iWt(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){null===this._equirectShader&&(this._equirectShader=nWt(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(let t=0;t<jGt.length;t++)jGt[t].dispose()}_cleanup(t){this._pingPongRenderTarget.dispose(),this._renderer.setRenderTarget(YGt),t.scissorTest=!1,eWt(t,0,0,t.width,t.height)}_fromTexture(t){YGt=this._renderer.getRenderTarget();const e=this._allocateTargets(t);return this._textureToCubeUV(t,e),this._applyPMREM(e),this._cleanup(e),e}_allocateTargets(t){const e={magFilter:VIt,minFilter:VIt,generateMipmaps:!1,type:YIt,format:1023,encoding:JGt(t)?t.encoding:MOt,depthBuffer:!1},n=tWt(e);return n.depthBuffer=!t,this._pingPongRenderTarget=tWt(e),n}_compileMaterial(t){const e=new oDt(jGt[0],t);this._renderer.compile(e,UGt)}_sceneToCubeUV(t,e,n,i){const r=new pDt(90,1,e,n),o=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],s=this._renderer,l=s.autoClear,c=s.outputEncoding,u=s.toneMapping;s.getClearColor(qGt),s.toneMapping=0,s.outputEncoding=xOt,s.autoClear=!1;let h=!1;const d=t.background;if(d){if(d.isColor){FGt.color.copy(d).convertSRGBToLinear(),t.background=null;const e=ZGt(FGt.color);FGt.opacity=e,h=!0}}else{FGt.color.copy(qGt).convertSRGBToLinear();const t=ZGt(FGt.color);FGt.opacity=t,h=!0}for(let e=0;e<6;e++){const n=e%3;0==n?(r.up.set(0,o[e],0),r.lookAt(a[e],0,0)):1==n?(r.up.set(0,0,o[e]),r.lookAt(0,a[e],0)):(r.up.set(0,o[e],0),r.lookAt(0,0,a[e])),eWt(i,n*zGt,e>2?zGt:0,zGt,zGt),s.setRenderTarget(i),h&&s.render(VGt,r),s.render(t,r)}s.toneMapping=u,s.outputEncoding=c,s.autoClear=l}_textureToCubeUV(t,e){const n=this._renderer;t.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=iWt()):null==this._equirectShader&&(this._equirectShader=nWt());const i=t.isCubeTexture?this._cubemapShader:this._equirectShader,r=new oDt(jGt[0],i),o=i.uniforms;o.envMap.value=t,t.isCubeTexture||o.texelSize.value.set(1/t.image.width,1/t.image.height),o.inputEncoding.value=HGt[t.encoding],o.outputEncoding.value=HGt[e.texture.encoding],eWt(e,0,0,3*zGt,2*zGt),n.setRenderTarget(e),n.render(r,UGt)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;e<BGt;e++){const n=Math.sqrt(WGt[e]*WGt[e]-WGt[e-1]*WGt[e-1]);this._blur(t,e-1,e,n,KGt[(e-1)%KGt.length])}e.autoClear=n}_blur(t,e,n,i,r){const o=this._pingPongRenderTarget;this._halfBlur(t,o,e,n,i,"latitudinal",r),this._halfBlur(o,t,n,n,i,"longitudinal",r)}_halfBlur(t,e,n,i,r,o,a){const s=this._renderer,l=this._blurMaterial;"latitudinal"!==o&&"longitudinal"!==o&&console.error("blur direction must be either latitudinal or longitudinal!");const c=new oDt(jGt[i],l),u=l.uniforms,h=GGt[n]-1,d=isFinite(r)?Math.PI/(2*h):2*Math.PI/39,p=r/d,f=isFinite(r)?1+Math.floor(3*p):20;f>20&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${f} samples when the maximum is set to 20`);const m=[];let g=0;for(let t=0;t<20;++t){const e=t/p,n=Math.exp(-e*e/2);m.push(n),0==t?g+=n:t<f&&(g+=2*n)}for(let t=0;t<m.length;t++)m[t]=m[t]/g;u.envMap.value=t.texture,u.samples.value=f,u.weights.value=m,u.latitudinal.value="latitudinal"===o,a&&(u.poleAxis.value=a),u.dTheta.value=d,u.mipInt.value=8-n,u.inputEncoding.value=HGt[t.texture.encoding],u.outputEncoding.value=HGt[t.texture.encoding];const _=GGt[i];eWt(e,3*Math.max(0,zGt-2*_),(0===i?0:2*zGt)+2*_*(i>4?i-8+4:0),3*_,2*_),s.setRenderTarget(e),s.render(c,UGt)}},ParametricBufferGeometry:TVt,ParametricGeometry:TVt,Particle:function TWt(t){return console.warn("THREE.Particle has been renamed to THREE.Sprite."),new KHt(t)},ParticleBasicMaterial:function CWt(t){return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),new CFt(t)},ParticleSystem:function AWt(t,e){return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),new NFt(t,e)},ParticleSystemMaterial:function kWt(t){return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),new CFt(t)},Path:UUt,PerspectiveCamera:pDt,Plane:$Rt,PlaneBufferGeometry:MDt,PlaneGeometry:MDt,PlaneHelper:class extends wFt{constructor(t,e=1,n=16776960){const i=n,r=new Vzt;r.setAttribute("position",new kzt([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),r.computeBoundingSphere(),super(r,new gFt({color:i,toneMapped:!1})),this.type="PlaneHelper",this.plane=t,this.size=e;const o=new Vzt;o.setAttribute("position",new kzt([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),o.computeBoundingSphere(),this.add(new oDt(o,new _zt({color:i,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(t){let e=-this.plane.constant;Math.abs(e)<1e-8&&(e=1e-8),this.scale.set(.5*this.size,.5*this.size,e),this.children[0].material.side=e<0?1:0,this.lookAt(this.plane.normal),super.updateMatrixWorld(t)}},PointCloud:function LWt(t,e){return console.warn("THREE.PointCloud has been renamed to THREE.Points."),new NFt(t,e)},PointCloudMaterial:function PWt(t){return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),new CFt(t)},PointLight:KUt,PointLightHelper:class extends oDt{constructor(t,e,n){super(new kVt(e,4,2),new _zt({wireframe:!0,fog:!1,toneMapped:!1})),this.light=t,this.light.updateMatrixWorld(),this.color=n,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}},Points:NFt,PointsMaterial:CFt,PolarGridHelper:class extends EFt{constructor(t=10,e=16,n=8,i=64,r=4473924,o=8947848){r=new pzt(r),o=new pzt(o);const a=[],s=[];for(let n=0;n<=e;n++){const i=n/e*(2*Math.PI),l=Math.sin(i)*t,c=Math.cos(i)*t;a.push(0,0,0),a.push(l,0,c);const u=1&n?r:o;s.push(u.r,u.g,u.b),s.push(u.r,u.g,u.b)}for(let e=0;e<=n;e++){const l=1&e?r:o,c=t-t/n*e;for(let t=0;t<i;t++){let e=t/i*(2*Math.PI),n=Math.sin(e)*c,r=Math.cos(e)*c;a.push(n,0,r),s.push(l.r,l.g,l.b),e=(t+1)/i*(2*Math.PI),n=Math.sin(e)*c,r=Math.cos(e)*c,a.push(n,0,r),s.push(l.r,l.g,l.b)}}const l=new Vzt;l.setAttribute("position",new kzt(a,3)),l.setAttribute("color",new kzt(s,3)),super(l,new gFt({vertexColors:!0,toneMapped:!1})),this.type="PolarGridHelper"}},PolyhedronBufferGeometry:VFt,PolyhedronGeometry:VFt,PositionalAudio:class extends Pjt{constructor(t){super(t),this.panner=this.context.createPanner(),this.panner.panningModel="HRTF",this.panner.connect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){return this.panner.refDistance=t,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){return this.panner.rolloffFactor=t,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){return this.panner.distanceModel=t,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){return this.panner.maxDistance=t,this}setDirectionalCone(t,e,n){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=n,this}updateMatrixWorld(t){if(super.updateMatrixWorld(t),!0===this.hasPlaybackControl&&!1===this.isPlaying)return;this.matrixWorld.decompose(Njt,Ijt,Ojt),Rjt.set(0,0,1).applyQuaternion(Ijt);const e=this.panner;if(e.positionX){const t=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(Njt.x,t),e.positionY.linearRampToValueAtTime(Njt.y,t),e.positionZ.linearRampToValueAtTime(Njt.z,t),e.orientationX.linearRampToValueAtTime(Rjt.x,t),e.orientationY.linearRampToValueAtTime(Rjt.y,t),e.orientationZ.linearRampToValueAtTime(Rjt.z,t)}else e.setPosition(Njt.x,Njt.y,Njt.z),e.setOrientation(Rjt.x,Rjt.y,Rjt.z)}},PropertyBinding:Xjt,PropertyMixer:Djt,QuadraticBezierCurve:DUt,QuadraticBezierCurve3:BUt,Quaternion:WOt,QuaternionKeyframeTrack:rUt,QuaternionLinearInterpolant:iUt,REVISION:CIt,RGBADepthPacking:3201,RGBAFormat:tOt,RGBAIntegerFormat:1033,RGBA_ASTC_10x10_Format:37819,RGBA_ASTC_10x5_Format:37816,RGBA_ASTC_10x6_Format:37817,RGBA_ASTC_10x8_Format:37818,RGBA_ASTC_12x10_Format:37820,RGBA_ASTC_12x12_Format:37821,RGBA_ASTC_4x4_Format:37808,RGBA_ASTC_5x4_Format:37809,RGBA_ASTC_5x5_Format:37810,RGBA_ASTC_6x5_Format:37811,RGBA_ASTC_6x6_Format:37812,RGBA_ASTC_8x5_Format:37813,RGBA_ASTC_8x6_Format:37814,RGBA_ASTC_8x8_Format:37815,RGBA_BPTC_Format:36492,RGBA_ETC2_EAC_Format:dOt,RGBA_PVRTC_2BPPV1_Format:uOt,RGBA_PVRTC_4BPPV1_Format:cOt,RGBA_S3TC_DXT1_Format:rOt,RGBA_S3TC_DXT3_Format:oOt,RGBA_S3TC_DXT5_Format:aOt,RGBDEncoding:COt,RGBEEncoding:MOt,RGBEFormat:1023,RGBFormat:QIt,RGBIntegerFormat:1032,RGBM16Encoding:TOt,RGBM7Encoding:EOt,RGB_ETC1_Format:36196,RGB_ETC2_Format:hOt,RGB_PVRTC_2BPPV1_Format:lOt,RGB_PVRTC_4BPPV1_Format:sOt,RGB_S3TC_DXT1_Format:iOt,RGFormat:1030,RGIntegerFormat:1031,RawShaderMaterial:BVt,Ray:vRt,Raycaster:eGt,RectAreaLight:ejt,RedFormat:1028,RedIntegerFormat:1029,ReinhardToneMapping:2,RepeatWrapping:BIt,ReplaceStencilOp:7681,ReverseSubtractEquation:102,RingBufferGeometry:CVt,RingGeometry:CVt,SRGB8_ALPHA8_ASTC_10x10_Format:37851,SRGB8_ALPHA8_ASTC_10x5_Format:37848,SRGB8_ALPHA8_ASTC_10x6_Format:37849,SRGB8_ALPHA8_ASTC_10x8_Format:37850,SRGB8_ALPHA8_ASTC_12x10_Format:37852,SRGB8_ALPHA8_ASTC_12x12_Format:37853,SRGB8_ALPHA8_ASTC_4x4_Format:37840,SRGB8_ALPHA8_ASTC_5x4_Format:37841,SRGB8_ALPHA8_ASTC_5x5_Format:37842,SRGB8_ALPHA8_ASTC_6x5_Format:37843,SRGB8_ALPHA8_ASTC_6x6_Format:37844,SRGB8_ALPHA8_ASTC_8x5_Format:37845,SRGB8_ALPHA8_ASTC_8x6_Format:37846,SRGB8_ALPHA8_ASTC_8x8_Format:37847,Scene:NHt,SceneUtils:lWt,ShaderChunk:EDt,ShaderLib:CDt,ShaderMaterial:hDt,ShadowMaterial:DVt,Shape:jUt,ShapeBufferGeometry:AVt,ShapeGeometry:AVt,ShapePath:pjt,ShapeUtils:yVt,ShortType:1011,Skeleton:uFt,SkeletonHelper:mGt,SkinnedMesh:aFt,SmoothShading:2,Sphere:hRt,SphereBufferGeometry:kVt,SphereGeometry:kVt,Spherical:rGt,SphericalHarmonics3:njt,Spline:aWt,SplineCurve:HUt,SplineCurve3:oWt,SpotLight:XUt,SpotLightHelper:class extends WRt{constructor(t,e){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e;const n=new Vzt,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t<n;t++,e++){const r=t/n*Math.PI*2,o=e/n*Math.PI*2;i.push(Math.cos(r),Math.sin(r),1,Math.cos(o),Math.sin(o),1)}n.setAttribute("position",new kzt(i,3));const r=new gFt({fog:!1,toneMapped:!1});this.cone=new EFt(n,r),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateMatrixWorld();const t=this.light.distance?this.light.distance:1e3,e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t),hGt.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(hGt),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}},Sprite:KHt,SpriteMaterial:zHt,SrcAlphaFactor:204,SrcAlphaSaturateFactor:210,SrcColorFactor:202,StaticCopyUsage:35046,StaticDrawUsage:kOt,StaticReadUsage:35045,StereoCamera:Mjt,StreamCopyUsage:35042,StreamDrawUsage:35040,StreamReadUsage:35041,StringKeyframeTrack:oUt,SubtractEquation:101,SubtractiveBlending:3,TOUCH:kIt,TangentSpaceNormalMap:0,TetrahedronBufferGeometry:LVt,TetrahedronGeometry:LVt,TextBufferGeometry:PVt,TextGeometry:PVt,Texture:VOt,TextureLoader:bUt,TorusBufferGeometry:NVt,TorusGeometry:NVt,TorusKnotBufferGeometry:IVt,TorusKnotGeometry:IVt,Triangle:azt,TriangleFanDrawMode:2,TriangleStripDrawMode:1,TrianglesDrawMode:0,TubeBufferGeometry:OVt,TubeGeometry:OVt,UVMapping:PIt,Uint16Attribute:function NWt(t,e){return console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead."),new Ezt(t,e)},Uint16BufferAttribute:Ezt,Uint32Attribute:function IWt(t,e){return console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead."),new Czt(t,e)},Uint32BufferAttribute:Czt,Uint8Attribute:function OWt(t,e){return console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead."),new wzt(t,e)},Uint8BufferAttribute:wzt,Uint8ClampedAttribute:function RWt(t,e){return console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead."),new Szt(t,e)},Uint8ClampedBufferAttribute:Szt,Uniform:Jjt,UniformsLib:TDt,UniformsUtils:uDt,UnsignedByteType:YIt,UnsignedInt248Type:JIt,UnsignedIntType:$It,UnsignedShort4444Type:1017,UnsignedShort5551Type:1018,UnsignedShort565Type:1019,UnsignedShortType:XIt,VSMShadowMap:3,Vector2:zOt,Vector3:qOt,Vector4:jOt,VectorKeyframeTrack:aUt,Vertex:function zWt(t,e,n){return console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."),new qOt(t,e,n)},VertexColors:2,VideoTexture:OFt,WebGL1Renderer:kHt,WebGLCubeRenderTarget:_Dt,WebGLMultisampleRenderTarget:class extends GOt{constructor(t,e,n){super(t,e,n),Object.defineProperty(this,"isWebGLMultisampleRenderTarget",{value:!0}),this.samples=4}copy(t){return super.copy.call(this,t),this.samples=t.samples,this}},WebGLRenderTarget:GOt,WebGLRenderTargetCube:function DWt(t,e,n){return console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options )."),new _Dt(t,n)},WebGLRenderer:AHt,WebGLUtils:wHt,WireframeGeometry:RVt,WireframeHelper:function BWt(t,e){return console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead."),new EFt(new RVt(t.geometry),new gFt({color:void 0!==e?e:16777215}))},WrapAroundEnding:yOt,XHRLoader:function HWt(t){return console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader."),new fUt(t)},ZeroCurvatureEnding:gOt,ZeroFactor:200,ZeroSlopeEnding:_Ot,ZeroStencilOp:0,sRGBEncoding:wOt}),FWt=function(t,e){var n,i,r,o,a,s;void 0===e&&console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.'),e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=t,this.domElement=e,this.enabled=!0,this.target=new qOt,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:37,UP:38,RIGHT:39,BOTTOM:40},this.mouseButtons={LEFT:AIt.ROTATE,MIDDLE:AIt.DOLLY,RIGHT:AIt.PAN},this.touches={ONE:kIt.ROTATE,TWO:kIt.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return m.phi},this.getAzimuthalAngle=function(){return m.theta},this.listenToKeyEvents=function(t){t.addEventListener("keydown",K),this._domElementKeyEvents=t},this.saveState=function(){l.target0.copy(l.target),l.position0.copy(l.object.position),l.zoom0=l.object.zoom},this.reset=function(){l.target.copy(l.target0),l.object.position.copy(l.position0),l.object.zoom=l.zoom0,l.object.updateProjectionMatrix(),l.dispatchEvent(c),l.update(),p=d.NONE},this.update=(n=new qOt,i=(new WOt).setFromUnitVectors(t.up,new qOt(0,1,0)),r=i.clone().invert(),o=new qOt,a=new WOt,s=2*Math.PI,function t(){var e=l.object.position;n.copy(e).sub(l.target),n.applyQuaternion(i),m.setFromVector3(n),l.autoRotate&&p===d.NONE&&L((function u(){return 2*Math.PI/60/60*l.autoRotateSpeed})()),l.enableDamping?(m.theta+=g.theta*l.dampingFactor,m.phi+=g.phi*l.dampingFactor):(m.theta+=g.theta,m.phi+=g.phi);var h=l.minAzimuthAngle,b=l.maxAzimuthAngle;return isFinite(h)&&isFinite(b)&&(h<-Math.PI?h+=s:h>Math.PI&&(h-=s),b<-Math.PI?b+=s:b>Math.PI&&(b-=s),m.theta=h<=b?Math.max(h,Math.min(b,m.theta)):m.theta>(h+b)/2?Math.max(h,m.theta):Math.min(b,m.theta)),m.phi=Math.max(l.minPolarAngle,Math.min(l.maxPolarAngle,m.phi)),m.makeSafe(),m.radius*=_,m.radius=Math.max(l.minDistance,Math.min(l.maxDistance,m.radius)),!0===l.enableDamping?l.target.addScaledVector(y,l.dampingFactor):l.target.add(y),n.setFromSpherical(m),n.applyQuaternion(r),e.copy(l.target).add(n),l.object.lookAt(l.target),!0===l.enableDamping?(g.theta*=1-l.dampingFactor,g.phi*=1-l.dampingFactor,y.multiplyScalar(1-l.dampingFactor)):(g.set(0,0,0),y.set(0,0,0)),_=1,!!(v||o.distanceToSquared(l.object.position)>f||8*(1-a.dot(l.object.quaternion))>f)&&(l.dispatchEvent(c),o.copy(l.object.position),a.copy(l.object.quaternion),v=!1,!0)}),this.dispose=function(){l.domElement.removeEventListener("contextmenu",tt),l.domElement.removeEventListener("pointerdown",q),l.domElement.removeEventListener("wheel",$),l.domElement.removeEventListener("touchstart",Z),l.domElement.removeEventListener("touchend",Q),l.domElement.removeEventListener("touchmove",J),l.domElement.ownerDocument.removeEventListener("pointermove",Y),l.domElement.ownerDocument.removeEventListener("pointerup",X),null!==l._domElementKeyEvents&&l._domElementKeyEvents.removeEventListener("keydown",K)};var l=this,c={type:"change"},u={type:"start"},h={type:"end"},d={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},p=d.NONE,f=1e-6,m=new rGt,g=new rGt,_=1,y=new qOt,v=!1,b=new zOt,x=new zOt,w=new zOt,S=new zOt,M=new zOt,E=new zOt,T=new zOt,C=new zOt,A=new zOt;function k(){return Math.pow(.95,l.zoomSpeed)}function L(t){g.theta-=t}function P(t){g.phi-=t}var N,I=(N=new qOt,function t(e,n){N.setFromMatrixColumn(n,0),N.multiplyScalar(-e),y.add(N)}),O=(function(){var t=new qOt;return function e(n,i){!0===l.screenSpacePanning?t.setFromMatrixColumn(i,1):(t.setFromMatrixColumn(i,0),t.crossVectors(l.object.up,t)),t.multiplyScalar(n),y.add(t)}})(),R=(function(){var t=new qOt;return function e(n,i){var r=l.domElement;if(l.object.isPerspectiveCamera){t.copy(l.object.position).sub(l.target);var o=t.length();o*=Math.tan(l.object.fov/2*Math.PI/180),I(2*n*o/r.clientHeight,l.object.matrix),O(2*i*o/r.clientHeight,l.object.matrix)}else l.object.isOrthographicCamera?(I(n*(l.object.right-l.object.left)/l.object.zoom/r.clientWidth,l.object.matrix),O(i*(l.object.top-l.object.bottom)/l.object.zoom/r.clientHeight,l.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),l.enablePan=!1)}})();function z(t){l.object.isPerspectiveCamera?_/=t:l.object.isOrthographicCamera?(l.object.zoom=Math.max(l.minZoom,Math.min(l.maxZoom,l.object.zoom*t)),l.object.updateProjectionMatrix(),v=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),l.enableZoom=!1)}function D(t){l.object.isPerspectiveCamera?_*=t:l.object.isOrthographicCamera?(l.object.zoom=Math.max(l.minZoom,Math.min(l.maxZoom,l.object.zoom/t)),l.object.updateProjectionMatrix(),v=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),l.enableZoom=!1)}function B(t){b.set(t.clientX,t.clientY)}function H(t){S.set(t.clientX,t.clientY)}function F(t){1==t.touches.length?b.set(t.touches[0].pageX,t.touches[0].pageY):b.set(.5*(t.touches[0].pageX+t.touches[1].pageX),.5*(t.touches[0].pageY+t.touches[1].pageY))}function V(t){1==t.touches.length?S.set(t.touches[0].pageX,t.touches[0].pageY):S.set(.5*(t.touches[0].pageX+t.touches[1].pageX),.5*(t.touches[0].pageY+t.touches[1].pageY))}function U(t){var e=t.touches[0].pageX-t.touches[1].pageX,n=t.touches[0].pageY-t.touches[1].pageY,i=Math.sqrt(e*e+n*n);T.set(0,i)}function j(t){1==t.touches.length?x.set(t.touches[0].pageX,t.touches[0].pageY):x.set(.5*(t.touches[0].pageX+t.touches[1].pageX),.5*(t.touches[0].pageY+t.touches[1].pageY)),w.subVectors(x,b).multiplyScalar(l.rotateSpeed);var e=l.domElement;L(2*Math.PI*w.x/e.clientHeight),P(2*Math.PI*w.y/e.clientHeight),b.copy(x)}function G(t){1==t.touches.length?M.set(t.touches[0].pageX,t.touches[0].pageY):M.set(.5*(t.touches[0].pageX+t.touches[1].pageX),.5*(t.touches[0].pageY+t.touches[1].pageY)),E.subVectors(M,S).multiplyScalar(l.panSpeed),R(E.x,E.y),S.copy(M)}function W(t){var e=t.touches[0].pageX-t.touches[1].pageX,n=t.touches[0].pageY-t.touches[1].pageY,i=Math.sqrt(e*e+n*n);C.set(0,i),A.set(0,Math.pow(C.y/T.y,l.zoomSpeed)),z(A.y),T.copy(C)}function q(t){if(!1!==l.enabled)switch(t.pointerType){case"mouse":case"pen":!(function e(t){var e;switch(t.preventDefault(),l.domElement.focus?l.domElement.focus():window.focus(),t.button){case 0:e=l.mouseButtons.LEFT;break;case 1:e=l.mouseButtons.MIDDLE;break;case 2:e=l.mouseButtons.RIGHT;break;default:e=-1}switch(e){case AIt.DOLLY:if(!1===l.enableZoom)return;!(function n(t){T.set(t.clientX,t.clientY)})(t),p=d.DOLLY;break;case AIt.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===l.enablePan)return;H(t),p=d.PAN}else{if(!1===l.enableRotate)return;B(t),p=d.ROTATE}break;case AIt.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===l.enableRotate)return;B(t),p=d.ROTATE}else{if(!1===l.enablePan)return;H(t),p=d.PAN}break;default:p=d.NONE}p!==d.NONE&&(l.domElement.ownerDocument.addEventListener("pointermove",Y),l.domElement.ownerDocument.addEventListener("pointerup",X),l.dispatchEvent(u))})(t)}}function Y(t){if(!1!==l.enabled)switch(t.pointerType){case"mouse":case"pen":!(function e(t){if(!1!==l.enabled)switch(t.preventDefault(),p){case d.ROTATE:if(!1===l.enableRotate)return;!(function e(t){x.set(t.clientX,t.clientY),w.subVectors(x,b).multiplyScalar(l.rotateSpeed);var e=l.domElement;L(2*Math.PI*w.x/e.clientHeight),P(2*Math.PI*w.y/e.clientHeight),b.copy(x),l.update()})(t);break;case d.DOLLY:if(!1===l.enableZoom)return;!(function n(t){C.set(t.clientX,t.clientY),A.subVectors(C,T),A.y>0?z(k()):A.y<0&&D(k()),T.copy(C),l.update()})(t);break;case d.PAN:if(!1===l.enablePan)return;!(function i(t){M.set(t.clientX,t.clientY),E.subVectors(M,S).multiplyScalar(l.panSpeed),R(E.x,E.y),S.copy(M),l.update()})(t)}})(t)}}function X(t){switch(t.pointerType){case"mouse":case"pen":!(function e(t){l.domElement.ownerDocument.removeEventListener("pointermove",Y),l.domElement.ownerDocument.removeEventListener("pointerup",X),!1!==l.enabled&&(l.dispatchEvent(h),p=d.NONE)})()}}function $(t){!1===l.enabled||!1===l.enableZoom||p!==d.NONE&&p!==d.ROTATE||(t.preventDefault(),t.stopPropagation(),l.dispatchEvent(u),(function e(t){t.deltaY<0?D(k()):t.deltaY>0&&z(k()),l.update()})(t),l.dispatchEvent(h))}function K(t){!1!==l.enabled&&!1!==l.enablePan&&(function e(t){var e=!1;switch(t.keyCode){case l.keys.UP:R(0,l.keyPanSpeed),e=!0;break;case l.keys.BOTTOM:R(0,-l.keyPanSpeed),e=!0;break;case l.keys.LEFT:R(l.keyPanSpeed,0),e=!0;break;case l.keys.RIGHT:R(-l.keyPanSpeed,0),e=!0}e&&(t.preventDefault(),l.update())})(t)}function Z(t){if(!1!==l.enabled){switch(t.preventDefault(),t.touches.length){case 1:switch(l.touches.ONE){case kIt.ROTATE:if(!1===l.enableRotate)return;F(t),p=d.TOUCH_ROTATE;break;case kIt.PAN:if(!1===l.enablePan)return;V(t),p=d.TOUCH_PAN;break;default:p=d.NONE}break;case 2:switch(l.touches.TWO){case kIt.DOLLY_PAN:if(!1===l.enableZoom&&!1===l.enablePan)return;!(function e(t){l.enableZoom&&U(t),l.enablePan&&V(t)})(t),p=d.TOUCH_DOLLY_PAN;break;case kIt.DOLLY_ROTATE:if(!1===l.enableZoom&&!1===l.enableRotate)return;!(function n(t){l.enableZoom&&U(t),l.enableRotate&&F(t)})(t),p=d.TOUCH_DOLLY_ROTATE;break;default:p=d.NONE}break;default:p=d.NONE}p!==d.NONE&&l.dispatchEvent(u)}}function J(t){if(!1!==l.enabled)switch(t.preventDefault(),t.stopPropagation(),p){case d.TOUCH_ROTATE:if(!1===l.enableRotate)return;j(t),l.update();break;case d.TOUCH_PAN:if(!1===l.enablePan)return;G(t),l.update();break;case d.TOUCH_DOLLY_PAN:if(!1===l.enableZoom&&!1===l.enablePan)return;!(function e(t){l.enableZoom&&W(t),l.enablePan&&G(t)})(t),l.update();break;case d.TOUCH_DOLLY_ROTATE:if(!1===l.enableZoom&&!1===l.enableRotate)return;!(function n(t){l.enableZoom&&W(t),l.enableRotate&&j(t)})(t),l.update();break;default:p=d.NONE}}function Q(t){!1!==l.enabled&&(l.dispatchEvent(h),p=d.NONE)}function tt(t){!1!==l.enabled&&t.preventDefault()}l.domElement.addEventListener("contextmenu",tt),l.domElement.addEventListener("pointerdown",q),l.domElement.addEventListener("wheel",$),l.domElement.addEventListener("touchstart",Z),l.domElement.addEventListener("touchend",Q),l.domElement.addEventListener("touchmove",J),this.update()};(FWt.prototype=Object.create(NOt.prototype)).constructor=FWt;var VWt=function(t,e){FWt.call(this,t,e),this.screenSpacePanning=!1,this.mouseButtons.LEFT=AIt.PAN,this.mouseButtons.RIGHT=AIt.ROTATE,this.touches.ONE=kIt.PAN,this.touches.TWO=kIt.DOLLY_ROTATE};(VWt.prototype=Object.create(NOt.prototype)).constructor=VWt;class UWt extends NOt{constructor(t){super(),this._lastMesh=null,this._clock=new Ejt,this._canvasSize=null,this._layersConfig=null,this._runColor=t}_isObject(t){return"object"==typeof t&&null!=t&&!Array.isArray(t)}_applyDefaults(t,e){let n={};const i=[t,e];for(let t=0;t<i.length;t++){const e=i[t];for(let t in e){const i=t in n;this._isObject(e[t])?n[t]=this._applyDefaults(n[t]||{},e[t]):i||(n[t]=e[t])}}return n}_createLayers(){if(this._layersConfig&&this._scene&&this._lastMesh){if(this._layersConfig.showBoundingBox){var t=new AGt(this._lastMesh,new pzt("rgb(0, 0, 255)"));this._scene.add(t)}if(this._layersConfig.showAxes){var e=new NGt(5);this._scene.add(e)}}}setLayersConfig(t){this._layersConfig=this._applyDefaults(t,this._layersConfig||{})}_createWorld(t,e){if(this.isReady())return;this._scene=new NHt;var n=new cWt[t.camera.cls](t.camera.fov,this._canvasSize.width/this._canvasSize.height,t.camera.near,t.camera.far);this._camera=n;var i=new FWt(n,e);const r=i;r.lookSpeed=.4,r.movementSpeed=20,r.noFly=!0,r.lookVertical=!0,r.constrainVertical=!0,r.verticalMin=1,r.verticalMax=2,r.addEventListener("change",this._onCameraPositionChange.bind(this)),this._cameraControls=i,this._renderer=new AHt({antialias:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(this._canvasSize.width,this._canvasSize.height),this._renderer.setClearColor(16777215,1)}_clearScene(){for(;this._scene.children.length>0;)this._scene.remove(this._scene.children[0])}getRenderer(){return this._renderer}getCameraControls(){return this._cameraControls}isReady(){return!!this._camera&&!!this._cameraControls}getCameraPosition(){return{far:this._camera.far,position:this._camera.position.clone(),target:this._cameraControls.target.clone()}}setCanvasSize(t){this._canvasSize=t}draw(){this._animationFrameIndex&&cancelAnimationFrame(this._animationFrameIndex),this._camera.aspect=this._canvasSize.width/this._canvasSize.height,this._camera.updateProjectionMatrix(),this._renderer.setSize(this._canvasSize.width,this._canvasSize.height);const t=function(){var e=this._clock.getDelta();this._cameraControls.update(e),this._animationFrameIndex=requestAnimationFrame(t),this._renderer.render(this._scene,this._camera)}.bind(this);t()}updateScene(t,e){let n={};"config"in t&&t.config&&(n=JSON.parse(t.config)),this.dispatchEvent({type:"beforeUpdateScene"}),n=this._applyDefaults(n,{camera:{cls:"PerspectiveCamera",fov:75,near:.1,far:1e3},lights:[{cls:"AmbientLight",color:"#ffffff",intensity:.75},{cls:"DirectionalLight",color:"#ffffff",intensity:.75,position:[0,-1,2]}]}),this._createWorld(n,e),this._clearScene(),this._createLights(this._scene,n),this._createGeometry(t,n),this._createLayers(),this.draw()}resetView(t){if(!this.isReady())return;let e;this._cameraControls.reset(),!t&&this._lastMesh&&(e=this._lastMesh),e&&(this._fitObjectToViewport(e),this._lastMesh=e),this._cameraControls.update()}_createGeometry(t,e){const n=t.mesh;n.vertices&&n.faces&&n.faces.length?this._createMesh(n,e):this._createPointCloud(n,e)}_createPointCloud(t,e){const n=t.vertices,i=t.colors;let r={material:{cls:"PointsMaterial",size:.005}};i&&i.length==n.length?r.material.vertexColors=!0:r.material.color=this._runColor;const o=this._applyDefaults(e,r),a=new Vzt,s=new Float32Array(n.flat());if(a.setAttribute("position",new bzt(s,3)),i&&i.length==n.length){const t=new Float32Array(i.flat());for(let e=0;e<t.length;e++)t[e]=t[e]/255;a.setAttribute("color",new bzt(t,3))}var l=new NFt(a,new cWt[o.material.cls](o.material));this._scene.add(l),this._lastMesh=l}setCameraViewpoint(t,e,n){this._silent=!0,this._camera.far=e,this._camera.position.set(t.x,t.y,t.z),this._camera.lookAt(n.clone()),this._camera.updateProjectionMatrix(),this._cameraControls.target=n.clone(),this._cameraControls.update(),this._silent=!1}_onCameraPositionChange(t){this._silent||this.dispatchEvent({type:"cameraPositionChange",event:t})}_fitObjectToViewport(t){const e=new $Ot,n=new qOt,i=new qOt;e.setFromObject(t),e.getCenter(n),e.getSize(i);const r=Math.max(i.x,i.y,i.z),o=this._camera.fov*(Math.PI/180);let a=1.25*Math.abs(r/(2*Math.tan(o/2)));const s=e.min.z;this.setCameraViewpoint({x:n.x,y:n.y,z:a},3*(s<0?-s+a:a-s),n)}_createMesh(t,e){const n=t.vertices,i=t.faces,r=t.colors,o=this._applyDefaults(e,{material:{cls:"MeshStandardMaterial",color:"#a0a0a0",roughness:1,metalness:0}}),a=new Vzt,s=new Float32Array(n.flat());a.setAttribute("position",new bzt(s,3));const l=new Uint16Array(i.flat());if(r&&r.length){const t=r.flat();for(let e=0;e<t.length;e++)t[e]=t[e]/255;a.setAttribute("color",new bzt(new Float32Array(t),3)),o.material=o.material||{},o.material.vertexColors=!0}a.center(),a.computeBoundingSphere(),a.setIndex(new bzt(l,1)),a.computeVertexNormals();let c=new oDt(a,new cWt[o.material.cls](o.material));c.castShadow=!0,c.receiveShadow=!0,this._scene.add(c),this._lastMesh=c}_createLights(t,e){for(let n=0;n<e.lights.length;n++){const i=e.lights[n];let r=new cWt[i.cls](i.color,i.intensity);i.position&&r.position.set(i.position[0],i.position[1],i.position[2]),t.add(r)}}}let jWt=class extends(tr(ye)){constructor(){super(...arguments),this.selectedView="all",this.active=!1,this._colorScaleFunction=AO,this._steps=[],this._meshViewerAttached=!1,this._cameraPositionInitialized=!1,this._isMeshLoading=!1}get _runColor(){return this._colorScaleFunction(this.run)}connectedCallback(){super.connectedCallback(),this._dataProvider=new TIt(this.requestManager);const t=new UWt(this._runColor);t.addEventListener("beforeUpdateScene",this._updateCanvasSize.bind(this)),t.addEventListener("cameraPositionChange",this._onCameraPositionChange.bind(this)),this._meshViewer=t}reload(){this.active&&this._dataProvider&&(this._isMeshLoading=!0,this._dataProvider.reload(this.run,this.tag,this.sample).then((t=>{t&&(this._steps=t,this._stepIndex=t.length-1)})).catch((t=>{if(!t||!t.code||t.code!=SIt.CANCELLED)throw t=t||"Response processing failed.",new Error(t)})))}_updateScene(){const t=this._currentStep;t&&t.mesh&&(this._meshViewer.updateScene(t,this),this._cameraPositionInitialized||(this._meshViewer.resetView(),this._cameraPositionInitialized=!0),this._meshViewerAttached||(this.shadowRoot.appendChild(this._meshViewer.getRenderer().domElement),this._meshViewerAttached=!0))}_debouncedFetchMesh(){this.debounce("fetchMesh",(()=>this._maybeFetchMesh()),100)}_maybeFetchMesh(){return n(this,void 0,void 0,(function*(){const t=this._currentStep;if(t&&!t.mesh&&!t.meshFetching){t.meshFetching=!0,this._isMeshLoading=!0;try{const e=yield this._dataProvider.fetchData(t,this.run,this.tag,this.sample);t.mesh=e[0],this.notifyPath("_currentStep.mesh")}catch(t){if(!t||!t.code||t.code!=SIt.CANCELLED)throw t=t||"Response processing failed.",new Error(t)}finally{this._isMeshLoading=!1,t.meshFetching=!1}}}))}_onCameraPositionChange(){if(!this._meshViewer.isReady())return;const t=new CustomEvent("camera-position-change",{detail:this._meshViewer.getCameraPosition()});this.dispatchEvent(t)}setCameraViewpoint(t,e,n){this._meshViewer.setCameraViewpoint(t,e,n)}_updateCanvasSize(){const t=this.offsetWidth,e=t,n=this.$$(".tf-mesh-loader-header").offsetHeight;this._meshViewer.setCanvasSize({width:t,height:e-n})}redraw(){this._updateCanvasSize(),this.isConnected&&this._meshViewer.draw()}_hasAtLeastOneStep(t){return!!t&&t.length>0}_hasMultipleSteps(t){return!!t&&t.length>1}get _currentStep(){return this._steps[this._stepIndex]||null}get _stepValue(){const t=this._currentStep;return t?t.step:0}get _currentWallTime(){const t=this._currentStep;return t?OO(t.wall_time):""}_getMaxStepIndex(t){return t.length-1}_getSampleText(t){return String(t+1)}_hasMultipleSamples(t){return t>1}_updateView(){this._meshViewer&&"all"==this.selectedView&&this._meshViewer.resetView()}toLocaleString_(t){return t.toLocaleString()}};jWt.template=_e`
    <tf-card-heading color="[[_runColor]]" class="tf-mesh-loader-header">
      <template is="dom-if" if="[[_hasMultipleSamples(ofSamples)]]">
        <div>sample: [[_getSampleText(sample)]] of [[ofSamples]]</div>
      </template>
      <template is="dom-if" if="[[_hasAtLeastOneStep(_steps)]]">
        <div class="heading-row">
          <div class="heading-label">
            step
            <span style="font-weight: bold"
              >[[toLocaleString_(_stepValue)]]</span
            >
          </div>
          <div class="heading-label heading-right">
            <template is="dom-if" if="[[_currentWallTime]]">
              [[_currentWallTime]]
            </template>
          </div>
          <div class="label right">
            <paper-spinner-lite active hidden$="[[!_isMeshLoading]]">
            </paper-spinner-lite>
          </div>
        </div>
      </template>
      <template is="dom-if" if="[[_hasMultipleSteps(_steps)]]">
        <div>
          <paper-slider
            id="steps"
            immediate-value="{{_stepIndex}}"
            max="[[_getMaxStepIndex(_steps)]]"
            max-markers="[[_getMaxStepIndex(_steps)]]"
            snaps
            step="1"
            value="{{_stepIndex}}"
          ></paper-slider>
        </div>
      </template>
    </tf-card-heading>
    <style>
      paper-slider {
        width: 100%;
        margin-left: 1px;
        margin-right: 1px;
      }
      .tf-mesh-loader-header {
        display: block;
        height: 105px;
      }
      [hidden] {
        display: none;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],jWt.prototype,"run",void 0),t([o({type:String}),e("design:type",String)],jWt.prototype,"tag",void 0),t([o({type:Number}),e("design:type",Number)],jWt.prototype,"sample",void 0),t([o({type:Number}),e("design:type",Number)],jWt.prototype,"ofSamples",void 0),t([o({type:String}),e("design:type",String)],jWt.prototype,"selectedView",void 0),t([o({type:Boolean}),e("design:type",Boolean)],jWt.prototype,"active",void 0),t([o({type:Object}),e("design:type",hr)],jWt.prototype,"requestManager",void 0),t([o({type:Object}),e("design:type",UWt)],jWt.prototype,"_meshViewer",void 0),t([o({type:Object}),e("design:type",TIt)],jWt.prototype,"_dataProvider",void 0),t([o({type:Object}),e("design:type",Object)],jWt.prototype,"_colorScaleFunction",void 0),t([o({type:Array,notify:!0}),e("design:type",Array)],jWt.prototype,"_steps",void 0),t([o({type:Number,notify:!0}),e("design:type",Number)],jWt.prototype,"_stepIndex",void 0),t([o({type:Boolean}),e("design:type",Boolean)],jWt.prototype,"_meshViewerAttached",void 0),t([o({type:Boolean}),e("design:type",Boolean)],jWt.prototype,"_cameraPositionInitialized",void 0),t([o({type:Boolean}),e("design:type",Boolean)],jWt.prototype,"_isMeshLoading",void 0),t([s("run"),e("design:type",String),e("design:paramtypes",[])],jWt.prototype,"_runColor",null),t([a("run","tag","active","_dataProvider","_meshViewer"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],jWt.prototype,"reload",null),t([a("_currentStep.*","_meshViewer"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],jWt.prototype,"_updateScene",null),t([a("_currentStep"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],jWt.prototype,"_debouncedFetchMesh",null),t([s("_steps","_stepIndex"),e("design:type",Object),e("design:paramtypes",[])],jWt.prototype,"_currentStep",null),t([s("_currentStep"),e("design:type",Number),e("design:paramtypes",[])],jWt.prototype,"_stepValue",null),t([s("_currentStep"),e("design:type",String),e("design:paramtypes",[])],jWt.prototype,"_currentWallTime",null),t([a("selectedView"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],jWt.prototype,"_updateView",null),jWt=t([i("tf-mesh-loader")],jWt);let GWt=class extends ye{constructor(){super(),this.reloadOnReady=!0,this._tagFilter=".*",this._selectedView="all",this._requestManager=new hr,window.addEventListener("resize",(()=>{this._handleWindowResize()}),!1),this.reloadOnReady&&this.reload()}_getAllChildren(){return Array.from(this.shadowRoot.querySelectorAll("tf-mesh-loader"))}_onCameraPositionChanged(t){"share"==this._selectedView&&this._getAllChildren().forEach((e=>{t.target!=e&&e.setCameraViewpoint(t.detail.position,t.detail.far,t.detail.target)}))}_shouldOpen(t){return t<=2}reload(){this._fetchTags().then(this._reloadMeshes.bind(this))}_handleWindowResize(){this._getAllChildren().forEach((t=>{t.redraw()}))}_fetchTags(){const t=gr().pluginRoute("mesh","/tags");return this._requestManager.request(t).then((t=>{if(we.isEqual(t,this._runToTagInfo))return;const e=or(we.mapValues(t,(t=>Object.keys(t))));this._dataNotFound=0===e.length,this._runToTagInfo=t}))}_reloadMeshes(){this._getAllChildren().forEach((t=>{t.reload()}))}get _categories(){var t=this._runToTagInfo,e=this._selectedRuns,n=this._tagFilter;function i(e){const n=t[e.run][e.tag].samples;return we.range(n).map((t=>Object.assign({},e,{sample:t,ofSamples:n})))}return Sr(we.mapValues(t,(t=>Object.keys(t))),e,n).map((t=>Object.assign({},t,{items:[].concat.apply([],t.items.map(i))})))}};GWt.template=_e`
    <tf-dashboard-layout>
      <div slot="sidebar" class="all-controls">
        <div class="settings">
          <div class="sidebar-section view-control">
            <h3 class="title">Point of view</h3>
            <div>
              <paper-radio-group
                id="view-radio-group"
                selected="{{_selectedView}}"
              >
                <paper-radio-button id="all-radio-button" name="all">
                  Display all points
                </paper-radio-button>
                <paper-tooltip
                  animation-delay="0"
                  for="all-radio-button"
                  position="right"
                  offset="0"
                >
                  Zoom and center camera to display all points at once. Note,
                  that some points could be too far (i.e. too small) to be
                  visible.
                </paper-tooltip>
                <paper-radio-button id="user-radio-button" name="user">
                  Current view
                </paper-radio-button>
                <paper-tooltip
                  animation-delay="0"
                  for="user-radio-button"
                  position="right"
                  offset="0"
                >
                  Keep current camera position and zoom level.
                </paper-tooltip>
                <paper-radio-button id="share-radio-button" name="share">
                  Share viewpoint
                </paper-radio-button>
                <paper-tooltip
                  animation-delay="0"
                  for="share-radio-button"
                  position="right"
                  offset="0"
                >
                  Share viewpoint among all cameras.
                </paper-tooltip>
              </paper-radio-group>
            </div>
          </div>
        </div>
        <div class="sidebar-section runs-selector">
          <tf-runs-selector selected-runs="{{_selectedRuns}}">
          </tf-runs-selector>
        </div>
      </div>
      <div slot="center">
        <template is="dom-if" if="[[_dataNotFound]]">
          <div class="no-data-warning">
            <h3>No point cloud data was found.</h3>
            <p>Probable causes:</p>
            <ul>
              <li>
                You haven’t written any point cloud data to your event files.
              </li>
              <li>TensorBoard can’t find your event files.</li>
            </ul>

            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>

            <p>
              If you think TensorBoard is configured properly, please see
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
                >the section of the README devoted to missing data problems</a
              >
              and consider filing an issue on GitHub.
            </p>
          </div>
        </template>
        <template is="dom-if" if="[[!_dataNotFound]]">
          <tf-tag-filterer tag-filter="{{_tagFilter}}"></tf-tag-filterer>
          <template is="dom-repeat" items="[[_categories]]" as="category">
            <tf-category-paginated-view
              category="[[category]]"
              initial-opened="[[_shouldOpen(index)]]"
            >
              <template>
                <tf-mesh-loader
                  active="[[active]]"
                  selected-view="[[_selectedView]]"
                  run="[[item.run]]"
                  tag="[[item.tag]]"
                  sample="[[item.sample]]"
                  of-samples="[[item.ofSamples]]"
                  request-manager="[[_requestManager]]"
                  class="tf-mesh-loader-container"
                  on-camera-position-change="_onCameraPositionChanged"
                >
                </tf-mesh-loader>
              </template>
            </tf-category-paginated-view>
          </template>
        </template>
      </div>
    </tf-dashboard-layout>

    <style include="dashboard-style"></style>
    <style>
      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }
      paper-radio-button {
        display: block;
        padding: 5px;
      }
      .sidebar-section h3 {
        margin: 0;
        font-weight: normal;
        font-size: 14px;
        margin-bottom: 5px;
      }

      .runs-selector {
        flex-grow: 1;
      }

      tf-runs-selector {
        display: flex;
      }

      .view-control {
        display: block !important;
      }

      .view-control h3.title {
        padding-top: 16px;
        padding-bottom: 16px;
      }

      .allcontrols .view-control paper-radio-group {
        margin-top: 5px;
      }
      /* Layout must be horizontal, i.e. items arranged in a row. If items cannot fit in a row,
       * they should be moved to next line. All items must be square at all times. Minimum size of
       * the item is 480px. This means that maximum size of the item must be 480px + 479px = 959px.
       * */
      .horizontal {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
      }
      tf-mesh-loader {
        width: 480px;
        flex-basis: 480px;
        flex-grow: 1;
        display: block;
      }
    </style>
  `,t([o({type:Boolean}),e("design:type",Boolean)],GWt.prototype,"reloadOnReady",void 0),t([o({type:Array}),e("design:type",Array)],GWt.prototype,"_selectedRuns",void 0),t([o({type:Object}),e("design:type",Object)],GWt.prototype,"_runToTagInfo",void 0),t([o({type:Boolean}),e("design:type",Boolean)],GWt.prototype,"_dataNotFound",void 0),t([o({type:String}),e("design:type",String)],GWt.prototype,"_tagFilter",void 0),t([o({type:String,notify:!0}),e("design:type",String)],GWt.prototype,"_selectedView",void 0),t([o({type:Object}),e("design:type",Object)],GWt.prototype,"_requestManager",void 0),t([s("_runToTagInfo","_selectedRuns","_tagFilter"),e("design:type",Array),e("design:paramtypes",[])],GWt.prototype,"_categories",null),GWt=t([i("mesh-dashboard"),e("design:paramtypes",[])],GWt);let WWt=class extends ye{constructor(){super(...arguments),this._expanded=!1,this._runToPrCurveEntry={},this._previousRunToPrCurveEntry={},this._colorScaleFunction={scale:AO},this._canceller=new NO,this._xComponentsCreationMethod=()=>{const t=new n_t.Scales.Linear;return{scale:t,axis:new n_t.Axes.Numeric(t,"bottom"),accessor:t=>t.recall}},this._yValueAccessor=t=>t.precision,this._tooltipColumns=(()=>{const t=o_t(4),e=e=>isNaN(e)?"NaN":t(e);return[{title:"Run",evaluate:t=>t.dataset.metadata().name},{title:"Threshold",evaluate:t=>e(t.datum.thresholds)},{title:"Precision",evaluate:t=>e(t.datum.precision)},{title:"Recall",evaluate:t=>e(t.datum.recall)},{title:"TP",evaluate:t=>t.datum.true_positives},{title:"FP",evaluate:t=>t.datum.false_positives},{title:"TN",evaluate:t=>t.datum.true_negatives},{title:"FN",evaluate:t=>t.datum.false_negatives}]})(),this._seriesDataFields=["thresholds","precision","recall","true_positives","false_positives","true_negatives","false_negatives"],this._defaultXRange=[-.05,1.05],this._defaultYRange=[-.05,1.05],this._requestData=(t,e,n)=>{const i=gr().pluginRoute("pr_curves","/pr_curves");Promise.all(t.map((t=>{const n=VO(i,{tag:this.tag,run:t});return this.requestManager.request(n).then((n=>{e({item:t,data:n})}))}))).finally((()=>{n()}))},this._smoothingEnabled=!1}_createProcessDataFunction(){return(t,e,n)=>{this.set("_runToDataOverTime",Object.assign({},this._runToDataOverTime,n))}}_computeRunColor(t){return AO(t)}connectedCallback(){super.connectedCallback(),this._attached=!0,this.reload()}_getChartDataLoader(){return this.shadowRoot.querySelector("tf-line-chart-data-loader")}reload(){this._attached&&(0!==this.runs.length?this._getChartDataLoader().reload():this.set("_runToDataOverTime",{}))}_setChartData(){var t=this._runToPrCurveEntry,e=this._previousRunToPrCurveEntry,n=this._setOfRelevantRuns;we.forOwn(t,((i,r)=>{const o=e[r];o&&t[r].step===o.step||(n[r]?this._updateSeriesDataForRun(r,i):this._clearSeriesData(r))}))}_updateSeriesDataForRun(t,e){const n=we.reduce(this._seriesDataFields,((t,n)=>(t[n]=e[n].slice().reverse(),t)),{}),i=new Array(n[this._seriesDataFields[0]].length);for(let t=0;t<i.length;t++)i[t]=we.mapValues(n,(e=>e[t]));const r=this._getChartDataLoader();r.setSeriesData(t,i),r.commitChanges()}_clearSeriesData(t){const e=this._getChartDataLoader();e.setSeriesData(t,[]),e.commitChanges()}_updateRunToPrCurveEntry(){var t=this.runToStepCap;const e={};we.forOwn(this._runToDataOverTime,((n,i)=>{n&&n.length&&(e[i]=this._computeEntryClosestOrEqualToStepCap(t[i],n))})),this.set("_previousRunToPrCurveEntry",this._runToPrCurveEntry),this.set("_runToPrCurveEntry",e)}_notifyDataChange(){this.onDataChange&&this.onDataChange(this._runToDataOverTime)}_computeEntryClosestOrEqualToStepCap(t,e){const n=Math.min(we.sortedIndex(e.map((t=>t.step)),t),e.length-1);return e[n]}get _runsWithStepAvailable(){var t=this._runToPrCurveEntry;return we.filter(this.runs,(e=>t[e])).sort()}get _setOfRelevantRuns(){const t={};return we.forEach(this._runsWithStepAvailable,(e=>{t[e]=!0})),t}_computeCurrentStepForRun(t,e){const n=t[e];return n?n.step:null}_computeCurrentWallTimeForRun(t,e){const n=t[e];return n?new Date(1e3*n.wall_time).toString():null}_toggleExpanded(t){this.set("_expanded",!this._expanded),this.redraw()}_resetDomain(){this._getChartDataLoader().resetDomain()}redraw(){this._getChartDataLoader().redraw()}};WWt.template=_e`
    <tf-card-heading
      tag="[[tag]]"
      display-name="[[tagMetadata.displayName]]"
      description="[[tagMetadata.description]]"
    ></tf-card-heading>

    <tf-line-chart-data-loader
      x-components-creation-method="[[_xComponentsCreationMethod]]"
      y-value-accessor="[[_yValueAccessor]]"
      tooltip-columns="[[_tooltipColumns]]"
      color-scale="[[_colorScaleFunction]]"
      default-x-range="[[_defaultXRange]]"
      default-y-range="[[_defaultYRange]]"
      smoothing-enabled="[[_smoothingEnabled]]"
      request-manager="[[requestManager]]"
      data-to-load="[[runs]]"
      data-series="[[runs]]"
      load-key="[[tag]]"
      request-data="[[_requestData]]"
      load-data-callback="[[_createProcessDataFunction()]]"
      active="[[active]]"
    ></tf-line-chart-data-loader>

    <div id="buttons-row">
      <paper-icon-button
        selected$="[[_expanded]]"
        icon="fullscreen"
        on-tap="_toggleExpanded"
      ></paper-icon-button>
      <paper-icon-button
        icon="settings-overscan"
        on-tap="_resetDomain"
        title="Reset axes to [0, 1]."
      ></paper-icon-button>
    </div>

    <div id="step-legend">
      <template is="dom-repeat" items="[[_runsWithStepAvailable]]" as="run">
        <div class="legend-row">
          <div
            class="color-box"
            style="background: [[_computeRunColor(run)]];"
          ></div>
          [[run]] is at
          <span class="step-label-text">
            step [[_computeCurrentStepForRun(_runToPrCurveEntry, run)]] </span
          ><br />
          <span class="wall-time-label-text">
            ([[_computeCurrentWallTimeForRun(_runToPrCurveEntry, run)]])
          </span>
        </div>
      </template>
    </div>

    <style>
      :host {
        display: flex;
        flex-direction: column;
        width: 500px;
        margin-right: 10px;
        margin-bottom: 25px;
      }
      :host([_expanded]) {
        width: 100%;
      }
      tf-line-chart-data-loader {
        height: 300px;
        position: relative;
      }
      :host([_expanded]) tf-line-chart-data-loader {
        height: 600px;
      }
      #buttons-row {
        display: flex;
        flex-direction: row;
      }
      #buttons-row paper-icon-button {
        color: #2196f3;
        border-radius: 100%;
        width: 32px;
        height: 32px;
        padding: 4px;
      }
      #buttons-row paper-icon-button[selected] {
        background: var(--tb-ui-light-accent);
      }
      #step-legend {
        box-sizing: border-box;
        font-size: 0.8em;
        max-height: 200px;
        overflow-y: auto;
        padding: 0 0 0 10px;
        width: 100%;
      }
      .legend-row {
        margin: 5px 0 5px 0;
        width: 100%;
      }
      .color-box {
        display: inline-block;
        border-radius: 1px;
        width: 10px;
        height: 10px;
      }
      .step-label-text {
        font-weight: bold;
      }
      .wall-time-label-text {
        color: #888;
        font-size: 0.8em;
      }
    </style>
  `,t([o({type:Array}),e("design:type",Array)],WWt.prototype,"runs",void 0),t([o({type:String}),e("design:type",String)],WWt.prototype,"tag",void 0),t([o({type:Object}),e("design:type",Object)],WWt.prototype,"tagMetadata",void 0),t([o({type:Object}),e("design:type",Object)],WWt.prototype,"runToStepCap",void 0),t([o({type:Object}),e("design:type",hr)],WWt.prototype,"requestManager",void 0),t([o({type:Boolean}),e("design:type",Boolean)],WWt.prototype,"active",void 0),t([o({type:Boolean,reflectToAttribute:!0}),e("design:type",Boolean)],WWt.prototype,"_expanded",void 0),t([o({type:Object}),e("design:type",Object)],WWt.prototype,"_runToPrCurveEntry",void 0),t([o({type:Object}),e("design:type",Object)],WWt.prototype,"_previousRunToPrCurveEntry",void 0),t([o({type:Object}),e("design:type",Object)],WWt.prototype,"_runToDataOverTime",void 0),t([o({type:Object}),e("design:type",Function)],WWt.prototype,"onDataChange",void 0),t([o({type:Object}),e("design:type",Object)],WWt.prototype,"_colorScaleFunction",void 0),t([o({type:Object}),e("design:type",NO)],WWt.prototype,"_canceller",void 0),t([o({type:Boolean}),e("design:type",Boolean)],WWt.prototype,"_attached",void 0),t([o({type:Object}),e("design:type",Object)],WWt.prototype,"_xComponentsCreationMethod",void 0),t([o({type:Object}),e("design:type",Object)],WWt.prototype,"_yValueAccessor",void 0),t([o({type:Array}),e("design:type",Array)],WWt.prototype,"_tooltipColumns",void 0),t([o({type:Array}),e("design:type",Array)],WWt.prototype,"_seriesDataFields",void 0),t([o({type:Array}),e("design:type",Array)],WWt.prototype,"_defaultXRange",void 0),t([o({type:Array}),e("design:type",Array)],WWt.prototype,"_defaultYRange",void 0),t([o({type:Object}),e("design:type",Function)],WWt.prototype,"_requestData",void 0),t([o({type:Boolean}),e("design:type",Boolean)],WWt.prototype,"_smoothingEnabled",void 0),t([a("runs","tag"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],WWt.prototype,"reload",null),t([a("_runToPrCurveEntry","_previousRunToPrCurveEntry","_setOfRelevantRuns"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],WWt.prototype,"_setChartData",null),t([a("_runToDataOverTime","runToStepCap"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],WWt.prototype,"_updateRunToPrCurveEntry",null),t([a("_runToDataOverTime"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],WWt.prototype,"_notifyDataChange",null),t([s("runs","_runToPrCurveEntry"),e("design:type",Array),e("design:paramtypes",[])],WWt.prototype,"_runsWithStepAvailable",null),t([s("_runsWithStepAvailable"),e("design:type",Object),e("design:paramtypes",[])],WWt.prototype,"_setOfRelevantRuns",null),WWt=t([i("tf-pr-curve-card")],WWt);let qWt=class extends ye{constructor(){super(...arguments),this._runToStepIndex={}}_computeColorForRun(t){return AO(t)}_computeTimeTextForRun(t,e,n,i){const r=e[n];if(!we.isNumber(r))return"";const o=t[n];if(!o)return"";const a=o[r][i];if("step"===i)return`step ${a}`;if("relative"===i)return a<1?`${(1e3*a).toFixed(2)} ms`:`${a.toFixed(2)} s`;if("wall_time"===i)return new Date(1e3*a).toString();throw new Error(`The display type of ${i} is not recognized.`)}_sliderValueChanged(t){const e=t.target.dataset.run,n=t.target.immediateValue,i=Object.assign({},this._runToStepIndex);isNaN(n)?delete i[e]:i[e]=t.target.immediateValue,this._runToStepIndex=i}_computeMaxStepIndexForRun(t,e){const n=t[e];return n&&n.length?n.length-1:0}_updateStepsForNewRuns(){var t=this.runToAvailableTimeEntries;const e=Object.assign({},this._runToStepIndex);we.forOwn(t,((t,n)=>{we.isNumber(e[n])||(e[n]=t.length-1)})),this._runToStepIndex=e}_getStep(t,e){return this._runToStepIndex?this._runToStepIndex[e]:0}_computeRunToStep(t,e){const n={};return we.forOwn(e,((e,i)=>{const r=t[i];r&&(n[i]=r[e].step)})),n}get _runsWithSliders(){var t=this.runToAvailableTimeEntries;return this.runs.filter((e=>t[e]))}};qWt.template=_e`
    <template is="dom-repeat" items="[[_runsWithSliders]]" as="run">
      <div class="run-widget">
        <div class="run-display-container">
          <div
            class="run-color-box"
            style="background:[[_computeColorForRun(run)]];"
          ></div>
          <div class="run-text">[[run]]</div>
        </div>
        <div class="step-display-container">
          [[_computeTimeTextForRun(runToAvailableTimeEntries, _runToStepIndex,
          run, timeDisplayType)]]
        </div>
        <paper-slider
          data-run$="[[run]]"
          step="1"
          type="number"
          min="0"
          max="[[_computeMaxStepIndexForRun(runToAvailableTimeEntries, run)]]"
          value="[[_getStep(_runToStepIndex, run)]]"
          on-immediate-value-changed="_sliderValueChanged"
        ></paper-slider>
      </div>
    </template>
    <style>
      .run-widget {
        margin: 10px 0 0 0;
      }
      paper-slider {
        margin: -8px 0 0 -15px;
        width: 100%;
      }
      .step-display-container {
        font-size: 0.9em;
        margin: 0 15px 0 0;
      }
      .run-text {
        display: inline-block;
      }
      .run-color-box {
        width: 12px;
        height: 12px;
        border-radius: 3px;
        display: inline-block;
      }
    </style>
  `,t([o({type:Array}),e("design:type",Array)],qWt.prototype,"runs",void 0),t([o({type:Object}),e("design:type",Object)],qWt.prototype,"runToAvailableTimeEntries",void 0),t([o({type:Object,notify:!0,computed:"_computeRunToStep(runToAvailableTimeEntries, _runToStepIndex)"}),e("design:type",Object)],qWt.prototype,"runToStep",void 0),t([o({type:String}),e("design:type",String)],qWt.prototype,"timeDisplayType",void 0),t([o({type:Object}),e("design:type",Object)],qWt.prototype,"_runToStepIndex",void 0),t([a("runToAvailableTimeEntries"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],qWt.prototype,"_updateStepsForNewRuns",null),t([s("runs","runToAvailableTimeEntries"),e("design:type",Array),e("design:paramtypes",[])],qWt.prototype,"_runsWithSliders",null),qWt=t([i("tf-pr-curve-steps-selector")],qWt);let YWt=class extends(tr(ye)){constructor(){super(...arguments),this.reloadOnReady=!0,this._timeDisplayType="step",this._selectedRuns=[],this._runToTagInfo={},this._tagToRunToData={},this._getCategoryItemKey=t=>t.tag,this._requestManager=new hr,this._step=0}ready(){super.ready(),this.reloadOnReady&&this.reload()}reload(){Promise.all([this._fetchTags()]).then((()=>{this._reloadCards()}))}_shouldOpen(t){return t<=2}_fetchTags(){const t=gr().pluginRoute("pr_curves","/tags");return this._requestManager.request(t).then((t=>{if(we.isEqual(t,this._runToTagInfo))return;const e=or(we.mapValues(t,(t=>we.keys(t))));this.set("_dataNotFound",0===e.length),this.set("_runToTagInfo",t),this.async((()=>{this.set("_categoriesDomReady",!0)}))}))}_reloadCards(){we.forEach(this.root.querySelectorAll("tf-pr-curve-card"),(t=>{t.reload()}))}get _categories(){var t=this._selectedRuns,e=this._tagFilter;return xr(we.mapValues(this._runToTagInfo,(t=>Object.keys(t))),t,e)}get _relevantSelectedRuns(){var t=this._runToTagInfo;return this._selectedRuns.filter((e=>t[e]))}_tagMetadata(t,e,n){const i={};e.forEach((e=>{i[e]=t[e][n]}));const r=n.replace(/\/pr_curves$/,"");return HO(i,r)}_createDataChangeCallback(t){return e=>{this.set("_tagToRunToData",Object.assign(Object.assign({},this._tagToRunToData),{[t]:e}))}}get _runToAvailableTimeEntries(){var t=this._tagToRunToData;const e={};for(const[n,i]of Object.entries(t))for(const[t]of Object.entries(i))(null==e[t]||n<e[t])&&(e[t]=n);const n={};for(const[i,r]of Object.entries(e)){const e=t[r][i];n[i]=e.map((t=>({step:t.step,wall_time:t.wall_time,relative:t.wall_time-e[0].wall_time})))}return n}};YWt.template=_e`
    <tf-dashboard-layout>
      <div class="sidebar" slot="sidebar">
        <div class="settings">
          <div class="sidebar-section">
            <tf-option-selector
              id="time-type-selector"
              name="Time Display Type"
              selected-id="{{_timeDisplayType}}"
            >
              <paper-button id="step">step</paper-button>
              <!--
            -->
              <paper-button id="relative">relative</paper-button>
              <!--
            -->
              <paper-button id="wall_time">wall</paper-button>
            </tf-option-selector>
          </div>
          <template is="dom-if" if="[[_runToAvailableTimeEntries]]">
            <div class="sidebar-section" id="steps-selector-container">
              <tf-pr-curve-steps-selector
                runs="[[_relevantSelectedRuns]]"
                run-to-step="{{_runToStep}}"
                run-to-available-time-entries="[[_runToAvailableTimeEntries]]"
                time-display-type="[[_timeDisplayType]]"
              >
              </tf-pr-curve-steps-selector>
            </div>
          </template>
        </div>
        <div class="sidebar-section runs-selector">
          <tf-runs-selector selected-runs="{{_selectedRuns}}">
          </tf-runs-selector>
        </div>
      </div>
      <div class="center" slot="center">
        <template is="dom-if" if="[[_dataNotFound]]">
          <div class="no-data-warning">
            <h3>No precision–recall curve data was found.</h3>
            <p>Probable causes:</p>
            <ul>
              <li>
                You haven’t written any precision–recall data to your event
                files.
              </li>
              <li>TensorBoard can’t find your event files.</li>
            </ul>
            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>

            <p>
              If you think TensorBoard is configured properly, please see
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
                >the section of the README devoted to missing data problems</a
              >
              and consider filing an issue on GitHub.
            </p>
          </div>
        </template>
        <template is="dom-if" if="[[!_dataNotFound]]">
          <tf-tag-filterer tag-filter="{{_tagFilter}}"></tf-tag-filterer>
          <template is="dom-repeat" items="[[_categories]]" as="category">
            <tf-category-paginated-view
              category="[[category]]"
              initial-opened="[[_shouldOpen(index)]]"
              get-category-item-key="[[_getCategoryItemKey]]"
            >
              <template>
                <tf-pr-curve-card
                  active="[[active]]"
                  runs="[[item.runs]]"
                  tag="[[item.tag]]"
                  tag-metadata="[[_tagMetadata(_runToTagInfo, item.runs, item.tag)]]"
                  request-manager="[[_requestManager]]"
                  run-to-step-cap="[[_runToStep]]"
                  on-data-change="[[_createDataChangeCallback(item.tag)]]"
                ></tf-pr-curve-card>
              </template>
            </tf-category-paginated-view>
          </template>
        </template>
      </div>
    </tf-dashboard-layout>

    <style include="dashboard-style"></style>
    <style>
      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }

      /** Do not let the steps selector occlude the run selector. */
      #steps-selector-container {
        max-height: 60%;
        overflow-y: auto;
      }
    </style>
  `,t([o({type:Boolean}),e("design:type",Boolean)],YWt.prototype,"reloadOnReady",void 0),t([o({type:String}),e("design:type",String)],YWt.prototype,"_timeDisplayType",void 0),t([o({type:Array}),e("design:type",Array)],YWt.prototype,"_selectedRuns",void 0),t([o({type:Object}),e("design:type",Object)],YWt.prototype,"_runToTagInfo",void 0),t([o({type:Object}),e("design:type",Object)],YWt.prototype,"_tagToRunToData",void 0),t([o({type:Object,notify:!0}),e("design:type",Object)],YWt.prototype,"_runToStep",void 0),t([o({type:Boolean}),e("design:type",Boolean)],YWt.prototype,"_dataNotFound",void 0),t([o({type:String}),e("design:type",String)],YWt.prototype,"_tagFilter",void 0),t([o({type:Boolean}),e("design:type",Boolean)],YWt.prototype,"_categoriesDomReady",void 0),t([o({type:Object}),e("design:type",Object)],YWt.prototype,"_getCategoryItemKey",void 0),t([o({type:Object}),e("design:type",hr)],YWt.prototype,"_requestManager",void 0),t([o({type:Number,notify:!0}),e("design:type",Number)],YWt.prototype,"_step",void 0),t([s("_runToTagInfo","_selectedRuns","_tagFilter","_categoriesDomReady"),e("design:type",Array),e("design:paramtypes",[])],YWt.prototype,"_categories",null),t([s("_selectedRuns","_runToTagInfo"),e("design:type",Array),e("design:paramtypes",[])],YWt.prototype,"_relevantSelectedRuns",null),t([s("_tagToRunToData"),e("design:type",Object),e("design:paramtypes",[])],YWt.prototype,"_runToAvailableTimeEntries",null),YWt=t([i("tf-pr-curve-dashboard")],YWt);let XWt=class extends(tr(ye)){constructor(){super(...arguments),this._installCommand="pip install -U tensorboard-plugin-profile"}_copyInstallCommand(){return n(this,void 0,void 0,(function*(){const t=()=>n(this,void 0,void 0,(function*(){this.$.commandTextarea.select();try{yield navigator.clipboard.writeText(this._installCommand)}catch(t){if(!document.execCommand("copy"))return Promise.reject()}})),e=this.$.copiedMessage;try{yield t(),e.innerText="Copied."}catch(t){e.innerText="Failed to copy to clipboard."}}))}_removeCopiedMessage(){this.$.copiedMessage.innerText=""}};XWt.template=_e`
    <div class="message">
      <h3>The profile plugin has moved.</h3>
      <p>
        Please install the new version of the profile plugin from PyPI by
        running the following command from the machine running TensorBoard:
      </p>
      <textarea
        id="commandTextarea"
        readonly=""
        rows="1"
        on-blur="_removeCopiedMessage"
      >
[[_installCommand]]</textarea
      >
      <div id="copyContainer">
        <span id="copiedMessage"></span>
        <paper-button raised="" on-tap="_copyInstallCommand"
          >Copy to clipboard</paper-button
        >
      </div>
    </div>

    <style>
      :host {
        display: flex;
      }

      .message {
        margin: 80px auto 0 auto;
        max-width: 540px;
      }
      #commandTextarea {
        margin-top: 1ex;
        padding: 1ex 1em;
        resize: vertical;
        width: 100%;
      }
      #copyContainer {
        display: flex;
      }
      #copiedMessage {
        align-self: center;
        flex-grow: 1;
        font-style: italic;
        padding-right: 1em;
        text-align: right;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],XWt.prototype,"_installCommand",void 0),XWt=t([i("tf-profile-redirect-dashboard")],XWt);let $Wt=class extends(tr(ul)){constructor(){super(...arguments),this.reloadOnReady=!0,this._showDownloadLinks=Bs("_showDownloadLinks",{defaultValue:!1,useLocalStorage:!0}).call(this),this._smoothingWeight=js("_smoothingWeight",{defaultValue:.6}).call(this),this._ignoreYOutliers=Bs("_ignoreYOutliers",{defaultValue:!0,useLocalStorage:!0}).call(this),this._xType=r_t.STEP,this._selectedRuns=[],this._tagFilter="",this._categories=[],this._getCategoryItemKey=t=>t.tag,this._requestManager=new hr(50),this._showDownloadLinksObserver=Hs("_showDownloadLinks",{defaultValue:!1,useLocalStorage:!0}),this._smoothingWeightObserver=Gs("_smoothingWeight",{defaultValue:.6}),this._ignoreYOutliersObserver=Hs("_ignoreYOutliers",{defaultValue:!0,useLocalStorage:!0})}get _smoothingEnabled(){return this._smoothingWeight>0}_getCategoryKey(t){return t.metadata.type==vr.SEARCH_RESULTS?"":t.name}_shouldOpen(t){return t<=2}ready(){super.ready(),this.reloadOnReady&&this.reload()}reload(){this._fetchTags().then((()=>{this._reloadCharts()}))}_fetchTags(){const t=gr().pluginRoute("scalars","/tags");return this._requestManager.request(t).then((t=>{if(we.isEqual(t,this._runToTagInfo))return;const e=or(we.mapValues(t,(t=>Object.keys(t))));this.set("_dataNotFound",0===e.length),this.set("_runToTagInfo",t),this.async((()=>{this.set("_categoriesDomReady",!0)}))}))}_reloadCharts(){this.root.querySelectorAll("tf-scalar-card").forEach((t=>{t.reload()}))}_updateCategories(){var t=this._selectedRuns;let e,n=this._tagFilter;e=xr(we.mapValues(this._runToTagInfo,(t=>Object.keys(t))),t,n),e.forEach((t=>{t.items=t.items.map((t=>({tag:t.tag,series:t.runs.map((e=>({run:e,tag:t.tag})))})))})),this.updateArrayProp("_categories",e,this._getCategoryKey)}_tagMetadata(t,e,n){const i=t.name,r=n.tag,o={};n.series.forEach((({run:t})=>{o[t]=e[t][r]}));const a=r.replace(/\/scalar_summary$/,"");let{description:s,displayName:l}=HO(o,a);return t.metadata.type==vr.PREFIX_GROUP&&l.startsWith(i+"/")&&(l=l.slice(i.length+1)),{description:s,displayName:l}}};$Wt.template=_e`
    <tf-dashboard-layout>
      <div class="sidebar" slot="sidebar">
        <div class="settings">
          <div class="sidebar-section">
            <div class="line-item">
              <paper-checkbox
                id="show-download-links"
                checked="{{_showDownloadLinks}}"
                >Show data download links</paper-checkbox
              >
            </div>
            <div class="line-item">
              <paper-checkbox
                id="ignore-y-outlier"
                checked="{{_ignoreYOutliers}}"
                >Ignore outliers in chart scaling</paper-checkbox
              >
            </div>
            <div id="tooltip-sorting">
              <div>Tooltip sorting method:</div>
              <paper-dropdown-menu
                no-label-float
                selected-item-label="{{_tooltipSortingMethod}}"
              >
                <paper-listbox
                  class="dropdown-content"
                  selected="0"
                  slot="dropdown-content"
                >
                  <paper-item>default</paper-item>
                  <paper-item>descending</paper-item>
                  <paper-item>ascending</paper-item>
                  <paper-item>nearest</paper-item>
                </paper-listbox>
              </paper-dropdown-menu>
            </div>
          </div>
          <div class="sidebar-section">
            <tf-smoothing-input
              weight="{{_smoothingWeight}}"
              step="0.001"
              min="0"
              max="0.999"
            ></tf-smoothing-input>
          </div>
          <div class="sidebar-section">
            <tf-option-selector
              id="x-type-selector"
              name="Horizontal Axis"
              selected-id="{{_xType}}"
            >
              <paper-button id="step">step</paper-button
              ><!--
            --><paper-button id="relative">relative</paper-button
              ><!--
            --><paper-button id="wall_time">wall</paper-button>
            </tf-option-selector>
          </div>
        </div>
        <div class="sidebar-section runs-selector">
          <tf-runs-selector selected-runs="{{_selectedRuns}}">
          </tf-runs-selector>
        </div>
      </div>
      <div class="center" slot="center">
        <template is="dom-if" if="[[_dataNotFound]]">
          <div class="no-data-warning">
            <h3>No scalar data was found.</h3>
            <p>Probable causes:</p>
            <ul>
              <li>You haven’t written any scalar data to your event files.</li>
              <li>TensorBoard can’t find your event files.</li>
            </ul>

            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>

            <p>
              If you think TensorBoard is configured properly, please see
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
                >the section of the README devoted to missing data problems</a
              >
              and consider filing an issue on GitHub.
            </p>
          </div>
        </template>
        <template is="dom-if" if="[[!_dataNotFound]]">
          <tf-tag-filterer tag-filter="{{_tagFilter}}"></tf-tag-filterer>
          <template is="dom-repeat" items="[[_categories]]" as="category">
            <tf-category-paginated-view
              category="[[category]]"
              initial-opened="[[_shouldOpen(index)]]"
              get-category-item-key="[[_getCategoryItemKey]]"
            >
              <template>
                <tf-scalar-card
                  active="[[active]]"
                  data-to-load="[[item.series]]"
                  ignore-y-outliers="[[_ignoreYOutliers]]"
                  multi-experiments="[[_getMultiExperiments(dataSelection)]]"
                  request-manager="[[_requestManager]]"
                  show-download-links="[[_showDownloadLinks]]"
                  smoothing-enabled="[[_smoothingEnabled]]"
                  smoothing-weight="[[_smoothingWeight]]"
                  tag-metadata="[[_tagMetadata(category, _runToTagInfo, item)]]"
                  tag="[[item.tag]]"
                  tooltip-sorting-method="[[_tooltipSortingMethod]]"
                  x-type="[[_xType]]"
                  batch-size="[[featureFlags.scalarsBatchSize]]"
                  in-colab="[[featureFlags.inColab]]"
                ></tf-scalar-card>
              </template>
            </tf-category-paginated-view>
          </template>
        </template>
      </div>
    </tf-dashboard-layout>

    <style include="dashboard-style"></style>
    <style>
      #tooltip-sorting {
        align-items: center;
        display: flex;
        font-size: 14px;
        margin-top: 15px;
      }

      #tooltip-sorting paper-dropdown-menu {
        margin-left: 10px;
        --paper-input-container-focus-color: var(--tb-orange-strong);
        width: 105px;
      }

      .line-item {
        display: block;
        padding-top: 5px;
      }
      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }
      .center {
        overflow-x: hidden;
      }
    </style>
  `,t([o({type:Boolean}),e("design:type",Boolean)],$Wt.prototype,"reloadOnReady",void 0),t([o({type:Object}),e("design:type",Object)],$Wt.prototype,"featureFlags",void 0),t([o({type:Boolean,notify:!0,observer:"_showDownloadLinksObserver"}),e("design:type",Boolean)],$Wt.prototype,"_showDownloadLinks",void 0),t([o({type:Number,notify:!0,observer:"_smoothingWeightObserver"}),e("design:type",Number)],$Wt.prototype,"_smoothingWeight",void 0),t([o({type:Boolean,observer:"_ignoreYOutliersObserver"}),e("design:type",Boolean)],$Wt.prototype,"_ignoreYOutliers",void 0),t([o({type:String}),e("design:type",String)],$Wt.prototype,"_xType",void 0),t([o({type:Array}),e("design:type",Array)],$Wt.prototype,"_selectedRuns",void 0),t([o({type:Object}),e("design:type",Object)],$Wt.prototype,"_runToTagInfo",void 0),t([o({type:Boolean}),e("design:type",Boolean)],$Wt.prototype,"_dataNotFound",void 0),t([o({type:String}),e("design:type",String)],$Wt.prototype,"_tagFilter",void 0),t([o({type:Boolean}),e("design:type",Boolean)],$Wt.prototype,"_categoriesDomReady",void 0),t([o({type:Array}),e("design:type",Array)],$Wt.prototype,"_categories",void 0),t([o({type:Object}),e("design:type",Object)],$Wt.prototype,"_getCategoryItemKey",void 0),t([o({type:Object}),e("design:type",hr)],$Wt.prototype,"_requestManager",void 0),t([s("_smoothingWeight"),e("design:type",Boolean),e("design:paramtypes",[])],$Wt.prototype,"_smoothingEnabled",null),t([a("_runToTagInfo","_selectedRuns","_tagFilter","_categoriesDomReady"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],$Wt.prototype,"_updateCategories",null),$Wt=t([i("tf-scalar-dashboard")],$Wt);let KWt=class extends(tr(ye)){constructor(){super(...arguments),this._texts=[],this._canceller=new NO}get _runColor(){return AO(this.run)}_changeRunColor(){this.updateStyles({"--tb-text-loader-outline":this._runColor})}attached(){this.reload()}reload(){if(!this.isAttached)return;this._canceller.cancelAll();const t=VO(gr().pluginRoute("text","/text"),{tag:this.tag,run:this.run}),e=this._canceller.cancellable((t=>{if(t.cancelled)return;const e=t.value.map((t=>({wall_time:new Date(1e3*t.wall_time),step:t.step,text:t.text})));this.set("_texts",e.slice().reverse())}));this.requestManager.request(t).then(e)}_formatStep(t){return fy(",")(t)}};KWt.template=_e`
    <tf-card-heading run="[[run]]" tag="[[tag]]" color="[[_runColor]]">
    </tf-card-heading>
    <paper-material
      elevation="1"
      id="steps-container"
      class="container scrollbar"
    >
      <template is="dom-repeat" items="[[_texts]]">
        <paper-material elevation="1" class="step-container">
          step <span class="step-value">[[_formatStep(item.step)]]</span>
        </paper-material>
        <paper-material elevation="1" class="text">
          <tf-markdown-view html="[[item.text]]"></tf-markdown-view>
        </paper-material>
      </template>
    </paper-material>
    <style include="scrollbar-style"></style>
    <style>
      :host {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: auto;
        margin-right: 10px;
        margin-bottom: 15px;
      }
      .scrollbar {
        will-change: transform;
      }
      #steps-container {
        border-radius: 3px;
        border: 2px solid /* color computed and set as inline style */;
        display: block;
        max-height: 500px;
        overflow: auto;
        padding: 10px;
        border-color: var(--tb-text-loader-outline);
      }
      .text {
        background-color: inherit;
        border-radius: 0 3px 3px 3px;
        padding: 5px;
        word-break: break-word;
      }
      .step-container {
        background-color: var(--tb-ui-light-accent);
        border-bottom: none;
        border-radius: 3px 3px 0 0;
        border: 1px solid var(--tb-ui-border);
        display: inline-block;
        font-size: 12px;
        font-style: italic;
        margin-left: -1px; /* to correct for border */
        padding: 3px;
      }
      .step-container:not(:first-child) {
        margin-top: 15px;
      }

      tf-card-heading {
        margin-bottom: 10px;
      }
    </style>
  `,t([o({type:String}),e("design:type",String)],KWt.prototype,"run",void 0),t([o({type:String}),e("design:type",String)],KWt.prototype,"tag",void 0),t([o({type:Array}),e("design:type",Array)],KWt.prototype,"_texts",void 0),t([o({type:Object}),e("design:type",hr)],KWt.prototype,"requestManager",void 0),t([o({type:Object}),e("design:type",NO)],KWt.prototype,"_canceller",void 0),t([s("run"),e("design:type",String),e("design:paramtypes",[])],KWt.prototype,"_runColor",null),t([a("_runColor"),e("design:type",Function),e("design:paramtypes",[]),e("design:returntype",void 0)],KWt.prototype,"_changeRunColor",null),KWt=t([i("tf-text-loader")],KWt);let ZWt=class extends(tr(ye)){constructor(){super(...arguments),this.reloadOnReady=!0,this._requestManager=new hr}ready(){super.ready(),this.reloadOnReady&&this.reload()}reload(){this._fetchTags().then((()=>{this._reloadTexts()}))}_shouldOpen(t){return t<=2}_fetchTags(){const t=gr().pluginRoute("text","/tags");return this._requestManager.request(t).then((t=>{if(we.isEqual(t,this._runToTag))return;const e=or(t);this.set("_dataNotFound",0===e.length),this.set("_runToTag",t),this.async((()=>{this.set("_categoriesDomReady",!0)}))}))}_reloadTexts(){this.root.querySelectorAll("tf-text-loader").forEach((t=>{t.reload()}))}get _categories(){return Sr(this._runToTag,this._selectedRuns,this._tagFilter)}};ZWt.template=_e`
    <tf-dashboard-layout>
      <div class="sidebar" slot="sidebar">
        <div class="sidebar-section runs-selector">
          <tf-runs-selector selected-runs="{{_selectedRuns}}">
          </tf-runs-selector>
        </div>
      </div>
      <div class="center" slot="center">
        <template is="dom-if" if="[[_dataNotFound]]">
          <div class="no-data-warning">
            <h3>No text data was found.</h3>
            <p>Probable causes:</p>
            <ul>
              <li>You haven’t written any text data to your event files.</li>
              <li>TensorBoard can’t find your event files.</li>
            </ul>

            <p>
              If you’re new to using TensorBoard, and want to find out how to
              add data and set up your event files, check out the
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md"
                >README</a
              >
              and perhaps the
              <a
                href="https://www.tensorflow.org/get_started/summaries_and_tensorboard"
                >TensorBoard tutorial</a
              >.
            </p>

            <p>
              If you think TensorBoard is configured properly, please see
              <a
                href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
                >the section of the README devoted to missing data problems</a
              >
              and consider filing an issue on GitHub.
            </p>
          </div>
        </template>
        <template is="dom-if" if="[[!_dataNotFound]]">
          <tf-tag-filterer tag-filter="{{_tagFilter}}"></tf-tag-filterer>
          <template is="dom-repeat" items="[[_categories]]" as="category">
            <tf-category-paginated-view
              category="[[category]]"
              initial-opened="[[_shouldOpen(index)]]"
            >
              <template>
                <tf-text-loader
                  active="[[active]]"
                  tag="[[item.tag]]"
                  run="[[item.run]]"
                  request-manager="[[_requestManager]]"
                ></tf-text-loader>
              </template>
            </tf-category-paginated-view>
          </template>
        </template>
      </div>
    </tf-dashboard-layout>
    <style include="dashboard-style"></style>
    <style>
      .no-data-warning {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }
    </style>
  `,t([o({type:Boolean}),e("design:type",Boolean)],ZWt.prototype,"reloadOnReady",void 0),t([o({type:Array}),e("design:type",Array)],ZWt.prototype,"_selectedRuns",void 0),t([o({type:Object}),e("design:type",Object)],ZWt.prototype,"_runToTag",void 0),t([o({type:Boolean}),e("design:type",Boolean)],ZWt.prototype,"_dataNotFound",void 0),t([o({type:String}),e("design:type",String)],ZWt.prototype,"_tagFilter",void 0),t([o({type:Boolean}),e("design:type",Boolean)],ZWt.prototype,"_categoriesDomReady",void 0),t([o({type:Object}),e("design:type",Object)],ZWt.prototype,"_requestManager",void 0),t([s("_runToTag","_selectedRuns","_tagFilter","_categoriesDomReady"),e("design:type",Array),e("design:paramtypes",[])],ZWt.prototype,"_categories",null),ZWt=t([i("tf-text-dashboard")],ZWt);let JWt=class extends ye{constructor(){super(...arguments),this._template=null,this.tf_backend=ayt}};JWt=t([i("tf-backend")],JWt);let QWt=class extends ye{constructor(){super(...arguments),this._template=null,this.tf_globals=Ms}};QWt=t([i("tf-globals")],QWt);let tqt=class extends ye{constructor(){super(...arguments),this._template=null,this.tf_storage=gyt}};tqt=t([i("tf-storage")],tqt);var eqt=Object.freeze({__proto__:null,addLimitListener:sl,removeLimitListener:ll,getLimit:cl,setLimit:function nqt(t){if(t!==Math.floor(t))throw new Error(`limit must be an integer, but got: ${t}`);if(t<=0)throw new Error(`limit must be positive, but got: ${t}`);t!==ol&&(ol=t,Us(rl,ol,{useLocalStorage:!0}),al.forEach((t=>{t()})))},TfDomRepeat:hl});let iqt=class extends ye{constructor(){super(...arguments),this._template=null,this.tf_paginated_view=eqt}};iqt=t([i("tf-paginated-view-store")],iqt);let rqt=class extends ye{constructor(){super(...arguments),this._template=null,this.runsColorScale=AO}};rqt=t([i("tf-color-scale")],rqt)})();

!(function(){function t(t){return"function"==typeof t}let e=!1;const n={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+t.stack)}else e&&console.log("RxJS: Back to a better error behavior. Thank you. <3");e=t},get useDeprecatedSynchronousErrorHandling(){return e}};function o(t){setTimeout((()=>{throw t}),0)}const i={closed:!0,next(t){},error(t){if(n.useDeprecatedSynchronousErrorHandling)throw t;o(t)},complete(){}},a=Array.isArray||(t=>t&&"number"==typeof t.length);function r(t){return null!==t&&"object"==typeof t}const s=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map(((t,e)=>`${e+1}) ${t.toString()}`)).join("\n  ")}`:"",this.name="UnsubscriptionError",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();class l{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof l)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(t(o))try{o.call(this)}catch(t){e=t instanceof s?c(t.errors):[t]}if(a(i)){let t=-1,n=i.length;for(;++t<n;){const n=i[t];if(r(n))try{n.unsubscribe()}catch(t){e=e||[],t instanceof s?e=e.concat(c(t.errors)):e.push(t)}}}if(e)throw new s(e)}add(t){let e=t;if(!t)return l.EMPTY;switch(typeof t){case"function":e=new l(t);case"object":if(e===this||e.closed||"function"!=typeof e.unsubscribe)return e;if(this.closed)return e.unsubscribe(),e;if(!(e instanceof l)){const t=e;e=new l,e._subscriptions=[t]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}let{_parentOrParents:n}=e;if(null===n)e._parentOrParents=this;else if(n instanceof l){if(n===this)return e;e._parentOrParents=[n,this]}else{if(-1!==n.indexOf(this))return e;n.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[e]:o.push(e),e}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}function c(t){return t.reduce(((t,e)=>t.concat(e instanceof s?e.errors:e)),[])}l.EMPTY=(function(t){return t.closed=!0,t})(new l);const d="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class p extends l{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=i;break;case 1:if(!t){this.destination=i;break}if("object"==typeof t){t instanceof p?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new m(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new m(this,t,e,n)}}[d](){return this}static create(t,e,n){const o=new p(t,e,n);return o.syncErrorThrowable=!1,o}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class m extends p{constructor(e,n,o,a){let r;super(),this._parentSubscriber=e;let s=this;t(n)?r=n:n&&(r=n.next,o=n.error,a=n.complete,n!==i&&(s=Object.create(n),t(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this))),this._context=s,this._next=r,this._error=o,this._complete=a}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;n.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:i}=n;if(this._error)i&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)i?(e.syncErrorValue=t,e.syncErrorThrown=!0):o(t),this.unsubscribe();else{if(this.unsubscribe(),i)throw t;o(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);n.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(t){if(this.unsubscribe(),n.useDeprecatedSynchronousErrorHandling)throw t;o(t)}}__tryOrSetError(t,e,i){if(!n.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,i)}catch(e){return n.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=e,t.syncErrorThrown=!0,!0):(o(e),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const u="function"==typeof Symbol&&Symbol.observable||"@@observable";function f(t){return t}function g(t){return this instanceof g?(this.v=t,this):new g(t)}function h(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=n.apply(t,e||[]),a=[];return o={},r("next"),r("throw"),r("return"),o[Symbol.asyncIterator]=function(){return this},o;function r(t){i[t]&&(o[t]=function(e){return new Promise((function(n,o){a.push([t,e,n,o])>1||s(t,e)}))})}function s(t,e){try{!(function n(t){t.value instanceof g?Promise.resolve(t.value.v).then(l,c):d(a[0][2],t)})(i[t](e))}catch(t){d(a[0][3],t)}}function l(t){s("next",t)}function c(t){s("throw",t)}function d(t,e){t(e),a.shift(),a.length&&s(a[0][0],a[0][1])}}class b{constructor(){this.resolve=null,this.reject=null,this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}class y{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(t){const e=new y;return e.source=this,e.operator=t,e}subscribe(t,e,o){const{operator:a}=this,r=(function s(t,e,n){if(t){if(t instanceof p)return t;if(t[d])return t[d]()}return t||e||n?new p(t,e,n):new p(i)})(t,e,o);if(r.add(a?a.call(r,this.source):this.source||n.useDeprecatedSynchronousErrorHandling&&!r.syncErrorThrowable?this._subscribe(r):this._trySubscribe(r)),n.useDeprecatedSynchronousErrorHandling&&r.syncErrorThrowable&&(r.syncErrorThrowable=!1,r.syncErrorThrown))throw r.syncErrorValue;return r}_trySubscribe(t){try{return this._subscribe(t)}catch(e){n.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),(function e(t){for(;t;){const{closed:e,destination:n,isStopped:o}=t;if(e||o)return!1;t=n&&n instanceof p?n:null}return!0})(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=_(e))(((e,n)=>{let o;o=this.subscribe((e=>{try{t(e)}catch(t){n(t),o&&o.unsubscribe()}}),n,e)}))}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[u](){return this}pipe(...t){return 0===t.length?this:(function e(t){return 0===t.length?f:1===t.length?t[0]:function e(n){return t.reduce(((t,e)=>e(t)),n)}}
/*! *****************************************************************************
    Copyright (c) Microsoft Corporation.

    Permission to use, copy, modify, and/or distribute this software for any
    purpose with or without fee is hereby granted.

    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.
    ***************************************************************************** */)(t)(this)}toPromise(t){return new(t=_(t))(((t,e)=>{let n;this.subscribe((t=>n=t),(t=>e(t)),(()=>t(n)))}))}}function _(t){if(t||(t=Promise),!t)throw new Error("no Promise impl found");return t}y.create=t=>new y(t),Symbol&&Symbol.asyncIterator&&(y.prototype[Symbol.asyncIterator]=function(){return(function t(e){return(function n(t){return h(this,arguments,(function*e(){const n=[],o=[];let i=!1,a=null,r=!1;const s=t.subscribe({next:t=>{n.length>0?n.shift().resolve({value:t,done:!1}):o.push(t)},error:t=>{for(i=!0,a=t;n.length>0;)n.shift().reject(t)},complete:()=>{for(r=!0;n.length>0;)n.shift().resolve({value:void 0,done:!0})}});try{for(;;)if(o.length>0)yield yield g(o.shift());else{if(r)return yield g(void 0);if(i)throw a;{const t=new b;n.push(t);const e=yield g(t.promise);if(e.done)return yield g(void 0);yield yield g(e.value)}}}catch(t){throw t}finally{s.unsubscribe()}}))})(e)})(this)});const C=(()=>{function t(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return t.prototype=Object.create(Error.prototype),t})();class M extends l{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}class v extends p{constructor(t){super(t),this.destination=t}}class x extends y{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[d](){return new v(this)}lift(t){const e=new O(this,this);return e.operator=t,e}next(t){if(this.closed)throw new C;if(!this.isStopped){const{observers:e}=this,n=e.length,o=e.slice();for(let e=0;e<n;e++)o[e].next(t)}}error(t){if(this.closed)throw new C;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,o=e.slice();for(let e=0;e<n;e++)o[e].error(t);this.observers.length=0}complete(){if(this.closed)throw new C;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let t=0;t<e;t++)n[t].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new C;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new C;return this.hasError?(t.error(this.thrownError),l.EMPTY):this.isStopped?(t.complete(),l.EMPTY):(this.observers.push(t),new M(this,t))}asObservable(){const t=new y;return t.source=this,t}}x.create=(t,e)=>new O(t,e);class O extends x{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):l.EMPTY}}function P(){return function t(e){return e.lift(new w(e))}}class w{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const o=new k(t,n),i=e.subscribe(o);return o.closed||(o.connection=n.connect()),i}}class k extends p{constructor(t,e){super(t),this.connectable=e,this.connection=null}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:n}=this,o=t._connection;this.connection=null,!o||n&&o!==n||o.unsubscribe()}}class S extends y{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new l,t.add(this.source.subscribe(new E(this.getSubject(),this))),t.closed&&(this._connection=null,t=l.EMPTY)),t}refCount(){return P()(this)}}const D=(()=>{const t=S.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class E extends v{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}function A(t,e,n,o){return i=>i.lift(new R(t,e,n,o))}class R{constructor(t,e,n,o){this.keySelector=t,this.elementSelector=e,this.durationSelector=n,this.subjectSelector=o}call(t,e){return e.subscribe(new T(t,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))}}class T extends p{constructor(t,e,n,o,i){super(t),this.keySelector=e,this.elementSelector=n,this.durationSelector=o,this.subjectSelector=i,this.groups=null,this.attemptedToUnsubscribe=!1,this.count=0}_next(t){let e;try{e=this.keySelector(t)}catch(t){return void this.error(t)}this._group(t,e)}_group(t,e){let n=this.groups;n||(n=this.groups=new Map);let o,i=n.get(e);if(this.elementSelector)try{o=this.elementSelector(t)}catch(t){this.error(t)}else o=t;if(!i){i=this.subjectSelector?this.subjectSelector():new x,n.set(e,i);const t=new I(e,i,this);if(this.destination.next(t),this.durationSelector){let t;try{t=this.durationSelector(new I(e,i))}catch(t){return void this.error(t)}this.add(t.subscribe(new N(e,i,this)))}}i.closed||i.next(o)}_error(t){const e=this.groups;e&&(e.forEach(((e,n)=>{e.error(t)})),e.clear()),this.destination.error(t)}_complete(){const t=this.groups;t&&(t.forEach(((t,e)=>{t.complete()})),t.clear()),this.destination.complete()}removeGroup(t){this.groups.delete(t)}unsubscribe(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&super.unsubscribe())}}class N extends p{constructor(t,e,n){super(e),this.key=t,this.group=e,this.parent=n}_next(t){this.complete()}_unsubscribe(){const{parent:t,key:e}=this;this.key=this.parent=null,t&&t.removeGroup(e)}}class I extends y{constructor(t,e,n){super(),this.key=t,this.groupSubject=e,this.refCountSubscription=n}_subscribe(t){const e=new l,{refCountSubscription:n,groupSubject:o}=this;return n&&!n.closed&&e.add(new z(n)),e.add(o.subscribe(t)),e}}class z extends l{constructor(t){super(),this.parent=t,t.count++}unsubscribe(){const t=this.parent;t.closed||this.closed||(super.unsubscribe(),t.count-=1,0===t.count&&t.attemptedToUnsubscribe&&t.unsubscribe())}}class H extends x{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return e&&!e.closed&&t.next(this._value),e}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new C;return this._value}next(t){super.next(this._value=t)}}class F extends l{constructor(t,e){super()}schedule(t,e=0){return this}}class L extends F{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){if(this.closed)return this;this.state=t;const n=this.id,o=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(o,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(o,this.id,e),this}requestAsyncId(t,e,n=0){return setInterval(t.flush.bind(t,this),n)}recycleAsyncId(t,e,n=0){if(null!==n&&this.delay===n&&!1===this.pending)return e;clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let n,o=!1;try{this.work(t)}catch(t){o=!0,n=!!t&&t||new Error(t)}if(o)return this.unsubscribe(),n}_unsubscribe(){const t=this.id,e=this.scheduler,n=e.actions,o=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==o&&n.splice(o,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null}}class B{constructor(t,e=B.now){this.SchedulerAction=t,this.now=e}schedule(t,e=0,n){return new this.SchedulerAction(this,t).schedule(n,e)}}B.now=()=>Date.now();class V extends B{constructor(t,e=B.now){super(t,(()=>V.delegate&&V.delegate!==this?V.delegate.now():e())),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(t,e=0,n){return V.delegate&&V.delegate!==this?V.delegate.schedule(t,e,n):super.schedule(t,e,n)}flush(t){const{actions:e}=this;if(this.active)return void e.push(t);let n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}}const j=new class extends V{}(class extends L{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}schedule(t,e=0){return e>0?super.schedule(t,e):(this.delay=e,this.state=t,this.scheduler.flush(this),this)}execute(t,e){return e>0||this.closed?super.execute(t,e):this._execute(t,e)}requestAsyncId(t,e,n=0){return null!==n&&n>0||null===n&&this.delay>0?super.requestAsyncId(t,e,n):t.flush(this)}}),U=new y((t=>t.complete()));function W(t){return t&&"function"==typeof t.schedule}const G=t=>e=>{for(let n=0,o=t.length;n<o&&!e.closed;n++)e.next(t[n]);e.complete()};function Y(t,e){return new y((n=>{const o=new l;let i=0;return o.add(e.schedule((function(){i!==t.length?(n.next(t[i++]),n.closed||o.add(this.schedule())):n.complete()}))),o}))}function q(t,e){return e?Y(t,e):new y(G(t))}function Z(...t){let e=t[t.length-1];return W(e)?(t.pop(),Y(t,e)):q(t)}function X(t,e){return new y(e?n=>e.schedule(K,0,{error:t,subscriber:n}):e=>e.error(t))}function K({error:t,subscriber:e}){e.error(t)}var J;!(function(t){t.NEXT="N",t.ERROR="E",t.COMPLETE="C"})(J||(J={}));class Q{constructor(t,e,n){this.kind=t,this.value=e,this.error=n,this.hasValue="N"===t}observe(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}}do(t,e,n){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return n&&n()}}accept(t,e,n){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,n)}toObservable(){switch(this.kind){case"N":return Z(this.value);case"E":return X(this.error);case"C":return U}throw new Error("unexpected notification kind value")}static createNext(t){return void 0!==t?new Q("N",t):Q.undefinedValueNotification}static createError(t){return new Q("E",void 0,t)}static createComplete(){return Q.completeNotification}}Q.completeNotification=new Q("C"),Q.undefinedValueNotification=new Q("N",void 0);class ${constructor(t,e=0){this.scheduler=t,this.delay=e}call(t,e){return e.subscribe(new tt(t,this.scheduler,this.delay))}}class tt extends p{constructor(t,e,n=0){super(t),this.scheduler=e,this.delay=n}static dispatch(t){const{notification:e,destination:n}=t;e.observe(n),this.unsubscribe()}scheduleMessage(t){this.destination.add(this.scheduler.schedule(tt.dispatch,this.delay,new et(t,this.destination)))}_next(t){this.scheduleMessage(Q.createNext(t))}_error(t){this.scheduleMessage(Q.createError(t)),this.unsubscribe()}_complete(){this.scheduleMessage(Q.createComplete()),this.unsubscribe()}}class et{constructor(t,e){this.notification=t,this.destination=e}}class nt extends x{constructor(t=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,n){super(),this.scheduler=n,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=t<1?1:t,this._windowTime=e<1?1:e,e===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(t){const e=this._events;e.push(t),e.length>this._bufferSize&&e.shift(),super.next(t)}nextTimeWindow(t){this._events.push(new ot(this._getNow(),t)),this._trimBufferThenGetEvents(),super.next(t)}_subscribe(t){const e=this._infiniteTimeWindow,n=e?this._events:this._trimBufferThenGetEvents(),o=this.scheduler,i=n.length;let a;if(this.closed)throw new C;if(this.isStopped||this.hasError?a=l.EMPTY:(this.observers.push(t),a=new M(this,t)),o&&t.add(t=new tt(t,o)),e)for(let e=0;e<i&&!t.closed;e++)t.next(n[e]);else for(let e=0;e<i&&!t.closed;e++)t.next(n[e].value);return this.hasError?t.error(this.thrownError):this.isStopped&&t.complete(),a}_getNow(){return(this.scheduler||j).now()}_trimBufferThenGetEvents(){const t=this._getNow(),e=this._bufferSize,n=this._windowTime,o=this._events,i=o.length;let a=0;for(;a<i&&!(t-o[a].time<n);)a++;return i>e&&(a=Math.max(a,i-e)),a>0&&o.splice(0,a),o}}class ot{constructor(t,e){this.time=t,this.value=e}}let it,at=1;const rt={};function st(t){return t in rt&&(delete rt[t],!0)}const lt={setImmediate(t){const e=at++;return rt[e]=!0,it||(it=Promise.resolve()),it.then((()=>st(e)&&t())),e},clearImmediate(t){st(t)}},ct=new class extends V{flush(t){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let n,o=-1,i=e.length;t=t||e.shift();do{if(n=t.execute(t.state,t.delay))break}while(++o<i&&(t=e.shift()));if(this.active=!1,n){for(;++o<i&&(t=e.shift());)t.unsubscribe();throw n}}}(class extends L{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,n=0){return null!==n&&n>0?super.requestAsyncId(t,e,n):(t.actions.push(this),t.scheduled||(t.scheduled=lt.setImmediate(t.flush.bind(t,void 0))))}recycleAsyncId(t,e,n=0){if(null!==n&&n>0||null===n&&this.delay>0)return super.recycleAsyncId(t,e,n);0===t.actions.length&&(lt.clearImmediate(e),t.scheduled=void 0)}}),dt=new V(L),pt=new class extends V{flush(t){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let n,o=-1,i=e.length;t=t||e.shift();do{if(n=t.execute(t.state,t.delay))break}while(++o<i&&(t=e.shift()));if(this.active=!1,n){for(;++o<i&&(t=e.shift());)t.unsubscribe();throw n}}}(class extends L{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,n=0){return null!==n&&n>0?super.requestAsyncId(t,e,n):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame((()=>t.flush(void 0)))))}recycleAsyncId(t,e,n=0){if(null!==n&&n>0||null===n&&this.delay>0)return super.recycleAsyncId(t,e,n);0===t.actions.length&&(cancelAnimationFrame(e),t.scheduled=void 0)}});function mt(){}function ut(t){return!!t&&(t instanceof y||"function"==typeof t.lift&&"function"==typeof t.subscribe)}const ft=(()=>{function t(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return t.prototype=Object.create(Error.prototype),t})(),gt=(()=>{function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t})();function ht(t,e){return function n(o){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return o.lift(new bt(t,e))}}class bt{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new yt(t,this.project,this.thisArg))}}class yt extends p{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}this.destination.next(e)}}class _t extends p{notifyNext(t,e,n,o,i){this.destination.next(e)}notifyError(t,e){this.destination.error(t)}notifyComplete(t){this.destination.complete()}}class Ct extends p{constructor(t,e,n){super(),this.parent=t,this.outerValue=e,this.outerIndex=n,this.index=0}_next(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)}_error(t){this.parent.notifyError(t,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}const Mt=(function vt(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"})(),xt=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function Ot(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}function Pt(t){return e=>{(function n(t,e){var n,o,i,a;return(function r(t,e,n,o){return new(n||(n=Promise))((function(i,a){function r(t){try{l(o.next(t))}catch(t){a(t)}}function s(t){try{l(o.throw(t))}catch(t){a(t)}}function l(t){t.done?i(t.value):(function e(t){return t instanceof n?t:new n((function(e){e(t)}))})(t.value).then(r,s)}l((o=o.apply(t,e||[])).next())}))})(this,void 0,void 0,(function*(){try{for(n=(function r(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=(function o(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")})(t),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(n){e[n]=t[n]&&function(e){return new Promise((function(o,i){!(function a(t,e,n,o){Promise.resolve(o).then((function(e){t({value:e,done:n})}),e)})(o,i,(e=t[n](e)).done,e.value)}))}}})(t);!(o=yield n.next()).done;)e.next(o.value)}catch(t){i={error:t}}finally{try{o&&!o.done&&(a=n.return)&&(yield a.call(n))}finally{if(i)throw i.error}}e.complete()}))})(t,e).catch((t=>e.error(t)))}}const wt=t=>{if(t&&"function"==typeof t[u])return n=t,t=>{const e=n[u]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(t)};if(xt(t))return G(t);if(Ot(t))return(t=>e=>(t.then((t=>{e.closed||(e.next(t),e.complete())}),(t=>e.error(t))).then(null,o),e))(t);if(t&&"function"==typeof t[Mt])return e=t,t=>{const n=e[Mt]();for(;;){const e=n.next();if(e.done){t.complete();break}if(t.next(e.value),t.closed)break}return"function"==typeof n.return&&t.add((()=>{n.return&&n.return()})),t};if(Symbol&&Symbol.asyncIterator&&t&&"function"==typeof t[Symbol.asyncIterator])return Pt(t);{const e=r(t)?"an invalid object":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}var e,n};function kt(t,e,n,o,i=new Ct(t,n,o)){if(!i.closed)return e instanceof y?e.subscribe(i):wt(e)(i)}const St={};function Dt(...t){let e,n;return W(t[t.length-1])&&(n=t.pop()),"function"==typeof t[t.length-1]&&(e=t.pop()),1===t.length&&a(t[0])&&(t=t[0]),q(t,n).lift(new Et(e))}class Et{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new At(t,this.resultSelector))}}class At extends _t{constructor(t,e){super(t),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(t){this.values.push(St),this.observables.push(t)}_complete(){const t=this.observables,e=t.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(let n=0;n<e;n++){const e=t[n];this.add(kt(this,e,e,n))}}}notifyComplete(t){0==(this.active-=1)&&this.destination.complete()}notifyNext(t,e,n,o,i){const a=this.values,r=this.toRespond?a[n]===St?--this.toRespond:this.toRespond:0;a[n]=e,0===r&&(this.resultSelector?this._tryResultSelector(a):this.destination.next(a.slice()))}_tryResultSelector(t){let e;try{e=this.resultSelector.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)}}function Rt(t,e){return e?(function n(t,e){if(null!=t){if((function n(t){return t&&"function"==typeof t[u]})(t))return(function o(t,e){return new y((n=>{const o=new l;return o.add(e.schedule((()=>{const i=t[u]();o.add(i.subscribe({next(t){o.add(e.schedule((()=>n.next(t))))},error(t){o.add(e.schedule((()=>n.error(t))))},complete(){o.add(e.schedule((()=>n.complete())))}}))}))),o}))})(t,e);if(Ot(t))return(function i(t,e){return new y((n=>{const o=new l;return o.add(e.schedule((()=>t.then((t=>{o.add(e.schedule((()=>{n.next(t),o.add(e.schedule((()=>n.complete())))})))}),(t=>{o.add(e.schedule((()=>n.error(t))))}))))),o}))})(t,e);if(xt(t))return Y(t,e);if((function a(t){return t&&"function"==typeof t[Mt]})(t)||"string"==typeof t)return(function r(t,e){if(!t)throw new Error("Iterable cannot be null");return new y((n=>{const o=new l;let i;return o.add((()=>{i&&"function"==typeof i.return&&i.return()})),o.add(e.schedule((()=>{i=t[Mt](),o.add(e.schedule((function(){if(n.closed)return;let t,e;try{const n=i.next();t=n.value,e=n.done}catch(t){return void n.error(t)}e?n.complete():(n.next(t),this.schedule())})))}))),o}))})(t,e);if(Symbol&&Symbol.asyncIterator&&"function"==typeof t[Symbol.asyncIterator])return(function s(t,e){if(!t)throw new Error("Iterable cannot be null");return new y((n=>{const o=new l;return o.add(e.schedule((()=>{const i=t[Symbol.asyncIterator]();o.add(e.schedule((function(){i.next().then((t=>{t.done?n.complete():(n.next(t.value),this.schedule())}))})))}))),o}))})(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")})(t,e):t instanceof y?t:new y(wt(t))}function Tt(t,e,n=Number.POSITIVE_INFINITY){return"function"==typeof e?o=>o.pipe(Tt(((n,o)=>Rt(t(n,o)).pipe(ht(((t,i)=>e(n,t,o,i))))),n)):("number"==typeof e&&(n=e),e=>e.lift(new Nt(t,n)))}class Nt{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new It(t,this.project,this.concurrent))}}class It extends _t{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(t){return void this.destination.error(t)}this.active++,this._innerSub(e,t,n)}_innerSub(t,e,n){const o=new Ct(this,e,n),i=this.destination;i.add(o);const a=kt(this,t,void 0,void 0,o);a!==o&&i.add(a)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t,e,n,o,i){this.destination.next(e)}notifyComplete(t){const e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function zt(t=Number.POSITIVE_INFINITY){return Tt(f,t)}function Ht(...t){return(function e(){return zt(1)})()(Z(...t))}function Ft(t){return new y((e=>{let n;try{n=t()}catch(t){return void e.error(t)}return(n?Rt(n):U).subscribe(e)}))}function Lt(...t){if(1===t.length){const e=t[0];if(a(e))return Bt(e,null);if(r(e)&&Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);return Bt(t.map((t=>e[t])),t)}}if("function"==typeof t[t.length-1]){const e=t.pop();return Bt(t=1===t.length&&a(t[0])?t[0]:t,null).pipe(ht((t=>e(...t))))}return Bt(t,null)}function Bt(t,e){return new y((n=>{const o=t.length;if(0===o)return void n.complete();const i=new Array(o);let a=0,r=0;for(let s=0;s<o;s++){const l=Rt(t[s]);let c=!1;n.add(l.subscribe({next:t=>{c||(c=!0,r++),i[s]=t},error:t=>n.error(t),complete:()=>{a++,a!==o&&c||(r===o&&n.next(e?e.reduce(((t,e,n)=>(t[e]=i[n],t)),{}):i),n.complete())}}))}}))}function Vt(e,n,o,i){return t(o)&&(i=o,o=void 0),i?Vt(e,n,o).pipe(ht((t=>a(t)?i(...t):i(t)))):new y((t=>{jt(e,n,(function i(e){t.next(arguments.length>1?Array.prototype.slice.call(arguments):e)}),t,o)}))}function jt(t,e,n,o,i){let a;if((function r(t){return t&&"function"==typeof t.addEventListener&&"function"==typeof t.removeEventListener})(t)){const o=t;t.addEventListener(e,n,i),a=()=>o.removeEventListener(e,n,i)}else if((function s(t){return t&&"function"==typeof t.on&&"function"==typeof t.off})(t)){const o=t;t.on(e,n),a=()=>o.off(e,n)}else if((function l(t){return t&&"function"==typeof t.addListener&&"function"==typeof t.removeListener})(t)){const o=t;t.addListener(e,n),a=()=>o.removeListener(e,n)}else{if(!t||!t.length)throw new TypeError("Invalid event target");for(let a=0,r=t.length;a<r;a++)jt(t[a],e,n,o,i)}o.add(a)}function Ut(t){return!a(t)&&t-parseFloat(t)+1>=0}function Wt(...t){let e,n=Number.POSITIVE_INFINITY,o=t[t.length-1];return W(o)?(e=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof o&&(n=t.pop()),!e&&1===t.length&&t[0]instanceof y?t[0]:zt(n)(q(t,e))}function Gt(t,e){return function n(o){return o.lift(new Yt(t,e))}}class Yt{constructor(t,e){this.predicate=t,this.thisArg=e}call(t,e){return e.subscribe(new qt(t,this.predicate,this.thisArg))}}class qt extends p{constructor(t,e,n){super(t),this.predicate=e,this.thisArg=n,this.count=0}_next(t){let e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}e&&this.destination.next(t)}}function Zt(t=0,e,n){let o=-1;return Ut(e)?o=Number(e)<1?1:Number(e):W(e)&&(n=e),W(n)||(n=dt),new y((e=>{const i=Ut(t)?t:+t-n.now();return n.schedule(Xt,i,{index:0,period:o,subscriber:e})}))}function Xt(t){const{index:e,period:n,subscriber:o}=t;if(o.next(e),!o.closed){if(-1===n)return o.complete();t.index=e+1,this.schedule(t,n)}}class Kt{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new Jt(t,this.resultSelector))}}class Jt extends p{constructor(t,e,n=Object.create(null)){super(t),this.iterators=[],this.active=0,this.resultSelector=e,this.values=n}_next(t){const e=this.iterators;a(t)?e.push(new $t(t)):e.push("function"==typeof t[Mt]?new Qt(t[Mt]()):new te(this.destination,this,t))}_complete(){const t=this.iterators,e=t.length;if(this.unsubscribe(),0!==e){this.active=e;for(let n=0;n<e;n++){let e=t[n];e.stillUnsubscribed?this.destination.add(e.subscribe(e,n)):this.active--}}else this.destination.complete()}notifyInactive(){this.active--,0===this.active&&this.destination.complete()}checkIterators(){const t=this.iterators,e=t.length,n=this.destination;for(let n=0;n<e;n++){let e=t[n];if("function"==typeof e.hasValue&&!e.hasValue())return}let o=!1;const i=[];for(let a=0;a<e;a++){let e=t[a],r=e.next();if(e.hasCompleted()&&(o=!0),r.done)return void n.complete();i.push(r.value)}this.resultSelector?this._tryresultSelector(i):n.next(i),o&&n.complete()}_tryresultSelector(t){let e;try{e=this.resultSelector.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)}}class Qt{constructor(t){this.iterator=t,this.nextResult=t.next()}hasValue(){return!0}next(){const t=this.nextResult;return this.nextResult=this.iterator.next(),t}hasCompleted(){const t=this.nextResult;return t&&!!t.done}}class $t{constructor(t){this.array=t,this.index=0,this.length=0,this.length=t.length}[Mt](){return this}next(t){const e=this.index++;return e<this.length?{value:this.array[e],done:!1}:{value:null,done:!0}}hasValue(){return this.array.length>this.index}hasCompleted(){return this.array.length===this.index}}class te extends _t{constructor(t,e,n){super(t),this.parent=e,this.observable=n,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}[Mt](){return this}next(){const t=this.buffer;return 0===t.length&&this.isComplete?{value:null,done:!0}:{value:t.shift(),done:!1}}hasValue(){return this.buffer.length>0}hasCompleted(){return 0===this.buffer.length&&this.isComplete}notifyComplete(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()}notifyNext(t,e,n,o,i){this.buffer.push(e),this.parent.checkIterators()}subscribe(t,e){return kt(this,this.observable,this,e)}}class ee{constructor(t){this.durationSelector=t}call(t,e){return e.subscribe(new ne(t,this.durationSelector))}}class ne extends _t{constructor(t,e){super(t),this.durationSelector=e,this.value=null,this.hasValue=!1,this.throttled=null}_next(t){if(this.value=t,this.hasValue=!0,!this.throttled){let e;try{const{durationSelector:n}=this;e=n(t)}catch(t){return this.destination.error(t)}const n=kt(this,e);!n||n.closed?this.clearThrottle():this.add(this.throttled=n)}}clearThrottle(){const{value:t,hasValue:e,throttled:n}=this;n&&(this.remove(n),this.throttled=null,n.unsubscribe()),e&&(this.value=null,this.hasValue=!1,this.destination.next(t))}notifyNext(t,e,n,o){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}function oe(t,e=dt){return(function n(t){return function e(n){return n.lift(new ee(t))}})((()=>Zt(t,e)))}class ie{constructor(t){this.closingNotifier=t}call(t,e){return e.subscribe(new ae(t,this.closingNotifier))}}class ae extends _t{constructor(t,e){super(t),this.buffer=[],this.add(kt(this,e))}_next(t){this.buffer.push(t)}notifyNext(t,e,n,o,i){const a=this.buffer;this.buffer=[],this.destination.next(a)}}function re(t){return function e(n){const o=new se(t),i=n.lift(o);return o.caught=i}}class se{constructor(t){this.selector=t}call(t,e){return e.subscribe(new le(t,this.selector,this.caught))}}class le extends _t{constructor(t,e,n){super(t),this.selector=e,this.caught=n}error(t){if(!this.isStopped){let e;try{e=this.selector(t,this.caught)}catch(t){return void super.error(t)}this._unsubscribeAndRecycle();const n=new Ct(this,void 0,void 0);this.add(n);const o=kt(this,e,void 0,void 0,n);o!==n&&this.add(o)}}}function ce(...t){return(function e(...t){let e;return"function"==typeof t[t.length-1]&&(e=t.pop()),1===t.length&&a(t[0])&&(t=t[0].slice()),n=>n.lift.call(Rt([n,...t]),new Et(e))})(...t)}function de(t,e=dt){return n=>n.lift(new pe(t,e))}class pe{constructor(t,e){this.dueTime=t,this.scheduler=e}call(t,e){return e.subscribe(new me(t,this.dueTime,this.scheduler))}}class me extends p{constructor(t,e,n){super(t),this.dueTime=e,this.scheduler=n,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}_next(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(ue,this.dueTime,this))}_complete(){this.debouncedNext(),this.destination.complete()}debouncedNext(){if(this.clearDebounce(),this.hasValue){const{lastValue:t}=this;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}}clearDebounce(){const t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)}}function ue(t){t.debouncedNext()}function fe(t=null){return e=>e.lift(new ge(t))}class ge{constructor(t){this.defaultValue=t}call(t,e){return e.subscribe(new he(t,this.defaultValue))}}class he extends p{constructor(t,e){super(t),this.defaultValue=e,this.isEmpty=!0}_next(t){this.isEmpty=!1,this.destination.next(t)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}function be(t,e=dt){const n=(function o(t){return t instanceof Date&&!isNaN(+t)})(t)?+t-e.now():Math.abs(t);return t=>t.lift(new ye(n,e))}class ye{constructor(t,e){this.delay=t,this.scheduler=e}call(t,e){return e.subscribe(new _e(t,this.delay,this.scheduler))}}class _e extends p{constructor(t,e,n){super(t),this.delay=e,this.scheduler=n,this.queue=[],this.active=!1,this.errored=!1}static dispatch(t){const e=t.source,n=e.queue,o=t.scheduler,i=t.destination;for(;n.length>0&&n[0].time-o.now()<=0;)n.shift().notification.observe(i);if(n.length>0){const e=Math.max(0,n[0].time-o.now());this.schedule(t,e)}else e.isStopped?(e.destination.complete(),e.active=!1):(this.unsubscribe(),e.active=!1)}_schedule(t){this.active=!0,this.destination.add(t.schedule(_e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))}scheduleNotification(t){if(!0===this.errored)return;const e=this.scheduler,n=new Ce(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}_next(t){this.scheduleNotification(Q.createNext(t))}_error(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()}_complete(){0===this.queue.length&&this.destination.complete(),this.unsubscribe()}}class Ce{constructor(t,e){this.time=t,this.notification=e}}class Me{constructor(t){this.delayDurationSelector=t}call(t,e){return e.subscribe(new ve(t,this.delayDurationSelector))}}class ve extends _t{constructor(t,e){super(t),this.delayDurationSelector=e,this.completed=!1,this.delayNotifierSubscriptions=[],this.index=0}notifyNext(t,e,n,o,i){this.destination.next(t),this.removeSubscription(i),this.tryComplete()}notifyError(t,e){this._error(t)}notifyComplete(t){const e=this.removeSubscription(t);e&&this.destination.next(e),this.tryComplete()}_next(t){const e=this.index++;try{const n=this.delayDurationSelector(t,e);n&&this.tryDelay(n,t)}catch(t){this.destination.error(t)}}_complete(){this.completed=!0,this.tryComplete(),this.unsubscribe()}removeSubscription(t){t.unsubscribe();const e=this.delayNotifierSubscriptions.indexOf(t);return-1!==e&&this.delayNotifierSubscriptions.splice(e,1),t.outerValue}tryDelay(t,e){const n=kt(this,t,e);n&&!n.closed&&(this.destination.add(n),this.delayNotifierSubscriptions.push(n))}tryComplete(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()}}class xe extends y{constructor(t,e){super(),this.source=t,this.subscriptionDelay=e}_subscribe(t){this.subscriptionDelay.subscribe(new Oe(t,this.source))}}class Oe extends p{constructor(t,e){super(),this.parent=t,this.source=e,this.sourceSubscribed=!1}_next(t){this.subscribeToSource()}_error(t){this.unsubscribe(),this.parent.error(t)}_complete(){this.unsubscribe(),this.subscribeToSource()}subscribeToSource(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))}}class Pe{call(t,e){return e.subscribe(new we(t))}}class we extends p{constructor(t){super(t)}_next(t){t.observe(this.destination)}}function ke(t,e){return n=>n.lift(new Se(t,e))}class Se{constructor(t,e){this.compare=t,this.keySelector=e}call(t,e){return e.subscribe(new De(t,this.compare,this.keySelector))}}class De extends p{constructor(t,e,n){super(t),this.keySelector=n,this.hasKey=!1,"function"==typeof e&&(this.compare=e)}compare(t,e){return t===e}_next(t){let e;try{const{keySelector:n}=this;e=n?n(t):t}catch(t){return this.destination.error(t)}let n=!1;if(this.hasKey)try{const{compare:t}=this;n=t(this.key,e)}catch(t){return this.destination.error(t)}else this.hasKey=!0;n||(this.key=e,this.destination.next(t))}}function Ee(t=Te){return e=>e.lift(new Ae(t))}class Ae{constructor(t){this.errorFactory=t}call(t,e){return e.subscribe(new Re(t,this.errorFactory))}}class Re extends p{constructor(t,e){super(t),this.errorFactory=e,this.hasValue=!1}_next(t){this.hasValue=!0,this.destination.next(t)}_complete(){if(this.hasValue)return this.destination.complete();{let t;try{t=this.errorFactory()}catch(e){t=e}this.destination.error(t)}}}function Te(){return new ft}function Ne(t){return e=>0===t?U:e.lift(new Ie(t))}class Ie{constructor(t){if(this.total=t,this.total<0)throw new gt}call(t,e){return e.subscribe(new ze(t,this.total))}}class ze extends p{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){const e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))}}function He(t,e){return e?n=>n.pipe(He(((n,o)=>Rt(t(n,o)).pipe(ht(((t,i)=>e(n,t,o,i))))))):e=>e.lift(new Fe(t))}class Fe{constructor(t){this.project=t}call(t,e){return e.subscribe(new Le(t,this.project))}}class Le extends _t{constructor(t,e){super(t),this.project=e,this.hasSubscription=!1,this.hasCompleted=!1,this.index=0}_next(t){this.hasSubscription||this.tryNext(t)}tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(t){return void this.destination.error(t)}this.hasSubscription=!0,this._innerSub(e,t,n)}_innerSub(t,e,n){const o=new Ct(this,e,n),i=this.destination;i.add(o);const a=kt(this,t,void 0,void 0,o);a!==o&&i.add(a)}_complete(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete(),this.unsubscribe()}notifyNext(t,e,n,o,i){this.destination.next(e)}notifyError(t){this.destination.error(t)}notifyComplete(t){this.destination.remove(t),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()}}class Be{constructor(t){this.callback=t}call(t,e){return e.subscribe(new Ve(t,this.callback))}}class Ve extends p{constructor(t,e){super(t),this.add(new l(e))}}class je{call(t,e){return e.subscribe(new Ue(t))}}class Ue extends p{_next(t){}}function We(t){return function e(n){return 0===t?U:n.lift(new Ge(t))}}class Ge{constructor(t){if(this.total=t,this.total<0)throw new gt}call(t,e){return e.subscribe(new Ye(t,this.total))}}class Ye extends p{constructor(t,e){super(t),this.total=e,this.ring=new Array,this.count=0}_next(t){const e=this.ring,n=this.total,o=this.count++;e.length<n?e.push(t):e[o%n]=t}_complete(){const t=this.destination;let e=this.count;if(e>0){const n=this.count>=this.total?this.total:this.count,o=this.ring;for(let i=0;i<n;i++){const i=e++%n;t.next(o[i])}}t.complete()}}class qe{call(t,e){return e.subscribe(new Ze(t))}}class Ze extends p{constructor(t){super(t)}_next(t){this.destination.next(Q.createNext(t))}_error(t){const e=this.destination;e.next(Q.createError(t)),e.complete()}_complete(){const t=this.destination;t.next(Q.createComplete()),t.complete()}}class Xe{constructor(t,e,n=!1){this.accumulator=t,this.seed=e,this.hasSeed=n}call(t,e){return e.subscribe(new Ke(t,this.accumulator,this.seed,this.hasSeed))}}class Ke extends p{constructor(t,e,n,o){super(t),this.accumulator=e,this._state=n,this._hasState=o,this.index=0}_next(t){const{destination:e}=this;if(this._hasState){const n=this.index++;let o;try{o=this.accumulator(this._state,t,n)}catch(t){return void e.error(t)}this._state=o,e.next(o)}else this._state=t,this._hasState=!0,e.next(t)}}class Je{constructor(t,e){this.subjectFactory=t,this.selector=e}call(t,e){const{selector:n}=this,o=this.subjectFactory(),i=n(o).subscribe(t);return i.add(e.subscribe(o)),i}}class Qe{call(t,e){return e.subscribe(new $e(t))}}class $e extends p{constructor(t){super(t),this.hasPrev=!1}_next(t){let e;this.hasPrev?e=[this.prev,t]:this.hasPrev=!0,this.prev=t,e&&this.destination.next(e)}}class tn{constructor(t){this.notifier=t}call(t,e){return e.subscribe(new en(t,this.notifier,e))}}class en extends _t{constructor(t,e,n){super(t),this.notifier=e,this.source=n,this.notifications=null,this.retries=null,this.retriesSubscription=null,this.sourceIsBeingSubscribedTo=!0}notifyNext(t,e,n,o,i){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)}notifyComplete(t){if(!1===this.sourceIsBeingSubscribedTo)return super.complete()}complete(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return super.complete();this._unsubscribeAndRecycle(),this.notifications.next()}}_unsubscribe(){const{notifications:t,retriesSubscription:e}=this;t&&(t.unsubscribe(),this.notifications=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null}_unsubscribeAndRecycle(){const{_unsubscribe:t}=this;return this._unsubscribe=null,super._unsubscribeAndRecycle(),this._unsubscribe=t,this}subscribeToRetries(){let t;this.notifications=new x;try{const{notifier:e}=this;t=e(this.notifications)}catch(t){return super.complete()}this.retries=t,this.retriesSubscription=kt(this,t)}}function nn(){return new x}function on(){return t=>P()((function e(t,n){return function e(o){let i;if(i="function"==typeof t?t:function e(){return t},"function"==typeof n)return o.lift(new Je(i,n));const a=Object.create(o,D);return a.source=o,a.subjectFactory=i,a}})(nn)(t))}function an(t,e,n){let o;return o=t&&"object"==typeof t?t:{bufferSize:t,windowTime:e,refCount:!1,scheduler:n},t=>t.lift((function e({bufferSize:t=Number.POSITIVE_INFINITY,windowTime:n=Number.POSITIVE_INFINITY,refCount:o,scheduler:i}){let a,r,s=0,l=!1,c=!1;return function e(d){s++,a&&!l||(l=!1,a=new nt(t,n,i),r=d.subscribe({next(t){a.next(t)},error(t){l=!0,a.error(t)},complete(){c=!0,r=void 0,a.complete()}}));const p=a.subscribe(this);this.add((()=>{s--,p.unsubscribe(),r&&!c&&o&&0===s&&(r.unsubscribe(),r=void 0,a=void 0)}))}})(o))}function rn(t){return e=>e.lift(new sn(t))}class sn{constructor(t){this.total=t}call(t,e){return e.subscribe(new ln(t,this.total))}}class ln extends p{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){++this.count>this.total&&this.destination.next(t)}}function cn(...t){const e=t[t.length-1];return W(e)?(t.pop(),n=>Ht(t,n,e)):e=>Ht(t,e)}function dn(t,e){return"function"==typeof e?n=>n.pipe(dn(((n,o)=>Rt(t(n,o)).pipe(ht(((t,i)=>e(n,t,o,i))))))):e=>e.lift(new pn(t))}class pn{constructor(t){this.project=t}call(t,e){return e.subscribe(new mn(t,this.project))}}class mn extends _t{constructor(t,e){super(t),this.project=e,this.index=0}_next(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(t){return void this.destination.error(t)}this._innerSub(e,t,n)}_innerSub(t,e,n){const o=this.innerSubscription;o&&o.unsubscribe();const i=new Ct(this,e,n),a=this.destination;a.add(i),this.innerSubscription=kt(this,t,void 0,void 0,i),this.innerSubscription!==i&&a.add(this.innerSubscription)}_complete(){const{innerSubscription:t}=this;t&&!t.closed||super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=null}notifyComplete(t){this.destination.remove(t),this.innerSubscription=null,this.isStopped&&super._complete()}notifyNext(t,e,n,o,i){this.destination.next(e)}}function un(t){return e=>e.lift(new fn(t))}class fn{constructor(t){this.notifier=t}call(t,e){const n=new gn(t),o=kt(n,this.notifier);return o&&!n.seenValue?(n.add(o),e.subscribe(n)):n}}class gn extends _t{constructor(t){super(t),this.seenValue=!1}notifyNext(t,e,n,o,i){this.seenValue=!0,this.complete()}notifyComplete(){}}function hn(t,e=!1){return n=>n.lift(new bn(t,e))}class bn{constructor(t,e){this.predicate=t,this.inclusive=e}call(t,e){return e.subscribe(new yn(t,this.predicate,this.inclusive))}}class yn extends p{constructor(t,e,n){super(t),this.predicate=e,this.inclusive=n,this.index=0}_next(t){const e=this.destination;let n;try{n=this.predicate(t,this.index++)}catch(t){return void e.error(t)}this.nextOrComplete(t,n)}nextOrComplete(t,e){const n=this.destination;Boolean(e)?n.next(t):(this.inclusive&&n.next(t),n.complete())}}function _n(t,e,n){return function o(i){return i.lift(new Cn(t,e,n))}}class Cn{constructor(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}call(t,e){return e.subscribe(new Mn(t,this.nextOrObserver,this.error,this.complete))}}class Mn extends p{constructor(e,n,o,i){super(e),this._tapNext=mt,this._tapError=mt,this._tapComplete=mt,this._tapError=o||mt,this._tapComplete=i||mt,t(n)?(this._context=this,this._tapNext=n):n&&(this._context=n,this._tapNext=n.next||mt,this._tapError=n.error||mt,this._tapComplete=n.complete||mt)}_next(t){try{this._tapNext.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.next(t)}_error(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)}_complete(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()}}const vn={leading:!0,trailing:!1};function xn(t,e=dt,n=vn){return o=>o.lift(new On(t,e,!!n.leading,!!n.trailing))}class On{constructor(t,e,n,o){this.duration=t,this.scheduler=e,this.leading=n,this.trailing=o}call(t,e){return e.subscribe(new Pn(t,this.duration,this.scheduler,this.leading,this.trailing))}}class Pn extends p{constructor(t,e,n,o,i){super(t),this.duration=e,this.scheduler=n,this.leading=o,this.trailing=i,this.throttled=null,this._hasTrailingValue=!1,this._trailingValue=null}_next(t){this.throttled?this.trailing&&(this._trailingValue=t,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(wn,this.duration,{subscriber:this})),this.leading?this.destination.next(t):this.trailing&&(this._trailingValue=t,this._hasTrailingValue=!0))}_complete(){this._hasTrailingValue?(this.destination.next(this._trailingValue),this.destination.complete()):this.destination.complete()}clearThrottle(){const t=this.throttled;t&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),t.unsubscribe(),this.remove(t),this.throttled=null)}}function wn(t){const{subscriber:e}=t;e.clearThrottle()}function kn(...t){return e=>{let n;return"function"==typeof t[t.length-1]&&(n=t.pop()),e.lift(new Sn(t,n))}}class Sn{constructor(t,e){this.observables=t,this.project=e}call(t,e){return e.subscribe(new Dn(t,this.observables,this.project))}}class Dn extends _t{constructor(t,e,n){super(t),this.observables=e,this.project=n,this.toRespond=[];const o=e.length;this.values=new Array(o);for(let t=0;t<o;t++)this.toRespond.push(t);for(let t=0;t<o;t++){let n=e[t];this.add(kt(this,n,n,t))}}notifyNext(t,e,n,o,i){this.values[n]=e;const a=this.toRespond;if(a.length>0){const t=a.indexOf(n);-1!==t&&a.splice(t,1)}}notifyComplete(){}_next(t){if(0===this.toRespond.length){const e=[t,...this.values];this.project?this._tryProject(e):this.destination.next(e)}}_tryProject(t){let e;try{e=this.project.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)}}
/**
     * @license Angular v11.2.14
     * (c) 2010-2021 Google LLC. https://angular.io/
     * License: MIT
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function En(t){for(let e in t)if(t[e]===En)return e;throw Error("Could not find renamed property on target object.")}function An(t,e){for(const n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Rn(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(Rn).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const e=t.toString();if(null==e)return""+e;const n=e.indexOf("\n");return-1===n?e:e.substring(0,n)}function Tn(t,e){return null==t||""===t?null===e?"":e:null==e||""===e?t:t+" "+e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Nn=En({__forward_ref__:En});function In(t){return t.__forward_ref__=In,t.toString=function(){return Rn(this())},t}function zn(t){return Hn(t)?t():t}function Hn(t){return"function"==typeof t&&t.hasOwnProperty(Nn)&&t.__forward_ref__===In}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class Fn extends Error{constructor(t,e){super(Bn(t,e)),this.code=t}}const Ln=new Set(["100","200","201","300","301","302"]);function Bn(t,e){let n=`${t?`NG0${t}: `:""}${e}`;return ngDevMode&&Ln.has(t)&&(n=`${n}. Find more at https://angular.io/errors/NG0${t}`),n}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Vn(t){return"string"==typeof t?t:null==t?"":String(t)}function jn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Vn(t)}function Un(t,e){const n=e?`. Dependency path: ${e.join(" > ")} > ${t}`:"";throw new Fn("200",`Circular dependency in DI detected for ${t}${n}`)}function Wn(){throw new Error("Cannot mix multi providers and regular providers")}function Gn(t,e){const n=e?` in ${e}`:"";throw new Fn("201",`No provider for ${jn(t)} found${n}`)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Yn(t,e){"number"!=typeof t&&io(e,typeof t,"number","===")}function qn(t,e,n){Yn(t,"Expected a number"),to(t,n,"Expected number to be less than or equal to"),no(t,e,"Expected number to be greater than or equal to")}function Zn(t,e){"string"!=typeof t&&io(e,null===t?"null":typeof t,"string","===")}function Xn(t,e,n){t!=e&&io(n,t,e,"==")}function Kn(t,e,n){t==e&&io(n,t,e,"!=")}function Jn(t,e,n){t!==e&&io(n,t,e,"===")}function Qn(t,e,n){t===e&&io(n,t,e,"!==")}function $n(t,e,n){t<e||io(n,t,e,"<")}function to(t,e,n){t<=e||io(n,t,e,"<=")}function eo(t,e,n){t>e||io(n,t,e,">")}function no(t,e,n){t>=e||io(n,t,e,">=")}function oo(t,e){null==t&&io(e,t,null,"!=")}function io(t,e,n,o){throw new Error(`ASSERTION ERROR: ${t}`+(null==o?"":` [Expected=> ${n} ${o} ${e} <=Actual]`))}function ao(t){"undefined"!=typeof Node&&t instanceof Node||"object"==typeof t&&null!=t&&"WebWorkerRenderNode"===t.constructor.name||io(`The provided value must be an instance of a DOM Node but got ${Rn(t)}`)}function ro(t,e){oo(t,"Array must be defined.");const n=t.length;(e<0||e>=n)&&io(`Index expected to be less than ${n} but got ${e}`)}function so(t,...e){if(-1!==e.indexOf(t))return!0;io(`Expected value to be one of ${JSON.stringify(e)} but was ${JSON.stringify(t)}.`)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function lo(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function co(t){return{providers:t.providers||[],imports:t.imports||[]}}function po(t){return mo(t,fo)||mo(t,ho)}function mo(t,e){return t.hasOwnProperty(e)?t[e]:null}function uo(t){return t&&(t.hasOwnProperty(go)||t.hasOwnProperty(bo))?t[go]:null}const fo=En({"ɵprov":En}),go=En({"ɵinj":En}),ho=En({ngInjectableDef:En}),bo=En({ngInjectorDef:En});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
var yo;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let _o;function Co(t){const e=_o;return _o=t,e}function Mo(t,e,n){const o=po(t);return o&&"root"==o.providedIn?void 0===o.value?o.value=o.factory():o.value:n&yo.Optional?null:void 0!==e?e:void Gn(Rn(t),"Injector")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function vo(t){return{toString:t}.toString()}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */var xo,Oo,Po;!(function(t){t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional"})(yo||(yo={})),(function(t){t[t.OnPush=0]="OnPush",t[t.Default=1]="Default"})(xo||(xo={})),(function(t){t[t.CheckOnce=0]="CheckOnce",t[t.Checked=1]="Checked",t[t.CheckAlways=2]="CheckAlways",t[t.Detached=3]="Detached",t[t.Errored=4]="Errored",t[t.Destroyed=5]="Destroyed"})(Oo||(Oo={})),(function(t){t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom"})(Po||(Po={}));
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const wo="undefined"!=typeof globalThis&&globalThis,ko="undefined"!=typeof window&&window,So="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,Do="undefined"!=typeof global&&global,Eo=wo||Do||ko||So;function Ao(){return!("undefined"!=typeof ngDevMode&&!ngDevMode||("object"!=typeof ngDevMode&&(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function t(){const t="undefined"!=typeof location?location.toString():"",e={namedConstructors:-1!=t.indexOf("ngDevMode=namedConstructors"),firstCreatePass:0,tNode:0,tView:0,rendererCreateTextNode:0,rendererSetText:0,rendererCreateElement:0,rendererAddEventListener:0,rendererSetAttribute:0,rendererRemoveAttribute:0,rendererSetProperty:0,rendererSetClassName:0,rendererAddClass:0,rendererRemoveClass:0,rendererSetStyle:0,rendererRemoveStyle:0,rendererDestroy:0,rendererDestroyNode:0,rendererMoveNode:0,rendererRemoveNode:0,rendererAppendChild:0,rendererInsertBefore:0,rendererCreateComment:0},n=-1===t.indexOf("ngDevMode=false");Eo.ngDevMode=n&&e})(),"undefined"==typeof ngDevMode||!ngDevMode))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Ro={},To=[];("undefined"==typeof ngDevMode||ngDevMode)&&Ao()&&(Object.freeze(Ro),Object.freeze(To))
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */;const No=[];("undefined"==typeof ngDevMode||ngDevMode)&&Ao()&&Object.freeze(No)
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */;const Io=En({"ɵcmp":En}),zo=En({"ɵdir":En}),Ho=En({"ɵpipe":En}),Fo=En({"ɵmod":En}),Lo=En({"ɵloc":En}),Bo=En({"ɵfac":En}),Vo=En({__NG_ELEMENT_ID__:En});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let jo=0;function Uo(t){return vo((()=>{("undefined"==typeof ngDevMode||ngDevMode)&&Ao();const e={},n={type:t.type,providersResolver:null,decls:t.decls,vars:t.vars,factory:null,template:t.template||null,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputs:null,outputs:null,exportAs:t.exportAs||null,onPush:t.changeDetection===xo.OnPush,directiveDefs:null,pipeDefs:null,selectors:t.selectors||No,viewQuery:t.viewQuery||null,features:t.features||null,data:t.data||{},encapsulation:t.encapsulation||Po.Emulated,id:"c",styles:t.styles||No,_:null,setInput:null,schemas:t.schemas||null,tView:null},o=t.directives,i=t.features,a=t.pipes;return n.id+=jo++,n.inputs=Ko(t.inputs,e),n.outputs=Ko(t.outputs),i&&i.forEach((t=>t(n))),n.directiveDefs=o?()=>("function"==typeof o?o():o).map(Go):null,n.pipeDefs=a?()=>("function"==typeof a?a():a).map(Yo):null,n}))}function Wo(t,e,n){const o=t.ɵcmp;o.directiveDefs=()=>e.map(Go),o.pipeDefs=()=>n.map(Yo)}function Go(t){const e=$o(t)||ti(t);if(ngDevMode&&!e)throw new Error(`'${t.name}' is neither 'ComponentType' or 'DirectiveType'.`);return e}function Yo(t){const e=ei(t);if(ngDevMode&&!e)throw new Error(`'${t.name}' is not a 'PipeType'.`);return e}const qo={};function Zo(t){const e={type:t.type,bootstrap:t.bootstrap||No,declarations:t.declarations||No,imports:t.imports||No,exports:t.exports||No,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&vo((()=>{qo[t.id]=t.type})),e}function Xo(t,e){return vo((()=>{const n=ni(t,!0);n.declarations=e.declarations||No,n.imports=e.imports||No,n.exports=e.exports||No}))}function Ko(t,e){if(null==t)return Ro;const n={};for(const o in t)if(t.hasOwnProperty(o)){let i=t[o],a=i;Array.isArray(i)&&(a=i[1],i=i[0]),n[i]=o,e&&(e[i]=a)}return n}const Jo=Uo;function Qo(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,onDestroy:t.type.prototype.ngOnDestroy||null}}function $o(t){return t[Io]||null}function ti(t){return t[zo]||null}function ei(t){return t[Ho]||null}function ni(t,e){const n=t[Fo]||null;if(!n&&!0===e)throw new Error(`Type ${Rn(t)} does not have 'ɵmod' property.`);return n}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const oi=20,ii=["Root","Component","Embedded"],ai=10;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function ri(t){return Array.isArray(t)&&"object"==typeof t[1]}function si(t){return Array.isArray(t)&&!0===t[1]}function li(t){return 0!=(8&t.flags)}function ci(t){return 2==(2&t.flags)}function di(t){return 1==(1&t.flags)}function pi(t){return null!==t.template}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function mi(t,e){ui(t,e[1])}function ui(t,e){fi(t),t.hasOwnProperty("tView_")&&Xn(t.tView_,e,"This TNode does not belong to this TView.")}function fi(t){oo(t,"TNode must be defined"),t&&"object"==typeof t&&t.hasOwnProperty("directiveStylingLast")||io("Not of type TNode, got: "+t)}function gi(t){oo(t,"Expected TIcu to be defined"),"number"!=typeof t.currentCaseLViewIndex&&io("Object is not of TIcu type.")}function hi(t){oo(t,"currentTNode should exist!"),oo(t.parent,"currentTNode should have a parent")}function bi(t){oo(t,"LContainer must be defined"),Xn(si(t),!0,"Expecting LContainer")}function yi(t){t&&Xn(ri(t),!0,"Expecting LView or undefined or null")}function _i(t){oo(t,"LView must be defined"),Xn(ri(t),!0,"Expecting LView")}function Ci(t,e){Xn(t.firstCreatePass,!0,e||"Should only be called in first create pass.")}function Mi(t,e){Xn(t.firstUpdatePass,!0,e||"Should only be called in first update pass.")}function vi(t,e){xi(t[1].expandoStartIndex,t.length,e)}function xi(t,e,n){t<=n&&n<e||io(`Index out of range (expecting ${t} <= ${n} < ${e})`)}function Oi(t,e){oo(t,e||"Component views should always have a parent view (component's host view)")}function Pi(t,e){vi(t,e),vi(t,e+8),Yn(t[e+0],"injectorIndex should point to a bloom filter"),Yn(t[e+1],"injectorIndex should point to a bloom filter"),Yn(t[e+2],"injectorIndex should point to a bloom filter"),Yn(t[e+3],"injectorIndex should point to a bloom filter"),Yn(t[e+4],"injectorIndex should point to a bloom filter"),Yn(t[e+5],"injectorIndex should point to a bloom filter"),Yn(t[e+6],"injectorIndex should point to a bloom filter"),Yn(t[e+7],"injectorIndex should point to a bloom filter"),Yn(t[e+8],"injectorIndex should point to parent injector")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function wi(t,e){const n=t.hasOwnProperty(Bo);if(!n&&!0===e&&ngDevMode)throw new Error(`Type ${Rn(t)} does not have 'ɵfac' property.`);return n?t[Bo]:null}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class ki{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Si(){return Di}function Di(t){return t.type.prototype.ngOnChanges&&(t.setInput=Ai),Ei}function Ei(){const t=Ri(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===Ro)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}}function Ai(t,e,n,o){const i=Ri(t)||(function a(t,e){return t.__ngSimpleChanges__=e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t,{previous:Ro,current:null}),r=i.current||(i.current={}),s=i.previous,l=this.declaredInputs[n],c=s[l];r[l]=new ki(c&&c.currentValue,e,s===Ro),t[o]=e}function Ri(t){return t.__ngSimpleChanges__||null}Si.ngInherit=!0;let Ti=null;const Ni=t=>{Ti=t},Ii=function(t,e,n){null!=Ti&&Ti(t,e,n)},zi="http://www.w3.org/2000/svg",Hi="http://www.w3.org/1998/MathML/";
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let Fi;function Li(){return void 0!==Fi?Fi:"undefined"!=typeof document?document:void 0}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */var Bi;function Vi(t){return!!t.listen}!(function(t){t[t.Important=1]="Important",t[t.DashCase=2]="DashCase"})(Bi||(Bi={}));const ji={createRenderer:(t,e)=>Li()};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Ui(t){for(;Array.isArray(t);)t=t[0];return t}function Wi(t,e){return ngDevMode&&ro(e,t),ngDevMode&&no(t,oi,"Expected to be past HEADER_OFFSET"),Ui(e[t])}function Gi(t,e){ngDevMode&&mi(t,e),ngDevMode&&ro(e,t.index);const n=Ui(e[t.index]);return ngDevMode&&!Vi(e[11])&&ao(n),n}function Yi(t,e){ngDevMode&&eo(e,-1,"wrong index for TNode"),ngDevMode&&$n(e,t.data.length,"wrong index for TNode");const n=t.data[e];return ngDevMode&&null!==n&&fi(n),n}function qi(t,e){return ngDevMode&&ro(t,e),t[e]}function Zi(t,e){ngDevMode&&ro(e,t);const n=e[t];return ri(n)?n:n[0]}function Xi(t){return ngDevMode&&oo(t,"Target expected"),t.__ngContext__||null}function Ki(t){const e=Xi(t);return e?Array.isArray(e)?e:e.lView:null}function Ji(t){return 4==(4&t[2])}function Qi(t){return 128==(128&t[2])}function $i(t,e){return null==e?null:(ngDevMode&&ro(t,e),t[e])}function ta(t){t[18]=0}function ea(t,e){t[5]+=e;let n=t,o=t[3];for(;null!==o&&(1===e&&1===n[5]||-1===e&&0===n[5]);)o[5]+=e,n=o,o=o[3]}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const na={lFrame:Ea(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function oa(){return na.bindingsEnabled}function ia(){return na.lFrame.lView}function aa(){return na.lFrame.tView}function ra(t){na.lFrame.contextLView=t}function sa(){let t=la();for(;null!==t&&64===t.type;)t=t.parent;return t}function la(){return na.lFrame.currentTNode}function ca(){const t=na.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}function da(t,e){ngDevMode&&t&&ui(t,na.lFrame.tView);const n=na.lFrame;n.currentTNode=t,n.isParent=e}function pa(){return na.lFrame.isParent}function ma(){na.lFrame.isParent=!1}function ua(){return na.isInCheckNoChangesMode}function fa(t){na.isInCheckNoChangesMode=t}function ga(){const t=na.lFrame;let e=t.bindingRootIndex;return-1===e&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function ha(){return na.lFrame.bindingIndex}function ba(t){return na.lFrame.bindingIndex=t}function ya(){return na.lFrame.bindingIndex++}function _a(t){const e=na.lFrame,n=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,n}function Ca(t){na.lFrame.inI18n=t}function Ma(t,e){const n=na.lFrame;n.bindingIndex=n.bindingRootIndex=t,va(e)}function va(t){na.lFrame.currentDirectiveIndex=t}function xa(t){const e=na.lFrame.currentDirectiveIndex;return-1===e?null:t[e]}function Oa(){return na.lFrame.currentQueryIndex}function Pa(t){na.lFrame.currentQueryIndex=t}function wa(t){const e=t[1];return 2===e.type?(ngDevMode&&oo(e.declTNode,"Embedded TNodes should have declaration parents."),e.declTNode):1===e.type?t[6]:null}function ka(t,e,n){if(ngDevMode&&yi(t),n&yo.SkipSelf){ngDevMode&&ui(e,t[1]);let o=e,i=t;for(;ngDevMode&&oo(o,"Parent TNode should be defined"),o=o.parent,!(null!==o||n&yo.Host||(o=wa(i),null===o)||(ngDevMode&&oo(i,"Parent LView should be defined"),i=i[15],10&o.type)););if(null===o)return!1;e=o,t=i}ngDevMode&&mi(e,t);const o=na.lFrame=Da();return o.currentTNode=e,o.lView=t,!0}function Sa(t){ngDevMode&&Kn(t[0],t[1],"????"),ngDevMode&&yi(t);const e=Da();ngDevMode&&(Xn(e.isParent,!0,"Expected clean LFrame"),Xn(e.lView,null,"Expected clean LFrame"),Xn(e.tView,null,"Expected clean LFrame"),Xn(e.selectedIndex,-1,"Expected clean LFrame"),Xn(e.elementDepthCount,0,"Expected clean LFrame"),Xn(e.currentDirectiveIndex,-1,"Expected clean LFrame"),Xn(e.currentNamespace,null,"Expected clean LFrame"),Xn(e.bindingRootIndex,-1,"Expected clean LFrame"),Xn(e.currentQueryIndex,0,"Expected clean LFrame"));const n=t[1];na.lFrame=e,ngDevMode&&n.firstChild&&ui(n.firstChild,n),e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Da(){const t=na.lFrame,e=null===t?null:t.child;return null===e?Ea(t):e}function Ea(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function Aa(){const t=na.lFrame;return na.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Ra=Aa;function Ta(){const t=Aa();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Na(){return na.lFrame.selectedIndex}function Ia(t){ngDevMode&&-1!==t&&no(t,oi,"Index must be past HEADER_OFFSET (or -1)."),ngDevMode&&$n(t,na.lFrame.lView.length,"Can't set index passed end of LView"),na.lFrame.selectedIndex=t}function za(){const t=na.lFrame;return Yi(t.tView,t.selectedIndex)}function Ha(){na.lFrame.currentNamespace=zi}function Fa(){!(function t(){na.lFrame.currentNamespace=null})()}function La(t,e){ngDevMode&&Ci(t);for(let n=e.directiveStart,o=e.directiveEnd;n<o;n++){const e=t.data[n];ngDevMode&&oo(e,"Expecting DirectiveDef");const o=e.type.prototype,{ngAfterContentInit:i,ngAfterContentChecked:a,ngAfterViewInit:r,ngAfterViewChecked:s,ngOnDestroy:l}=o;i&&(t.contentHooks||(t.contentHooks=[])).push(-n,i),a&&((t.contentHooks||(t.contentHooks=[])).push(n,a),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,a)),r&&(t.viewHooks||(t.viewHooks=[])).push(-n,r),s&&((t.viewHooks||(t.viewHooks=[])).push(n,s),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,s)),null!=l&&(t.destroyHooks||(t.destroyHooks=[])).push(n,l)}}function Ba(t,e,n){Ua(t,e,3,n)}function Va(t,e,n,o){ngDevMode&&Kn(n,3,"Init pre-order hooks should not be called more than once"),(3&t[2])===n&&Ua(t,e,n,o)}function ja(t,e){ngDevMode&&Kn(e,3,"Init hooks phase should not be incremented after all init hooks have been run.");let n=t[2];(3&n)===e&&(n&=2047,n+=1,t[2]=n)}function Ua(t,e,n,o){ngDevMode&&Xn(ua(),!1,"Hooks should never be run when in check no changes mode.");const i=null!=o?o:-1,a=e.length-1;let r=0;for(let s=void 0!==o?65535&t[18]:0;s<a;s++)if("number"==typeof e[s+1]){if(r=e[s],null!=o&&r>=o)break}else e[s]<0&&(t[18]+=65536),(r<i||-1==i)&&(Wa(t,n,e,s),t[18]=(4294901760&t[18])+s+2),s++}function Wa(t,e,n,o){const i=n[o]<0,a=n[o+1],r=t[i?-n[o]:n[o]];if(i){if(t[2]>>11<t[18]>>16&&(3&t[2])===e){t[2]+=2048,Ii(4,r,a);try{a.call(r)}finally{Ii(5,r,a)}}}else{Ii(4,r,a);try{a.call(r)}finally{Ii(5,r,a)}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Ga=-1;class Ya{constructor(t,e,n){this.factory=t,this.resolving=!1,ngDevMode&&oo(t,"Factory not specified"),ngDevMode&&Xn(typeof t,"function","Expected factory function."),this.canSeeViewProviders=e,this.injectImpl=n}}function qa(t){let e="";return 1&t&&(e+="|Text"),2&t&&(e+="|Element"),4&t&&(e+="|Container"),8&t&&(e+="|ElementContainer"),16&t&&(e+="|Projection"),32&t&&(e+="|IcuContainer"),64&t&&(e+="|Placeholder"),e.length>0?e.substring(1):e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Za(t,e,n){oo(t,"should be called with a TNode"),0==(t.type&e)&&io(n||`Expected [${qa(e)}] but got ${qa(t.type)}.`)}function Xa(t,e,n){const o=Vi(t);let i=0;for(;i<n.length;){const a=n[i];if("number"==typeof a){if(0!==a)break;i++;const r=n[i++],s=n[i++],l=n[i++];ngDevMode&&ngDevMode.rendererSetAttribute++,o?t.setAttribute(e,s,l,r):e.setAttributeNS(r,s,l)}else{const r=a,s=n[++i];ngDevMode&&ngDevMode.rendererSetAttribute++,Ja(r)?o&&t.setProperty(e,r,s):o?t.setAttribute(e,r,s):e.setAttribute(r,s),i++}}return i}function Ka(t){return 3===t||4===t||6===t}function Ja(t){return 64===t.charCodeAt(0)}function Qa(t,e){if(null===e||0===e.length);else if(null===t||0===t.length)t=e.slice();else{let n=-1;for(let o=0;o<e.length;o++){const i=e[o];"number"==typeof i?n=i:0===n||$a(t,n,i,null,-1===n||2===n?e[++o]:null)}}return t}function $a(t,e,n,o,i){let a=0,r=t.length;if(-1===e)r=-1;else for(;a<t.length;){const n=t[a++];if("number"==typeof n){if(n===e){r=-1;break}if(n>e){r=a-1;break}}}for(;a<t.length;){const e=t[a];if("number"==typeof e)break;if(e===n){if(null===o)return void(null!==i&&(t[a+1]=i));if(o===t[a+1])return void(t[a+2]=i)}a++,null!==o&&a++,null!==i&&a++}-1!==r&&(t.splice(r,0,e),a=r+1),t.splice(a++,0,n),null!==o&&t.splice(a++,0,o),null!==i&&t.splice(a++,0,i)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function tr(t){return t!==Ga}function er(t){return ngDevMode&&Yn(t,"Number expected"),ngDevMode&&Kn(t,-1,"Not a valid state."),ngDevMode&&eo(32767&t,oi,"Parent injector must be pointing past HEADER_OFFSET."),32767&t}function nr(t,e){let n=(function o(t){return t>>16})(t),i=e;for(;n>0;)i=i[15],n--;return i}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */let or=!0;function ir(t){const e=or;return or=t,e}let ar=0;function rr(t,e){const n=lr(t,e);if(-1!==n)return n;const o=e[1];o.firstCreatePass&&(t.injectorIndex=e.length,sr(o.data,t),sr(e,null),sr(o.blueprint,null));const i=cr(t,e),a=t.injectorIndex;if(tr(i)){const t=er(i),n=nr(i,e),o=n[1].data;for(let i=0;i<8;i++)e[a+i]=n[t+i]|o[t+i]}return e[a+8]=i,a}function sr(t,e){t.push(0,0,0,0,0,0,0,0,e)}function lr(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:(ngDevMode&&ro(e,t.injectorIndex),t.injectorIndex)}function cr(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,o=null,i=e;for(;null!==i;){const t=i[1],e=t.type;if(2===e?(ngDevMode&&oo(t.declTNode,"Embedded TNodes should have declaration parents."),o=t.declTNode):1===e?o=i[6]:(ngDevMode&&Xn(t.type,0,"Root type expected"),o=null),null===o)return Ga;if(ngDevMode&&o&&mi(o,i[15]),n++,i=i[15],-1!==o.injectorIndex)return o.injectorIndex|n<<16}return Ga}function dr(t,e,n){!(function o(t,e,n){let o;ngDevMode&&Xn(e.firstCreatePass,!0,"expected firstCreatePass to be true"),"string"==typeof n?o=n.charCodeAt(0)||0:n.hasOwnProperty(Vo)&&(o=n[Vo]),null==o&&(o=n[Vo]=ar++);const i=255&o;e.data[t+(i>>5)]|=1<<i})(t,e,n)}function pr(t,e,n){if(n&yo.Optional)return t;Gn(e,"NodeInjector")}function mr(t,e,n,o){if(n&yo.Optional&&void 0===o&&(o=null),0==(n&(yo.Self|yo.Host))){const i=t[9],a=Co(void 0);try{return i?i.get(e,o,n&yo.Optional):Mo(e,o,n&yo.Optional)}finally{Co(a)}}return pr(o,e,n)}function ur(t,e,n,o=yo.Default,i){if(null!==t){const a=(function a(t){if(ngDevMode&&oo(t,"token must be defined"),"string"==typeof t)return t.charCodeAt(0)||0;const e=t.hasOwnProperty(Vo)?t[Vo]:void 0;return"number"==typeof e?e>=0?255&e:(ngDevMode&&Xn(e,-1,"Expecting to get Special Injector Id"),gr):e})(n);if("function"==typeof a){if(!ka(e,t,o))return o&yo.Host?pr(i,n,o):mr(e,n,o,i);try{const t=a();if(null!=t||o&yo.Optional)return t;Gn(n)}finally{Ra()}}else if("number"==typeof a){let i=null,r=lr(t,e),s=Ga,l=o&yo.Host?e[16][6]:null;for((-1===r||o&yo.SkipSelf)&&(s=-1===r?cr(t,e):e[r+8],s!==Ga&&Cr(o,!1)?(i=e[1],r=er(s),e=nr(s,e)):r=-1);-1!==r;){ngDevMode&&Pi(e,r);const t=e[1];if(ngDevMode&&mi(t.data[r+8],e),_r(a,r,t.data)){const t=hr(r,e,n,i,o,l);if(t!==fr)return t}s=e[r+8],s!==Ga&&Cr(o,e[1].data[r+8]===l)&&_r(a,r,e)?(i=t,r=er(s),e=nr(s,e)):r=-1}}}return mr(e,n,o,i)}const fr={};function gr(){return new Mr(sa(),ia())}function hr(t,e,n,o,i,a){const r=e[1],s=r.data[t+8],l=br(s,r,n,null==o?ci(s)&&or:o!=r&&0!=(3&s.type),i&yo.Host&&a===s);return null!==l?yr(e,r,l,s):fr}function br(t,e,n,o,i){const a=t.providerIndexes,r=e.data,s=1048575&a,l=t.directiveStart,c=a>>20,d=i?s+c:t.directiveEnd;for(let t=o?s:s+c;t<d;t++){const e=r[t];if(t<l&&n===e||t>=l&&e.type===n)return t}if(i){const t=r[l];if(t&&pi(t)&&t.type===n)return l}return null}function yr(t,e,n,o){let i=t[n];const a=e.data;if((function r(t){return t instanceof Ya})(i)){const r=i;r.resolving&&Un(jn(a[n]));const s=ir(r.canSeeViewProviders);r.resolving=!0;const l=r.injectImpl?Co(r.injectImpl):null,c=ka(t,o,yo.Default);ngDevMode&&Xn(c,!0,"Because flags do not contain `SkipSelf' we expect this to always succeed.");try{i=t[n]=r.factory(void 0,a,t,o),e.firstCreatePass&&n>=o.directiveStart&&(ngDevMode&&(function s(t){void 0!==t.type&&null!=t.selectors&&void 0!==t.inputs||io("Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.")})(a[n]),(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function l(t,e,n){ngDevMode&&Ci(n);const{ngOnChanges:o,ngOnInit:i,ngDoCheck:a}=e.type.prototype;if(o){const o=Di(e);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o)}i&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,i),a&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,a),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,a))})(n,a[n],e))}finally{null!==l&&Co(l),ir(s),r.resolving=!1,Ra()}}return i}function _r(t,e,n){return!!(n[e+(t>>5)]&1<<t)}function Cr(t,e){return!(t&yo.Self||t&yo.Host&&e)}class Mr{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return ur(this._tNode,this._lView,t,void 0,e)}}function vr(t){return vo((()=>{const e=t.prototype.constructor,n=e[Bo]||xr(e),o=Object.prototype;let i=Object.getPrototypeOf(t.prototype).constructor;for(;i&&i!==o;){const t=i[Bo]||xr(i);if(t&&t!==n)return t;i=Object.getPrototypeOf(i)}return t=>new t}))}function xr(t){return Hn(t)?()=>{const e=xr(zn(t));return e&&e()}:wi(t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Or(t){return(function e(t,n){if(ngDevMode&&Za(t,15),ngDevMode&&oo(t,"expecting tNode"),"class"===n)return t.classes;if("style"===n)return t.styles;const o=t.attrs;if(o){const t=o.length;let e=0;for(;e<t;){const i=o[e];if(Ka(i))break;if(0===i)e+=2;else if("number"==typeof i)for(e++;e<t&&"string"==typeof o[e];)e++;else{if(i===n)return o[e+1];e+=2}}}return null})(sa(),t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Pr="__annotations__",wr="__parameters__",kr="__prop__metadata__";function Sr(t,e,n,o,i){return vo((()=>{const a=Dr(e);function r(...t){if(this instanceof r)return a.call(this,...t),this;const e=new r(...t);return function n(a){return i&&i(a,...t),(a.hasOwnProperty(Pr)?a[Pr]:Object.defineProperty(a,Pr,{value:[]})[Pr]).push(e),o&&o(a),a}}return n&&(r.prototype=Object.create(n.prototype)),r.prototype.ngMetadataName=t,r.annotationCls=r,r}))}function Dr(t){return function e(...n){if(t){const e=t(...n);for(const t in e)this[t]=e[t]}}}function Er(t,e,n){return vo((()=>{const o=Dr(e);function i(...t){if(this instanceof i)return o.apply(this,t),this;const e=new i(...t);return n.annotation=e,n;function n(t,n,o){const i=t.hasOwnProperty(wr)?t[wr]:Object.defineProperty(t,wr,{value:[]})[wr];for(;i.length<=o;)i.push(null);return(i[o]=i[o]||[]).push(e),t}}return n&&(i.prototype=Object.create(n.prototype)),i.prototype.ngMetadataName=t,i.annotationCls=i,i}))}function Ar(t,e,n,o){return vo((()=>{const i=Dr(e);function a(...t){if(this instanceof a)return i.apply(this,t),this;const e=new a(...t);return function n(i,a){const r=i.constructor,s=r.hasOwnProperty(kr)?r[kr]:Object.defineProperty(r,kr,{value:{}})[kr];s[a]=s.hasOwnProperty(a)&&s[a]||[],s[a].unshift(e),o&&o(i,a,...t)}}return n&&(a.prototype=Object.create(n.prototype)),a.prototype.ngMetadataName=t,a.annotationCls=a,a}))}const Rr=(function Tr(){return Er("Attribute",(t=>({attributeName:t,__NG_ELEMENT_ID__:()=>Or(t)})))})();
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Nr{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.ɵprov=void 0,"number"==typeof e?(("undefined"==typeof ngDevMode||ngDevMode)&&$n(e,0,"Only negative numbers are supported here"),this.__NG_ELEMENT_ID__=e):void 0!==e&&(this.ɵprov=lo({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}toString(){return`InjectionToken ${this._desc}`}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */new Nr("AnalyzeForEntryComponents");class Ir{}const zr=Ar("ContentChildren",((t,e={})=>Object.assign({selector:t,first:!1,isViewQuery:!1,descendants:!1,emitDistinctChangesOnly:!1},e)),Ir),Hr=Ar("ContentChild",((t,e={})=>Object.assign({selector:t,first:!0,isViewQuery:!1,descendants:!0},e)),Ir);Ar("ViewChildren",((t,e={})=>Object.assign({selector:t,first:!1,isViewQuery:!0,descendants:!0,emitDistinctChangesOnly:!1},e)),Ir);const Fr=Ar("ViewChild",((t,e)=>Object.assign({selector:t,first:!0,isViewQuery:!0,descendants:!0},e)),Ir);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
var Lr,Br,Vr;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function jr(){const t=Eo.ng;if(!t||!t.ɵcompilerFacade)throw new Error("Angular JIT compilation failed: '@angular/compiler' not loaded!\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\n  - Alternatively provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.");return t.ɵcompilerFacade}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */!(function(t){t[t.Token=0]="Token",t[t.Attribute=1]="Attribute",t[t.ChangeDetectorRef=2]="ChangeDetectorRef",t[t.Invalid=3]="Invalid"})(Lr||(Lr={})),(function(t){t[t.Directive=0]="Directive",t[t.Component=1]="Component",t[t.Injectable=2]="Injectable",t[t.Pipe=3]="Pipe",t[t.NgModule=4]="NgModule"})(Br||(Br={})),(function(t){t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom"})(Vr||(Vr={}));const Ur=Function;function Wr(t){return"function"==typeof t}function Gr(t,e){void 0===e&&(e=t);for(let n=0;n<t.length;n++){let o=t[n];Array.isArray(o)?(e===t&&(e=t.slice(0,n)),Gr(o,e)):e!==t&&e.push(o)}return e}function Yr(t,e){t.forEach((t=>Array.isArray(t)?Yr(t,e):e(t)))}function qr(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function Zr(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function Xr(t,e){const n=[];for(let o=0;o<t;o++)n.push(e);return n}function Kr(t,e,n){let o=Qr(t,e);return o>=0?t[1|o]=n:(o=~o,(function i(t,e,n,o){ngDevMode&&to(e,t.length,"Can't insert past array end.");let i=t.length;if(i==e)t.push(n,o);else if(1===i)t.push(o,t[0]),t[0]=n;else{for(i--,t.push(t[i-1],t[i]);i>e;)t[i]=t[i-2],i--;t[e]=n,t[e+1]=o}})(t,o,e,n)),o}function Jr(t,e){const n=Qr(t,e);if(n>=0)return t[1|n]}function Qr(t,e){return(function n(t,e,o){ngDevMode&&Xn(Array.isArray(t),!0,"Expecting an array");let i=0,a=t.length>>o;for(;a!==i;){const n=i+(a-i>>1),r=t[n<<o];if(e===r)return n<<o;r>e?a=n:i=n+1}return~(a<<o)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t,e,1)}const $r=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*(arguments|[^()]+\(arguments\))\)/,ts=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/,es=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/,ns=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s*super\(\.\.\.arguments\)/;class os{constructor(t){this._reflect=t||Eo.Reflect}isReflectionEnabled(){return!0}factory(t){return(...e)=>new t(...e)}_zipTypesAndAnnotations(t,e){let n;n=Xr(void 0===t?e.length:t.length);for(let o=0;o<n.length;o++)n[o]=void 0===t?[]:t[o]&&t[o]!=Object?[t[o]]:[],e&&null!=e[o]&&(n[o]=n[o].concat(e[o]));return n}_ownParameters(t,e){if((function n(t){return $r.test(t)||ns.test(t)||ts.test(t)&&!es.test(t)})(t.toString()))return null;if(t.parameters&&t.parameters!==e.parameters)return t.parameters;const o=t.ctorParameters;if(o&&o!==e.ctorParameters){const t="function"==typeof o?o():o,e=t.map((t=>t&&t.type)),n=t.map((t=>t&&is(t.decorators)));return this._zipTypesAndAnnotations(e,n)}const i=t.hasOwnProperty(wr)&&t[wr],a=this._reflect&&this._reflect.getOwnMetadata&&this._reflect.getOwnMetadata("design:paramtypes",t);return a||i?this._zipTypesAndAnnotations(a,i):Xr(t.length)}parameters(t){if(!Wr(t))return[];const e=as(t);let n=this._ownParameters(t,e);return n||e===Object||(n=this.parameters(e)),n||[]}_ownAnnotations(t,e){if(t.annotations&&t.annotations!==e.annotations){let e=t.annotations;return"function"==typeof e&&e.annotations&&(e=e.annotations),e}return t.decorators&&t.decorators!==e.decorators?is(t.decorators):t.hasOwnProperty(Pr)?t[Pr]:null}annotations(t){if(!Wr(t))return[];const e=as(t),n=this._ownAnnotations(t,e)||[];return(e!==Object?this.annotations(e):[]).concat(n)}_ownPropMetadata(t,e){if(t.propMetadata&&t.propMetadata!==e.propMetadata){let e=t.propMetadata;return"function"==typeof e&&e.propMetadata&&(e=e.propMetadata),e}if(t.propDecorators&&t.propDecorators!==e.propDecorators){const e=t.propDecorators,n={};return Object.keys(e).forEach((t=>{n[t]=is(e[t])})),n}return t.hasOwnProperty(kr)?t[kr]:null}propMetadata(t){if(!Wr(t))return{};const e=as(t),n={};if(e!==Object){const t=this.propMetadata(e);Object.keys(t).forEach((e=>{n[e]=t[e]}))}const o=this._ownPropMetadata(t,e);return o&&Object.keys(o).forEach((t=>{const e=[];n.hasOwnProperty(t)&&e.push(...n[t]),e.push(...o[t]),n[t]=e})),n}ownPropMetadata(t){return Wr(t)&&this._ownPropMetadata(t,as(t))||{}}hasLifecycleHook(t,e){return t instanceof Ur&&e in t.prototype}guards(t){return{}}getter(t){return new Function("o","return o."+t+";")}setter(t){return new Function("o","v","return o."+t+" = v;")}method(t){return new Function("o","args",`if (!o.${t}) throw new Error('"${t}" is undefined');\n        return o.${t}.apply(o, args);`)}importUri(t){return"object"==typeof t&&t.filePath?t.filePath:`./${Rn(t)}`}resourceUri(t){return`./${Rn(t)}`}resolveIdentifier(t,e,n,o){return o}resolveEnum(t,e){return t[e]}}function is(t){return t?t.map((t=>new(0,t.type.annotationCls)(...t.args?t.args:[]))):[]}function as(t){const e=t.prototype?Object.getPrototypeOf(t.prototype):null;return(e?e.constructor:null)||Object}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const rs={},ss=/\n/gm,ls="__source",cs=En({provide:String,useValue:En});let ds;function ps(t){const e=ds;return ds=t,e}function ms(t,e=yo.Default){if(void 0===ds)throw new Error("inject() must be called from an injection context");return null===ds?Mo(t,void 0,e):ds.get(t,e&yo.Optional?null:void 0,e)}function us(t,e=yo.Default){return((function n(){return _o})()||ms)(zn(t),e)}function fs(t){const e=ngDevMode?`This constructor is not compatible with Angular Dependency Injection because its dependency at index ${t} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${t} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.`:"invalid";throw new Error(e)}const gs=us;function hs(t){const e=[];for(let n=0;n<t.length;n++){const o=zn(t[n]);if(Array.isArray(o)){if(0===o.length)throw new Error("Arguments array must have arguments.");let t,n=yo.Default;for(let e=0;e<o.length;e++){const i=o[e],a=i.__NG_DI_FLAG__;"number"==typeof a?-1===a?t=i.token:n|=a:t=i}e.push(us(t,n))}else e.push(us(o))}return e}function bs(t,e){return t.__NG_DI_FLAG__=e,t.prototype.__NG_DI_FLAG__=e,t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const ys=bs(Er("Inject",(t=>({token:t}))),-1),_s=bs(Er("Optional"),8),Cs=bs(Er("Self"),2),Ms=bs(Er("SkipSelf"),4),vs=bs(Er("Host"),1);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let xs=null;function Os(){return xs=xs||new os}function Ps(t){return ws(Os().parameters(t))}function ws(t){const e=jr();return t.map((t=>(function n(t,e){const n={token:null,host:!1,optional:!1,resolved:t.R3ResolvedDependencyType.Token,self:!1,skipSelf:!1};function o(e){n.resolved=t.R3ResolvedDependencyType.Token,n.token=e}if(Array.isArray(e)&&e.length>0)for(let i=0;i<e.length;i++){const a=e[i];if(void 0===a)continue;const r=Object.getPrototypeOf(a);if(a instanceof _s||"Optional"===r.ngMetadataName)n.optional=!0;else if(a instanceof Ms||"SkipSelf"===r.ngMetadataName)n.skipSelf=!0;else if(a instanceof Cs||"Self"===r.ngMetadataName)n.self=!0;else if(a instanceof vs||"Host"===r.ngMetadataName)n.host=!0;else if(a instanceof ys)n.token=a.token;else if(a instanceof Rr){if(void 0===a.attributeName)throw new Error("Attribute name must be defined.");n.token=a.attributeName,n.resolved=t.R3ResolvedDependencyType.Attribute}else!0===a.__ChangeDetectorRef__?(n.token=a,n.resolved=t.R3ResolvedDependencyType.ChangeDetectorRef):o(a)}else void 0===e||Array.isArray(e)&&0===e.length?(n.token=void 0,n.resolved=Lr.Invalid):o(e);return n}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(e,t)))}let ks=new Map;const Ss=new Set;function Ds(t){return!!(t.templateUrl&&!t.hasOwnProperty("template")||t.styleUrls&&t.styleUrls.length)}function Es(t){return"string"==typeof t?t:t.text()}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let As,Rs;function Ts(){if(void 0===As&&(As=null,Eo.trustedTypes))try{As=Eo.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch(t){}return As}function Ns(t){var e;return(null===(e=Ts())||void 0===e?void 0:e.createHTML(t))||t}function Is(){if(void 0===Rs&&(Rs=null,Eo.trustedTypes))try{Rs=Eo.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch(t){}return Rs}function zs(t){var e;return(null===(e=Is())||void 0===e?void 0:e.createHTML(t))||t}function Hs(t){var e;return(null===(e=Is())||void 0===e?void 0:e.createScript(t))||t}function Fs(t){var e;return(null===(e=Is())||void 0===e?void 0:e.createScriptURL(t))||t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class Ls{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}class Bs extends Ls{getTypeName(){return"HTML"}}class Vs extends Ls{getTypeName(){return"Style"}}class js extends Ls{getTypeName(){return"Script"}}class Us extends Ls{getTypeName(){return"URL"}}class Ws extends Ls{getTypeName(){return"ResourceURL"}}function Gs(t){return t instanceof Ls?t.changingThisBreaksApplicationSecurity:t}function Ys(t,e){const n=qs(t);if(null!=n&&n!==e){if("ResourceURL"===n&&"URL"===e)return!0;throw new Error(`Required a safe ${e}, got a ${n} (see https://g.co/ng/security#xss)`)}return n===e}function qs(t){return t instanceof Ls&&t.getTypeName()||null}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Zs(t){const e=new Ks(t);return(function n(){try{return!!(new window.DOMParser).parseFromString(Ns(""),"text/html")}catch(t){return!1}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)()?new Xs(e):e}class Xs{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t="<body><remove></remove>"+t;try{const e=(new window.DOMParser).parseFromString(Ns(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch(t){return null}}}class Ks{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const t=this.inertDocument.createElement("html");this.inertDocument.appendChild(t);const e=this.inertDocument.createElement("body");t.appendChild(e)}}getInertBodyElement(t){const e=this.inertDocument.createElement("template");if("content"in e)return e.innerHTML=Ns(t),e;const n=this.inertDocument.createElement("body");return n.innerHTML=Ns(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(n),n}stripCustomNsAttrs(t){const e=t.attributes;for(let n=e.length-1;0<n;n--){const o=e.item(n).name;"xmlns:ns1"!==o&&0!==o.indexOf("ns1:")||t.removeAttribute(o)}let n=t.firstChild;for(;n;)n.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(n),n=n.nextSibling}}const Js=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi,Qs=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;function $s(t){return(t=String(t)).match(Js)||t.match(Qs)?t:(("undefined"==typeof ngDevMode||ngDevMode)&&console.warn(`WARNING: sanitizing unsafe URL value ${t} (see https://g.co/ng/security#xss)`),"unsafe:"+t)}function tl(t){return(t=String(t)).split(",").map((t=>$s(t.trim()))).join(", ")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function el(t){const e={};for(const n of t.split(","))e[n]=!0;return e}function nl(...t){const e={};for(const n of t)for(const t in n)n.hasOwnProperty(t)&&(e[t]=!0);return e}const ol=el("area,br,col,hr,img,wbr"),il=el("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),al=el("rp,rt"),rl=nl(al,il),sl=nl(il,el("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),ll=nl(al,el("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),cl=nl(ol,sl,ll,rl),dl=el("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),pl=el("srcset"),ml=el("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),ul=el("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),fl=nl(dl,pl,ml,ul),gl=el("script,style,template");class hl{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,n=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?n=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,n&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let t=this.checkClobberedElement(e,e.nextSibling);if(t){e=t;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(t){const e=t.nodeName.toLowerCase();if(!cl.hasOwnProperty(e))return this.sanitizedSomething=!0,!gl.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const n=t.attributes;for(let t=0;t<n.length;t++){const e=n.item(t),o=e.name,i=o.toLowerCase();if(!fl.hasOwnProperty(i)){this.sanitizedSomething=!0;continue}let a=e.value;dl[i]&&(a=$s(a)),pl[i]&&(a=tl(a)),this.buf.push(" ",o,'="',_l(a),'"')}return this.buf.push(">"),!0}endElement(t){const e=t.nodeName.toLowerCase();cl.hasOwnProperty(e)&&!ol.hasOwnProperty(e)&&(this.buf.push("</"),this.buf.push(e),this.buf.push(">"))}chars(t){this.buf.push(_l(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const bl=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,yl=/([^\#-~ |!])/g;function _l(t){return t.replace(/&/g,"&amp;").replace(bl,(function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"})).replace(yl,(function(t){return"&#"+t.charCodeAt(0)+";"})).replace(/</g,"&lt;").replace(/>/g,"&gt;")}let Cl;function Ml(t,e){let n=null;try{Cl=Cl||Zs(t);let o=e?String(e):"";n=Cl.getInertBodyElement(o);let i=5,a=o;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,o=a,a=n.innerHTML,n=Cl.getInertBodyElement(o)}while(o!==a);const r=new hl,s=r.sanitizeChildren(vl(n)||n);return("undefined"==typeof ngDevMode||ngDevMode)&&r.sanitizedSomething&&console.warn("WARNING: sanitizing HTML stripped some content, see https://g.co/ng/security#xss"),Ns(s)}finally{if(n){const t=vl(n)||n;for(;t.firstChild;)t.removeChild(t.firstChild)}}}function vl(t){return"content"in t&&(function e(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t)?t.content:null}var xl;function Ol(t){const e=wl();return e?e.sanitize(xl.URL,t)||"":Ys(t,"URL")?Gs(t):$s(Vn(t))}function Pl(t){const e=wl();if(e)return Fs(e.sanitize(xl.RESOURCE_URL,t)||"");if(Ys(t,"ResourceURL"))return Fs(Gs(t));throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)")}function wl(){const t=ia();return t&&t[12]}function kl(t){return t.ngDebugContext}function Sl(t){return t.ngOriginalError}function Dl(t,...e){t.error(...e)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */!(function(t){t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL"})(xl||(xl={}));class El{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),o=(function i(t){return t.ngErrorLogger||Dl})(t);o(this._console,"ERROR",t),e&&o(this._console,"ORIGINAL ERROR",e),n&&o(this._console,"ERROR CONTEXT",n)}_findContext(t){return t?kl(t)?kl(t):this._findContext(Sl(t)):null}_findOriginalError(t){let e=Sl(t);for(;e&&Sl(e);)e=Sl(e);return e}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Al={name:"custom-elements"},Rl={name:"no-errors-schema"},Tl=/^>|^->|<!--|-->|--!>|<!-$/g,Nl=/(<|>)/;function Il(t){return t.replace(Tl,(t=>t.replace(Nl,"​$1​")))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function zl(t){if(!ngDevMode)throw new Error("Looks like we are in 'prod mode', but we are creating a named Array type, which is wrong! Check your code");try{return(function e(...t){if("undefined"==typeof ngDevMode)throw new Error("newTrustedFunctionForDev should never be called in production");if(!Eo.trustedTypes)return new Function(...t);const e=`(function anonymous(${t.slice(0,-1).join(",")}\n) { ${t[t.length-1]}\n})`,n=Eo.eval((function o(t){var e;return(null===(e=Ts())||void 0===e?void 0:e.createScript(t))||t})(e));return void 0===n.bind?new Function(...t):(n.toString=()=>e,n.bind(Eo))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)("Array",`return class ${t} extends Array{}`)(Array)}catch(t){return Array}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Hl=/([A-Z])/g;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Fl(t){let e=Xi(t);if(e){if(Array.isArray(e)){const n=e;let o,i,a;if((function n(t){return t&&t.constructor&&t.constructor.ɵcmp})(t)){if(o=Wl(n,t),-1==o)throw new Error("The provided component was not found in the application");i=t}else if((function o(t){return t&&t.constructor&&t.constructor.ɵdir})(t)){if(o=(function i(t,e){let n=t[1].firstChild;for(;n;){const o=n.directiveEnd;for(let i=n.directiveStart;i<o;i++)if(t[i]===e)return n.index;n=Ul(n)}return-1})(n,t),-1==o)throw new Error("The provided directive was not found in the application");a=Gl(o,n,!1)}else if(o=jl(n,t),-1==o)return null;const r=Ui(n[o]),s=Xi(r),l=s&&!Array.isArray(s)?s:Ll(n,o,r);if(i&&void 0===l.component&&(l.component=i,Vl(l.component,l)),a&&void 0===l.directives){l.directives=a;for(let t=0;t<a.length;t++)Vl(a[t],l)}Vl(l.native,l),e=l}}else{const n=t;ngDevMode&&ao(n);let o=n;for(;o=o.parentNode;){const t=Xi(o);if(t){let o;if(o=Array.isArray(t)?t:t.lView,!o)return null;const i=jl(o,n);if(i>=0){const t=Ui(o[i]),n=Ll(o,i,t);Vl(t,n),e=n;break}}}}return e||null}function Ll(t,e,n){return{lView:t,nodeIndex:e,native:n,component:void 0,directives:void 0,localRefs:void 0}}function Bl(t){let e,n=Xi(t);if(Array.isArray(n)){const o=Wl(n,t);e=Zi(o,n);const i=Ll(n,o,e[0]);i.component=t,Vl(t,i),Vl(i.native,i)}else e=Zi(n.nodeIndex,n.lView);return e}function Vl(t,e){t.__ngContext__=e}function jl(t,e){const n=t[1];for(let o=oi;o<n.bindingStartIndex;o++)if(Ui(t[o])===e)return o;return-1}function Ul(t){if(t.child)return t.child;if(t.next)return t.next;for(;t.parent&&!t.parent.next;)t=t.parent;return t.parent&&t.parent.next}function Wl(t,e){const n=t[1].components;if(n)for(let o=0;o<n.length;o++){const i=n[o];if(Zi(i,t)[8]===e)return i}else if(Zi(oi,t)[8]===e)return oi;return-1}function Gl(t,e,n){const o=e[1].data[t];let i=o.directiveStart;return 0==i?No:(!n&&2&o.flags&&i++,e.slice(i,o.directiveEnd))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Yl=("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(Eo);function ql(t){return{name:"window",target:t.ownerDocument.defaultView}}function Zl(t){return{name:"document",target:t.ownerDocument}}function Xl(t){return{name:"body",target:t.ownerDocument.body}}const Kl="�";function Jl(t){return t instanceof Function?t():t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Ql(t){throw new Fn("300",`Multiple components match node with tagname ${t.value}`)}function $l(t,e,n,o,i){const[a,r,...s]=o.split(Kl);let l=r,c=r;for(let o=0;o<s.length;o++){const a=e+o;l+=`${t[a]}${s[o]}`,c+=`${a===n?i:t[a]}${s[o]}`}return{propName:a,oldValue:l,newValue:c}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
var tc;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let ec;function nc(t,e){return ec(t,e)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function oc(t){ngDevMode&&_i(t);const e=t[3];return si(e)?e[3]:e}function ic(t){const e=(function n(t){ngDevMode&&oo(t,"component");let e=ri(t)?t:Ki(t);for(;e&&!(512&e[2]);)e=oc(e);return ngDevMode&&_i(e),e})(t);return ngDevMode&&oo(e[8],"RootView has no context. Perhaps it is disconnected?"),e[8]}function ac(t){return sc(t[13])}function rc(t){return sc(t[4])}function sc(t){for(;null!==t&&!si(t);)t=t[4];return t}function lc(t,e,n,o,i){if(null!=o){let a,r=!1;si(o)?a=o:ri(o)&&(r=!0,ngDevMode&&oo(o[0],"HOST must be defined for a component LView"),o=o[0]);const s=Ui(o);ngDevMode&&!Vi(e)&&ao(s),0===t&&null!==n?null==i?Cc(e,n,s):_c(e,n,s,i||null,!0):1===t&&null!==n?_c(e,n,s,i||null,!0):2===t?Rc(e,s,r):3===t&&(ngDevMode&&ngDevMode.rendererDestroyNode++,e.destroyNode(s)),null!=a&&(function a(t,e,n,o,i){ngDevMode&&bi(n);const a=n[7];a!==Ui(n)&&lc(e,t,o,a,i);for(let i=ai;i<n.length;i++){const r=n[i];Nc(r[1],r,t,e,o,a)}})(e,t,a,n,i)}}function cc(t,e){return ngDevMode&&ngDevMode.rendererCreateTextNode++,ngDevMode&&ngDevMode.rendererSetText++,Vi(t)?t.createText(e):t.createTextNode(e)}function dc(t,e,n){ngDevMode&&ngDevMode.rendererSetText++,Vi(t)?t.setValue(e,n):e.textContent=n}function pc(t,e){return ngDevMode&&ngDevMode.rendererCreateComment++,t.createComment(Il(e))}function mc(t,e,n){return ngDevMode&&ngDevMode.rendererCreateElement++,Vi(t)?t.createElement(e,n):null===n?t.createElement(e):t.createElementNS(n,e)}function uc(t,e){ngDevMode&&bi(t),ngDevMode&&oo(t[9],"A projected view should belong to a non-empty projected views collection");const n=t[9],o=n.indexOf(e),i=e[3];ngDevMode&&bi(i),1024&e[2]&&(e[2]&=-1025,ea(i,-1)),n.splice(o,1)}function fc(t,e){if(t.length<=ai)return;const n=ai+e,o=t[n];if(o){const i=o[17];null!==i&&i!==t&&uc(i,o),e>0&&(t[n-1][4]=o[4]);const a=Zr(t,ai+e);!(function i(t,e){Nc(t,e,e[11],2,null,null),e[0]=null,e[6]=null})(o[1],o);const r=a[19];null!==r&&r.detachView(a[1]),o[3]=null,o[4]=null,o[2]&=-129}return o}function gc(t,e){if(!(256&e[2])){const n=e[11];Vi(n)&&n.destroyNode&&Nc(t,e,n,3,null,null),(function n(t){let e=t[13];if(!e)return hc(t[1],t);for(;e;){let n=null;if(ri(e))n=e[13];else{ngDevMode&&bi(e);const t=e[10];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)ri(e)&&hc(e[1],e),e=e[3];null===e&&(e=t),ri(e)&&hc(e[1],e),n=e&&e[4]}e=n}})(e)}}function hc(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,(function n(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let t=0;t<n.length;t+=2){const o=e[n[t]];if(!(o instanceof Ya)){const e=n[t+1];if(Array.isArray(e))for(let t=0;t<e.length;t+=2){const n=o[e[t]],i=e[t+1];Ii(4,n,i);try{i.call(n)}finally{Ii(5,n,i)}}else{Ii(4,o,e);try{e.call(o)}finally{Ii(5,o,e)}}}}})(t,e),(function o(t,e){const n=t.cleanup,o=e[7];let i=-1;if(null!==n)for(let t=0;t<n.length-1;t+=2)if("string"==typeof n[t]){const a=n[t+1],r="function"==typeof a?a(e):Ui(e[a]),s=o[i=n[t+2]],l=n[t+3];"boolean"==typeof l?r.removeEventListener(n[t],s,l):l>=0?o[i=l]():o[i=-l].unsubscribe(),t+=2}else{const e=o[i=n[t+1]];n[t].call(e)}if(null!==o){for(let t=i+1;t<o.length;t++){const e=o[t];ngDevMode&&("Expecting instance cleanup function.","function"!=typeof(a=e)&&io("Expecting instance cleanup function.",null===a?"null":typeof a,"function","===")),e()}e[7]=null}var a})(t,e),1===e[1].type&&Vi(e[11])&&(ngDevMode&&ngDevMode.rendererDestroy++,e[11].destroy());const n=e[17];if(null!==n&&si(e[3])){n!==e[3]&&uc(n,e);const o=e[19];null!==o&&o.detachView(t)}}}function bc(t,e,n){return yc(t,e.parent,n)}function yc(t,e,n){let o=e;for(;null!==o&&40&o.type;)o=(e=o).parent;if(null===o)return n[0];if(ngDevMode&&Za(o,7),2&o.flags){ngDevMode&&mi(o,n);const e=t.data[o.directiveStart].encapsulation;if(e===Po.None||e===Po.Emulated)return null}return Gi(o,n)}function _c(t,e,n,o,i){ngDevMode&&ngDevMode.rendererInsertBefore++,Vi(t)?t.insertBefore(e,n,o,i):e.insertBefore(n,o,i)}function Cc(t,e,n){ngDevMode&&ngDevMode.rendererAppendChild++,ngDevMode&&oo(e,"parent node must be defined"),Vi(t)?t.appendChild(e,n):e.appendChild(n)}function Mc(t,e,n,o,i){null!==o?_c(t,e,n,o,i):Cc(t,e,n)}function vc(t,e){return Vi(t)?t.parentNode(e):e.parentNode}function xc(t,e,n){return wc(t,e,n)}function Oc(t,e,n){return 40&t.type?Gi(t,n):null}!(function(t){t[t.Important=1]="Important",t[t.DashCase=2]="DashCase"})(tc||(tc={}));let Pc,wc=Oc;function kc(t,e){wc=t,Pc=e}function Sc(t,e,n,o){const i=bc(t,o,e),a=e[11],r=xc(o.parent||e[6],o,e);if(null!=i)if(Array.isArray(n))for(let t=0;t<n.length;t++)Mc(a,i,n[t],r,!1);else Mc(a,i,n,r,!1);void 0!==Pc&&Pc(a,o,e,n,i)}function Dc(t,e){if(null!==e){ngDevMode&&Za(e,63);const n=e.type;if(3&n)return Gi(e,t);if(4&n)return Ac(-1,t[e.index]);if(8&n){const n=e.child;if(null!==n)return Dc(t,n);{const n=t[e.index];return si(n)?Ac(-1,n):Ui(n)}}if(32&n)return nc(e,t)()||Ui(t[e.index]);{const n=Ec(t,e);if(null!==n){if(Array.isArray(n))return n[0];const e=oc(t[16]);return ngDevMode&&Oi(e),Dc(e,n)}return Dc(t,e.next)}}return null}function Ec(t,e){if(null!==e){const n=t[16][6],o=e.projection;return ngDevMode&&(function n(t,e){oo(t[16],"Component views should exist."),oo(t[16][6].projection,e||"Components with projection nodes (<ng-content>) must have projection slots defined.")})(t),n.projection[o]}return null}function Ac(t,e){const n=ai+t+1;if(n<e.length){const t=e[n],o=t[1].firstChild;if(null!==o)return Dc(t,o)}return e[7]}function Rc(t,e,n){ngDevMode&&ngDevMode.rendererRemoveNode++;const o=vc(t,e);o&&(function i(t,e,n,o){Vi(t)?t.removeChild(e,n,o):e.removeChild(n)})(t,o,e,n)}function Tc(t,e,n,o,i,a,r){for(;null!=n;){ngDevMode&&mi(n,o),ngDevMode&&Za(n,63);const s=o[n.index],l=n.type;if(r&&0===e&&(s&&Vl(Ui(s),o),n.flags|=4),64!=(64&n.flags))if(8&l)Tc(t,e,n.child,o,i,a,!1),lc(e,t,i,s,a);else if(32&l){const r=nc(n,o);let l;for(;l=r();)lc(e,t,i,l,a);lc(e,t,i,s,a)}else 16&l?Ic(t,e,o,n,i,a):(ngDevMode&&Za(n,7),lc(e,t,i,s,a));n=r?n.projectionNext:n.next}}function Nc(t,e,n,o,i,a){Tc(n,o,t.firstChild,e,i,a,!1)}function Ic(t,e,n,o,i,a){const r=n[16],s=r[6];ngDevMode&&Xn(typeof o.projection,"number","expecting projection index");const l=s.projection[o.projection];if(Array.isArray(l))for(let n=0;n<l.length;n++)lc(e,t,i,l[n],a);else Tc(t,e,l,r[3],i,a,!0)}function zc(t,e,n){ngDevMode&&Zn(n,"'newValue' should be a string"),Vi(t)?t.setAttribute(e,"style",n):e.style.cssText=n,ngDevMode&&ngDevMode.rendererSetStyle++}function Hc(t,e,n){ngDevMode&&Zn(n,"'newValue' should be a string"),Vi(t)?""===n?t.removeAttribute(e,"class"):t.setAttribute(e,"class",n):e.className=n,ngDevMode&&ngDevMode.rendererSetClassName++}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Fc(t,e,n){ngDevMode&&Kn(e,"",'can not look for "" string.');let o=t.length;for(;;){const i=t.indexOf(e,n);if(-1===i)return i;if(0===i||t.charCodeAt(i-1)<=32){const n=e.length;if(i+n===o||t.charCodeAt(i+n)<=32)return i}n=i+1}}const Lc="ng-template";function Bc(t,e,n){ngDevMode&&Xn(e,e.toLowerCase(),"Class name expected to be lowercase.");let o=0;for(;o<t.length;){let i=t[o++];if(n&&"class"===i){if(i=t[o],-1!==Fc(i.toLowerCase(),e,0))return!0}else if(1===i){for(;o<t.length&&"string"==typeof(i=t[o++]);)if(i.toLowerCase()===e)return!0;return!1}}return!1}function Vc(t){return 4===t.type&&t.value!==Lc}function jc(t,e,n){return e===(4!==t.type||n?t.value:Lc)}function Uc(t,e,n){ngDevMode&&oo(e[0],"Selector should have a tag name");let o=4;const i=t.attrs||[],a=(function r(t){for(let e=0;e<t.length;e++)if(Ka(t[e]))return e;return t.length})(i);let s=!1;for(let r=0;r<e.length;r++){const l=e[r];if("number"!=typeof l){if(!s)if(4&o){if(o=2|1&o,""!==l&&!jc(t,l,n)||""===l&&1===e.length){if(Wc(o))return!1;s=!0}}else{const c=8&o?l:e[++r];if(8&o&&null!==t.attrs){if(!Bc(t.attrs,c,n)){if(Wc(o))return!1;s=!0}continue}const d=Gc(8&o?"class":l,i,Vc(t),n);if(-1===d){if(Wc(o))return!1;s=!0;continue}if(""!==c){let t;d>a?t="":(ngDevMode&&Kn(i[d],0,"We do not match directives on namespaced attributes"),t=i[d+1].toLowerCase());const e=8&o?t:null;if(e&&-1!==Fc(e,c,0)||2&o&&c!==t){if(Wc(o))return!1;s=!0}}}}else{if(!s&&!Wc(o)&&!Wc(l))return!1;if(s&&Wc(l))continue;s=!1,o=l|1&o}}return Wc(o)||s}function Wc(t){return 0==(1&t)}function Gc(t,e,n,o){if(null===e)return-1;let i=0;if(o||!n){let n=!1;for(;i<e.length;){const o=e[i];if(o===t)return i;if(3===o||6===o)n=!0;else{if(1===o||2===o){let t=e[++i];for(;"string"==typeof t;)t=e[++i];continue}if(4===o)break;if(0===o){i+=4;continue}}i+=n?1:2}return-1}return(function a(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){const o=t[n];if("number"==typeof o)return-1;if(o===e)return n;n++}return-1})(e,t)}function Yc(t,e,n=!1){for(let o=0;o<e.length;o++)if(Uc(t,e[o],n))return!0;return!1}function qc(t,e){t:for(let n=0;n<e.length;n++){const o=e[n];if(t.length===o.length){for(let e=0;e<t.length;e++)if(t[e]!==o[e])continue t;return!0}}return!1}function Zc(t,e){return t?":not("+e.trim()+")":e}function Xc(t){let e=t[0],n=1,o=2,i="",a=!1;for(;n<t.length;){let r=t[n];if("string"==typeof r)if(2&o){const e=t[++n];i+="["+r+(e.length>0?'="'+e+'"':"")+"]"}else 8&o?i+="."+r:4&o&&(i+=" "+r);else""===i||Wc(r)||(e+=Zc(a,i),i=""),o=r,a=a||!Wc(o);n++}return""!==i&&(e+=Zc(a,i)),e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Kc="undefined"==typeof ngDevMode||ngDevMode?{__brand__:"NO_CHANGE"}:{};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Jc(t){ngDevMode&&eo(t,0,"Can only advance forward"),Qc(aa(),ia(),Na()+t,ua())}function Qc(t,e,n,o){if(ngDevMode&&(function i(t,e){xi(oi,t[1].bindingStartIndex,e)})(e,n),!o)if(3==(3&e[2])){const o=t.preOrderCheckHooks;null!==o&&Ba(e,o,n)}else{const o=t.preOrderHooks;null!==o&&Va(e,o,0,n)}Ia(n)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function $c(t,e){return ngDevMode&&qn(t,0,32767),ngDevMode&&qn(e,0,32767),t<<17|e<<2}function td(t){return ngDevMode&&Yn(t,"expected number"),t>>17&32767}function ed(t){return ngDevMode&&Yn(t,"expected number"),2==(2&t)}function nd(t){return ngDevMode&&Yn(t,"expected number"),2|t}function od(t){return ngDevMode&&Yn(t,"expected number"),(131068&t)>>2}function id(t,e){return ngDevMode&&Yn(t,"expected number"),ngDevMode&&qn(e,0,32767),-131069&t|e<<2}function ad(t){return ngDevMode&&Yn(t,"expected number"),1==(1&t)}function rd(t){return ngDevMode&&Yn(t,"expected number"),1|t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function sd(t,e){if(!ngDevMode)throw new Error("This method should be guarded with `ngDevMode` so that it can be tree shaken in production!");Object.defineProperty(t,"debug",{value:e,enumerable:!1})}function ld(t,e){if(!ngDevMode)throw new Error("This method should be guarded with `ngDevMode` so that it can be tree shaken in production!");Object.defineProperty(t,"debug",{get:e,enumerable:!1})}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const cd=("undefined"==typeof ngDevMode||!!ngDevMode)&&Ao();let dd,pd,md;function ud(t){if(null==t)return"";const e=t.lastIndexOf("_Template");return"_"+(-1===e?t:t.substr(0,e))}function fd(t,e){const n=t.tView_.data,o=[],i=e?t.classBindings:t.styleBindings,a=td(i),r=od(i);let s=0!==r,l=s?r:a;for(;0!==l;){const t=n[l+1];o.unshift({key:n[l],index:l,isTemplate:s,prevDuplicate:ed(t),nextDuplicate:ad(t),nextIndex:od(t),prevIndex:td(t)}),l===a&&(s=!1),l=td(t)}return o.push((e?t.residualClasses:t.residualStyles)||null),o}function gd(t,e){for(;t;)e.push(t.template_),t=t.next}const hd=cd&&zl("TViewData")||null;let bd;const yd=cd&&zl("LViewBlueprint")||null,_d=cd&&zl("MatchesArray")||null,Cd=cd&&zl("TViewComponents")||null,Md=cd&&zl("TNodeLocalNames")||null,vd=cd&&zl("TNodeInitialInputs")||null;cd&&zl("TNodeInitialData");const xd=cd&&zl("LCleanup")||null,Od=cd&&zl("TCleanup")||null;function Pd(t){if(t){const e=t.debug;return oo(e,"Object does not have a debug representation."),e}return t}function wd(t,e=!1){const n=Ui(t);if(n)switch(n.nodeType){case Node.TEXT_NODE:return n.textContent;case Node.COMMENT_NODE:return`\x3c!--${n.textContent}--\x3e`;case Node.ELEMENT_NODE:const t=n.outerHTML;return e?t:t.split(">"+n.innerHTML+"<")[0]+">"}return null}class kd{constructor(t){this._raw_lView=t}get flags(){const t=this._raw_lView[2];return{__raw__flags__:t,initPhaseState:3&t,creationMode:!!(4&t),firstViewPass:!!(8&t),checkAlways:!!(16&t),dirty:!!(64&t),attached:!!(128&t),destroyed:!!(256&t),isRoot:!!(512&t),indexWithinInitPhase:t>>11}}get parent(){return Pd(this._raw_lView[3])}get hostHTML(){return wd(this._raw_lView[0],!0)}get html(){return(this.nodes||[]).map(Sd).join("")}get context(){return this._raw_lView[8]}get nodes(){const t=this._raw_lView;return Ed(t[1].firstChild,t)}get template(){return this.tView.template_}get tView(){return this._raw_lView[1]}get cleanup(){return this._raw_lView[7]}get injector(){return this._raw_lView[9]}get rendererFactory(){return this._raw_lView[10]}get renderer(){return this._raw_lView[11]}get sanitizer(){return this._raw_lView[12]}get childHead(){return Pd(this._raw_lView[13])}get next(){return Pd(this._raw_lView[4])}get childTail(){return Pd(this._raw_lView[14])}get declarationView(){return Pd(this._raw_lView[15])}get queries(){return this._raw_lView[19]}get tHost(){return this._raw_lView[6]}get decls(){return Dd(this.tView,this._raw_lView,oi,this.tView.bindingStartIndex)}get vars(){return Dd(this.tView,this._raw_lView,this.tView.bindingStartIndex,this.tView.expandoStartIndex)}get expando(){return Dd(this.tView,this._raw_lView,this.tView.expandoStartIndex,this._raw_lView.length)}get childViews(){const t=[];let e=this.childHead;for(;e;)t.push(e),e=e.next;return t}}function Sd(t){if("ElementContainer"===t.type)return(t.children||[]).map(Sd).join("");if("IcuContainer"===t.type)throw new Error("Not implemented");return wd(t.native,!0)||""}function Dd(t,e,n,o){let i=[];for(let a=n;a<o;a++)i.push({index:a,t:t.data[a],l:e[a]});return{start:n,end:o,length:o-n,content:i}}function Ed(t,e){if(t){const n=[];let o=t;for(;o;)n.push(Ad(o,e)),o=o.next;return n}return[]}function Ad(t,e){const n=Ui(e[t.index]),o=[],i=[],a=e[1];for(let n=t.directiveStart;n<t.directiveEnd;n++)o.push(a.data[n].type),i.push(e[n]);return{html:wd(n),type:qa(t.type),tNode:t,native:n,children:Ed(t.child,e),factories:o,instances:i,injector:Rd(t,a,e),get injectorResolutionPath(){return t.debugNodeInjectorPath(e)}}}function Rd(t,e,n){const o=[];for(let n=t.providerIndexStart_;n<t.providerIndexEnd_;n++)o.push(e.data[n]);const i=[];for(let n=t.providerIndexEnd_;n<t.directiveEnd;n++)i.push(e.data[n]);return{bloom:Nd(n,t.injectorIndex),cumulativeBloom:Nd(e.data,t.injectorIndex),providers:i,viewProviders:o,parentInjectorIndex:n[t.providerIndexStart_-1]}}function Td(t,e){const n=t[e];if("number"!=typeof n)return"????????";const o="00000000"+n.toString(2);return o.substring(o.length-8)}function Nd(t,e){return e<0?"NO_NODE_INJECTOR":`${Td(t,e+7)}_${Td(t,e+6)}_${Td(t,e+5)}_${Td(t,e+4)}_${Td(t,e+3)}_${Td(t,e+2)}_${Td(t,e+1)}_${Td(t,e+0)}`}class Id{constructor(t){this._raw_lContainer=t}get hasTransplantedViews(){return this._raw_lContainer[2]}get views(){return this._raw_lContainer.slice(ai).map(Pd)}get parent(){return Pd(this._raw_lContainer[3])}get movedViews(){return this._raw_lContainer[9]}get host(){return this._raw_lContainer[0]}get native(){return this._raw_lContainer[7]}get next(){return Pd(this._raw_lContainer[4])}}const zd=Promise.resolve(null);function Hd(t,e){const n=t.contentQueries;if(null!==n)for(let o=0;o<n.length;o+=2){const i=n[o],a=n[o+1];if(-1!==a){const n=t.data[a];ngDevMode&&oo(n,"DirectiveDef not found."),ngDevMode&&oo(n.contentQueries,"contentQueries function should be defined"),Pa(i),n.contentQueries(2,e[a],a)}}}function Fd(t,e,n,o,i,a,r,s,l,c){const d=ngDevMode?(function p(t){return(function e(t,n){switch(t){case 0:return void 0===md&&(md=new(zl("LRootView"))),md;case 1:void 0===dd&&(dd=new Map);let t=dd.get(n);return void 0===t&&(t=new(zl("LComponentView"+ud(n))),dd.set(n,t)),t;case 2:void 0===pd&&(pd=new Map);let e=pd.get(n);return void 0===e&&(e=new(zl("LEmbeddedView"+ud(n))),pd.set(n,e)),e}})(t.type,t.template&&t.template.name).concat(t.blueprint)})(e):e.blueprint.slice();return d[0]=i,d[2]=140|o,ta(d),ngDevMode&&e.declTNode&&t&&mi(e.declTNode,t),d[3]=d[15]=t,d[8]=n,d[10]=r||t&&t[10],ngDevMode&&oo(d[10],"RendererFactory is required"),d[11]=s||t&&t[11],ngDevMode&&oo(d[11],"Renderer is required"),d[12]=l||t&&t[12]||null,d[9]=c||t&&t[9]||null,d[6]=a,ngDevMode&&Xn(2!=e.type||null!==t,!0,"Embedded views must have parentLView"),d[16]=2==e.type?t[16]:d,ngDevMode&&(function m(t){sd(t,new kd(t))})(d),d}function Ld(t,e,n,o,i){ngDevMode&&0!==e&&no(e,oi,"TNodes can't be in the LView header."),ngDevMode&&(function a(t){2!==t&&1!==t&&4!==t&&8!==t&&32!==t&&16!==t&&64!==t&&io(`Expected TNodeType to have only a single type selected, but got ${qa(t)}.`)})(n);let r=t.data[e];if(null===r)r=Bd(t,e,n,o,i),(function s(){return na.lFrame.inI18n})()&&(r.flags|=64);else if(64&r.type){r.type=n,r.value=o,r.attrs=i;const a=ca();r.injectorIndex=null===a?-1:a.injectorIndex,ngDevMode&&ui(r,t),ngDevMode&&Xn(e,r.index,"Expecting same index")}return da(r,!0),r}function Bd(t,e,n,o,i){const a=la(),r=pa(),s=t.data[e]=(function l(t,e,n,o,i,a){ngDevMode&&0!==o&&no(o,oi,"TNodes can't be in the LView header."),ngDevMode&&Qn(a,void 0,"'undefined' is not valid value for 'attrs'"),ngDevMode&&ngDevMode.tNode++,ngDevMode&&e&&ui(e,t);let r=e?e.injectorIndex:-1;const s=ngDevMode?new class{constructor(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y,_,C,M,v,x,O,P,w,k,S,D,E,A){this.tView_=t,this.type=e,this.index=n,this.insertBeforeIndex=o,this.injectorIndex=i,this.directiveStart=a,this.directiveEnd=r,this.directiveStylingLast=s,this.propertyBindings=l,this.flags=c,this.providerIndexes=d,this.value=p,this.attrs=m,this.mergedAttrs=u,this.localNames=f,this.initialInputs=g,this.inputs=h,this.outputs=b,this.tViews=y,this.next=_,this.projectionNext=C,this.child=M,this.parent=v,this.projection=x,this.styles=O,this.stylesWithoutHost=P,this.residualStyles=w,this.classes=k,this.classesWithoutHost=S,this.residualClasses=D,this.classBindings=E,this.styleBindings=A}debugNodeInjectorPath(t){const e=[];let n=lr(this,t);if(-1===n){const e=cr(this,t);e!==Ga&&(n=er(e),t=nr(e,t))}for(;-1!==n;){ngDevMode&&Pi(t,n),e.push(Ad(t[1].data[n+8],t));const o=t[n+8];o===Ga?n=-1:(n=er(o),t=nr(o,t))}return e}get type_(){return qa(this.type)||`TNodeType.?${this.type}?`}get flags_(){const t=[];return 16&this.flags&&t.push("TNodeFlags.hasClassInput"),8&this.flags&&t.push("TNodeFlags.hasContentQuery"),32&this.flags&&t.push("TNodeFlags.hasStyleInput"),128&this.flags&&t.push("TNodeFlags.hasHostBindings"),2&this.flags&&t.push("TNodeFlags.isComponentHost"),1&this.flags&&t.push("TNodeFlags.isDirectiveHost"),64&this.flags&&t.push("TNodeFlags.isDetached"),4&this.flags&&t.push("TNodeFlags.isProjected"),t.join("|")}get template_(){if(1&this.type)return this.value;const t=[],e="string"==typeof this.value&&this.value||this.type_;if(t.push("<",e),this.flags&&t.push(" ",this.flags_),this.attrs)for(let e=0;e<this.attrs.length;){const n=this.attrs[e++];if("number"==typeof n)break;const o=this.attrs[e++];t.push(" ",n,'="',o,'"')}return t.push(">"),gd(this.child,t),t.push("</",e,">"),t.join("")}get styleBindings_(){return fd(this,!1)}get classBindings_(){return fd(this,!0)}get providerIndexStart_(){return 1048575&this.providerIndexes}get providerIndexEnd_(){return this.providerIndexStart_+(this.providerIndexes>>>20)}}(t,n,o,null,r,-1,-1,-1,null,0,0,i,a,null,null,void 0,null,null,null,null,null,null,e,null,null,null,void 0,null,null,void 0,0,0):{type:n,index:o,insertBeforeIndex:null,injectorIndex:r,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:i,attrs:a,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0};return ngDevMode&&Object.seal(s),s})(t,r?a:a&&a.parent,n,e,o,i);return null===t.firstChild&&(t.firstChild=s),null!==a&&(r?null==a.child&&null!==s.parent&&(a.child=s):null===a.next&&(a.next=s)),s}function Vd(t,e,n,o){if(0===n)return-1;ngDevMode&&(Ci(t),Jn(t,e[1],"`LView` must be associated with `TView`!"),Xn(t.data.length,e.length,"Expecting LView to be same size as TView"),Xn(t.data.length,t.blueprint.length,"Expecting Blueprint to be same size as TView"),Mi(t));const i=e.length;for(let i=0;i<n;i++)e.push(o),t.blueprint.push(o),t.data.push(null);return i}function jd(t,e,n){ngDevMode&&Xn(Ji(e),!0,"Should be run in creation mode"),Sa(e);try{const o=t.viewQuery;null!==o&&Pp(1,o,n);const i=t.template;null!==i&&Gd(t,e,i,1,n),t.firstCreatePass&&(t.firstCreatePass=!1),t.staticContentQueries&&Hd(t,e),t.staticViewQueries&&Pp(2,t.viewQuery,n);const a=t.components;null!==a&&(function o(t,e){for(let n=0;n<e.length;n++)_p(t,e[n])})(e,a)}catch(e){throw t.firstCreatePass&&(t.incompleteFirstPass=!0),e}finally{e[2]&=-5,Ta()}}function Ud(t,e,n,o){ngDevMode&&Xn(Ji(e),!1,"Should be run in update mode");const i=e[2];if(256==(256&i))return;Sa(e);const a=ua();try{ta(e),ba(t.bindingStartIndex),null!==n&&Gd(t,e,n,2,o);const r=3==(3&i);if(!a)if(r){const n=t.preOrderCheckHooks;null!==n&&Ba(e,n,null)}else{const n=t.preOrderHooks;null!==n&&Va(e,n,0,null),ja(e,0)}if((function r(t){for(let e=ac(t);null!==e;e=rc(e)){if(!e[2])continue;const t=e[9];ngDevMode&&oo(t,"Transplanted View flags set but missing MOVED_VIEWS");for(let e=0;e<t.length;e++){const n=t[e],o=n[3];ngDevMode&&bi(o),0==(1024&n[2])&&ea(o,1),n[2]|=1024}}})(e),(function s(t){for(let e=ac(t);null!==e;e=rc(e))for(let t=ai;t<e.length;t++){const n=e[t],o=n[1];ngDevMode&&oo(o,"TView must be allocated"),Qi(n)&&Ud(o,n,o.template,n[8])}})(e),null!==t.contentQueries&&Hd(t,e),!a)if(r){const n=t.contentCheckHooks;null!==n&&Ba(e,n)}else{const n=t.contentHooks;null!==n&&Va(e,n,1),ja(e,1)}!(function l(t,e){const n=t.hostBindingOpCodes;if(null!==n)try{for(let t=0;t<n.length;t++){const o=n[t];if(o<0)Ia(~o);else{const i=o,a=n[++t],r=n[++t];Ma(a,i),r(2,e[i])}}}finally{Ia(-1)}})(t,e);const s=t.components;null!==s&&(function c(t,e){for(let n=0;n<e.length;n++)bp(t,e[n])})(e,s);const l=t.viewQuery;if(null!==l&&Pp(2,l,o),!a)if(r){const n=t.viewCheckHooks;null!==n&&Ba(e,n)}else{const n=t.viewHooks;null!==n&&Va(e,n,2),ja(e,2)}!0===t.firstUpdatePass&&(t.firstUpdatePass=!1),a||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,ea(e[3],-1))}finally{Ta()}}function Wd(t,e,n,o){const i=e[10],a=!ua(),r=Ji(e);try{a&&!r&&i.begin&&i.begin(),r&&jd(t,e,o),Ud(t,e,n,o)}finally{a&&!r&&i.end&&i.end()}}function Gd(t,e,n,o,i){const a=Na(),r=2&o;try{Ia(-1),r&&e.length>oi&&Qc(t,e,oi,ua()),Ii(r?2:0,i),n(o,i)}finally{Ia(a),Ii(r?3:1,i)}}function Yd(t,e,n){if(li(e)){const o=e.directiveEnd;for(let i=e.directiveStart;i<o;i++){const e=t.data[i];e.contentQueries&&e.contentQueries(1,n[i],i)}}}function qd(t,e,n){oa()&&((function o(t,e,n,i){const a=n.directiveStart,r=n.directiveEnd;t.firstCreatePass||rr(n,e),Vl(i,e);const s=n.initialInputs;for(let o=a;o<r;o++){const i=t.data[o],r=pi(i);r&&(ngDevMode&&Za(n,3),dp(e,n,i));const l=yr(e,t,o,n);Vl(l,e),null!==s&&up(e,o-a,l,i,n,s),r&&(Zi(n.index,e)[8]=l)}})(t,e,n,Gi(n,e)),128==(128&n.flags)&&(function i(t,e,n){const o=n.directiveStart,i=n.directiveEnd,a=n.index,r=(function s(){return na.lFrame.currentDirectiveIndex})();try{Ia(a);for(let n=o;n<i;n++){const o=t.data[n],i=e[n];va(n),null===o.hostBindings&&0===o.hostVars&&null===o.hostAttrs||ap(o,i)}}finally{Ia(-1),va(r)}})(t,e,n))}function Zd(t,e,n=Gi){const o=e.localNames;if(null!==o){let i=e.index+1;for(let a=0;a<o.length;a+=2){const r=o[a+1],s=-1===r?n(e,t):t[r];t[i++]=s}}}function Xd(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=Kd(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function Kd(t,e,n,o,i,a,r,s,l,c){ngDevMode&&ngDevMode.tView++;const d=oi+o,p=d+i,m=(function u(t,e){const n=ngDevMode?new yd:[];for(let o=0;o<e;o++)n.push(o<t?null:Kc);return n})(d,p),f="function"==typeof c?c():c,g=m[1]=ngDevMode?new class{constructor(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y,_,C,M,v,x,O,P,w,k,S,D,E,A){this.type=t,this.blueprint=e,this.template=n,this.queries=o,this.viewQuery=i,this.declTNode=a,this.data=r,this.bindingStartIndex=s,this.expandoStartIndex=l,this.hostBindingOpCodes=c,this.firstCreatePass=d,this.firstUpdatePass=p,this.staticViewQueries=m,this.staticContentQueries=u,this.preOrderHooks=f,this.preOrderCheckHooks=g,this.contentHooks=h,this.contentCheckHooks=b,this.viewHooks=y,this.viewCheckHooks=_,this.destroyHooks=C,this.cleanup=M,this.contentQueries=v,this.components=x,this.directiveRegistry=O,this.pipeRegistry=P,this.firstChild=w,this.schemas=k,this.consts=S,this.incompleteFirstPass=D,this._decls=E,this._vars=A}get template_(){const t=[];return gd(this.firstChild,t),t.join("")}get type_(){return ii[this.type]||`TViewType.?${this.type}?`}}(t,m,n,null,s,e,(function h(t){return void 0===bd&&(bd=new hd),bd.concat(t)})(m).fill(null,d),d,p,null,!0,!0,!1,!1,null,null,null,null,null,null,null,null,null,null,"function"==typeof a?a():a,"function"==typeof r?r():r,null,l,f,!1,o,i):{type:t,blueprint:m,template:n,queries:null,viewQuery:s,declTNode:e,data:m.slice().fill(null,d),bindingStartIndex:d,expandoStartIndex:p,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:"function"==typeof a?a():a,pipeRegistry:"function"==typeof r?r():r,firstChild:null,schemas:l,consts:f,incompleteFirstPass:!1};return ngDevMode&&Object.seal(g),g}function Jd(t,e,n,o){const i=Sp(e);null===n?(ngDevMode&&Object.freeze(Dp(t)),i.push(o)):(i.push(n),t.firstCreatePass&&Dp(t).push(o,i.length-1))}function Qd(t,e,n){for(let o in t)if(t.hasOwnProperty(o)){const i=t[o];(n=null===n?{}:n).hasOwnProperty(o)?n[o].push(e,i):n[o]=[e,i]}return n}function $d(t,e,n,o,i,a,r,s){ngDevMode&&Qn(i,Kc,"Incoming value should never be NO_CHANGE.");const l=Gi(e,n);let c,d=e.inputs;if(!s&&null!=d&&(c=d[o]))Rp(t,n,c,o,i),ci(e)&&(function p(t,e){ngDevMode&&_i(t);const n=Zi(e,t);16&n[2]||(n[2]|=64)})(n,e.index),ngDevMode&&(function m(t,e,n,o,i){if(7&n)for(let a=0;a<o.length;a+=2)tp(t,e,n,o[a+1],i)})(n,l,e.type,c,i);else if(3&e.type){if(o=(function u(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t})(o),ngDevMode){if((function f(t){if(t.toLowerCase().startsWith("on")){const e=`Binding to event property '${t}' is disallowed for security reasons, please use (${t.slice(2)})=...\nIf '${t}' is a directive input, make sure the directive is imported by the current module.`;throw new Error(e)}})(o),!(function g(t,e,n,o){return!(null!==t.schemas&&!(ep(t,o.value)||n in e||Ja(n))&&"undefined"!=typeof Node&&null!==Node&&e instanceof Node)})(t,l,o,e))return void np(o,e);ngDevMode.rendererSetProperty++}i=null!=r?r(i,e.value||"",o):i,Vi(a)?a.setProperty(l,o,i):Ja(o)||(l.setProperty?l.setProperty(o,i):l[o]=i)}else 12&e.type&&ngDevMode&&!ep(t,e.value)&&np(o,e)}function tp(t,e,n,o,i){const a=t[11];o=(function r(t){return`ng-reflect-${t=(function e(t){return t.replace(Hl,((...t)=>"-"+t[1].toLowerCase()))})(t.replace(/[$@]/g,"_"))}`})(o);const s=(function l(t){try{return null!=t?t.toString().slice(0,30):t}catch(t){return"[ERROR] Exception while trying to serialize the value"}})(i);if(3&n)null==i?Vi(a)?a.removeAttribute(e,o):e.removeAttribute(o):Vi(a)?a.setAttribute(e,o,s):e.setAttribute(o,s);else{const t=Il(`bindings=${JSON.stringify({[o]:s},null,2)}`);Vi(a)?a.setValue(e,t):e.textContent=t}}function ep(t,e){const n=t.schemas;if(null!==n)for(let t=0;t<n.length;t++){const o=n[t];if(o===Rl||o===Al&&e&&e.indexOf("-")>-1)return!0}return!1}function np(t,e){console.error(Bn("303",`Can't bind to '${t}' since it isn't a known property of '${e.value}'.`))}function op(t,e,n,o){ngDevMode&&Ci(t);let i=!1;if(oa()){const a=(function a(t,e,n){ngDevMode&&Ci(t),ngDevMode&&Za(n,15);const o=t.directiveRegistry;let i=null;if(o)for(let a=0;a<o.length;a++){const r=o[a];Yc(n,r.selectors,!1)&&(i||(i=ngDevMode?new _d:[]),dr(rr(n,e),t,r.type),pi(r)?(ngDevMode&&(Za(n,2,`"${n.value}" tags cannot be used as component hosts. Please use a different tag to activate the ${Rn(r.type)} component.`),2&n.flags&&Ql(n)),rp(t,n),i.unshift(r)):i.push(r))}return i})(t,e,n),r=null===o?null:{"":-1};if(null!==a){i=!0,lp(n,t.data.length,a.length);for(let t=0;t<a.length;t++){const e=a[t];e.providersResolver&&e.providersResolver(e)}let o=!1,s=!1,l=Vd(t,e,a.length,null);ngDevMode&&Jn(l,n.directiveStart,"TNode.directiveStart should point to just allocated space");for(let i=0;i<a.length;i++){const c=a[i];n.mergedAttrs=Qa(n.mergedAttrs,c.hostAttrs),cp(t,n,e,l,c),sp(l,c,r),null!==c.contentQueries&&(n.flags|=8),null===c.hostBindings&&null===c.hostAttrs&&0===c.hostVars||(n.flags|=128);const d=c.type.prototype;!o&&(d.ngOnChanges||d.ngOnInit||d.ngDoCheck)&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n.index),o=!0),s||!d.ngOnChanges&&!d.ngDoCheck||((t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n.index),s=!0),l++}!(function r(t,e){ngDevMode&&Ci(t);const n=e.directiveStart,o=e.directiveEnd,i=t.data,a=e.attrs,r=ngDevMode?new vd:[];let s=null,l=null;for(let t=n;t<o;t++){const n=i[t],o=n.inputs,c=null===a||Vc(e)?null:fp(o,a);r.push(c),s=Qd(o,t,s),l=Qd(n.outputs,t,l)}null!==s&&(s.hasOwnProperty("class")&&(e.flags|=16),s.hasOwnProperty("style")&&(e.flags|=32)),e.initialInputs=r,e.inputs=s,e.outputs=l})(t,n)}r&&(function s(t,e,n){if(e){const o=t.localNames=ngDevMode?new Md:[];for(let t=0;t<e.length;t+=2){const i=n[e[t+1]];if(null==i)throw new Fn("301",`Export of name '${e[t+1]}' not found!`);o.push(e[t],i)}}})(n,o,r)}return n.mergedAttrs=Qa(n.mergedAttrs,n.attrs),i}function ip(t,e,n,o,i,a){ngDevMode&&Ci(t);const r=a.hostBindings;if(r){let n=t.hostBindingOpCodes;null===n&&(n=t.hostBindingOpCodes=[]);const a=~e.index;(function s(t){let e=t.length;for(;e>0;){const n=t[--e];if("number"==typeof n&&n<0)return n}return 0})(n)!=a&&n.push(a),n.push(o,i,r)}}function ap(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function rp(t,e){ngDevMode&&Ci(t),e.flags|=2,(t.components||(t.components=ngDevMode?new Cd:[])).push(e.index)}function sp(t,e,n){if(n){if(e.exportAs)for(let o=0;o<e.exportAs.length;o++)n[e.exportAs[o]]=t;pi(e)&&(n[""]=t)}}function lp(t,e,n){ngDevMode&&Kn(n,t.directiveEnd-t.directiveStart,"Reached the max number of directives"),t.flags|=1,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function cp(t,e,n,o,i){ngDevMode&&no(o,oi,"Must be in Expando section"),t.data[o]=i;const a=i.factory||(i.factory=wi(i.type,!0)),r=new Ya(a,pi(i),null);t.blueprint[o]=r,n[o]=r,ip(t,e,0,o,Vd(t,n,i.hostVars,Kc),i)}function dp(t,e,n){const o=Gi(e,t),i=Xd(n),a=t[10],r=Cp(t,Fd(t,i,null,n.onPush?64:16,o,e,a,a.createRenderer(o,n),null,null));t[e.index]=r}function pp(t,e,n,o,i,a){ngDevMode&&(Qn(o,Kc,"Incoming value should never be NO_CHANGE."),(function r(t){if(t.toLowerCase().startsWith("on")){const e=`Binding to event attribute '${t}' is disallowed for security reasons, please use (${t.slice(2)})=...`;throw new Error(e)}})(n),Za(t,2,`Attempted to set attribute \`${n}\` on a container node. Host bindings are not valid on ng-container or ng-template.`));const s=Gi(t,e);mp(e[11],s,a,t.value,n,o,i)}function mp(t,e,n,o,i,a,r){if(null==a)ngDevMode&&ngDevMode.rendererRemoveAttribute++,Vi(t)?t.removeAttribute(e,i,n):e.removeAttribute(i);else{ngDevMode&&ngDevMode.rendererSetAttribute++;const s=null==r?Vn(a):r(a,o||"",i);Vi(t)?t.setAttribute(e,i,s,n):n?e.setAttributeNS(n,i,s):e.setAttribute(i,s)}}function up(t,e,n,o,i,a){const r=a[e];if(null!==r){const e=o.setInput;for(let a=0;a<r.length;){const s=r[a++],l=r[a++],c=r[a++];null!==e?o.setInput(n,c,s,l):n[l]=c,ngDevMode&&tp(t,Gi(i,t),i.type,l,c)}}}function fp(t,e){let n=null,o=0;for(;o<e.length;){const i=e[o];if(0!==i)if(5!==i){if("number"==typeof i)break;t.hasOwnProperty(i)&&(null===n&&(n=[]),n.push(i,t[i],e[o+1])),o+=2}else o+=2;else o+=4}return n}const gp=("undefined"==typeof ngDevMode||ngDevMode)&&Ao()&&zl("LContainer");function hp(t,e,n,o){ngDevMode&&_i(e),ngDevMode&&!Vi(e[11])&&ao(n);const i=new(ngDevMode?gp:Array)(t,!0,!1,e,null,0,o,n,null,null);return ngDevMode&&Xn(i.length,ai,"Should allocate correct number of slots for LContainer header."),ngDevMode&&(function a(t){sd(t,new Id(t))})(i),i}function bp(t,e){ngDevMode&&Xn(Ji(t),!1,"Should be run in update mode");const n=Zi(e,t);if(Qi(n)){const t=n[1];80&n[2]?Ud(t,n,t.template,n[8]):n[5]>0&&yp(n)}}function yp(t){for(let e=ac(t);null!==e;e=rc(e))for(let t=ai;t<e.length;t++){const n=e[t];if(1024&n[2]){const t=n[1];ngDevMode&&oo(t,"TView must be allocated"),Ud(t,n,t.template,n[8])}else n[5]>0&&yp(n)}const e=t[1].components;if(null!==e)for(let n=0;n<e.length;n++){const o=Zi(e[n],t);Qi(o)&&o[5]>0&&yp(o)}}function _p(t,e){ngDevMode&&Xn(Ji(t),!0,"Should be run in creation mode");const n=Zi(e,t),o=n[1];!(function i(t,e){for(let n=e.length;n<t.blueprint.length;n++)e.push(t.blueprint[n])})(o,n),jd(o,n,n[8])}function Cp(t,e){return t[13]?t[14][4]=e:t[13]=e,t[14]=e,e}function Mp(t){for(;t;){t[2]|=64;const e=oc(t);if(0!=(512&t[2])&&!e)return t;t=e}return null}function vp(t){for(let e=0;e<t.components.length;e++){const n=t.components[e],o=Ki(n),i=o[1];Wd(i,o,i.template,n)}}function xp(t,e,n){const o=e[10];o.begin&&o.begin();try{Ud(t,e,t.template,n)}catch(t){throw Ap(e,t),t}finally{o.end&&o.end()}}function Op(t){vp(t[8])}function Pp(t,e,n){ngDevMode&&oo(e,"View queries function to execute must be defined."),Pa(0),e(t,n)}function wp(t,e,n,o,...i){if(null===t[o]&&(null==e.inputs||!e.inputs[n])){(e.propertyBindings||(e.propertyBindings=[])).push(o);let a=n;i.length>0&&(a+=Kl+i.join(Kl)),t[o]=a}}const kp=zd;function Sp(t){return t[7]||(t[7]=ngDevMode?new xd:[])}function Dp(t){return t.cleanup||(t.cleanup=ngDevMode?new Od:[])}function Ep(t,e,n){return(null===t||pi(t))&&(n=(function o(t){for(;Array.isArray(t);){if("object"==typeof t[1])return t;t=t[0]}return null})(n[e.index])),n[11]}function Ap(t,e){const n=t[9],o=n?n.get(El,null):null;o&&o.handleError(e)}function Rp(t,e,n,o,i){for(let a=0;a<n.length;){const r=n[a++],s=n[a++],l=e[r];ngDevMode&&ro(e,r);const c=t.data[r];null!==c.setInput?c.setInput(l,i,o,s):l[s]=i}}function Tp(t,e,n){ngDevMode&&Zn(n,"Value should be a string"),ngDevMode&&Qn(n,Kc,"value should not be NO_CHANGE"),ngDevMode&&ro(t,e);const o=Wi(e,t);ngDevMode&&oo(o,"native element should exist"),dc(t[11],o,n)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Np(t,e,n){ngDevMode&&Ci(aa(),"Expecting to be called in first template pass only");let o=n?t.styles:null,i=n?t.classes:null,a=0;if(null!==e)for(let t=0;t<e.length;t++){const n=e[t];"number"==typeof n?a=n:1==a?i=Tn(i,n):2==a&&(o=Tn(o,n+": "+e[++t]+";"))}n?t.styles=o:t.stylesWithoutHost=o,n?t.classes=i:t.classesWithoutHost=i}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Ip=new Nr("INJECTOR",-1);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class zp{get(t,e=rs){if(e===rs){const e=new Error(`NullInjectorError: No provider for ${Rn(t)}!`);throw e.name="NullInjectorError",e}return e}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Hp=new Nr("Set Injector scope."),Fp={},Lp={},Bp=[];
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */let Vp;function jp(){return void 0===Vp&&(Vp=new zp),Vp}function Up(t,e=null,n=null,o){return new Wp(t,n,e||jp(),o)}class Wp{constructor(t,e,n,o=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const i=[];e&&Yr(e,(n=>this.processProvider(n,t,e))),Yr([t],(t=>this.processInjectorType(t,[],i))),this.records.set(Ip,qp(void 0,this));const a=this.records.get(Hp);this.scope=null!=a?a.value:null,this.source=o||("object"==typeof t?null:Rn(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach((t=>t.ngOnDestroy()))}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=rs,n=yo.Default){this.assertNotDestroyed();const o=ps(this);try{if(!(n&yo.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=(function i(t){return"function"==typeof t||"object"==typeof t&&t instanceof Nr})(t)&&po(t);e=n&&this.injectableDefInScope(n)?qp(Gp(t),Fp):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(n&yo.Self?jp():this.parent).get(t,e=n&yo.Optional&&e===rs?null:e)}catch(e){if("NullInjectorError"===e.name){if((e.ngTempTokenPath=e.ngTempTokenPath||[]).unshift(Rn(t)),o)throw e;return(function a(t,e,n,o){const i=t.ngTempTokenPath;throw e[ls]&&i.unshift(e[ls]),t.message=(function a(t,e,n,o=null){t=t&&"\n"===t.charAt(0)&&"ɵ"==t.charAt(1)?t.substr(2):t;let i=Rn(e);if(Array.isArray(e))i=e.map(Rn).join(" -> ");else if("object"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n];t.push(n+":"+("string"==typeof o?JSON.stringify(o):Rn(o)))}i=`{${t.join(", ")}}`}return`${n}${o?"("+o+")":""}[${i}]: ${t.replace(ss,"\n  ")}`})("\n"+t.message,i,n,o),t.ngTokenPath=i,t.ngTempTokenPath=null,t})(e,t,"R3InjectorError",this.source)}throw e}finally{ps(o)}}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach((t=>this.get(t)))}toString(){const t=[];return this.records.forEach(((e,n)=>t.push(Rn(n)))),`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}processInjectorType(t,e,n){if(!(t=zn(t)))return!1;let o=uo(t);const i=null==o&&t.ngModule||void 0,a=void 0===i?t:i;ngDevMode&&-1!==e.indexOf(a)&&Un(Rn(a),e.map(Rn));const r=-1!==n.indexOf(a);if(void 0!==i&&(o=uo(i)),null==o)return!1;if(null!=o.imports&&!r){let t;ngDevMode&&e.push(a),n.push(a);try{Yr(o.imports,(o=>{this.processInjectorType(o,e,n)&&(void 0===t&&(t=[]),t.push(o))}))}finally{ngDevMode&&e.pop()}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:o}=t[e];Yr(o,(t=>this.processProvider(t,n,o||Bp)))}}this.injectorDefTypes.add(a);const s=wi(a)||(()=>new a);this.records.set(a,qp(s,Fp));const l=o.providers;if(null!=l&&!r){const e=t;Yr(l,(t=>this.processProvider(t,e,l)))}return void 0!==i&&void 0!==t.providers}processProvider(t,e,n){let o=Xp(t=zn(t))?t:zn(t&&t.provide);const i=(function a(t,e,n){return Zp(t)?qp(void 0,t.useValue):qp(Yp(t,e,n),Fp)})(t,e,n);if(Xp(t)||!0!==t.multi){const t=this.records.get(o);ngDevMode&&t&&void 0!==t.multi&&Wn()}else{let e=this.records.get(o);e?ngDevMode&&void 0===e.multi&&Wn():(e=qp(void 0,Fp,!0),e.factory=()=>hs(e.multi),this.records.set(o,e)),o=t,e.multi.push(t)}this.records.set(o,i)}hydrate(t,e){return ngDevMode&&e.value===Lp?Un(Rn(t)):e.value===Fp&&(e.value=Lp,e.value=e.factory()),"object"==typeof e.value&&e.value&&(function n(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy})(e.value)&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&("string"==typeof t.providedIn?"any"===t.providedIn||t.providedIn===this.scope:this.injectorDefTypes.has(t.providedIn))}}function Gp(t){const e=po(t),n=null!==e?e.factory:wi(t);if(null!==n)return n;if(t instanceof Nr)throw new Error(`Token ${Rn(t)} is missing a ɵprov definition.`);if(t instanceof Function)return(function o(t){const e=t.length;if(e>0){const n=Xr(e,"?");throw new Error(`Can't resolve all parameters for ${Rn(t)}: (${n.join(", ")}).`)}const n=(function o(t){const e=t&&(t[fo]||t[ho]);if(e){const n=(function n(t){if(t.hasOwnProperty("name"))return t.name;const e=(""+t).match(/^function\s*([^\s(]+)/);return null===e?"":e[1]})(t);return console.warn(`DEPRECATED: DI is instantiating a token "${n}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${n}" class.`),e}return null})(t);return null!==n?()=>n.factory(t):()=>new t})(t);throw new Error("unreachable")}function Yp(t,e,n){let o;if(Xp(t)){const e=zn(t);return wi(e)||Gp(e)}if(Zp(t))o=()=>zn(t.useValue);else if((function i(t){return!(!t||!t.useFactory)})(t))o=()=>t.useFactory(...hs(t.deps||[]));else if((function a(t){return!(!t||!t.useExisting)})(t))o=()=>us(zn(t.useExisting));else{const i=zn(t&&(t.useClass||t.provide));if(ngDevMode&&!i&&(function r(t,e,n){let o="";throw t&&e&&(o=` - only instances of Provider and Type are allowed, got: [${e.map((t=>t==n?"?"+n+"?":"...")).join(", ")}]`),new Error(`Invalid provider for the NgModule '${Rn(t)}'`+o)})(e,n,t),!(function s(t){return!!t.deps})(t))return wi(i)||Gp(i);o=()=>new i(...hs(t.deps))}return o}function qp(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Zp(t){return null!==t&&"object"==typeof t&&cs in t}function Xp(t){return"function"==typeof t}const Kp=function Jp(t,e,n){return(function o(t,e=null,n=null,i){const a=Up(t,e,n,i);return a._resolveInjectorDefTypes(),a})({name:n},e,t,n)};class Qp{static create(t,e){return Array.isArray(t)?Kp(t,e,""):Kp(t.providers,t.parent,t.name||"")}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function $p(t){cm(t);const e=am(t,!1);return null===e?null:(void 0===e.component&&(e.component=(function n(t,e){const n=e[1].data[t];return 2&n.flags?e[n.directiveStart]:null})(e.nodeIndex,e.lView)),e.component)}function tm(t){cm(t);const e=am(t,!1);return null===e?null:e.lView[8]}function em(t){const e=am(t,!1);if(null===e)return null;let n,o=e.lView;for(ngDevMode&&_i(o);2===o[1].type&&(n=oc(o));)o=n;return 512&o[2]?null:o[8]}function nm(t){return[...ic(t).components]}function om(t){const e=am(t,!1);return null===e?Qp.NULL:new Mr(e.lView[1].data[e.nodeIndex],e.lView)}function im(t){const e=am(t);return void 0===e.directives&&(e.directives=Gl(e.nodeIndex,e.lView,!1)),null===e.directives?[]:[...e.directives]}function am(t,e=!0){const n=Fl(t);if(!n&&e)throw new Error(ngDevMode?`Unable to find context associated with ${jn(t)}`:"Invalid ng target");return n}function rm(t){return Fl(t).native}function sm(t){cm(t);const e=am(t,!1);if(null===e)return[];const n=e.lView,o=n[7],i=n[1].cleanup,a=[];if(i&&o)for(let e=0;e<i.length;){const r=i[e++],s=i[e++];if("string"==typeof r){const l=r,c=Ui(n[s]),d=o[i[e++]],p=i[e++],m="boolean"==typeof p||p>=0?"dom":"output",u="boolean"==typeof p&&p;t==c&&a.push({element:t,name:l,callback:d,useCapture:u,type:m})}}return a.sort(lm),a}function lm(t,e){return t.name==e.name?0:t.name<e.name?-1:1}function cm(t){if("undefined"!=typeof Element&&!(t instanceof Element))throw new Error("Expecting instance of DOM Element")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function dm(t){(function e(t){ngDevMode&&oo(t,"component");const e=Mp(Bl(t));ngDevMode&&oo(e[8],"rootContext should be defined"),(function n(t,e){if(0===t.flags&&t.clean==zd){let n;t.flags|=e,t.clean=new Promise((t=>n=t)),t.scheduler((()=>{if(1&t.flags&&(t.flags&=-2,vp(t)),2&t.flags){t.flags&=-3;const e=t.playerHandler;e&&e.flushPlayers()}t.clean=zd,n(null)}))}})(e[8],1)})(t),nm(t).forEach((t=>(function e(t){const e=Bl(t);xp(e[1],e,t)})(t)))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */Qp.THROW_IF_NOT_FOUND=rs,Qp.NULL=new zp,Qp.ɵprov=lo({token:Qp,providedIn:"any",factory:()=>us(Ip)}),Qp.__NG_ELEMENT_ID__=-1;let pm=!1;function mm(t,e){if("undefined"==typeof COMPILED||!COMPILED){const n=Eo;if(ngDevMode&&oo(e,"function not defined"),n){let o=n.ng;o||(o=n.ng={}),o[t]=e}}}function um(t,e){const n=Ki(t);ngDevMode&&oo(n,"LView is required");const o=n[1],i=sa();ngDevMode&&oo(i,"TNode is required"),La(o,i)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function fm(t){return Object.getPrototypeOf(t.prototype).constructor}function gm(t){let e=fm(t.type),n=!0;const o=[t];for(;e;){let i;if(pi(t))i=e.ɵcmp||e.ɵdir;else{if(e.ɵcmp)throw new Error("Directives cannot inherit Components");i=e.ɵdir}if(i){if(n){o.push(i);const e=t;e.inputs=hm(t.inputs),e.declaredInputs=hm(t.declaredInputs),e.outputs=hm(t.outputs);const n=i.hostBindings;n&&_m(t,n);const a=i.viewQuery,r=i.contentQueries;if(a&&bm(t,a),r&&ym(t,r),An(t.inputs,i.inputs),An(t.declaredInputs,i.declaredInputs),An(t.outputs,i.outputs),pi(i)&&i.data.animation){const e=t.data;e.animation=(e.animation||[]).concat(i.data.animation)}}const e=i.features;if(e)for(let o=0;o<e.length;o++){const i=e[o];i&&i.ngInherit&&i(t),i===gm&&(n=!1)}}e=Object.getPrototypeOf(e)}!(function i(t){let e=0,n=null;for(let o=t.length-1;o>=0;o--){const i=t[o];i.hostVars=e+=i.hostVars,i.hostAttrs=Qa(i.hostAttrs,n=Qa(n,i.hostAttrs))}})(o)}function hm(t){return t===Ro?{}:t===No?[]:t}function bm(t,e){const n=t.viewQuery;t.viewQuery=n?(t,o)=>{e(t,o),n(t,o)}:e}function ym(t,e){const n=t.contentQueries;t.contentQueries=n?(t,o,i)=>{e(t,o,i),n(t,o,i)}:e}function _m(t,e){const n=t.hostBindings;t.hostBindings=n?(t,o)=>{e(t,o),n(t,o)}:e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Cm=["providersResolver"],Mm=["template","decls","consts","vars","onPush","ngContentSelectors","styles","encapsulation","schemas"];
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let vm=null;function xm(){if(!vm){const t=Eo.Symbol;if(t&&t.iterator)vm=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(vm=n)}}}return vm}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Om(t,e){const n=wm(t),o=wm(e);if(n&&o)return(function i(t,e,n){const o=t[xm()](),i=e[xm()]();for(;;){const t=o.next(),e=i.next();if(t.done&&e.done)return!0;if(t.done||e.done)return!1;if(!n(t.value,e.value))return!1}})(t,e,Om);{const i=t&&("object"==typeof t||"function"==typeof t),a=e&&("object"==typeof e||"function"==typeof e);return!(n||!i||o||!a)||Object.is(t,e)}}class Pm{constructor(t){this.wrapped=t}static wrap(t){return new Pm(t)}static unwrap(t){return Pm.isWrapped(t)?t.wrapped:t}static isWrapped(t){return t instanceof Pm}}function wm(t){return!!km(t)&&(Array.isArray(t)||!(t instanceof Map)&&xm()in t)}function km(t){return null!==t&&("function"==typeof t||"object"==typeof t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Sm(t,e,n){return t[e]=n}function Dm(t,e){return ngDevMode&&ro(t,e),ngDevMode&&Qn(t[e],Kc,"Stored value should never be NO_CHANGE."),t[e]}function Em(t,e,n){ngDevMode&&Qn(n,Kc,"Incoming value should never be NO_CHANGE."),ngDevMode&&$n(e,t.length,"Slot should have been initialized to NO_CHANGE");const o=t[e];if(Object.is(o,n))return!1;if(ngDevMode&&ua()){const i=o!==Kc?o:void 0;if(!Om(i,n)){const a=(function i(t,e,n,o){const i=t[1].data,a=i[e];if("string"==typeof a)return a.indexOf(Kl)>-1?$l(t,e,e,a,o):{propName:a,oldValue:n,newValue:o};if(null===a){let n=e-1;for(;"string"!=typeof i[n]&&null===i[n+1];)n--;const a=i[n];if("string"==typeof a){const i=a.match(new RegExp(Kl,"g"));if(i&&i.length-1>e-n)return $l(t,n,e,a,o)}}return{propName:void 0,oldValue:n,newValue:o}})(t,e,i,n);!(function a(t,e,n,o){let i=`ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value${o?` for '${o}'`:""}: '${e}'. Current value: '${n}'.`;throw t&&(i+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook?"),new Fn("100",i)})(o===Kc,a.oldValue,a.newValue,a.propName)}return!1}return t[e]=n,!0}function Am(t,e,n,o){const i=Em(t,e,n);return Em(t,e+1,o)||i}function Rm(t,e,n,o,i){const a=Am(t,e,n,o);return Em(t,e+2,i)||a}function Tm(t,e,n,o,i,a){const r=Am(t,e,n,o);return Am(t,e+2,i,a)||r}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Nm(t,e,n,o){const i=ia(),a=ya();if(Em(i,a,e)){const r=aa(),s=za();pp(s,i,t,e,n,o),ngDevMode&&wp(r.data,s,"attr."+t,a)}return Nm}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Im(t,e){ngDevMode&&$n(2,e.length,"should have at least 3 values"),ngDevMode&&Xn(e.length%2,1,"should have an odd number of values");let n=!1,o=ha();for(let i=1;i<e.length;i+=2)n=Em(t,o++,e[i])||n;if(ba(o),!n)return Kc;let i=e[0];for(let t=1;t<e.length;t+=2)i+=Vn(e[t])+e[t+1];return i}function zm(t,e,n,o){return Em(t,ya(),n)?e+Vn(n)+o:Kc}function Hm(t,e,n,o,i,a){const r=Am(t,ha(),n,i);return _a(2),r?e+Vn(n)+o+Vn(i)+a:Kc}function Fm(t,e,n,o,i,a,r,s){const l=Rm(t,ha(),n,i,r);return _a(3),l?e+Vn(n)+o+Vn(i)+a+Vn(r)+s:Kc}function Lm(t,e,n,o,i,a,r,s,l,c){const d=Tm(t,ha(),n,i,r,l);return _a(4),d?e+Vn(n)+o+Vn(i)+a+Vn(r)+s+Vn(l)+c:Kc}function Bm(t,e,n,o,i,a,r,s,l,c,d,p){const m=ha();let u=Tm(t,m,n,i,r,l);return u=Em(t,m+4,d)||u,_a(5),u?e+Vn(n)+o+Vn(i)+a+Vn(r)+s+Vn(l)+c+Vn(d)+p:Kc}function Vm(t,e,n,o,i,a,r,s,l,c,d,p,m,u){const f=ha();let g=Tm(t,f,n,i,r,l);return g=Am(t,f+4,d,m)||g,_a(6),g?e+Vn(n)+o+Vn(i)+a+Vn(r)+s+Vn(l)+c+Vn(d)+p+Vn(m)+u:Kc}function jm(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g){const h=ha();let b=Tm(t,h,n,i,r,l);return b=Rm(t,h+4,d,m,f)||b,_a(7),b?e+Vn(n)+o+Vn(i)+a+Vn(r)+s+Vn(l)+c+Vn(d)+p+Vn(m)+u+Vn(f)+g:Kc}function Um(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b){const y=ha();let _=Tm(t,y,n,i,r,l);return _=Tm(t,y+4,d,m,f,h)||_,_a(8),_?e+Vn(n)+o+Vn(i)+a+Vn(r)+s+Vn(l)+c+Vn(d)+p+Vn(m)+u+Vn(f)+g+Vn(h)+b:Kc}function Wm(t,e,n,o,i,a,r,s){const l=ia(),c=aa(),d=t+oi,p=c.firstCreatePass?(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function m(t,e,n,o,i,a,r,s,l){ngDevMode&&Ci(e),ngDevMode&&ngDevMode.firstCreatePass++;const c=e.consts,d=Ld(e,t,4,r||null,$i(c,s));op(e,n,d,$i(c,l)),La(e,d);const p=d.tViews=Kd(2,d,o,i,a,e.directiveRegistry,e.pipeRegistry,null,e.schemas,c);return null!==e.queries&&(e.queries.template(e,d),p.queries=e.queries.embeddedTView(d)),d})(d,c,l,e,n,o,i,a,r):c.data[d];da(p,!1);const u=l[11].createComment(ngDevMode?"container":"");Sc(c,l,u,p),Vl(u,l),Cp(l,l[d]=hp(u,l,u,p)),di(p)&&qd(c,l,p),null!=r&&Zd(l,p,s)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Gm(t){return qi((function e(){return na.lFrame.contextLView})(),oi+t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Ym={"ɵɵdefineInjectable":lo,"ɵɵdefineInjector":co,"ɵɵinject":us,"ɵɵinvalidFactoryDep":fs},qm=En({provide:String,useValue:En});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Zm(t){return void 0!==t.useClass}function Xm(t){return void 0!==t.useFactory}function Km(t,e){const n=e||{providedIn:null},o={name:t.name,type:t,typeArgumentCount:0,providedIn:n.providedIn,userDeps:void 0};return(Zm(n)||Xm(n))&&void 0!==n.deps&&(o.userDeps=ws(n.deps)),Zm(n)?o.useClass=zn(n.useClass):(function i(t){return qm in t})(n)?o.useValue=zn(n.useValue):Xm(n)?o.useFactory=n.useFactory:(function a(t){return void 0!==t.useExisting})(n)&&(o.useExisting=zn(n.useExisting)),o}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */En({provide:String,useValue:En});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Jm=Sr("Injectable",void 0,void 0,void 0,((t,e)=>Qm(t,e))),Qm=function $m(t,e){let n=null,o=null;t.hasOwnProperty(fo)||Object.defineProperty(t,fo,{get:()=>(null===n&&(n=jr().compileInjectable(Ym,`ng:///${t.name}/ɵprov.js`,Km(t,e))),n)}),t.hasOwnProperty(Bo)||Object.defineProperty(t,Bo,{get:()=>{if(null===o){const n=Km(t,e),i=jr();o=i.compileFactory(Ym,`ng:///${t.name}/ɵfac.js`,{name:n.name,type:n.type,typeArgumentCount:n.typeArgumentCount,deps:Ps(t),injectFn:"inject",target:i.R3FactoryTarget.Injectable})}return o},configurable:!0})};function tu(t){return t.length>1?" ("+(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function e(t){const e=[];for(let n=0;n<t.length;++n){if(e.indexOf(t[n])>-1)return e.push(t[n]),e;e.push(t[n])}return e})(t.slice().reverse()).map((t=>Rn(t.token))).join(" -> ")+")":""}function eu(t,e,n,o){const i=[e],a=n(i),r=o?(function s(t,e){const n=`${t} caused by: ${e instanceof Error?e.message:e}`,o=Error(n);return o.ngOriginalError=e,o})(a,o):Error(a);return r.addKey=nu,r.keys=i,r.injectors=[t],r.constructResolvingMessage=n,r.ngOriginalError=o,r}function nu(t,e){this.injectors.push(t),this.keys.push(e),this.message=this.constructResolvingMessage(this.keys)}function ou(t,e){const n=[];for(let t=0,o=e.length;t<o;t++){const o=e[t];n.push(o&&0!=o.length?o.map(Rn).join(" "):"?")}return Error("Cannot resolve all parameters for '"+Rn(t)+"'("+n.join(", ")+"). Make sure that all the parameters are decorated with Inject or have valid type annotations and that '"+Rn(t)+"' is decorated with Injectable.")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class iu{constructor(t,e){if(this.token=t,this.id=e,!t)throw new Error("Token must be defined!");this.displayName=Rn(this.token)}static get(t){return au.get(zn(t))}static get numberOfKeys(){return au.numberOfKeys}}const au=new class{constructor(){this._allKeys=new Map}get(t){if(t instanceof iu)return t;if(this._allKeys.has(t))return this._allKeys.get(t);const e=new iu(t,iu.numberOfKeys);return this._allKeys.set(t,e),e}get numberOfKeys(){return this._allKeys.size}},ru=new
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class{constructor(t){this.reflectionCapabilities=t}updateCapabilities(t){this.reflectionCapabilities=t}factory(t){return this.reflectionCapabilities.factory(t)}parameters(t){return this.reflectionCapabilities.parameters(t)}annotations(t){return this.reflectionCapabilities.annotations(t)}propMetadata(t){return this.reflectionCapabilities.propMetadata(t)}hasLifecycleHook(t,e){return this.reflectionCapabilities.hasLifecycleHook(t,e)}getter(t){return this.reflectionCapabilities.getter(t)}setter(t){return this.reflectionCapabilities.setter(t)}method(t){return this.reflectionCapabilities.method(t)}importUri(t){return this.reflectionCapabilities.importUri(t)}resourceUri(t){return this.reflectionCapabilities.resourceUri(t)}resolveIdentifier(t,e,n,o){return this.reflectionCapabilities.resolveIdentifier(t,e,n,o)}resolveEnum(t,e){return this.reflectionCapabilities.resolveEnum(t,e)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */(new os);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class su{constructor(t,e,n){this.key=t,this.optional=e,this.visibility=n}static fromKey(t){return new su(t,!1,null)}}const lu=[];class cu{constructor(t,e,n){this.key=t,this.resolvedFactories=e,this.multiProvider=n,this.resolvedFactory=this.resolvedFactories[0]}}class du{constructor(t,e){this.factory=t,this.dependencies=e}}function pu(t){let e,n;if(t.useClass){const o=zn(t.useClass);e=ru.factory(o),n=gu(o)}else t.useExisting?(e=t=>t,n=[su.fromKey(iu.get(t.useExisting))]):t.useFactory?(e=t.useFactory,n=(function o(t,e){if(e){const n=e.map((t=>[t]));return e.map((e=>hu(t,e,n)))}return gu(t)})(t.useFactory,t.deps)):(e=()=>t.useValue,n=lu);return new du(e,n)}function mu(t){return new cu(iu.get(t.provide),[pu(t)],t.multi||!1)}function uu(t){const e=(function n(t,e){for(let n=0;n<t.length;n++){const o=t[n],i=e.get(o.key.id);if(i){if(o.multiProvider!==i.multiProvider)throw Error(`Cannot mix multi providers and regular providers, got: ${i} ${o}`);if(o.multiProvider)for(let t=0;t<o.resolvedFactories.length;t++)i.resolvedFactories.push(o.resolvedFactories[t]);else e.set(o.key.id,o)}else{let t;t=o.multiProvider?new cu(o.key,o.resolvedFactories.slice(),o.multiProvider):o,e.set(o.key.id,t)}}return e})(fu(t,[]).map(mu),new Map);return Array.from(e.values())}function fu(t,e){return t.forEach((t=>{if(t instanceof Ur)e.push({provide:t,useClass:t});else if(t&&"object"==typeof t&&void 0!==t.provide)e.push(t);else{if(!Array.isArray(t))throw(function n(t){return Error(`Invalid provider - only instances of Provider and Type are allowed, got: ${t}`)})(t);fu(t,e)}})),e}function gu(t){const e=ru.parameters(t);if(!e)return[];if(e.some((t=>null==t)))throw ou(t,e);return e.map((n=>hu(t,n,e)))}function hu(t,e,n){let o=null,i=!1;if(!Array.isArray(e))return bu(e instanceof ys?e.token:e,i,null);let a=null;for(let t=0;t<e.length;++t){const n=e[t];n instanceof Ur?o=n:n instanceof ys?o=n.token:n instanceof _s?i=!0:n instanceof Cs||n instanceof Ms?a=n:n instanceof Nr&&(o=n)}if(o=zn(o),null!=o)return bu(o,i,a);throw ou(t,n)}function bu(t,e,n){return new su(iu.get(t),e,n)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const yu={};class _u{static resolve(t){return uu(t)}static resolveAndCreate(t,e){const n=_u.resolve(t);return _u.fromResolvedProviders(n,e)}static fromResolvedProviders(t,e){return new Cu(t,e)}}class Cu{constructor(t,e){this._constructionCounter=0,this._providers=t,this.parent=e||null;const n=t.length;this.keyIds=[],this.objs=[];for(let e=0;e<n;e++)this.keyIds[e]=t[e].key.id,this.objs[e]=yu}get(t,e=rs){return this._getByKey(iu.get(t),null,e)}resolveAndCreateChild(t){const e=_u.resolve(t);return this.createChildFromResolved(e)}createChildFromResolved(t){const e=new Cu(t);return e.parent=this,e}resolveAndInstantiate(t){return this.instantiateResolved(_u.resolve([t])[0])}instantiateResolved(t){return this._instantiateProvider(t)}getProviderAtIndex(t){if(t<0||t>=this._providers.length)throw(function e(t){return Error(`Index ${t} is out-of-bounds.`)})(t);return this._providers[t]}_new(t){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw(function e(t,n){return eu(t,n,(function(t){return`Cannot instantiate cyclic dependency!${tu(t)}`}))})(this,t.key);return this._instantiateProvider(t)}_getMaxNumberOfObjects(){return this.objs.length}_instantiateProvider(t){if(t.multiProvider){const e=[];for(let n=0;n<t.resolvedFactories.length;++n)e[n]=this._instantiate(t,t.resolvedFactories[n]);return e}return this._instantiate(t,t.resolvedFactories[0])}_instantiate(t,e){const n=e.factory;let o,i;try{o=e.dependencies.map((t=>this._getByReflectiveDependency(t)))}catch(e){throw e.addKey&&e.addKey(this,t.key),e}try{i=n(...o)}catch(e){throw(function a(t,e,n,o){return eu(t,o,(function(t){const n=Rn(t[0].token);return`${e.message}: Error during instantiation of ${n}!${tu(t)}.`}),e)})(this,e,0,t.key)}return i}_getByReflectiveDependency(t){return this._getByKey(t.key,t.visibility,t.optional?null:rs)}_getByKey(t,e,n){return t===Cu.INJECTOR_KEY?this:e instanceof Cs?this._getByKeySelf(t,n):this._getByKeyDefault(t,n,e)}_getObjByKeyId(t){for(let e=0;e<this.keyIds.length;e++)if(this.keyIds[e]===t)return this.objs[e]===yu&&(this.objs[e]=this._new(this._providers[e])),this.objs[e];return yu}_throwOrNull(t,e){if(e!==rs)return e;throw(function n(t,e){return eu(t,e,(function(t){return`No provider for ${Rn(t[0].token)}!${tu(t)}`}))})(this,t)}_getByKeySelf(t,e){const n=this._getObjByKeyId(t.id);return n!==yu?n:this._throwOrNull(t,e)}_getByKeyDefault(t,e,n){let o;for(o=n instanceof Ms?this.parent:this;o instanceof Cu;){const e=o,n=e._getObjByKeyId(t.id);if(n!==yu)return n;o=e.parent}return null!==o?o.get(t.token,e):this._throwOrNull(t,e)}get displayName(){return`ReflectiveInjector(providers: [${(function t(e,n){const o=[];for(let t=0;t<e._providers.length;++t)o[t]=n(e.getProviderAtIndex(t));return o}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(this,(t=>' "'+t.key.displayName+'" ')).join(", ")}])`}toString(){return this.displayName}}function Mu(t,e=yo.Default){const n=ia();return null===n?(ngDevMode&&(function o(t){ngDevMode&&Kn(_o,t,"Calling ɵɵinject would cause infinite recursion")})(Mu),us(t,e)):ur(sa(),n,zn(t),e)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function vu(t,e,n){const o=ia(),i=ya();if(Em(o,i,e)){const a=aa(),r=za();$d(a,r,o,t,e,o[11],n,!1),ngDevMode&&wp(a.data,r,t,i)}return vu}function xu(t,e,n,o,i){const a=i?"class":"style";Rp(t,n,e.inputs[a],a,o)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Ou(t,e,n,o){const i=ia(),a=aa(),r=oi+t;ngDevMode&&Xn(ha(),a.bindingStartIndex,"elements should be created before any bindings"),ngDevMode&&ro(i,r);const s=i[11],l=i[r]=mc(s,e,(function c(){return na.lFrame.currentNamespace})()),d=a.firstCreatePass?(function p(t,e,n,o,i,a,r){ngDevMode&&Ci(e),ngDevMode&&ngDevMode.firstCreatePass++;const s=e.consts,l=Ld(e,t,2,i,$i(s,a)),c=op(e,n,l,$i(s,r));return ngDevMode&&(function d(t,e,n,o){if(null===t.schemas)return;const i=n.value;if(!o&&null!==i&&("undefined"!=typeof HTMLUnknownElement&&HTMLUnknownElement&&e instanceof HTMLUnknownElement||"undefined"!=typeof customElements&&i.indexOf("-")>-1&&!customElements.get(i))&&!ep(t,i)){let t=`'${i}' is not a known element:\n`;t+=`1. If '${i}' is an Angular component, then verify that it is part of this module.\n`,i&&i.indexOf("-")>-1?t+=`2. If '${i}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.`:t+="2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.",console.error(Bn("304",t))}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(e,o,l,c),null!==l.attrs&&Np(l,l.attrs,!1),null!==l.mergedAttrs&&Np(l,l.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,l),l})(r,a,i,l,e,n,o):a.data[r];da(d,!0);const m=d.mergedAttrs;null!==m&&Xa(s,l,m);const u=d.classes;null!==u&&Hc(s,l,u);const f=d.styles;null!==f&&zc(s,l,f),64!=(64&d.flags)&&Sc(a,i,l,d),0===(function g(){return na.lFrame.elementDepthCount})()&&Vl(l,i),(function h(){na.lFrame.elementDepthCount++})(),di(d)&&(qd(a,i,d),Yd(a,d,i)),null!==o&&Zd(i,d)}function Pu(){let t=sa();ngDevMode&&oo(t,"No parent node to close."),pa()?ma():(ngDevMode&&hi(sa()),t=t.parent,da(t,!1));const e=t;ngDevMode&&Za(e,3),(function n(){na.lFrame.elementDepthCount--})();const o=aa();o.firstCreatePass&&(La(o,t),li(t)&&o.queries.elementEnd(t)),null!=e.classesWithoutHost&&(function i(t){return 0!=(16&t.flags)})(e)&&xu(o,e,ia(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&(function a(t){return 0!=(32&t.flags)})(e)&&xu(o,e,ia(),e.stylesWithoutHost,!1)}function wu(t,e,n,o){Ou(t,e,n,o),Pu()}function ku(t,e,n){const o=ia(),i=aa(),a=t+oi;ngDevMode&&ro(o,a),ngDevMode&&Xn(ha(),i.bindingStartIndex,"element containers should be created before any bindings");const r=i.firstCreatePass?(function s(t,e,n,o,i){ngDevMode&&ngDevMode.firstCreatePass++;const a=e.consts,r=$i(a,o),s=Ld(e,t,8,"ng-container",r);return null!==r&&Np(s,r,!0),op(e,n,s,$i(a,i)),null!==e.queries&&e.queries.elementStart(e,s),s})(a,i,o,e,n):i.data[a];da(r,!0),ngDevMode&&ngDevMode.rendererCreateComment++;const l=o[a]=o[11].createComment(ngDevMode?"ng-container":"");Sc(i,o,l,r),Vl(l,o),di(r)&&(qd(i,o,r),Yd(i,r,o)),null!=n&&Zd(o,r)}function Su(){let t=sa();const e=aa();pa()?ma():(ngDevMode&&hi(t),t=t.parent,da(t,!1)),ngDevMode&&Za(t,8),e.firstCreatePass&&(La(e,t),li(t)&&e.queries.elementEnd(t))}function Du(t,e,n){ku(t,e,n),Su()}function Eu(){return ia()}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Au(t){return!!t&&"function"==typeof t.then}function Ru(t){return!!t&&"function"==typeof t.subscribe}Cu.INJECTOR_KEY=iu.get(Qp);const Tu=Ru;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Nu(t,e,n=!1,o){const i=ia(),a=aa(),r=sa();return zu(a,i,i[11],r,t,e,n,o),Nu}function Iu(t,e,n=!1,o){const i=sa(),a=ia(),r=aa();return zu(r,a,Ep(xa(r.data),i,a),i,t,e,n,o),Iu}function zu(t,e,n,o,i,a,r=!1,s){const l=di(o),c=t.firstCreatePass&&Dp(t),d=e[8],p=Sp(e);ngDevMode&&Za(o,15);let m=!0;if(3&o.type){const u=Gi(o,e),f=s?s(u):Ro,g=f.target||u,h=p.length,b=s?t=>s(Ui(t[o.index])).target:o.index;if(Vi(n)){let r=null;if(!s&&l&&(r=(function u(t,e,n,o){const i=t.cleanup;if(null!=i)for(let t=0;t<i.length-1;t+=2){const a=i[t];if(a===n&&i[t+1]===o){const n=e[7],o=i[t+2];return n.length>o?n[o]:null}"string"==typeof a&&(t+=2)}return null})(t,e,i,o.index)),null!==r)(r.__ngLastListenerFn__||r).__ngNextListenerFn__=a,r.__ngLastListenerFn__=a,m=!1;else{a=Fu(o,e,d,a,!1);const t=n.listen(f.name||g,i,a);ngDevMode&&ngDevMode.rendererAddEventListener++,p.push(a,t),c&&c.push(i,b,h,h+1)}}else a=Fu(o,e,d,a,!0),g.addEventListener(i,a,r),ngDevMode&&ngDevMode.rendererAddEventListener++,p.push(a),c&&c.push(i,b,h,r)}else a=Fu(o,e,d,a,!1);const f=o.outputs;let g;if(m&&null!==f&&(g=f[i])){const t=g.length;if(t)for(let n=0;n<t;n+=2){const t=g[n];ngDevMode&&ro(e,t);const r=g[n+1],s=e[t],l=s[r];if(ngDevMode&&!Tu(l))throw new Error(`@Output ${r} not initialized in '${s.constructor.name}'.`);const d=l.subscribe(a),m=p.length;p.push(a,d),c&&c.push(i,o.index,m,-(m+1))}}}function Hu(t,e,n,o){try{return Ii(6,e,n),!1!==n(o)}catch(e){return Ap(t,e),!1}finally{Ii(7,e,n)}}function Fu(t,e,n,o,i){return function a(r){if(r===Function)return o;const s=2&t.flags?Zi(t.index,e):e;0==(32&e[2])&&Mp(s);let l=Hu(e,n,o,r),c=a.__ngNextListenerFn__;for(;c;)l=Hu(e,n,c,r)&&l,c=c.__ngNextListenerFn__;return i&&!1===l&&(r.preventDefault(),r.returnValue=!1),l}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Lu(t=1){return(function e(t){return(na.lFrame.contextLView=(function e(t,n){for(;t>0;)ngDevMode&&oo(n[15],"Declaration view should be defined if nesting level is greater than 0."),n=n[15],t--;return n})(t,na.lFrame.contextLView))[8]})(t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Bu(t,e){let n=null;const o=(function i(t){const e=t.attrs;if(null!=e){const t=e.indexOf(5);if(0==(1&t))return e[t+1]}return null})(t);for(let i=0;i<e.length;i++){const a=e[i];if("*"!==a){if(null===o?Yc(t,a,!0):qc(o,a))return i}else n=i}return n}function Vu(t){const e=ia()[16][6];if(!e.projection){const n=e.projection=Xr(t?t.length:1,null),o=n.slice();let i=e.child;for(;null!==i;){const e=t?Bu(i,t):0;null!==e&&(o[e]?o[e].projectionNext=i:n[e]=i,o[e]=i),i=i.next}}}function ju(t,e=0,n){const o=ia(),i=aa(),a=Ld(i,oi+t,16,null,n||null);null===a.projection&&(a.projection=e),ma(),64!=(64&a.flags)&&(function r(t,e,n){Ic(e[11],0,e,n,bc(t,n,e),xc(n.parent||e[6],n,e))})(i,o,a)}function Uu(t,e,n){return Wu(t,"",e,"",n),Uu}function Wu(t,e,n,o,i){const a=ia(),r=zm(a,e,n,o);if(r!==Kc){const n=aa(),s=za();$d(n,s,a,t,r,a[11],i,!1),ngDevMode&&wp(n.data,s,t,ha()-1,e,o)}return Wu}function Gu(t,e,n,o,i){const a=t[n+1],r=null===e;let s=o?td(a):od(a),l=!1;for(;0!==s&&(!1===l||r);){ngDevMode&&ro(t,s);const n=t[s+1];Yu(t[s],e)&&(l=!0,t[s+1]=o?rd(n):nd(n)),s=o?td(n):od(n)}l&&(t[n+1]=o?nd(a):rd(a))}function Yu(t,e){return ngDevMode&&Kn(Array.isArray(e),!0,"Expected that 'tStylingKey' has been unwrapped"),null===t||null==e||(Array.isArray(t)?t[1]:t)===e||!(!Array.isArray(t)||"string"!=typeof e)&&Qr(t,e)>=0}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const qu={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Zu(t){return t.substring(qu.key,qu.keyEnd)}function Xu(t){return t.substring(qu.value,qu.valueEnd)}function Ku(t,e){const n=qu.textEnd;return n===e?-1:(e=qu.keyEnd=(function o(t,e,n){for(;e<n&&t.charCodeAt(e)>32;)e++;return e})(t,qu.key=e,n),$u(t,e,n))}function Ju(t,e){const n=qu.textEnd;let o=qu.key=$u(t,e,n);return n===o?-1:(o=qu.keyEnd=(function i(t,e,n){let o;for(;e<n&&(45===(o=t.charCodeAt(e))||95===o||(-33&o)>=65&&(-33&o)<=90||o>=48&&o<=57);)e++;return e})(t,o,n),o=tf(t,o,n,58),o=qu.value=$u(t,o,n),o=qu.valueEnd=(function a(t,e,n){let o=-1,i=-1,a=-1,r=e,s=r;for(;r<n;){const l=t.charCodeAt(r++);if(59===l)return s;34===l||39===l?s=r=ef(t,l,r,n):e===r-4&&85===a&&82===i&&76===o&&40===l?s=r=ef(t,41,r,n):l>32&&(s=r),a=i,i=o,o=-33&l}return s})(t,o,n),tf(t,o,n,59))}function Qu(t){qu.key=0,qu.keyEnd=0,qu.value=0,qu.valueEnd=0,qu.textEnd=t.length}function $u(t,e,n){for(;e<n&&t.charCodeAt(e)<=32;)e++;return e}function tf(t,e,n,o){return(e=$u(t,e,n))<n&&(ngDevMode&&t.charCodeAt(e)!==o&&nf(t,String.fromCharCode(o),e),e++),e}function ef(t,e,n,o){let i=-1,a=n;for(;a<o;){const n=t.charCodeAt(a++);if(n==e&&92!==i)return a;i=92==n&&92===i?0:n}throw ngDevMode?nf(t,String.fromCharCode(e),o):new Error}function nf(t,e,n){throw ngDevMode&&Xn("string"==typeof t,!0,"String expected here"),io(`Malformed style at location ${n} in string '`+t.substring(0,n)+"[>>"+t.substring(n,n+1)+"<<]"+t.substr(n+1)+`'. Expecting '${e}'.`)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function of(t,e,n){return df(t,e,n,!1),of}function af(t,e){return df(t,e,null,!0),af}function rf(t){pf(hf,sf,t,!1)}function sf(t,e){for(let n=(function n(t){return Qu(t),Ju(t,$u(t,0,qu.textEnd))})(e);n>=0;n=Ju(e,n))hf(t,Zu(e),Xu(e))}function lf(t){pf(Kr,cf,t,!0)}function cf(t,e){for(let n=(function n(t){return Qu(t),Ku(t,$u(t,0,qu.textEnd))})(e);n>=0;n=Ku(e,n))Kr(t,Zu(e),!0)}function df(t,e,n,o){const i=ia(),a=aa(),r=_a(2);a.firstUpdatePass&&uf(a,t,r,o),e!==Kc&&Em(i,r,e)&&bf(a,a.data[Na()],i,i[11],t,i[r+1]=(function s(t,e){return null==t||("string"==typeof e?t+=e:"object"==typeof t&&(t=Rn(Gs(t)))),t})(e,n),o,r)}function pf(t,e,n,o){const i=aa(),a=_a(2);i.firstUpdatePass&&uf(i,null,a,o);const r=ia();if(n!==Kc&&Em(r,a,n)){const s=i.data[Na()];if(Cf(s,o)&&!mf(i,a)){if(ngDevMode){const t=i.data[a];Xn(Array.isArray(t)?t[1]:t,!1,"Styling linked list shadow input should be marked as 'false'")}let t=o?s.classesWithoutHost:s.stylesWithoutHost;ngDevMode&&!1===o&&null!==t&&Xn(t.endsWith(";"),!0,"Expecting static portion to end with ';'"),null!==t&&(n=Tn(t,n||"")),xu(i,s,r,n,o)}else!(function l(t,e,n,o,i,a,r,s){i===Kc&&(i=To);let l=0,c=0,d=0<i.length?i[0]:null,p=0<a.length?a[0]:null;for(;null!==d||null!==p;){ngDevMode&&$n(l,999,"Are we stuck in infinite loop?"),ngDevMode&&$n(c,999,"Are we stuck in infinite loop?");const m=l<i.length?i[l+1]:void 0,u=c<a.length?a[c+1]:void 0;let f,g=null;d===p?(l+=2,c+=2,m!==u&&(g=p,f=u)):null===p||null!==d&&d<p?(l+=2,g=d):(ngDevMode&&oo(p,"Expecting to have a valid key"),c+=2,g=p,f=u),null!==g&&bf(t,e,n,o,g,f,r,s),d=l<i.length?i[l]:null,p=c<a.length?a[c]:null}})(i,s,r,r[11],r[a+1],r[a+1]=(function s(t,e,n){if(null==n||""===n)return To;const o=[],i=Gs(n);if(Array.isArray(i))for(let e=0;e<i.length;e++)t(o,i[e],!0);else if("object"==typeof i)for(const e in i)i.hasOwnProperty(e)&&t(o,e,i[e]);else"string"==typeof i?e(o,i):ngDevMode&&io("Unsupported styling type "+typeof i+": "+i);return o})(t,e,n),o,a)}}function mf(t,e){return e>=t.expandoStartIndex}function uf(t,e,n,o){ngDevMode&&Mi(t);const i=t.data;if(null===i[n+1]){const a=i[Na()];ngDevMode&&oo(a,"TNode expected");const r=mf(t,n);Cf(a,o)&&null===e&&!r&&(e=!1),e=(function a(t,e,n,o){const i=xa(t);let a=o?e.residualClasses:e.residualStyles;if(null===i)0===(o?e.classBindings:e.styleBindings)&&(n=gf(n=ff(null,t,e,n,o),e.attrs,o),a=null);else{const r=e.directiveStylingLast;if(-1===r||t[r]!==i)if(n=ff(i,t,e,n,o),null===a){let n=(function r(t,e,n){const o=n?e.classBindings:e.styleBindings;if(0!==od(o))return t[td(o)]})(t,e,o);void 0!==n&&Array.isArray(n)&&(n=ff(null,t,e,n[1],o),n=gf(n,e.attrs,o),(function s(t,e,n,o){const i=n?e.classBindings:e.styleBindings;ngDevMode&&Kn(od(i),0,"Expecting to have at least one template styling binding."),t[td(i)]=o})(t,e,o,n))}else a=(function l(t,e,n){let o;const i=e.directiveEnd;ngDevMode&&Kn(e.directiveStylingLast,-1,"By the time this function gets called at least one hostBindings-node styling instruction must have executed.");for(let a=1+e.directiveStylingLast;a<i;a++)o=gf(o,t[a].hostAttrs,n);return gf(o,e.attrs,n)})(t,e,o)}return void 0!==a&&(o?e.residualClasses=a:e.residualStyles=a),n})(i,a,e,o),(function r(t,e,n,o,i,a){ngDevMode&&Mi(aa());let r=a?e.classBindings:e.styleBindings,s=td(r),l=od(r);t[o]=n;let c,d=!1;if(Array.isArray(n)){const t=n;c=t[1],(null===c||Qr(t,c)>0)&&(d=!0)}else c=n;if(i)if(0!==l){const e=td(t[s+1]);t[o+1]=$c(e,s),0!==e&&(t[e+1]=id(t[e+1],o)),t[s+1]=(function p(t,e){return ngDevMode&&Yn(t,"expected number"),ngDevMode&&qn(e,0,32767),131071&t|e<<17})(t[s+1],o)}else t[o+1]=$c(s,0),0!==s&&(t[s+1]=id(t[s+1],o)),s=o;else t[o+1]=$c(l,0),ngDevMode&&Xn(0!==s&&0===l,!1,"Adding template bindings after hostBindings is not allowed."),0===s?s=o:t[l+1]=id(t[l+1],o),l=o;d&&(t[o+1]=nd(t[o+1])),Gu(t,c,o,!0),Gu(t,c,o,!1),(function m(t,e,n,o,i){const a=i?t.residualClasses:t.residualStyles;null!=a&&"string"==typeof e&&Qr(a,e)>=0&&(n[o+1]=rd(n[o+1]))})(e,c,t,o,a),r=$c(s,l),a?e.classBindings=r:e.styleBindings=r})(i,a,e,n,r,o)}}function ff(t,e,n,o,i){let a=null;const r=n.directiveEnd;let s=n.directiveStylingLast;for(-1===s?s=n.directiveStart:s++;s<r&&(a=e[s],ngDevMode&&oo(a,"expected to be defined"),o=gf(o,a.hostAttrs,i),a!==t);)s++;return null!==t&&(n.directiveStylingLast=s),o}function gf(t,e,n){const o=n?1:2;let i=-1;if(null!==e)for(let a=0;a<e.length;a++){const r=e[a];"number"==typeof r?i=r:i===o&&(Array.isArray(t)||(t=void 0===t?[]:["",t]),Kr(t,r,!!n||e[++a]))}return void 0===t?null:t}function hf(t,e,n){Kr(t,e,Gs(n))}function bf(t,e,n,o,i,a,r,s){if(!(3&e.type))return;const l=t.data,c=l[s+1];_f(ad(c)?yf(l,e,n,i,od(c),r):void 0)||(_f(a)||ed(c)&&(a=yf(l,null,n,i,s,r)),(function d(t,e,n,o,i){const a=Vi(t);if(e)i?(ngDevMode&&ngDevMode.rendererAddClass++,a?t.addClass(n,o):(ngDevMode&&oo(n.classList,"HTMLElement expected"),n.classList.add(o))):(ngDevMode&&ngDevMode.rendererRemoveClass++,a?t.removeClass(n,o):n.classList.remove(o));else{let e=-1===o.indexOf("-")?void 0:tc.DashCase;if(null==i)ngDevMode&&ngDevMode.rendererRemoveStyle++,a?t.removeStyle(n,o,e):n.style.removeProperty(o);else{const r="string"==typeof i&&i.endsWith("!important");r&&(i=i.slice(0,-10),e|=tc.Important),ngDevMode&&ngDevMode.rendererSetStyle++,a?t.setStyle(n,o,i,e):(ngDevMode&&oo(n.style,"HTMLElement expected"),n.style.setProperty(o,i,r?"important":""))}}})(o,r,Wi(Na(),n),i,a))}function yf(t,e,n,o,i,a){const r=null===e;let s;for(;i>0;){const e=t[i],a=Array.isArray(e),l=a?e[1]:e,c=null===l;let d=n[i+1];d===Kc&&(d=c?To:void 0);let p=c?Jr(d,o):l===o?d:void 0;if(a&&!_f(p)&&(p=Jr(e,o)),_f(p)&&(s=p,r))return s;const m=t[i+1];i=r?td(m):od(m)}if(null!==e){let t=a?e.residualClasses:e.residualStyles;null!=t&&(s=Jr(t,o))}return s}function _f(t){return void 0!==t}function Cf(t,e){return 0!=(t.flags&(e?16:32))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Mf(t,e=""){const n=ia(),o=aa(),i=t+oi;ngDevMode&&Xn(ha(),o.bindingStartIndex,"text nodes should be created before any bindings"),ngDevMode&&ro(n,i);const a=o.firstCreatePass?Ld(o,i,1,e,null):o.data[i],r=n[i]=cc(n[11],e);Sc(o,n,r,a),da(a,!1)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function vf(t){return xf("",t,""),vf}function xf(t,e,n){const o=ia(),i=zm(o,t,e,n);return i!==Kc&&Tp(o,Na(),i),xf}function Of(t,e,n,o,i){const a=ia(),r=Hm(a,t,e,n,o,i);return r!==Kc&&Tp(a,Na(),r),Of}function Pf(t,e,n,o,i,a,r){const s=ia(),l=Fm(s,t,e,n,o,i,a,r);return l!==Kc&&Tp(s,Na(),l),Pf}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function wf(t,e,n){pf(Kr,cf,zm(ia(),t,e,n),!0)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function kf(t,e,n){const o=ia(),i=ya();if(Em(o,i,e)){const a=aa(),r=za();$d(a,r,o,t,e,o[11],n,!0),ngDevMode&&wp(a.data,r,t,i)}return kf}function Sf(t,e,n){const o=ia(),i=ya();if(Em(o,i,e)){const a=aa(),r=za();$d(a,r,o,t,e,Ep(xa(a.data),r,o),n,!0),ngDevMode&&wp(a.data,r,t,i)}return Sf}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */"undefined"==typeof ngI18nClosureMode&&(Eo.ngI18nClosureMode="undefined"!=typeof goog&&"function"==typeof goog.getMsg);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Df=void 0;var Ef=["en",[["a","p"],["AM","PM"],Df],[["AM","PM"],Df,Df],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Df,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Df,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Df,"{1} 'at' {0}",Df],[".",",",";","%","+","-","E","×","‰","∞","NaN",":"],["#,##0.###","#,##0%","¤#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function Af(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}];
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */let Rf={};function Tf(t){const e=(function n(t){return t.toLowerCase().replace(/_/g,"-")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t);let o=If(e);if(o)return o;const i=e.split("-")[0];if(o=If(i),o)return o;if("en"===i)return Ef;throw new Error(`Missing locale data for the locale "${t}".`)}function Nf(t){return Tf(t)[zf.PluralCase]}function If(t){return t in Rf||(Rf[t]=Eo.ng&&Eo.ng.common&&Eo.ng.common.locales&&Eo.ng.common.locales[t]),Rf[t]}var zf;!(function(t){t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData"})(zf||(zf={}));const Hf=["zero","one","two","few","many"],Ff="en-US",Lf={marker:"element"},Bf={marker:"ICU"};var Vf;!(function(t){t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT"})(Vf||(Vf={}));
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let jf=Ff;function Uf(t){oo(t,"Expected localeId to be defined"),"string"==typeof t&&(jf=t.toLowerCase().replace(/_/g,"-"))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Wf(t,e,n){const o=e.insertBeforeIndex,i=Array.isArray(o)?o[0]:o;return null===i?Oc(t,0,n):(ngDevMode&&ro(n,i),Ui(n[i]))}function Gf(t,e,n,o,i){const a=e.insertBeforeIndex;if(Array.isArray(a)){ngDevMode&&ao(o);let r=o,s=null;if(3&e.type||(s=r,r=i),null!==r&&0==(2&e.flags))for(let e=1;e<a.length;e++)_c(t,r,n[a[e]],s,!1)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Yf(t,e){if(ngDevMode&&Xn(e.insertBeforeIndex,null,"We expect that insertBeforeIndex is not set"),t.push(e),t.length>1)for(let n=t.length-2;n>=0;n--){const o=t[n];qf(o)||Zf(o,e)&&null===Xf(o)&&Kf(o,e.index)}}function qf(t){return!(64&t.type)}function Zf(t,e){return qf(e)||t.index>e.index}function Xf(t){const e=t.insertBeforeIndex;return Array.isArray(e)?e[0]:e}function Kf(t,e){const n=t.insertBeforeIndex;Array.isArray(n)?n[0]=e:(kc(Wf,Gf),t.insertBeforeIndex=e)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Jf(t,e){const n=t.data[e];if(null===n||"string"==typeof n)return null;!ngDevMode||n.hasOwnProperty("tViews")||n.hasOwnProperty("currentCaseLViewIndex")||io("We expect to get 'null'|'TIcu'|'TIcuContainer', but got: "+n);const o=n.hasOwnProperty("currentCaseLViewIndex")?n:n.value;return ngDevMode&&gi(o),o}function Qf(t,e,n){const o=Bd(t,n,64,null,null);return Yf(e,o),o}function $f(t,e){const n=e[t.currentCaseLViewIndex];return null===n?n:n<0?~n:n}function tg(t){return t>>>17}function eg(t){return(131070&t)>>>1}function ng(t){return 1&t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let og=0,ig=0;function ag(t,e,n,o){ngDevMode&&ao(o);const i=n[11];let a,r=null;for(let s=0;s<e.length;s++){const l=e[s];if("string"==typeof l){const t=e[++s];null===n[t]&&(ngDevMode&&ngDevMode.rendererCreateTextNode++,ngDevMode&&ro(n,t),n[t]=cc(i,l))}else if("number"==typeof l)switch(1&l){case 0:const c=tg(l);let d,p;if(null===r&&(r=c,a=vc(i,o)),c===r?(d=o,p=a):(d=null,p=Ui(n[c])),null!==p){ngDevMode&&ao(p);const e=eg(l);ngDevMode&&eo(e,oi,"Missing ref");const o=n[e];ngDevMode&&ao(o),_c(i,p,o,d,!1);const a=Jf(t,e);if(null!==a&&"object"==typeof a){ngDevMode&&gi(a);const e=$f(a,n);null!==e&&ag(t,a.create[e],n,n[a.anchorIdx])}}break;case 1:const m=e[++s],u=e[++s];mp(i,Wi(l>>>1,n),null,null,m,u,null);break;default:throw new Error(`Unable to determine the type of mutate operation for "${l}"`)}else switch(l){case Bf:const t=e[++s],o=e[++s];null===n[o]&&(ngDevMode&&Xn(typeof t,"string",`Expected "${t}" to be a comment node value`),ngDevMode&&ngDevMode.rendererCreateComment++,ngDevMode&&vi(n,o),Vl(n[o]=pc(i,t),n));break;case Lf:const a=e[++s],r=e[++s];null===n[r]&&(ngDevMode&&Xn(typeof a,"string",`Expected "${a}" to be an element node tag name`),ngDevMode&&ngDevMode.rendererCreateElement++,ngDevMode&&vi(n,r),Vl(n[r]=mc(i,a,null),n));break;default:ngDevMode&&io(`Unable to determine the type of mutate operation for "${l}"`)}}}function rg(t,e,n,o,i){for(let a=0;a<n.length;a++){const r=n[a],s=n[++a];if(r&i){let i="";for(let r=a+1;r<=a+s;r++){const a=n[r];if("string"==typeof a)i+=a;else if("number"==typeof a)if(a<0)i+=Vn(e[o-a]);else{const s=a>>>2;switch(3&a){case 1:const a=n[++r],l=n[++r],c=t.data[s];ngDevMode&&oo(c,"Experting TNode or string"),"string"==typeof c?mp(e[11],e[s],null,c,a,i,l):$d(t,c,e,a,i,e[11],l,!1);break;case 0:const d=e[s];null!==d&&dc(e[11],d,i);break;case 2:lg(t,Jf(t,s),e,i);break;case 3:sg(t,Jf(t,s),o,e)}}}}else{const i=n[a+1];if(i>0&&3==(3&i)){const n=Jf(t,i>>>2);e[n.currentCaseLViewIndex]<0&&sg(t,n,o,e)}}a+=s}}function sg(t,e,n,o){ngDevMode&&ro(o,e.currentCaseLViewIndex);let i=o[e.currentCaseLViewIndex];if(null!==i){let a=og;i<0&&(i=o[e.currentCaseLViewIndex]=~i,a=-1),rg(t,o,e.update[i],n,a)}}function lg(t,e,n,o){const i=(function a(t,e){let n=t.cases.indexOf(e);if(-1===n)switch(t.type){case 1:{const o=(function i(t,e){const n=Nf(e)(parseInt(t,10)),o=Hf[n];return void 0!==o?o:"other"})(e,(function o(){return jf})());n=t.cases.indexOf(o),-1===n&&"other"!==o&&(n=t.cases.indexOf("other"));break}case 0:n=t.cases.indexOf("other")}return-1===n?null:n}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(e,o);if($f(e,n)!==i&&(cg(t,e,n),n[e.currentCaseLViewIndex]=null===i?null:~i,null!==i)){const o=n[e.anchorIdx];o&&(ngDevMode&&ao(o),ag(t,e.create[i],n,o))}}function cg(t,e,n){let o=$f(e,n);if(null!==o){const i=e.remove[o];for(let e=0;e<i.length;e++){const o=i[e];if(o>0){const t=Wi(o,n);null!==t&&Rc(n[11],t)}else cg(t,Jf(t,~o),n)}}}function dg(){const t=[];let e,n,o=-1;function i(t,e){o=0;const i=$f(t,e);null!==i?(ngDevMode&&qn(i,0,t.cases.length-1),n=t.remove[i]):n=No}function a(){if(o<n.length){const r=n[o++];if(ngDevMode&&Yn(r,"Expecting OpCode number"),r>0){const t=e[r];return ngDevMode&&ao(t),t}{t.push(o,n);const s=e[1].data[~r];return ngDevMode&&gi(s),i(s,e),a()}}return 0===t.length?null:(n=t.pop(),o=t.pop(),a())}return function r(n,o){for(e=o;t.length;)t.pop();return ngDevMode&&mi(n,o),i(n.value,o),a}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function pg(t){const e=t||(Array.isArray(this)?this:[]);let n=[];for(let t=0;t<e.length;t++){const o=e[t++],i=(o&Vf.APPEND_EAGERLY)===Vf.APPEND_EAGERLY,a=o>>>Vf.SHIFT;n.push(`lView[${a}] = document.${(o&Vf.COMMENT)===Vf.COMMENT?"createComment":"createText"}(${JSON.stringify(e[t])});`),i&&n.push(`parent.appendChild(lView[${a}]);`)}return n}function mg(t){const e=new gg(t||(Array.isArray(this)?this:[]));let n=[];function o(t){const n=t>>>2;switch(3&t){case 0:return`(lView[${n}] as Text).textContent = $$$`;case 1:const t=e.consumeString(),o=e.consumeFunction();return`(lView[${n}] as Element).setAttribute('${t}', ${o?`(${o})($$$)`:"$$$"})`;case 2:return`icuSwitchCase(${n}, $$$)`;case 3:return`icuUpdateCase(${n})`}throw new Error("unexpected OpCode")}for(;e.hasMore();){let t=e.consumeNumber(),i=e.consumeNumber();const a=e.i+i,r=[];let s="";for(;e.i<a;){let t=e.consumeNumberOrString();if("string"==typeof t)s+=t;else if(t<0)s+="${lView[i"+t+"]}";else{const e=o(t);r.push(e.replace("$$$","`"+s+"`")+";"),s=""}}n.push(`if (mask & 0b${t.toString(2)}) { ${r.join(" ")} }`)}return n}function ug(t){const e=new gg(t||(Array.isArray(this)?this:[]));let n=[];function o(t){const n=tg(t),o=eg(t);switch(ng(t)){case 0:return`(lView[${n}] as Element).appendChild(lView[${i}])`;case 1:return`(lView[${o}] as Element).setAttribute("${e.consumeString()}", "${e.consumeString()}")`}throw new Error("Unexpected OpCode: "+ng(t))}let i=-1;for(;e.hasMore();){let t=e.consumeNumberStringOrMarker();if(t===Bf){const t=e.consumeString();i=e.consumeNumber(),n.push(`lView[${i}] = document.createComment("${t}")`)}else if(t===Lf){const t=e.consumeString();i=e.consumeNumber(),n.push(`lView[${i}] = document.createElement("${t}")`)}else if("string"==typeof t)i=e.consumeNumber(),n.push(`lView[${i}] = document.createTextNode("${t}")`);else{if("number"!=typeof t)throw new Error("Unexpected value");{const e=o(t);e&&n.push(e)}}}return n}function fg(t){const e=t||(Array.isArray(this)?this:[]);let n=[];for(let t=0;t<e.length;t++){const o=e[t];n.push(o>0?`remove(lView[${o}])`:`removeNestedICU(${~o})`)}return n}class gg{constructor(t){this.i=0,this.codes=t}hasMore(){return this.i<this.codes.length}consumeNumber(){let t=this.codes[this.i++];return Yn(t,"expecting number in OpCode"),t}consumeString(){let t=this.codes[this.i++];return Zn(t,"expecting string in OpCode"),t}consumeFunction(){let t=this.codes[this.i++];if(null===t||"function"==typeof t)return t;throw new Error("expecting function in OpCode")}consumeNumberOrString(){let t=this.codes[this.i++];return"string"==typeof t||Yn(t,"expecting number or string in OpCode"),t}consumeNumberStringOrMarker(){let t=this.codes[this.i++];return"string"==typeof t||"number"==typeof t||t==Bf||t==Lf||Yn(t,"expecting number, string, ICU_MARKER or ELEMENT_MARKER in OpCode"),t}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const hg=/�(\d+):?\d*�/gi,bg=/({\s*�\d+:?\d*�\s*,\s*\S{6}\s*,[\s\S]*})/gi,yg=/�(\d+)�/,_g=/^\s*(�\d+:?\d*�)\s*,\s*(select|plural)\s*,/,Cg=/�\/?\*(\d+:\d+)�/gi,Mg=/�(\/?[#*]\d+):?\d*�/gi,vg=/\uE500/g;function xg(t,e,n,o,i,a,r){const s=Vd(t,o,1,null);let l=s<<Vf.SHIFT,c=ca();e===c&&(c=null),null===c&&(l|=Vf.APPEND_EAGERLY),r&&(l|=Vf.COMMENT,(function d(t){void 0===ec&&(ec=t())})(dg)),i.push(l,null===a?"":a);const p=Bd(t,s,r?32:1,null===a?ngDevMode?"{{?}}":"":a,null);Yf(n,p);const m=p.index;return da(p,!1),null!==c&&e!==c&&(function u(t,e){ngDevMode&&fi(t);let n=t.insertBeforeIndex;null===n?(kc(Wf,Gf),n=t.insertBeforeIndex=[null,e]):(Xn(Array.isArray(n),!0,"Expecting array here"),n.push(e))})(c,m),p}function Og(t,e,n,o,i,a,r){const s=r.match(hg),l=xg(t,e,n,a,o,s?null:r,!1);s&&Pg(i,r,l.index,null,0,null)}function Pg(t,e,n,o,i,a){ngDevMode&&no(n,oi,"Index must be in absolute LView offset");const r=t.length,s=r+1;t.push(null,null);const l=r+2;ngDevMode&&ld(t,mg);const c=e.split(hg);let d=0;for(let e=0;e<c.length;e++){const n=c[e];if(1&e){const e=i+parseInt(n,10);t.push(-1-e),d|=kg(e)}else""!==n&&t.push(n)}return t.push(n<<2|(o?1:0)),o&&t.push(o,a),t[r]=d,t[s]=t.length-l,d}function wg(t){let e=0;for(let n=0;n<t.length;n++){const o=t[n];"number"==typeof o&&o<0&&e++}return e}function kg(t){return 1<<Math.min(t,31)}function Sg(t){let e,n,o="",i=0,a=!1;for(;null!==(e=Cg.exec(t));)a?e[0]===`�/*${n}�`&&(i=e.index,a=!1):(o+=t.substring(i,e.index+e[0].length),n=e[1],a=!0);return ngDevMode&&Xn(a,!1,`Tag mismatch: unable to find the end of the sub-template in the translation "${t}"`),o+=t.substr(i),o}function Dg(t,e,n,o,i,a){ngDevMode&&oo(i,"ICU expression must be defined");let r=0;const s={type:i.type,currentCaseLViewIndex:Vd(t,e,1,null),anchorIdx:a,cases:[],create:[],remove:[],update:[]};!(function l(t,e,n){t.push(kg(e.mainBinding),2,-1-e.mainBinding,n<<2|2)})(n,i,a),(function c(t,e,n){const o=t.data[e];ngDevMode&&Xn(null===o||o.hasOwnProperty("tViews"),!0,"We expect to get 'null'|'TIcuContainer'"),null===o?t.data[e]=n:(ngDevMode&&Za(o,32),o.value=n)})(t,a,s);const d=i.values;for(let a=0;a<d.length;a++){const l=d[a],c=[];for(let t=0;t<l.length;t++){const e=l[t];if("string"!=typeof e){const n=c.push(e)-1;l[t]=`\x3c!--�${n}�--\x3e`}}r=Rg(t,s,e,n,o,i.cases[a],l.join(""),c)|r}r&&(function p(t,e,n){t.push(e,1,n<<2|3)})(n,r,a)}function Eg(t){const e=[],n=[];let o=1,i=0;const a=Ag(t=t.replace(_g,(function(t,e,n){return o="select"===n?0:1,i=parseInt(e.substr(1),10),""})));for(let t=0;t<a.length;){let i=a[t++].trim();1===o&&(i=i.replace(/\s*(?:=)?(\w+)\s*/,"$1")),i.length&&e.push(i);const r=Ag(a[t++]);e.length>n.length&&n.push(r)}return{type:o,mainBinding:i,cases:e,values:n}}function Ag(t){if(!t)return[];let e=0;const n=[],o=[],i=/[{}]/g;let a;for(i.lastIndex=0;a=i.exec(t);){const i=a.index;if("}"==a[0]){if(n.pop(),0==n.length){const n=t.substring(e,i);_g.test(n)?o.push(Eg(n)):o.push(n),e=i+1}}else{if(0==n.length){const n=t.substring(e,i);o.push(n),e=i+1}n.push("{")}}const r=t.substring(e);return o.push(r),o}function Rg(t,e,n,o,i,a,r,s){const l=[],c=[],d=[];ngDevMode&&(ld(l,ug),ld(c,fg),ld(d,mg)),e.cases.push(a),e.create.push(l),e.remove.push(c),e.update.push(d);const p=Zs(Li()).getInertBodyElement(r);ngDevMode&&oo(p,"Unable to generate inert body element");const m=vl(p)||p;return m?Tg(t,e,n,o,l,c,d,m,i,s,0):0}function Tg(t,e,n,o,i,a,r,s,l,c,d){let p=0,m=s.firstChild;for(;m;){const s=Vd(t,n,1,null);switch(m.nodeType){case Node.ELEMENT_NODE:const u=m,f=u.tagName.toLowerCase();if(cl.hasOwnProperty(f)){zg(i,Lf,f,l,s),t.data[s]=f;const g=u.attributes;for(let t=0;t<g.length;t++){const e=g.item(t),n=e.name.toLowerCase();e.value.match(hg)?fl.hasOwnProperty(n)?Pg(r,e.value,s,e.name,0,dl[n]?$s:pl[n]?tl:null):ngDevMode&&console.warn(`WARNING: ignoring unsafe attribute value ${n} on element ${f} (see https://g.co/ng/security#xss)`):Hg(i,s,e)}p=Tg(t,e,n,o,i,a,r,m,s,c,d+1)|p,Ng(a,s,d)}break;case Node.TEXT_NODE:const g=m.textContent||"",h=g.match(hg);zg(i,null,h?"":g,l,s),Ng(a,s,d),h&&(p=Pg(r,g,s,null,0,null)|p);break;case Node.COMMENT_NODE:const b=yg.exec(m.textContent||"");if(b){const e=parseInt(b[1],10),r=c[e];zg(i,Bf,ngDevMode?`nested ICU ${e}`:"",l,s),Dg(t,n,o,l,r,s),Ig(a,s,d)}}m=m.nextSibling}return p}function Ng(t,e,n){0===n&&t.push(e)}function Ig(t,e,n){0===n&&(t.push(~e),t.push(e))}function zg(t,e,n,o,i){null!==e&&t.push(e),t.push(n,i,(function a(t,e,n){return ngDevMode&&no(e,0,"Missing parent index"),ngDevMode&&eo(n,0,"Missing ref index"),t|e<<17|n<<1})(0,o,i))}function Hg(t,e,n){t.push(e<<1|1,n.name,n.value)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Fg=/\[(�.+?�?)\]/,Lg=/\[(�.+?�?)\]|(�\/?\*\d+:\d+�)/g,Bg=/({\s*)(VAR_(PLURAL|SELECT)(_\d+)?)(\s*,)/g,Vg=/{([A-Z0-9_]+)}/g,jg=/�I18N_EXP_(ICU(_\d+)?)�/g,Ug=/\/\*/,Wg=/\d+\:(\d+)/;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Gg(t,e,n=-1){const o=aa(),i=ia(),a=oi+t;ngDevMode&&oo(o,"tView should be defined");const r=$i(o.consts,e),s=ca();o.firstCreatePass&&(function l(t,e,n,o,i,a){const r=ca(),s=[],l=[],c=[[]];ngDevMode&&(ld(s,pg),ld(l,mg));const d=(function m(t){return t.replace(vg," ")})(i=(function p(t,e){if((function n(t){return-1===t})(e))return Sg(t);{const n=t.indexOf(`:${e}�`)+2+e.toString().length,o=t.search(new RegExp(`�\\/\\*\\d+:${e}�`));return Sg(t.substring(n,o))}})(i,a)).split(Mg);for(let a=0;a<d.length;a++){let p=d[a];if(0==(1&a)){const a=Ag(p);for(let d=0;d<a.length;d++){let p=a[d];if(0==(1&d)){const e=p;ngDevMode&&Zn(e,"Parsed ICU part should be string"),""!==e&&Og(t,r,c[0],s,l,n,e)}else{const a=p;if("object"!=typeof a)throw new Error(`Unable to parse ICU expression in "${i}" message.`);const d=xg(t,r,c[0],n,s,ngDevMode?`ICU ${o}:${a.mainBinding}`:"",!0).index;ngDevMode&&no(d,oi,"Index must be in absolute LView offset"),Dg(t,n,l,e,a,d)}}}else{const e=47===p.charCodeAt(0),n=p.charCodeAt(e?1:0);ngDevMode&&so(n,42,35);const o=oi+Number.parseInt(p.substring(e?2:1));if(e)c.shift(),da(ca(),!1);else{const e=Qf(t,c[0],o);c.unshift([]),da(e,!0)}}}t.data[o]={create:s,update:l}})(o,null===s?0:s.index,i,a,r,n);const c=o.data[a],d=yc(o,s===i[6]?null:s,i);!(function p(t,e,n,o){const i=t[11];for(let a=0;a<e.length;a++){const r=e[a++],s=e[a],l=(r&Vf.COMMENT)===Vf.COMMENT,c=(r&Vf.APPEND_EAGERLY)===Vf.APPEND_EAGERLY,d=r>>>Vf.SHIFT;let p=t[d];null===p&&(p=t[d]=l?i.createComment(s):cc(i,s)),c&&null!==n&&_c(i,n,p,o,!1)}})(i,c.create,d,s&&8&s.type?i[s.index]:null),Ca(!0)}function Yg(){Ca(!1)}function qg(t,e,n){Gg(t,e,n),Yg()}function Zg(t){return(function e(t){t&&(og|=1<<Math.min(ig,31)),ig++})(Em(ia(),ya(),t)),Zg}function Xg(t){!(function e(t,n,o){if(ig>0){ngDevMode&&oo(t,"tView should be defined");const e=t.data[o];rg(t,n,Array.isArray(e)?e:e.update,ha()-ig-1,og)}og=0,ig=0})(aa(),ia(),t+oi)}function Kg(t,e={}){return(function n(t,e={}){let n=t;if(Fg.test(t)){const t={},e=[0];n=n.replace(Lg,((n,o,i)=>{const a=o||i,r=t[a]||[];if(r.length||(a.split("|").forEach((t=>{const e=t.match(Wg),n=e?parseInt(e[1],10):0,o=Ug.test(t);r.push([n,o,t])})),t[a]=r),!r.length)throw new Error(`i18n postprocess: unmatched placeholder - ${a}`);const s=e[e.length-1];let l=0;for(let t=0;t<r.length;t++)if(r[t][0]===s){l=t;break}const[c,d,p]=r[l];return d?e.pop():s!==c&&e.push(c),r.splice(l,1),p}))}return Object.keys(e).length?(n=n.replace(Bg,((t,n,o,i,a,r)=>e.hasOwnProperty(o)?`${n}${e[o]}${r}`:t)),n=n.replace(Vg,((t,n)=>e.hasOwnProperty(n)?e[n]:t)),n=n.replace(jg,((t,n)=>{if(e.hasOwnProperty(n)){const o=e[n];if(!o.length)throw new Error(`i18n postprocess: unmatched ICU - ${t} with key: ${n}`);return o.shift()}return t})),n):n})(t,e)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Jg(t,e,n,o,i){if(t=zn(t),Array.isArray(t))for(let a=0;a<t.length;a++)Jg(t[a],e,n,o,i);else{const a=aa(),r=ia();let s=Xp(t)?t:zn(t.provide),l=Yp(t);const c=sa(),d=1048575&c.providerIndexes,p=c.directiveStart,m=c.providerIndexes>>20;if(Xp(t)||!t.multi){const o=new Ya(l,i,Mu),u=th(s,e,i?d:d+m,p);-1===u?(dr(rr(c,r),a,s),Qg(a,t,e.length),e.push(s),c.directiveStart++,c.directiveEnd++,i&&(c.providerIndexes+=1048576),n.push(o),r.push(o)):(n[u]=o,r[u]=o)}else{const u=th(s,e,d+m,p),f=th(s,e,d,d+m),g=u>=0&&n[u],h=f>=0&&n[f];if(i&&!h||!i&&!g){dr(rr(c,r),a,s);const d=(function a(t,e,n,o,i){const a=new Ya(t,n,Mu);return a.multi=[],a.index=e,a.componentProviders=0,$g(a,i,o&&!n),a})(i?nh:eh,n.length,i,o,l);!i&&h&&(n[f].providerFactory=d),Qg(a,t,e.length,0),e.push(s),c.directiveStart++,c.directiveEnd++,i&&(c.providerIndexes+=1048576),n.push(d),r.push(d)}else Qg(a,t,u>-1?u:f,$g(n[i?f:u],l,!i&&o));!i&&o&&h&&n[f].componentProviders++}}}function Qg(t,e,n,o){const i=Xp(e);if(i||(function a(t){return!!t.useClass})(e)){const a=(e.useClass||e).prototype.ngOnDestroy;if(a){const r=t.destroyHooks||(t.destroyHooks=[]);if(!i&&e.multi){ngDevMode&&oo(o,"indexInFactory when registering multi factory destroy hook");const t=r.indexOf(n);-1===t?r.push(n,[o,a]):r[t+1].push(o,a)}else r.push(n,a)}}}function $g(t,e,n){return n&&t.componentProviders++,t.multi.push(e)-1}function th(t,e,n,o){for(let i=n;i<o;i++)if(e[i]===t)return i;return-1}function eh(t,e,n,o){return oh(this.multi,[])}function nh(t,e,n,o){const i=this.multi;let a;if(this.providerFactory){const t=this.providerFactory.componentProviders,e=yr(n,n[1],this.providerFactory.index,o);a=e.slice(0,t),oh(i,a);for(let n=t;n<e.length;n++)a.push(e[n])}else a=[],oh(i,a);return a}function oh(t,e){for(let n=0;n<t.length;n++)e.push((0,t[n])());return e}function ih(t,e=[]){return n=>{n.providersResolver=(n,o)=>(function i(t,e,n){const o=aa();if(o.firstCreatePass){const i=pi(t);Jg(n,o.data,o.blueprint,i,!0),Jg(e,o.data,o.blueprint,i,!1)}})(n,o?o(t):t,e)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class ah{}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class rh{}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function sh(...t){}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function lh(t,e){return new ch(Gi(t,e))}rh.NULL=new class{resolveComponentFactory(t){throw(function e(t){const e=Error(`No component factory found for ${Rn(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e})(t)}};class ch{constructor(t){this.nativeElement=t}}function dh(t){return t instanceof ch?t.nativeElement:t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */ch.__NG_ELEMENT_ID__=function ph(){return lh(sa(),ia())},new Nr("Renderer2Interceptor");class mh{}class uh{}uh.__NG_ELEMENT_ID__=()=>fh();const fh=function gh(){const t=ia(),e=Zi(sa().index,t);return(function n(t){const e=t[11];if(ngDevMode&&!Vi(e))throw new Error("Cannot inject Renderer2 when the application uses Renderer3!");return e})(ri(e)?e:t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */;class hh{}hh.ɵprov=lo({token:hh,providedIn:"root",factory:()=>null});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class bh{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const yh=new bh("11.2.14");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class _h{constructor(){}supports(t){return wm(t)}create(t){return new Mh(t)}}const Ch=(t,e)=>e;class Mh{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||Ch}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,o=0,i=null;for(;e||n;){const a=!n||e&&e.currentIndex<Ph(n,o,i)?e:n,r=Ph(a,o,i),s=a.currentIndex;if(a===n)o--,n=n._nextRemoved;else if(e=e._next,null==a.previousIndex)o++;else{i||(i=[]);const t=r-o,e=s-o;if(t!=e){for(let n=0;n<t;n++){const o=n<i.length?i[n]:i[n]=0,a=o+n;e<=a&&a<t&&(i[n]=o+1)}i[a.previousIndex]=e-t}}r!==s&&t(a,r,s)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!wm(t))throw new Error(`Error trying to diff '${Rn(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,o,i=this._itHead,a=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],o=this._trackByFn(e,n),null!==i&&Object.is(i.trackById,o)?(a&&(i=this._verifyReinsertion(i,n,o,e)),Object.is(i.item,n)||this._addIdentityChange(i,n)):(i=this._mismatch(i,n,o,e),a=!0),i=i._next}else e=0,(function r(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[xm()]();let o;for(;!(o=n.next()).done;)e(o.value)}})(t,(t=>{o=this._trackByFn(e,t),null!==i&&Object.is(i.trackById,o)?(a&&(i=this._verifyReinsertion(i,t,o,e)),Object.is(i.item,t)||this._addIdentityChange(i,t)):(i=this._mismatch(i,t,o,e),a=!0),i=i._next,e++})),this.length=e;return this._truncate(i),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,o){let i;return null===t?i=this._itTail:(i=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,i,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,o))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,i,o)):t=this._addAfter(new vh(e,n),i,o),t}_verifyReinsertion(t,e,n,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==i?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const o=t._prevRemoved,i=t._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const o=null===e?this._itHead:e._next;return t._next=o,t._prev=e,null===o?this._itTail=t:o._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Oh),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Oh),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class vh{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class xh{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class Oh{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new xh,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function Ph(t,e,n){const o=t.previousIndex;if(null===o)return o;let i=0;return n&&o<n.length&&(i=n[o]),o+e+i}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class wh{constructor(){}supports(t){return t instanceof Map||km(t)}create(){return new kh}}class kh{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||km(t)))throw new Error(`Error trying to diff '${Rn(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,((t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const o=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,o)}})),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const n=this._records.get(t);this._maybeAddToChanges(n,e);const o=n._prev,i=n._next;return o&&(o._next=i),i&&(i._prev=o),n._next=null,n._prev=null,n}const n=new Sh(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach((n=>e(t[n],n)))}}class Sh{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Dh(){return new Eh([new _h])}class Eh{constructor(t){this.factories=t}static create(t,e){if(null!=e){const n=e.factories.slice();t=t.concat(n)}return new Eh(t)}static extend(t){return{provide:Eh,useFactory:e=>Eh.create(t,e||Dh()),deps:[[Eh,new Ms,new _s]]}}find(t){const e=this.factories.find((e=>e.supports(t)));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${(function n(t){return t.name||typeof t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t)}'`)}}function Ah(){return new Rh([new wh])}Eh.ɵprov=lo({token:Eh,providedIn:"root",factory:Dh});class Rh{constructor(t){this.factories=t}static create(t,e){if(e){const n=e.factories.slice();t=t.concat(n)}return new Rh(t)}static extend(t){return{provide:Rh,useFactory:e=>Rh.create(t,e||Ah()),deps:[[Rh,new Ms,new _s]]}}find(t){const e=this.factories.find((e=>e.supports(t)));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Th(t,e,n,o,i=!1){for(;null!==n;){ngDevMode&&Za(n,63);const a=e[n.index];if(null!==a&&o.push(Ui(a)),si(a))for(let t=ai;t<a.length;t++){const e=a[t],n=e[1].firstChild;null!==n&&Th(e[1],e,n,o)}const r=n.type;if(8&r)Th(t,e,n.child,o);else if(32&r){const t=nc(n,e);let i;for(;i=t();)o.push(i)}else if(16&r){const t=Ec(e,n);if(Array.isArray(t))o.push(...t);else{const n=oc(e[16]);ngDevMode&&Oi(n),Th(n[1],n,t,o,!0)}}n=i?n.projectionNext:n.next}return o}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */Rh.ɵprov=lo({token:Rh,providedIn:"root",factory:Ah});class Nh{constructor(t,e){this._lView=t,this._cdRefInjectingView=e,this._appRef=null,this._attachedToViewContainer=!1}get rootNodes(){const t=this._lView,e=t[1];return Th(e,t,e.firstChild,[])}get context(){return this._lView[8]}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const t=this._lView[3];if(si(t)){const e=t[8],n=e?e.indexOf(this):-1;n>-1&&(ngDevMode&&Xn(n,t.indexOf(this._lView)-ai,"An attached view should be in the same position within its container as its ViewRef in the VIEW_REFS array."),fc(t,n),Zr(e,n))}this._attachedToViewContainer=!1}gc(this._lView[1],this._lView)}onDestroy(t){Jd(this._lView[1],this._lView,null,t)}markForCheck(){Mp(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){xp(this._lView[1],this._lView,this.context)}checkNoChanges(){!(function t(e,n,o){fa(!0);try{xp(e,n,o)}finally{fa(!1)}})(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,(function t(e,n){Nc(e,n,n[11],2,null,null)})(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t}}class Ih extends Nh{constructor(t){super(t),this._view=t}detectChanges(){Op(this._view)}checkNoChanges(){!(function t(e){fa(!0);try{Op(e)}finally{fa(!1)}})(this._view)}get context(){return null}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const zh=Fh;class Hh{}function Fh(t=!1){return(function e(t,n,o){if(!o&&ci(t)){const e=Zi(t.index,n);return new Nh(e,e)}return 47&t.type?new Nh(n[16],n):null}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(sa(),ia(),t)}Hh.__NG_ELEMENT_ID__=zh,Hh.__ChangeDetectorRef__=!0;const Lh=[new wh],Bh=[new _h],Vh=new Eh(Bh),jh=new Rh(Lh);class Uh{}Uh.__NG_ELEMENT_ID__=function Wh(){return qh(sa(),ia())};const Gh=Uh,Yh=class extends Gh{constructor(t,e,n){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=n}createEmbeddedView(t){const e=this._declarationTContainer.tViews,n=Fd(this._declarationLView,e,t,16,null,e.declTNode,null,null,null,null),o=this._declarationLView[this._declarationTContainer.index];ngDevMode&&bi(o),n[17]=o;const i=this._declarationLView[19];return null!==i&&(n[19]=i.createEmbeddedView(e)),jd(e,n,t),new Nh(n)}};function qh(t,e){return 4&t.type?(ngDevMode&&oo(t.tViews,"TView must be allocated"),new Yh(e,t,lh(t,e))):null}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class Zh{}class Xh{}Xh.__NG_ELEMENT_ID__=function Kh(){return eb(sa(),ia())};const Jh=Xh,Qh=class extends Jh{constructor(t,e,n){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=n}get element(){return lh(this._hostTNode,this._hostLView)}get injector(){return new Mr(this._hostTNode,this._hostLView)}get parentInjector(){const t=cr(this._hostTNode,this._hostLView);if(tr(t)){const e=nr(t,this._hostLView),n=er(t);return ngDevMode&&Pi(e,n),new Mr(e[1].data[n+8],e)}return new Mr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=$h(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-ai}createEmbeddedView(t,e,n){const o=t.createEmbeddedView(e||{});return this.insert(o,n),o}createComponent(t,e,n,o,i){const a=n||this.parentInjector;if(!i&&null==t.ngModule&&a){const t=a.get(Zh,null);t&&(i=t)}const r=t.create(a,o,void 0,i);return this.insert(r.hostView,e),r}insert(t,e){const n=t._lView,o=n[1];if(ngDevMode&&t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");if((function i(t){return si(t[3])})(n)){const e=this.indexOf(t);if(-1!==e)this.detach(e);else{const e=n[3];ngDevMode&&Xn(si(e),!0,"An attached view should have its PARENT point to a container.");const o=new Qh(e,e[6],e[3]);o.detach(o.indexOf(t))}}const a=this._adjustIndex(e),r=this._lContainer;!(function s(t,e,n,o){ngDevMode&&_i(e),ngDevMode&&bi(n);const i=ai+o,a=n.length;o>0&&(n[i-1][4]=e),o<a-ai?(e[4]=n[i],qr(n,ai+o,e)):(n.push(e),e[4]=null),e[3]=n;const r=e[17];null!==r&&n!==r&&(function s(t,e){ngDevMode&&oo(e,"LView required"),ngDevMode&&bi(t);const n=t[9],o=e[3];ngDevMode&&bi(o);const i=o[3][16];ngDevMode&&oo(i,"Missing insertedComponentLView");const a=e[16];ngDevMode&&oo(a,"Missing declaredComponentLView"),a!==i&&(t[2]=!0),null===n?t[9]=[e]:n.push(e)})(r,e);const l=e[19];null!==l&&l.insertView(t),e[2]|=128})(o,n,r,a);const l=Ac(a,r),c=n[11],d=vc(c,r[7]);return null!==d&&(function p(t,e,n,o,i,a){o[0]=i,o[6]=e,Nc(t,o,n,1,i,a)})(o,r[6],c,n,d,l),t.attachToViewContainerRef(),qr(tb(r),a,t),t}move(t,e){if(ngDevMode&&t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");return this.insert(t,e)}indexOf(t){const e=$h(this._lContainer);return null!==e?e.indexOf(t):-1}remove(t){const e=this._adjustIndex(t,-1),n=fc(this._lContainer,e);n&&(Zr(tb(this._lContainer),e),gc(n[1],n))}detach(t){const e=this._adjustIndex(t,-1),n=fc(this._lContainer,e);return n&&null!=Zr(tb(this._lContainer),e)?new Nh(n):null}_adjustIndex(t,e=0){return null==t?this.length+e:(ngDevMode&&(eo(t,-1,`ViewRef index must be positive, got ${t}`),$n(t,this.length+1+e,"index")),t)}};function $h(t){return t[8]}function tb(t){return t[8]||(t[8]=[])}function eb(t,e){let n;ngDevMode&&Za(t,15);const o=e[t.index];if(si(o))n=o;else{let i;if(8&t.type)i=Ui(o);else{const n=e[11];ngDevMode&&ngDevMode.rendererCreateComment++,i=n.createComment(ngDevMode?"container":"");const o=Gi(t,e);_c(n,vc(n,o),i,(function i(t,e){return Vi(t)?t.nextSibling(e):e.nextSibling})(n,o),!1)}e[t.index]=n=hp(o,e,i,t),Cp(e,n)}return new Qh(n,t,e)}const nb=new Map;function ob(t){let e=nb.get(t);return e||(e=Rn(t)+"_"+nb.size,nb.set(t,e)),e}ob(Qp),ob(Ip),ob(Zh),
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
ob(uh),ob(ch),ob(Xh),ob(Uh),ob(Hh),ob(Qp),ob(Ip);const ib={};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class ab extends rh{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){ngDevMode&&(function e(t,n="Type passed in is not ComponentType, it does not have 'ɵcmp' property."){$o(t)||io(n)})(t);const n=$o(t);return new lb(n,this.ngModule)}}function rb(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const sb=new Nr("SCHEDULER_TOKEN",{providedIn:"root",factory:()=>Yl});class lb extends ah{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=(function n(t){return t.map(Xc).join(",")})(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return rb(this.componentDef.inputs)}get outputs(){return rb(this.componentDef.outputs)}create(t,e,n,o){const i=(o=o||this.ngModule)?(function a(t,e){return{get:(n,o,i)=>{const a=t.get(n,ib,i);return a!==ib||o===ib?a:e.get(n,o,i)}}})(t,o.injector):t,r=i.get(mh,ji),s=i.get(hh,null),l=r.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||"div",d=n?(function p(t,e,n){if(Vi(t))return t.selectRootElement(e,n===Po.ShadowDom);let o="string"==typeof e?t.querySelector(e):e;return ngDevMode&&(function i(t,e){if(!t)throw(function n(t,e){return new Error(`Renderer: ${t} [${jn(e)}]`)})("string"==typeof e?"Host node with selector not found:":"Host node is required:",e)})(o,e),o.textContent="",o})(l,n,this.componentDef.encapsulation):mc(r.createRenderer(null,this.componentDef),c,(function m(t){const e=t.toLowerCase();return"svg"===e?zi:"math"===e?Hi:null})(c)),u=this.componentDef.onPush?576:528,f=(function g(t,e){return{components:[],scheduler:t||Yl,clean:kp,playerHandler:e||null,flags:0}})(),h=Kd(0,null,null,1,0,null,null,null,null,null),b=Fd(null,h,f,u,null,null,r,l,s,i);let y,_;Sa(b);try{const t=(function C(t,e,n,o,i,a){const r=n[1];ngDevMode&&ro(n,20),n[20]=t;const s=Ld(r,20,2,"#host",null),l=s.mergedAttrs=e.hostAttrs;null!==l&&(Np(s,l,!0),null!==t&&(Xa(i,t,l),null!==s.classes&&Hc(i,t,s.classes),null!==s.styles&&zc(i,t,s.styles)));const c=o.createRenderer(t,e),d=Fd(n,Xd(e),null,e.onPush?64:16,n[20],s,o,c,a||null,null);return r.firstCreatePass&&(dr(rr(s,n),r,e.type),rp(r,s),lp(s,n.length,1)),Cp(n,d),n[20]=d})(d,this.componentDef,b,r,l);if(d)if(n)Xa(l,d,["ng-version",yh.full]);else{const{attrs:t,classes:e}=(function M(t){const e=[],n=[];let o=1,i=2;for(;o<t.length;){let a=t[o];if("string"==typeof a)2===i?""!==a&&e.push(a,t[++o]):8===i&&n.push(a);else{if(!Wc(i))break;i=a}o++}return{attrs:e,classes:n}})(this.componentDef.selectors[0]);t&&Xa(l,d,t),e&&e.length>0&&Hc(l,d,e.join(" "))}if(_=Yi(h,oi),void 0!==e){const t=_.projection=[];for(let n=0;n<this.ngContentSelectors.length;n++){const o=e[n];t.push(null!=o?Array.from(o):null)}}y=(function v(t,e,n,o,i){const a=n[1],r=(function s(t,e,n){const o=sa();if(t.firstCreatePass){n.providersResolver&&n.providersResolver(n);const i=Vd(t,e,1,null);ngDevMode&&Xn(i,o.directiveStart,"Because this is a root component the allocated expando should match the TNode component."),cp(t,o,e,i,n)}const i=yr(e,t,o.directiveStart,o);Vl(i,e);const a=Gi(o,e);return a&&Vl(a,e),i})(a,n,e);if(o.components.push(r),t[8]=r,i&&i.forEach((t=>t(r,e))),e.contentQueries){const t=sa();ngDevMode&&oo(t,"TNode expected"),e.contentQueries(1,r,t.directiveStart)}const l=sa();return ngDevMode&&oo(l,"tNode should have been already created"),!a.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(Ia(l.index),ip(n[1],l,0,l.directiveStart,l.directiveEnd,e),ap(e,r)),r})(t,this.componentDef,b,f,[um]),jd(h,b,null)}finally{Ta()}return new cb(this.componentType,y,lh(_,b),b,_)}}new ab;class cb extends class{}{constructor(t,e,n,o,i){super(),this.location=n,this._rootLView=o,this._tNode=i,this.instance=e,this.hostView=this.changeDetectorRef=new Ih(o),this.componentType=t}get injector(){return new Mr(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function db(t,e,n,o){return vo((()=>{const i=t;null!==e&&(i.hasOwnProperty("decorators")&&void 0!==i.decorators?i.decorators.push(...e):i.decorators=e),null!==n&&(i.ctorParameters=n),null!==o&&(i.propDecorators=i.hasOwnProperty("propDecorators")&&void 0!==i.propDecorators?Object.assign(Object.assign({},i.propDecorators),o):o)}))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const pb=new Map;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class mb extends Zh{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new ab(this);const n=ni(t);ngDevMode&&oo(n,`NgModule '${Rn(t)}' is not a subtype of 'NgModuleType'.`);const o=(function i(t){return t[Lo]||null})(t);o&&Uf(o),this._bootstrapComponents=Jl(n.bootstrap),this._r3Injector=Up(t,e,[{provide:Zh,useValue:this},{provide:rh,useValue:this.componentFactoryResolver}],Rn(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Qp.THROW_IF_NOT_FOUND,n=yo.Default){return t===Qp||t===Zh||t===Ip?this:this._r3Injector.get(t,e,n)}destroy(){ngDevMode&&oo(this.destroyCbs,"NgModule already destroyed");const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach((t=>t())),this.destroyCbs=null}onDestroy(t){ngDevMode&&oo(this.destroyCbs,"NgModule already destroyed"),this.destroyCbs.push(t)}}class ub extends class{}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */{constructor(t){super(),this.moduleType=t,null!==ni(t)&&(function e(t){const e=new Set;!(function t(n){const o=ni(n,!0),i=o.id;null!==i&&((function a(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${Rn(e)} vs ${Rn(e.name)}`)})(i,pb.get(i),n),pb.set(i,n));const r=Jl(o.imports);for(const n of r)e.has(n)||(e.add(n),t(n))})(t)})(t)}create(t){return new mb(this.moduleType,t)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function fb(t,e,n){const o=ga()+t,i=ia();return i[o]===Kc?Sm(i,o,n?e.call(n):e()):Dm(i,o)}function gb(t,e,n,o){return _b(ia(),ga(),t,e,n,o)}function hb(t,e,n,o,i){return Cb(ia(),ga(),t,e,n,o,i)}function bb(t,e,n,o,i,a){return Mb(ia(),ga(),t,e,n,o,i,a)}function yb(t,e){ngDevMode&&ro(t,e);const n=t[e];return n===Kc?void 0:n}function _b(t,e,n,o,i,a){const r=e+n;return Em(t,r,i)?Sm(t,r+1,a?o.call(a,i):o(i)):yb(t,r+1)}function Cb(t,e,n,o,i,a,r){const s=e+n;return Am(t,s,i,a)?Sm(t,s+2,r?o.call(r,i,a):o(i,a)):yb(t,s+2)}function Mb(t,e,n,o,i,a,r,s){const l=e+n;return Rm(t,l,i,a,r)?Sm(t,l+3,s?o.call(s,i,a,r):o(i,a,r)):yb(t,l+3)}function vb(t,e,n,o,i,a,r,s,l){const c=e+n;return Tm(t,c,i,a,r,s)?Sm(t,c+4,l?o.call(l,i,a,r,s):o(i,a,r,s)):yb(t,c+4)}function xb(t,e,n,o,i,a){let r=e+n,s=!1;for(let e=0;e<i.length;e++)Em(t,r++,i[e])&&(s=!0);return s?Sm(t,r,o.apply(a,i)):yb(t,r)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Ob(t,e){const n=aa();let o;const i=t+oi;n.firstCreatePass?(o=(function a(t,e){if(e)for(let n=e.length-1;n>=0;n--){const o=e[n];if(t===o.name)return o}throw new Fn("302",`The pipe '${t}' could not be found!`)})(e,n.pipeRegistry),n.data[i]=o,o.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(i,o.onDestroy)):o=n.data[i];const r=o.factory||(o.factory=wi(o.type,!0)),s=Co(Mu);try{const t=ir(!1),e=r();return ir(t),(function l(t,e,n,o){n>=t.data.length&&(t.data[n]=null,t.blueprint[n]=null),e[n]=o})(n,ia(),i,e),e}finally{Co(s)}}function Pb(t,e,n){const o=t+oi,i=ia(),a=qi(i,o);return Db(i,Sb(i,o)?_b(i,ga(),e,a.transform,n,a):a.transform(n))}function wb(t,e,n,o){const i=t+oi,a=ia(),r=qi(a,i);return Db(a,Sb(a,i)?Cb(a,ga(),e,r.transform,n,o,r):r.transform(n,o))}function kb(t,e,n,o,i){const a=t+oi,r=ia(),s=qi(r,a);return Db(r,Sb(r,a)?Mb(r,ga(),e,s.transform,n,o,i,s):s.transform(n,o,i))}function Sb(t,e){return t[1].data[e].pure}function Db(t,e){return Pm.isWrapped(e)&&(e=Pm.unwrap(e),t[ha()]=Kc),e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Eb(t){return e=>{setTimeout(t,void 0,e)}}const Ab=class extends x{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){var o,i,a;let r=t,s=e||(()=>null),c=n;if(t&&"object"==typeof t){const e=t;r=null===(o=e.next)||void 0===o?void 0:o.bind(e),s=null===(i=e.error)||void 0===i?void 0:i.bind(e),c=null===(a=e.complete)||void 0===a?void 0:a.bind(e)}this.__isAsync&&(s=Eb(s),r&&(r=Eb(r)),c&&(c=Eb(c)));const d=super.subscribe({next:r,error:s,complete:c});return t instanceof l&&t.add(d),d}};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Rb(){return this._results[xm()]()}class Tb{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=xm(),n=Tb.prototype;n[e]||(n[e]=Rb)}get changes(){return this._changes||(this._changes=new Ab)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){const n=this;n.dirty=!1;const o=Gr(t);(this._changesDetected=!(function i(t,e,n){if(t.length!==e.length)return!1;for(let o=0;o<t.length;o++){let i=t[o],a=e[o];if(n&&(i=n(i),a=n(a)),a!==i)return!1}return!0})(n._results,o,e))&&(n._results=o,n.length=o.length,n.last=o[this.length-1],n.first=o[0])}notifyOnChanges(){!this._changes||!this._changesDetected&&this._emitDistinctChangesOnly||this._changes.emit(this)}setDirty(){this.dirty=!0}destroy(){this.changes.complete(),this.changes.unsubscribe()}}class Nb{constructor(t){this.queryList=t,this.matches=null}clone(){return new Nb(this.queryList)}setDirty(){this.queryList.setDirty()}}class Ib{constructor(t=[]){this.queries=t}createEmbeddedView(t){const e=t.queries;if(null!==e){const n=null!==t.contentQueries?t.contentQueries[0]:e.length,o=[];for(let t=0;t<n;t++){const n=e.getByIndex(t);o.push(this.queries[n.indexInDeclarationView].clone())}return new Ib(o)}return null}insertView(t){this.dirtyQueriesWithMatches(t)}detachView(t){this.dirtyQueriesWithMatches(t)}dirtyQueriesWithMatches(t){for(let e=0;e<this.queries.length;e++)null!==Xb(t,e).matches&&this.queries[e].setDirty()}}class zb{constructor(t,e,n=null){this.predicate=t,this.flags=e,this.read=n}}class Hb{constructor(t=[]){this.queries=t}elementStart(t,e){ngDevMode&&Ci(t,"Queries should collect results on the first template pass only");for(let n=0;n<this.queries.length;n++)this.queries[n].elementStart(t,e)}elementEnd(t){for(let e=0;e<this.queries.length;e++)this.queries[e].elementEnd(t)}embeddedTView(t){let e=null;for(let n=0;n<this.length;n++){const o=null!==e?e.length:0,i=this.getByIndex(n).embeddedTView(t,o);i&&(i.indexInDeclarationView=n,null!==e?e.push(i):e=[i])}return null!==e?new Hb(e):null}template(t,e){ngDevMode&&Ci(t,"Queries should collect results on the first template pass only");for(let n=0;n<this.queries.length;n++)this.queries[n].template(t,e)}getByIndex(t){return ngDevMode&&ro(this.queries,t),this.queries[t]}get length(){return this.queries.length}track(t){this.queries.push(t)}}class Fb{constructor(t,e=-1){this.metadata=t,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=e}elementStart(t,e){this.isApplyingToNode(e)&&this.matchTNode(t,e)}elementEnd(t){this._declarationNodeIndex===t.index&&(this._appliesToNextNode=!1)}template(t,e){this.elementStart(t,e)}embeddedTView(t,e){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,e),new Fb(this.metadata)):null}isApplyingToNode(t){if(this._appliesToNextNode&&1!=(1&this.metadata.flags)){const e=this._declarationNodeIndex;let n=t.parent;for(;null!==n&&8&n.type&&n.index!==e;)n=n.parent;return e===(null!==n?n.index:-1)}return this._appliesToNextNode}matchTNode(t,e){const n=this.metadata.predicate;if(Array.isArray(n))for(let o=0;o<n.length;o++){const i=n[o];this.matchTNodeWithReadOption(t,e,Lb(e,i)),this.matchTNodeWithReadOption(t,e,br(e,t,i,!1,!1))}else n===Uh?4&e.type&&this.matchTNodeWithReadOption(t,e,-1):this.matchTNodeWithReadOption(t,e,br(e,t,n,!1,!1))}matchTNodeWithReadOption(t,e,n){if(null!==n){const o=this.metadata.read;if(null!==o)if(o===ch||o===Xh||o===Uh&&4&e.type)this.addMatch(e.index,-2);else{const n=br(e,t,o,!1,!1);null!==n&&this.addMatch(e.index,n)}else this.addMatch(e.index,n)}}addMatch(t,e){null===this.matches?this.matches=[t,e]:this.matches.push(t,e)}}function Lb(t,e){const n=t.localNames;if(null!==n)for(let t=0;t<n.length;t+=2)if(n[t]===e)return n[t+1];return null}function Bb(t,e,n,o){return-1===n?(function i(t,e){return 11&t.type?lh(t,e):4&t.type?qh(t,e):null})(e,t):-2===n?(function a(t,e,n){return n===ch?lh(e,t):n===Uh?qh(e,t):n===Xh?(ngDevMode&&Za(e,15),eb(e,t)):void(ngDevMode&&io(`Special token to read should be one of ElementRef, TemplateRef or ViewContainerRef but got ${Rn(n)}.`))})(t,e,o):yr(t,t[1],n,e)}function Vb(t,e,n,o){const i=e[19].queries[o];if(null===i.matches){const o=t.data,a=n.matches,r=[];for(let t=0;t<a.length;t+=2){const i=a[t];i<0?r.push(null):(ngDevMode&&ro(o,i),r.push(Bb(e,o[i],a[t+1],n.metadata.read)))}i.matches=r}return i.matches}function jb(t,e,n,o){const i=t.queries.getByIndex(n),a=i.matches;if(null!==a){const r=Vb(t,e,i,n);for(let t=0;t<a.length;t+=2){const n=a[t];if(n>0)o.push(r[t/2]);else{const i=a[t+1],r=e[-n];ngDevMode&&bi(r);for(let t=ai;t<r.length;t++){const e=r[t];e[17]===e[3]&&jb(e[1],e,i,o)}if(null!==r[9]){const t=r[9];for(let e=0;e<t.length;e++){const n=t[e];jb(n[1],n,i,o)}}}}}return o}function Ub(t){const e=ia(),n=aa(),o=Oa();Pa(o+1);const i=Xb(n,o);if(t.dirty&&Ji(e)===(2==(2&i.metadata.flags))){if(null===i.matches)t.reset([]);else{const a=i.crossesNgTemplate?jb(n,e,o,[]):Vb(n,e,i,o);t.reset(a,dh),t.notifyOnChanges()}return!0}return!1}function Wb(t,e,n){ngDevMode&&Yn(e,"Expecting flags");const o=aa();o.firstCreatePass&&(Zb(o,new zb(t,e,n),-1),2==(2&e)&&(o.staticViewQueries=!0)),qb(o,ia(),e)}function Gb(t,e,n,o){ngDevMode&&Yn(n,"Expecting flags");const i=aa();if(i.firstCreatePass){const a=sa();Zb(i,new zb(e,n,o),a.index),(function a(t,e){const n=t.contentQueries||(t.contentQueries=[]);e!==(n.length?n[n.length-1]:-1)&&n.push(t.queries.length-1,e)})(i,t),2==(2&n)&&(i.staticContentQueries=!0)}qb(i,ia(),n)}function Yb(){return(function t(e,n){return ngDevMode&&oo(e[19],"LQueries should be defined when trying to load a query"),ngDevMode&&ro(e[19].queries,n),e[19].queries[n].queryList})(ia(),Oa())}function qb(t,e,n){const o=new Tb(4==(4&n));Jd(t,e,o,o.destroy),null===e[19]&&(e[19]=new Ib),e[19].queries.push(new Nb(o))}function Zb(t,e,n){null===t.queries&&(t.queries=new Hb),t.queries.track(new Fb(e,n))}function Xb(t,e){return ngDevMode&&oo(t.queries,"TQueries must be defined to retrieve a TQuery"),t.queries.getByIndex(e)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Kb(t,e){return qh(t,e)}function Jb(t=yo.Default){const e=Fh(!0);if(null!=e||t&yo.Optional)return e;Gn("ChangeDetectorRef")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Qb={"ɵɵattribute":Nm,"ɵɵattributeInterpolate1":function t(e,n,o,i,a,r){const s=ia(),l=zm(s,n,o,i);if(l!==Kc){const t=za();pp(t,s,e,l,a,r),ngDevMode&&wp(aa().data,t,"attr."+e,ha()-1,n,i)}return t},"ɵɵattributeInterpolate2":function t(e,n,o,i,a,r,s,l){const c=ia(),d=Hm(c,n,o,i,a,r);if(d!==Kc){const t=za();pp(t,c,e,d,s,l),ngDevMode&&wp(aa().data,t,"attr."+e,ha()-2,n,i,r)}return t},"ɵɵattributeInterpolate3":function t(e,n,o,i,a,r,s,l,c,d){const p=ia(),m=Fm(p,n,o,i,a,r,s,l);if(m!==Kc){const t=za();pp(t,p,e,m,c,d),ngDevMode&&wp(aa().data,t,"attr."+e,ha()-3,n,i,r,l)}return t},"ɵɵattributeInterpolate4":function t(e,n,o,i,a,r,s,l,c,d,p,m){const u=ia(),f=Lm(u,n,o,i,a,r,s,l,c,d);if(f!==Kc){const t=za();pp(t,u,e,f,p,m),ngDevMode&&wp(aa().data,t,"attr."+e,ha()-4,n,i,r,l,d)}return t},"ɵɵattributeInterpolate5":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f){const g=ia(),h=Bm(g,n,o,i,a,r,s,l,c,d,p,m);if(h!==Kc){const t=za();pp(t,g,e,h,u,f),ngDevMode&&wp(aa().data,t,"attr."+e,ha()-5,n,i,r,l,d,m)}return t},"ɵɵattributeInterpolate6":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h){const b=ia(),y=Vm(b,n,o,i,a,r,s,l,c,d,p,m,u,f);if(y!==Kc){const t=za();pp(t,b,e,y,g,h),ngDevMode&&wp(aa().data,t,"attr."+e,ha()-6,n,i,r,l,d,m,f)}return t},"ɵɵattributeInterpolate7":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y){const _=ia(),C=jm(_,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h);if(C!==Kc){const t=za();pp(t,_,e,C,b,y),ngDevMode&&wp(aa().data,t,"attr."+e,ha()-7,n,i,r,l,d,m,f,h)}return t},"ɵɵattributeInterpolate8":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y,_,C){const M=ia(),v=Um(M,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y);if(v!==Kc){const t=za();pp(t,M,e,v,_,C),ngDevMode&&wp(aa().data,t,"attr."+e,ha()-8,n,i,r,l,d,m,f,h,y)}return t},"ɵɵattributeInterpolateV":function t(e,n,o,i){const a=ia(),r=Im(a,n);if(r!==Kc){const t=za();if(pp(t,a,e,r,o,i),ngDevMode){const o=[n[0]];for(let t=2;t<n.length;t+=2)o.push(n[t]);wp(aa().data,t,"attr."+e,ha()-o.length+1,...o)}}return t},"ɵɵdefineComponent":Uo,"ɵɵdefineDirective":Jo,"ɵɵdefineInjectable":lo,"ɵɵdefineInjector":co,"ɵɵdefineNgModule":Zo,"ɵɵdefinePipe":Qo,"ɵɵdirectiveInject":Mu,"ɵɵgetInheritedFactory":vr,"ɵɵinject":us,"ɵɵinjectAttribute":Or,"ɵɵinvalidFactory":function $b(){const t=ngDevMode?"This constructor was not compatible with Dependency Injection.":"invalid";throw new Error(t)},"ɵɵinvalidFactoryDep":fs,"ɵɵinjectPipeChangeDetectorRef":Jb,"ɵɵtemplateRefExtractor":Kb,"ɵɵNgOnChangesFeature":Si,"ɵɵProvidersFeature":ih,"ɵɵCopyDefinitionFeature":function ty(t){let e,n=fm(t.type);e=pi(t)?n.ɵcmp:n.ɵdir;const o=t;for(const t of Cm)o[t]=e[t];if(pi(e))for(const t of Mm)o[t]=e[t]},"ɵɵInheritDefinitionFeature":gm,"ɵɵnextContext":Lu,"ɵɵnamespaceHTML":Fa,"ɵɵnamespaceMathML":function ey(){na.lFrame.currentNamespace=Hi},"ɵɵnamespaceSVG":Ha,"ɵɵenableBindings":function ny(){na.bindingsEnabled=!0},"ɵɵdisableBindings":function oy(){na.bindingsEnabled=!1},"ɵɵelementStart":Ou,"ɵɵelementEnd":Pu,"ɵɵelement":wu,"ɵɵelementContainerStart":ku,"ɵɵelementContainerEnd":Su,"ɵɵelementContainer":Du,"ɵɵpureFunction0":fb,"ɵɵpureFunction1":gb,"ɵɵpureFunction2":hb,"ɵɵpureFunction3":bb,"ɵɵpureFunction4":function iy(t,e,n,o,i,a,r){return vb(ia(),ga(),t,e,n,o,i,a,r)},"ɵɵpureFunction5":function ay(t,e,n,o,i,a,r,s){const l=ga()+t,c=ia(),d=Tm(c,l,n,o,i,a);return Em(c,l+4,r)||d?Sm(c,l+5,s?e.call(s,n,o,i,a,r):e(n,o,i,a,r)):Dm(c,l+5)},"ɵɵpureFunction6":function ry(t,e,n,o,i,a,r,s,l){const c=ga()+t,d=ia(),p=Tm(d,c,n,o,i,a);return Am(d,c+4,r,s)||p?Sm(d,c+6,l?e.call(l,n,o,i,a,r,s):e(n,o,i,a,r,s)):Dm(d,c+6)},"ɵɵpureFunction7":function sy(t,e,n,o,i,a,r,s,l,c){const d=ga()+t,p=ia();let m=Tm(p,d,n,o,i,a);return Rm(p,d+4,r,s,l)||m?Sm(p,d+7,c?e.call(c,n,o,i,a,r,s,l):e(n,o,i,a,r,s,l)):Dm(p,d+7)},"ɵɵpureFunction8":function ly(t,e,n,o,i,a,r,s,l,c,d){const p=ga()+t,m=ia(),u=Tm(m,p,n,o,i,a);return Tm(m,p+4,r,s,l,c)||u?Sm(m,p+8,d?e.call(d,n,o,i,a,r,s,l,c):e(n,o,i,a,r,s,l,c)):Dm(m,p+8)},"ɵɵpureFunctionV":function cy(t,e,n,o){return xb(ia(),ga(),t,e,n,o)},"ɵɵgetCurrentView":Eu,"ɵɵrestoreView":ra,"ɵɵlistener":Nu,"ɵɵprojection":ju,"ɵɵsyntheticHostProperty":Sf,"ɵɵsyntheticHostListener":Iu,"ɵɵpipeBind1":Pb,"ɵɵpipeBind2":wb,"ɵɵpipeBind3":kb,"ɵɵpipeBind4":function dy(t,e,n,o,i,a){const r=t+oi,s=ia(),l=qi(s,r);return Db(s,Sb(s,r)?vb(s,ga(),e,l.transform,n,o,i,a,l):l.transform(n,o,i,a))},"ɵɵpipeBindV":function py(t,e,n){const o=t+oi,i=ia(),a=qi(i,o);return Db(i,Sb(i,o)?xb(i,ga(),e,a.transform,n,a):a.transform.apply(a,n))},"ɵɵprojectionDef":Vu,"ɵɵhostProperty":kf,"ɵɵproperty":vu,"ɵɵpropertyInterpolate":Uu,"ɵɵpropertyInterpolate1":Wu,"ɵɵpropertyInterpolate2":function t(e,n,o,i,a,r,s){const l=ia(),c=Hm(l,n,o,i,a,r);if(c!==Kc){const t=aa(),o=za();$d(t,o,l,e,c,l[11],s,!1),ngDevMode&&wp(t.data,o,e,ha()-2,n,i,r)}return t},"ɵɵpropertyInterpolate3":function t(e,n,o,i,a,r,s,l,c){const d=ia(),p=Fm(d,n,o,i,a,r,s,l);if(p!==Kc){const t=aa(),o=za();$d(t,o,d,e,p,d[11],c,!1),ngDevMode&&wp(t.data,o,e,ha()-3,n,i,r,l)}return t},"ɵɵpropertyInterpolate4":function t(e,n,o,i,a,r,s,l,c,d,p){const m=ia(),u=Lm(m,n,o,i,a,r,s,l,c,d);if(u!==Kc){const t=aa(),o=za();$d(t,o,m,e,u,m[11],p,!1),ngDevMode&&wp(t.data,o,e,ha()-4,n,i,r,l,d)}return t},"ɵɵpropertyInterpolate5":function t(e,n,o,i,a,r,s,l,c,d,p,m,u){const f=ia(),g=Bm(f,n,o,i,a,r,s,l,c,d,p,m);if(g!==Kc){const t=aa(),o=za();$d(t,o,f,e,g,f[11],u,!1),ngDevMode&&wp(t.data,o,e,ha()-5,n,i,r,l,d,m)}return t},"ɵɵpropertyInterpolate6":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g){const h=ia(),b=Vm(h,n,o,i,a,r,s,l,c,d,p,m,u,f);if(b!==Kc){const t=aa(),o=za();$d(t,o,h,e,b,h[11],g,!1),ngDevMode&&wp(t.data,o,e,ha()-6,n,i,r,l,d,m,f)}return t},"ɵɵpropertyInterpolate7":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b){const y=ia(),_=jm(y,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h);if(_!==Kc){const t=aa(),o=za();$d(t,o,y,e,_,y[11],b,!1),ngDevMode&&wp(t.data,o,e,ha()-7,n,i,r,l,d,m,f,h)}return t},"ɵɵpropertyInterpolate8":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y,_){const C=ia(),M=Um(C,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y);if(M!==Kc){const t=aa(),o=za();$d(t,o,C,e,M,C[11],_,!1),ngDevMode&&wp(t.data,o,e,ha()-8,n,i,r,l,d,m,f,h,y)}return t},"ɵɵpropertyInterpolateV":function t(e,n,o){const i=ia(),a=Im(i,n);if(a!==Kc){const t=aa(),r=za();if($d(t,r,i,e,a,i[11],o,!1),ngDevMode){const o=[n[0]];for(let t=2;t<n.length;t+=2)o.push(n[t]);wp(t.data,r,e,ha()-o.length+1,...o)}}return t},"ɵɵpipe":Ob,"ɵɵqueryRefresh":Ub,"ɵɵviewQuery":Wb,"ɵɵloadQuery":Yb,"ɵɵcontentQuery":Gb,"ɵɵreference":Gm,"ɵɵclassMap":lf,"ɵɵclassMapInterpolate1":wf,"ɵɵclassMapInterpolate2":function my(t,e,n,o,i){pf(Kr,cf,Hm(ia(),t,e,n,o,i),!0)},"ɵɵclassMapInterpolate3":function uy(t,e,n,o,i,a,r){pf(Kr,cf,Fm(ia(),t,e,n,o,i,a,r),!0)},"ɵɵclassMapInterpolate4":function fy(t,e,n,o,i,a,r,s,l){pf(Kr,cf,Lm(ia(),t,e,n,o,i,a,r,s,l),!0)},"ɵɵclassMapInterpolate5":function gy(t,e,n,o,i,a,r,s,l,c,d){pf(Kr,cf,Bm(ia(),t,e,n,o,i,a,r,s,l,c,d),!0)},"ɵɵclassMapInterpolate6":function hy(t,e,n,o,i,a,r,s,l,c,d,p,m){pf(Kr,cf,Vm(ia(),t,e,n,o,i,a,r,s,l,c,d,p,m),!0)},"ɵɵclassMapInterpolate7":function by(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f){pf(Kr,cf,jm(ia(),t,e,n,o,i,a,r,s,l,c,d,p,m,u,f),!0)},"ɵɵclassMapInterpolate8":function yy(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h){pf(Kr,cf,Um(ia(),t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h),!0)},"ɵɵclassMapInterpolateV":function _y(t){pf(Kr,cf,Im(ia(),t),!0)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */,"ɵɵstyleMap":rf,"ɵɵstyleMapInterpolate1":function Cy(t,e,n){rf(zm(ia(),t,e,n))},"ɵɵstyleMapInterpolate2":function My(t,e,n,o,i){rf(Hm(ia(),t,e,n,o,i))},"ɵɵstyleMapInterpolate3":function vy(t,e,n,o,i,a,r){rf(Fm(ia(),t,e,n,o,i,a,r))},"ɵɵstyleMapInterpolate4":function xy(t,e,n,o,i,a,r,s,l){rf(Lm(ia(),t,e,n,o,i,a,r,s,l))},"ɵɵstyleMapInterpolate5":function Oy(t,e,n,o,i,a,r,s,l,c,d){rf(Bm(ia(),t,e,n,o,i,a,r,s,l,c,d))},"ɵɵstyleMapInterpolate6":function Py(t,e,n,o,i,a,r,s,l,c,d,p,m){rf(Vm(ia(),t,e,n,o,i,a,r,s,l,c,d,p,m))},"ɵɵstyleMapInterpolate7":function wy(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f){rf(jm(ia(),t,e,n,o,i,a,r,s,l,c,d,p,m,u,f))},"ɵɵstyleMapInterpolate8":function ky(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h){rf(Um(ia(),t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h))},"ɵɵstyleMapInterpolateV":function Sy(t){rf(Im(ia(),t))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */,"ɵɵstyleProp":of,"ɵɵstylePropInterpolate1":function t(e,n,o,i,a){return df(e,zm(ia(),n,o,i),a,!1),t},"ɵɵstylePropInterpolate2":function t(e,n,o,i,a,r,s){return df(e,Hm(ia(),n,o,i,a,r),s,!1),t},"ɵɵstylePropInterpolate3":function t(e,n,o,i,a,r,s,l,c){return df(e,Fm(ia(),n,o,i,a,r,s,l),c,!1),t},"ɵɵstylePropInterpolate4":function t(e,n,o,i,a,r,s,l,c,d,p){return df(e,Lm(ia(),n,o,i,a,r,s,l,c,d),p,!1),t},"ɵɵstylePropInterpolate5":function t(e,n,o,i,a,r,s,l,c,d,p,m,u){return df(e,Bm(ia(),n,o,i,a,r,s,l,c,d,p,m),u,!1),t},"ɵɵstylePropInterpolate6":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g){return df(e,Vm(ia(),n,o,i,a,r,s,l,c,d,p,m,u,f),g,!1),t},"ɵɵstylePropInterpolate7":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b){return df(e,jm(ia(),n,o,i,a,r,s,l,c,d,p,m,u,f,g,h),b,!1),t},"ɵɵstylePropInterpolate8":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y,_){return df(e,Um(ia(),n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y),_,!1),t},"ɵɵstylePropInterpolateV":function t(e,n,o){return df(e,Im(ia(),n),o,!1),t},"ɵɵclassProp":af,"ɵɵadvance":Jc,"ɵɵtemplate":Wm,"ɵɵtext":Mf,"ɵɵtextInterpolate":vf,"ɵɵtextInterpolate1":xf,"ɵɵtextInterpolate2":Of,"ɵɵtextInterpolate3":Pf,"ɵɵtextInterpolate4":function t(e,n,o,i,a,r,s,l,c){const d=ia(),p=Lm(d,e,n,o,i,a,r,s,l,c);return p!==Kc&&Tp(d,Na(),p),t},"ɵɵtextInterpolate5":function t(e,n,o,i,a,r,s,l,c,d,p){const m=ia(),u=Bm(m,e,n,o,i,a,r,s,l,c,d,p);return u!==Kc&&Tp(m,Na(),u),t},"ɵɵtextInterpolate6":function t(e,n,o,i,a,r,s,l,c,d,p,m,u){const f=ia(),g=Vm(f,e,n,o,i,a,r,s,l,c,d,p,m,u);return g!==Kc&&Tp(f,Na(),g),t},"ɵɵtextInterpolate7":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g){const h=ia(),b=jm(h,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g);return b!==Kc&&Tp(h,Na(),b),t},"ɵɵtextInterpolate8":function t(e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b){const y=ia(),_=Um(y,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b);return _!==Kc&&Tp(y,Na(),_),t},"ɵɵtextInterpolateV":function t(e){const n=ia(),o=Im(n,e);return o!==Kc&&Tp(n,Na(),o),t},"ɵɵi18n":qg,"ɵɵi18nAttributes":function Dy(t,e){const n=aa();ngDevMode&&oo(n,"tView should be defined");const o=$i(n.consts,e);!(function i(t,e,n){const o=sa().index,i=[];if(ngDevMode&&ld(i,mg),t.firstCreatePass&&null===t.data[e]){for(let t=0;t<n.length;t+=2){const e=n[t],a=n[t+1];if(""!==a){if(bg.test(a))throw new Error(`ICU expressions are not supported in attributes. Message: "${a}".`);Pg(i,a,o,e,wg(i),null)}}t.data[e]=i}})(n,t+oi,o)},"ɵɵi18nExp":Zg,"ɵɵi18nStart":Gg,"ɵɵi18nEnd":Yg,"ɵɵi18nApply":Xg,"ɵɵi18nPostprocess":Kg,"ɵɵresolveWindow":ql,"ɵɵresolveDocument":Zl,"ɵɵresolveBody":Xl,"ɵɵsetComponentScope":Wo,"ɵɵsetNgModuleScope":Xo,"ɵɵsanitizeHtml":
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Ey(t){const e=wl();return e?zs(e.sanitize(xl.HTML,t)||""):Ys(t,"HTML")?zs(Gs(t)):Ml(Li(),Vn(t))},"ɵɵsanitizeStyle":function Ay(t){const e=wl();return e?e.sanitize(xl.STYLE,t)||"":Ys(t,"Style")?Gs(t):Vn(t)},"ɵɵsanitizeResourceUrl":Pl,"ɵɵsanitizeScript":function Ry(t){const e=wl();if(e)return Hs(e.sanitize(xl.SCRIPT,t)||"");if(Ys(t,"Script"))return Hs(Gs(t));throw new Error("unsafe value used in a script context")},"ɵɵsanitizeUrl":Ol,"ɵɵsanitizeUrlOrResourceUrl":function Ty(t,e,n){return(function o(t,e){return"src"===e&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===e&&("base"===t||"link"===t)?Pl:Ol})(e,n)(t)},"ɵɵtrustConstantHtml":function Ny(t){if(ngDevMode&&(!Array.isArray(t)||!Array.isArray(t.raw)||1!==t.length))throw new Error(`Unexpected interpolation in trusted HTML constant: ${t.join("?")}`);return Ns(t[0])},"ɵɵtrustConstantResourceUrl":function Iy(t){if(ngDevMode&&(!Array.isArray(t)||!Array.isArray(t.raw)||1!==t.length))throw new Error(`Unexpected interpolation in trusted URL constant: ${t.join("?")}`);return(function e(t){var e;return(null===(e=Ts())||void 0===e?void 0:e.createScriptURL(t))||t})(t[0])},forwardRef:In,resolveForwardRef:zn};let zy=null;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Hy=[],Fy=[];let Ly=!1;function By(t){return Array.isArray(t)?t.every(By):!!zn(t)}function Vy(t,e,n){if(Gy.get(t))return;let o;if(Gy.set(t,!0),t=zn(t),n){if(o=ni(t),!o)throw new Error(`Unexpected value '${t.name}' imported by the module '${n.name}'. Please add an @NgModule annotation.`)}else o=ni(t,!0);const i=[],a=Jl(o.declarations),r=Jl(o.imports);Gr(r).map(jy).forEach((e=>{h(e,t),Vy(e,!1,t)}));const s=Jl(o.exports);a.forEach((function l(e){$o(e=zn(e))||ti(e)||ei(e)||i.push(`Unexpected value '${jn(e)}' declared by the module '${jn(t)}'. Please add a @Pipe/@Directive/@Component annotation.`)})),a.forEach((function c(t){const e=ti(t=zn(t));!$o(t)&&e&&0==e.selectors.length&&i.push(`Directive ${jn(t)} has no selector, please add it!`)}));const d=[...a.map(zn),...Gr(r.map(Yy)).map(zn)];s.forEach((function p(e){const n=($o(e=zn(e))?"component":ti(e)&&"directive")||ei(e)&&"pipe";n&&-1===d.lastIndexOf(e)&&i.push(`Can't export ${n} ${jn(e)} from ${jn(t)} as it was neither declared nor imported!`)})),a.forEach((n=>(function o(e,n){e=zn(e);const o=Wy.get(e);if(o&&o!==t){if(!n){const n=[o,t].map(jn).sort();i.push(`Type ${jn(e)} is part of the declarations of 2 modules: ${n[0]} and ${n[1]}! Please consider moving ${jn(e)} to a higher module that imports ${n[0]} and ${n[1]}. You can also create a new NgModule that exports and includes ${jn(e)} then import that NgModule in ${n[0]} and ${n[1]}.`)}}else Wy.set(e,t)})(n,e))),a.forEach((function m(t){if($o(t=zn(t))){const e=Uy(t,"Component");e&&e.entryComponents&&Yr(e.entryComponents,g)}}));const u=Uy(t,"NgModule");if(u&&(u.imports&&Gr(u.imports).map(jy).forEach((e=>{h(e,t),Vy(e,!1,t)})),u.bootstrap&&Yr(u.bootstrap,(function f(t){$o(t=zn(t))||i.push(`${jn(t)} cannot be used as an entry component.`)})),u.bootstrap&&Yr(u.bootstrap,g),u.entryComponents&&Yr(u.entryComponents,g)),i.length)throw new Error(i.join("\n"));function g(t){t=zn(t),Wy.get(t)||i.push(`Component ${jn(t)} is not part of any NgModule or the module has not been imported into your module.`)}function h(t,e){if($o(t=zn(t))||ti(t))throw new Error(`Unexpected directive '${t.name}' imported by the module '${e.name}'. Please add an @NgModule annotation.`);if(ei(t))throw new Error(`Unexpected pipe '${t.name}' imported by the module '${e.name}'. Please add an @NgModule annotation.`)}}function jy(t){return(t=zn(t)).ngModule||t}function Uy(t,e){let n=null;return o(t.__annotations__),o(t.decorators),n;function o(t){t&&t.forEach(i)}function i(t){n||(Object.getPrototypeOf(t).ngMetadataName==e?n=t:t.type&&Object.getPrototypeOf(t.type).ngMetadataName==e&&(n=t.args[0]))}}let Wy=new WeakMap,Gy=new WeakMap;function Yy(t){return[...Gr(Jl(ni(t=zn(t),!0).exports).map((t=>ni(t)?(Vy(t,!1),Yy(t)):t)))]}function qy(t,e){const n=Gr(e.declarations||Hy),o=Xy(t);n.forEach((e=>{e.hasOwnProperty(Io)?Zy($o(e),o):e.hasOwnProperty(zo)||e.hasOwnProperty(Ho)||(e.ngSelectorScope=t)}))}function Zy(t,e){t.directiveDefs=()=>Array.from(e.compilation.directives).map((t=>t.hasOwnProperty(Io)?$o(t):ti(t))).filter((t=>!!t)),t.pipeDefs=()=>Array.from(e.compilation.pipes).map((t=>ei(t))),t.schemas=e.schemas,t.tView=null}function Xy(t){if(!Jy(t))throw new Error(`${t.name} does not have a module def (ɵmod property)`);const e=ni(t);if(null!==e.transitiveCompileScopes)return e.transitiveCompileScopes;const n={schemas:e.schemas||null,compilation:{directives:new Set,pipes:new Set},exported:{directives:new Set,pipes:new Set}};return Jl(e.imports).forEach((t=>{const e=t;if(!Jy(e))throw new Error(`Importing ${e.name} which does not have a ɵmod property`);const o=Xy(e);o.exported.directives.forEach((t=>n.compilation.directives.add(t))),o.exported.pipes.forEach((t=>n.compilation.pipes.add(t)))})),Jl(e.declarations).forEach((t=>{ei(t)?n.compilation.pipes.add(t):n.compilation.directives.add(t)})),Jl(e.exports).forEach((t=>{const e=t;if(Jy(e)){const t=Xy(e);t.exported.directives.forEach((t=>{n.compilation.directives.add(t),n.exported.directives.add(t)})),t.exported.pipes.forEach((t=>{n.compilation.pipes.add(t),n.exported.pipes.add(t)}))}else ei(e)?n.exported.pipes.add(e):n.exported.directives.add(e)})),e.transitiveCompileScopes=n,n}function Ky(t){return(function e(t){return void 0!==t.ngModule})(t)?t.ngModule:t}function Jy(t){return!!ni(t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */let Qy=0;function $y(t,e){let n=null;e_(t,e||{}),Object.defineProperty(t,zo,{get:()=>{if(null===n){const o=t_(t,e||{});n=jr().compileDirective(Qb,o.sourceMapUrl,o.metadata)}return n},configurable:!!ngDevMode})}function t_(t,e){const n=t&&t.name,o=`ng:///${n}/ɵdir.js`,i=jr(),a=o_(t,e);return a.typeSourceSpan=i.createParseSourceSpan("Directive",n,o),a.usesInheritance&&i_(t),{metadata:a,sourceMapUrl:o}}function e_(t,e){let n=null;Object.defineProperty(t,Bo,{get:()=>{if(null===n){const o=t_(t,e),i=jr();n=i.compileFactory(Qb,`ng:///${t.name}/ɵfac.js`,Object.assign(Object.assign({},o.metadata),{injectFn:"directiveInject",target:i.R3FactoryTarget.Directive}))}return n},configurable:!!ngDevMode})}function n_(t){return Object.getPrototypeOf(t.prototype)===Object.prototype}function o_(t,e){const n=Os(),o=n.ownPropMetadata(t);return{name:t.name,type:t,typeArgumentCount:0,selector:void 0!==e.selector?e.selector:null,deps:Ps(t),host:e.host||Ro,propMetadata:o,inputs:e.inputs||No,outputs:e.outputs||No,queries:s_(t,o,l_),lifecycle:{usesOnChanges:n.hasLifecycleHook(t,"ngOnChanges")},typeSourceSpan:null,usesInheritance:!n_(t),exportAs:(i=e.exportAs,void 0===i?null:p_(i)),providers:e.providers||null,viewQueries:s_(t,o,c_)};var i}function i_(t){const e=Object.prototype;let n=Object.getPrototypeOf(t.prototype).constructor;for(;n&&n!==e;)ti(n)||$o(n)||!u_(n)||$y(n,null),n=Object.getPrototypeOf(n)}function a_(t){return"string"==typeof t?p_(t):zn(t)}function r_(t,e){return{propertyName:t,predicate:a_(e.selector),descendants:e.descendants,first:e.first,read:e.read?e.read:null,static:!!e.static,emitDistinctChangesOnly:!!e.emitDistinctChangesOnly}}function s_(t,e,n){const o=[];for(const i in e)if(e.hasOwnProperty(i)){const a=e[i];a.forEach((e=>{if(n(e)){if(!e.selector)throw new Error(`Can't construct a query for the property "${i}" of "${jn(t)}" since the query selector wasn't defined.`);if(a.some(d_))throw new Error("Cannot combine @Input decorators with query decorators");o.push(r_(i,e))}}))}return o}function l_(t){const e=t.ngMetadataName;return"ContentChild"===e||"ContentChildren"===e}function c_(t){const e=t.ngMetadataName;return"ViewChild"===e||"ViewChildren"===e}function d_(t){return"Input"===t.ngMetadataName}function p_(t){return t.split(",").map((t=>t.trim()))}const m_=["ngOnChanges","ngOnInit","ngOnDestroy","ngDoCheck","ngAfterViewInit","ngAfterViewChecked","ngAfterContentInit","ngAfterContentChecked"];function u_(t){const e=Os();if(m_.some((n=>e.hasLifecycleHook(t,n))))return!0;const n=e.propMetadata(t);for(const t in n){const e=n[t];for(let t=0;t<e.length;t++){const n=e[t],o=n.ngMetadataName;if(d_(n)||l_(n)||c_(n)||"Output"===o||"HostBinding"===o||"HostListener"===o)return!0}}return!1}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function f_(t,e){return{type:t,typeArgumentCount:0,name:t.name,deps:Ps(t),pipeName:e.name,pure:void 0===e.pure||e.pure}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const g_=Sr("Directive",((t={})=>t),void 0,void 0,((t,e)=>O_(t,e))),h_=Sr("Component",((t={})=>Object.assign({changeDetection:xo.Default},t)),g_,void 0,((t,e)=>v_(t,e))),b_=Sr("Pipe",(t=>Object.assign({pure:!0},t)),void 0,void 0,((t,e)=>P_(t,e))),y_=Ar("Input",(t=>({bindingPropertyName:t}))),__=Ar("Output",(t=>({bindingPropertyName:t}))),C_=Ar("HostBinding",(t=>({hostPropertyName:t}))),M_=Ar("HostListener",((t,e)=>({eventName:t,args:e}))),v_=function x_(t,e){("undefined"==typeof ngDevMode||ngDevMode)&&Ao();let n=null;!(function o(t,e){Ds(e)&&(ks.set(t,e),Ss.add(t))})(t,e),e_(t,e),Object.defineProperty(t,Io,{get:()=>{if(null===n){const o=jr();if(Ds(e)){const n=[`Component '${t.name}' is not resolved:`];throw e.templateUrl&&n.push(` - templateUrl: ${e.templateUrl}`),e.styleUrls&&e.styleUrls.length&&n.push(` - styleUrls: ${JSON.stringify(e.styleUrls)}`),n.push("Did you run and wait for 'resolveComponentResources()'?"),new Error(n.join("\n"))}const i=(function o(){return zy})();let a=e.preserveWhitespaces;void 0===a&&(a=null!==i&&void 0!==i.preserveWhitespaces&&i.preserveWhitespaces);let r=e.encapsulation;void 0===r&&(r=null!==i&&void 0!==i.defaultEncapsulation?i.defaultEncapsulation:Po.Emulated);const s=e.templateUrl||`ng:///${t.name}/template.html`,l=Object.assign(Object.assign({},o_(t,e)),{typeSourceSpan:o.createParseSourceSpan("Component",t.name,s),template:e.template||"",preserveWhitespaces:a,styles:e.styles||No,animations:e.animations,directives:[],changeDetection:e.changeDetection,pipes:new Map,encapsulation:r,interpolation:e.interpolation,viewProviders:e.viewProviders||null});Qy++;try{l.usesInheritance&&i_(t),n=o.compileComponent(Qb,s,l)}finally{Qy--}if(0===Qy&&(function i(){if(!Ly){Ly=!0;try{for(let t=Fy.length-1;t>=0;t--){const{moduleType:e,ngModule:n}=Fy[t];n.declarations&&n.declarations.every(By)&&(Fy.splice(t,1),qy(e,n))}}finally{Ly=!1}}})(),(function a(t){return void 0!==t.ngSelectorScope})(t)){const e=Xy(t.ngSelectorScope);Zy(n,e)}}return n},configurable:!!ngDevMode})},O_=$y,P_=function w_(t,e){let n=null,o=null;Object.defineProperty(t,Bo,{get:()=>{if(null===o){const n=f_(t,e),i=jr();o=i.compileFactory(Qb,`ng:///${n.name}/ɵfac.js`,Object.assign(Object.assign({},n),{injectFn:"directiveInject",target:i.R3FactoryTarget.Pipe}))}return o},configurable:!!ngDevMode}),Object.defineProperty(t,Ho,{get:()=>{if(null===n){const o=f_(t,e);n=jr().compilePipe(Qb,`ng:///${o.name}/ɵpipe.js`,o)}return n},configurable:!!ngDevMode})},k_=Sr("NgModule",(t=>t),void 0,void 0,((t,e)=>S_(t,e))),S_=function D_(t,e={}){!(function n(t,e,o=!1){ngDevMode&&oo(t,"Required value moduleType"),ngDevMode&&oo(e,"Required value ngModule");const i=Gr(e.declarations||Hy);let a=null;Object.defineProperty(t,Fo,{configurable:!0,get:()=>{if(null===a){if(ngDevMode&&e.imports&&e.imports.indexOf(t)>-1)throw new Error(`'${jn(t)}' module can't import itself`);a=jr().compileNgModule(Qb,`ng:///${t.name}/ɵmod.js`,{type:t,bootstrap:Gr(e.bootstrap||Hy).map(zn),declarations:i.map(zn),imports:Gr(e.imports||Hy).map(zn).map(Ky),exports:Gr(e.exports||Hy).map(zn).map(Ky),schemas:e.schemas?Gr(e.schemas):null,id:e.id||null}),a.schemas||(a.schemas=[])}return a}});let r=null;Object.defineProperty(t,Bo,{get:()=>{if(null===r){const e=jr();r=e.compileFactory(Qb,`ng:///${t.name}/ɵfac.js`,{name:t.name,type:t,deps:Ps(t),injectFn:"inject",target:e.R3FactoryTarget.NgModule,typeArgumentCount:0})}return r},configurable:!!ngDevMode});let s=null;Object.defineProperty(t,go,{get:()=>{if(null===s){ngDevMode&&Vy(t,o);const n={name:t.name,type:t,providers:e.providers||Hy,imports:[(e.imports||Hy).map(zn),(e.exports||Hy).map(zn)]};s=jr().compileInjector(Qb,`ng:///${t.name}/ɵinj.js`,n)}return s},configurable:!!ngDevMode})})(t,e),(function o(t,e){Fy.push({moduleType:t,ngModule:e})})(t,e)},E_=new Nr("Application Initializer");class A_{constructor(t){this.appInits=t,this.resolve=sh,this.reject=sh,this.initialized=!1,this.done=!1,this.donePromise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let e=0;e<this.appInits.length;e++){const n=this.appInits[e]();Au(n)&&t.push(n)}Promise.all(t).then((()=>{e()})).catch((t=>{this.reject(t)})),0===t.length&&e(),this.initialized=!0}}A_.ɵfac=function t(e){return new(e||A_)(us(E_,8))},A_.ɵprov=lo({token:A_,factory:A_.ɵfac}),A_.ctorParameters=()=>[{type:Array,decorators:[{type:ys,args:[E_]},{type:_s}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(A_,[{type:Jm}],(function(){return[{type:Array,decorators:[{type:ys,args:[E_]},{type:_s}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const R_=new Nr("AppId"),T_={provide:R_,useFactory:function N_(){return`${I_()}${I_()}${I_()}`},deps:[]};function I_(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const z_=new Nr("Platform Initializer"),H_=new Nr("Platform ID"),F_=new Nr("appBootstrapListener");new Nr("Application Packages Root URL");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class L_{log(t){console.log(t)}warn(t){console.warn(t)}}L_.ɵfac=function t(e){return new(e||L_)},L_.ɵprov=lo({token:L_,factory:L_.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(L_,[{type:Jm}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const B_=new Nr("LocaleId"),V_=new Nr("DefaultCurrencyCode");var j_;new Nr("Translations"),new Nr("TranslationsFormat"),(function(t){t[t.Error=0]="Error",t[t.Warning=1]="Warning",t[t.Ignore=2]="Ignore"})(j_||(j_={}));
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class U_{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const W_=function(t){return new ub(t)},G_=W_,Y_=function(t){return Promise.resolve(W_(t))},q_=function(t){const e=W_(t),n=Jl(ni(t).declarations).reduce(((t,e)=>{const n=$o(e);return n&&t.push(new lb(n)),t}),[]);return new U_(e,n)},Z_=q_,X_=function(t){return Promise.resolve(q_(t))};class K_{constructor(){this.compileModuleSync=G_,this.compileModuleAsync=Y_,this.compileModuleAndAllComponentsSync=Z_,this.compileModuleAndAllComponentsAsync=X_}clearCache(){}clearCacheFor(t){}getModuleId(t){}}K_.ɵfac=function t(e){return new(e||K_)},K_.ɵprov=lo({token:K_,factory:K_.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(K_,[{type:Jm}],(function(){return[]}),null);const J_=new Nr("compilerOptions"),Q_=Promise.resolve(0);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function $_(t){"undefined"==typeof Zone?Q_.then((()=>{t&&t.apply(null,null)})):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class tC{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:n=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ab(!1),this.onMicrotaskEmpty=new Ab(!1),this.onStable=new Ab(!1),this.onError=new Ab(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!n&&e,o.shouldCoalesceRunChangeDetection=n,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=(function i(){let t=Eo.requestAnimationFrame,e=Eo.cancelAnimationFrame;if("undefined"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__("OriginalDelegate")];n&&(t=n);const o=e[Zone.__symbol__("OriginalDelegate")];o&&(e=o)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}})().nativeRequestAnimationFrame,(function a(t){const e=()=>{!(function e(t){-1===t.lastRequestAnimationFrameId&&(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Eo,(()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",(()=>{t.lastRequestAnimationFrameId=-1,oC(t),nC(t)}),void 0,(()=>{}),(()=>{}))),t.fakeTopEventTask.invoke()})),oC(t))})(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,o,i,a,r,s)=>{try{return iC(t),n.invokeTask(i,a,r,s)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===a.type||t.shouldCoalesceRunChangeDetection)&&e(),aC(t)}},onInvoke:(n,o,i,a,r,s,l)=>{try{return iC(t),n.invoke(i,a,r,s,l)}finally{t.shouldCoalesceRunChangeDetection&&e(),aC(t)}},onHasTask:(e,n,o,i)=>{e.hasTask(o,i),n===o&&("microTask"==i.change?(t._hasPendingMicrotasks=i.microTask,oC(t),nC(t)):"macroTask"==i.change&&(t.hasPendingMacrotasks=i.macroTask))},onHandleError:(e,n,o,i)=>(e.handleError(o,i),t.runOutsideAngular((()=>t.onError.emit(i))),!1)})})(o)}static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!tC.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(tC.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,o){const i=this._inner,a=i.scheduleEventTask("NgZoneEvent: "+o,t,eC,sh,sh);try{return i.runTask(a,e,n)}finally{i.cancelTask(a)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}const eC={};function nC(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular((()=>t.onStable.emit(null)))}finally{t.isStable=!0}}}function oC(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function iC(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function aC(t){t._nesting--,nC(t)}class rC{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ab,this.onMicrotaskEmpty=new Ab,this.onStable=new Ab,this.onError=new Ab}run(t,e,n){return t.apply(e,n)}runGuarded(t,e,n){return t.apply(e,n)}runOutsideAngular(t){return t()}runTask(t,e,n,o){return t.apply(e,n)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class sC{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run((()=>{this.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")}))}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular((()=>{this._ngZone.onStable.subscribe({next:()=>{tC.assertNotInAngularZone(),$_((()=>{this._isZoneStable=!0,this._runCallbacksIfReady()}))}})}))}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())$_((()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1}));else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter((e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1))),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map((t=>({source:t.source,creationLocation:t.creationLocation,data:t.data}))):[]}addCallback(t,e,n){let o=-1;e&&e>0&&(o=setTimeout((()=>{this._callbacks=this._callbacks.filter((t=>t.timeoutId!==o)),t(this._didWork,this.getPendingTasks())}),e)),this._callbacks.push({doneCb:t,timeoutId:o,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}sC.ɵfac=function t(e){return new(e||sC)(us(tC))},sC.ɵprov=lo({token:sC,factory:sC.ɵfac}),sC.ctorParameters=()=>[{type:tC}],("undefined"==typeof ngDevMode||ngDevMode)&&db(sC,[{type:Jm}],(function(){return[{type:tC}]}),null);class lC{constructor(){this._applications=new Map,dC.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return dC.findTestabilityInTree(this,t,e)}}lC.ɵfac=function t(e){return new(e||lC)},lC.ɵprov=lo({token:lC,factory:lC.ɵfac}),lC.ctorParameters=()=>[],("undefined"==typeof ngDevMode||ngDevMode)&&db(lC,[{type:Jm}],(function(){return[]}),null);let cC,dC=new class{addToWindow(t){}findTestabilityInTree(t,e,n){return null}},pC=!0,mC=!1;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function uC(){return mC=!0,pC}const fC=new Nr("AllowMultipleToken");function gC(t,e,n=[]){const o=`Platform: ${e}`,i=new Nr(o);return(e=[])=>{let a=hC();if(!a||a.injector.get(fC,!1))if(t)t(n.concat(e).concat({provide:i,useValue:!0}));else{const t=n.concat(e).concat({provide:i,useValue:!0},{provide:Hp,useValue:"platform"});!(function r(t){if(cC&&!cC.destroyed&&!cC.injector.get(fC,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");(function e(){ngDevMode&&(function t(){pm||(pm=!0,mm("ɵsetProfiler",Ni),mm("getComponent",$p),mm("getContext",tm),mm("getListeners",sm),mm("getOwningComponent",em),mm("getHostElement",rm),mm("getInjector",om),mm("getRootComponents",nm),mm("getDirectives",im),mm("applyChanges",dm))})()})(),cC=t.get(bC);const n=t.get(z_,null);n&&n.forEach((t=>t()))})(Qp.create({providers:t,name:o}))}return(function s(t){const e=hC();if(!e)throw new Error("No platform exists!");if(!e.injector.get(t,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e})(i)}}function hC(){return cC&&!cC.destroyed?cC:null}class bC{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=(function o(t,e){let n;return n="noop"===t?new rC:("zone.js"===t?void 0:t)||new tC({enableLongStackTrace:uC(),shouldCoalesceEventChangeDetection:!!(null==e?void 0:e.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==e?void 0:e.ngZoneRunCoalescing)}),n})(e?e.ngZone:void 0,{ngZoneEventCoalescing:e&&e.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:e&&e.ngZoneRunCoalescing||!1}),i=[{provide:tC,useValue:n}];return n.run((()=>{const e=Qp.create({providers:i,parent:this.injector,name:t.moduleType.name}),o=t.create(e),a=o.injector.get(El,null);if(!a)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return n.runOutsideAngular((()=>{const t=n.onError.subscribe({next:t=>{a.handleError(t)}});o.onDestroy((()=>{CC(this._modules,o),t.unsubscribe()}))})),(function r(t,e,n){try{const o=n();return Au(o)?o.catch((n=>{throw e.runOutsideAngular((()=>t.handleError(n))),n})):o}catch(n){throw e.runOutsideAngular((()=>t.handleError(n))),n}})(a,n,(()=>{const t=o.injector.get(A_);return t.runInitializers(),t.donePromise.then((()=>(Uf(o.injector.get(B_,Ff)||Ff),this._moduleDoBootstrap(o),o)))}))}))}bootstrapModule(t,e=[]){const n=yC({},e);return(function o(t,e,n){ngDevMode&&(function o(t,e="Type passed in is not NgModuleType, it does not have 'ɵmod' property."){ni(t)||io(e)})(n);const i=new ub(n);if("undefined"!=typeof ngJitMode&&!ngJitMode)return Promise.resolve(i);const a=t.get(J_,[]).concat(e);if((function r(t){if(null!==zy){if(t.defaultEncapsulation!==zy.defaultEncapsulation)return void(ngDevMode&&console.error("Provided value for `defaultEncapsulation` can not be changed once it has been set."));if(t.preserveWhitespaces!==zy.preserveWhitespaces)return void(ngDevMode&&console.error("Provided value for `preserveWhitespaces` can not be changed once it has been set."))}zy=t})({defaultEncapsulation:MC(a.map((t=>t.defaultEncapsulation))),preserveWhitespaces:MC(a.map((t=>t.preserveWhitespaces)))}),(function s(){return 0===ks.size})())return Promise.resolve(i);const l=(function c(t){const e=[];return t.forEach((t=>t&&e.push(...t))),e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(a.map((t=>t.providers)));if(0===l.length)return Promise.resolve(i);const d=jr(),p=Qp.create({providers:l}).get(d.ResourceLoader);return(function m(t){const e=[],n=new Map;function o(e){let o=n.get(e);if(!o){const i=t(e);n.set(e,o=i.then(Es))}return o}return ks.forEach(((t,n)=>{const i=[];t.templateUrl&&i.push(o(t.templateUrl).then((e=>{t.template=e})));const a=t.styleUrls,r=t.styles||(t.styles=[]),s=t.styles.length;a&&a.forEach(((e,n)=>{r.push(""),i.push(o(e).then((o=>{r[s+n]=o,a.splice(a.indexOf(e),1),0==a.length&&(t.styleUrls=void 0)})))}));const l=Promise.all(i).then((()=>(function t(e){Ss.delete(e)})(n)));e.push(l)})),(function i(){ks=new Map})(),Promise.all(e).then((()=>{}))})((t=>Promise.resolve(p.get(t)))).then((()=>i))})(this.injector,n,t).then((t=>this.bootstrapModuleFactory(t,n)))}_moduleDoBootstrap(t){const e=t.injector.get(_C);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach((t=>e.bootstrap(t)));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${Rn(t.instance.constructor)} was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach((t=>t.destroy())),this._destroyListeners.forEach((t=>t())),this._destroyed=!0}get destroyed(){return this._destroyed}}function yC(t,e){return Array.isArray(e)?e.reduce(yC,t):Object.assign(Object.assign({},t),e)}bC.ɵfac=function t(e){return new(e||bC)(us(Qp))},bC.ɵprov=lo({token:bC,factory:bC.ɵfac}),bC.ctorParameters=()=>[{type:Qp}],("undefined"==typeof ngDevMode||ngDevMode)&&db(bC,[{type:Jm}],(function(){return[{type:Qp}]}),null);class _C{constructor(t,e,n,o,i){this._zone=t,this._injector=e,this._exceptionHandler=n,this._componentFactoryResolver=o,this._initStatus=i,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run((()=>{this.tick()}))}});const a=new y((t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular((()=>{t.next(this._stable),t.complete()}))})),r=new y((t=>{let e;this._zone.runOutsideAngular((()=>{e=this._zone.onStable.subscribe((()=>{tC.assertNotInAngularZone(),$_((()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))}))}))}));const n=this._zone.onUnstable.subscribe((()=>{tC.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular((()=>{t.next(!1)})))}));return()=>{e.unsubscribe(),n.unsubscribe()}}));this.isStable=Wt(a,r.pipe(on()))}bootstrap(t,e){if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");let n;n=t instanceof ah?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const o=(function i(t){return t.isBoundToModule})(n)?void 0:this._injector.get(Zh),a=n.create(Qp.NULL,[],e||n.selector,o),r=a.location.nativeElement,s=a.injector.get(sC,null),l=s&&a.injector.get(lC);return s&&l&&l.registerApplication(r,s),a.onDestroy((()=>{this.detachView(a.hostView),CC(this.components,a),l&&l.unregisterApplication(r)})),this._loadComponent(a),("undefined"==typeof ngDevMode||ngDevMode)&&uC()&&this._injector.get(L_).log("Angular is running in development mode. Call enableProdMode() to enable production mode."),a}tick(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(("undefined"==typeof ngDevMode||ngDevMode)&&uC())for(let t of this._views)t.checkNoChanges()}catch(t){this._zone.runOutsideAngular((()=>this._exceptionHandler.handleError(t)))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;CC(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(F_,[]).concat(this._bootstrapListeners).forEach((e=>e(t)))}ngOnDestroy(){this._views.slice().forEach((t=>t.destroy())),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}function CC(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}function MC(t){for(let e=t.length-1;e>=0;e--)if(void 0!==t[e])return t[e]}_C.ɵfac=function t(e){return new(e||_C)(us(tC),us(Qp),us(El),us(rh),us(A_))},_C.ɵprov=lo({token:_C,factory:_C.ɵfac}),_C.ctorParameters=()=>[{type:tC},{type:Qp},{type:El},{type:rh},{type:A_}],("undefined"==typeof ngDevMode||ngDevMode)&&db(_C,[{type:Jm}],(function(){return[{type:tC},{type:Qp},{type:El},{type:rh},{type:A_}]}),null);class vC{}const xC={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"};class OC{constructor(t,e){this._compiler=t,this._config=e||xC}load(t){return this.loadAndCompile(t)}loadAndCompile(t){let[e,n]=t.split("#");return void 0===n&&(n="default"),System.import(e).then((t=>t[n])).then((t=>PC(t,e,n))).then((t=>this._compiler.compileModuleAsync(t)))}loadFactory(t){let[e,n]=t.split("#"),o="NgFactory";return void 0===n&&(n="default",o=""),System.import(this._config.factoryPathPrefix+e+this._config.factoryPathSuffix).then((t=>t[n+o])).then((t=>PC(t,e,n)))}}function PC(t,e,n){if(!t)throw new Error(`Cannot find '${n}' in '${e}'`);return t}OC.ɵfac=function t(e){return new(e||OC)(us(K_),us(vC,8))},OC.ɵprov=lo({token:OC,factory:OC.ɵfac}),OC.ctorParameters=()=>[{type:K_},{type:vC,decorators:[{type:_s}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(OC,[{type:Jm}],(function(){return[{type:K_},{type:vC,decorators:[{type:_s}]}]}),null);const wC=gC(null,"core",[{provide:H_,useValue:"unknown"},{provide:bC,deps:[Qp]},{provide:lC,deps:[]},{provide:L_,deps:[]}]),kC=[{provide:_C,useClass:_C,deps:[tC,Qp,El,rh,A_]},{provide:sb,deps:[tC],useFactory:function SC(t){let e=[];return t.onStable.subscribe((()=>{for(;e.length;)e.pop()()})),function(t){e.push(t)}}},{provide:A_,useClass:A_,deps:[[new _s,E_]]},{provide:K_,useClass:K_,deps:[]},T_,{provide:Eh,useFactory:
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function DC(){return Vh},deps:[]},{provide:Rh,useFactory:function EC(){return jh},deps:[]},{provide:B_,useFactory:function AC(t){return Uf(t=t||(function e(){return"undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode&&"undefined"!=typeof goog&&"en"!==goog.LOCALE?goog.LOCALE:"undefined"!=typeof $localize&&$localize.locale||Ff})()),t},deps:[[new ys(B_),new _s,new Ms]]},{provide:V_,useValue:"USD"}];
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class RC{constructor(t){}}var TC,NC;RC.ɵfac=function t(e){return new(e||RC)(us(_C))},RC.ɵmod=Zo({type:RC}),RC.ɵinj=co({providers:kC}),RC.ctorParameters=()=>[{type:_C}],("undefined"==typeof ngDevMode||ngDevMode)&&db(RC,[{type:k_,args:[{providers:kC}]}],(function(){return[{type:_C}]}),null),(function(t){t[t.CreateViewNodes=0]="CreateViewNodes",t[t.CheckNoChanges=1]="CheckNoChanges",t[t.CheckNoChangesProjectedViews=2]="CheckNoChangesProjectedViews",t[t.CheckAndUpdate=3]="CheckAndUpdate",t[t.CheckAndUpdateProjectedViews=4]="CheckAndUpdateProjectedViews",t[t.Destroy=5]="Destroy"})(TC||(TC={})),(function(t){t[t.create=0]="create",t[t.detectChanges=1]="detectChanges",t[t.checkNoChanges=2]="checkNoChanges",t[t.destroy=3]="destroy",t[t.handleEvent=4]="handleEvent"})(NC||(NC={})),
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
"undefined"!=typeof ngDevMode&&ngDevMode&&(Eo.$localize=Eo.$localize||function(){throw new Error("It looks like your application or one of its dependencies is using i18n.\nAngular 9 introduced a global `$localize()` function that needs to be loaded.\nPlease run `ng add @angular/localize` from the Angular CLI.\n(For non-CLI projects, add `import '@angular/localize/init';` to your `polyfills.ts` file.\nFor server-side rendering applications add the import to your `main.server.ts` file.)")})
/**
     * @license Angular v11.2.14
     * (c) 2010-2021 Google LLC. https://angular.io/
     * License: MIT
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */;const IC="undefined"!=typeof globalThis&&globalThis,zC="undefined"!=typeof window&&window,HC="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,FC="undefined"!=typeof global&&global,LC=function(t,...e){if(LC.translate){const n=LC.translate(t,e);t=n[0],e=n[1]}let n=BC(t[0],t.raw[0]);for(let o=1;o<t.length;o++)n+=e[o-1]+BC(t[o],t.raw[o]);return n};function BC(t,e){return":"===e.charAt(0)?t.substring((function n(t,e){for(let n=1,o=1;n<t.length;n++,o++)if("\\"===e[o])o++;else if(":"===t[n])return n;throw new Error(`Unterminated $localize metadata block in "${e}".`)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t,e)+1):t}(IC||FC||zC||HC).$localize=LC;
/**
     * @license Angular v11.2.14
     * (c) 2010-2021 Google LLC. https://angular.io/
     * License: MIT
     */
let VC=null;function jC(){return VC}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const UC=new Nr("DocumentToken");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class WC{}function GC(){return us(YC)}WC.ɵfac=function t(e){return new(e||WC)},WC.ɵprov=lo({factory:GC,token:WC,providedIn:"platform"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(WC,[{type:Jm,args:[{providedIn:"platform",useFactory:GC}]}],null,null),new Nr("Location Initialized");class YC extends WC{constructor(t){super(),this._doc=t,this._init()}_init(){this.location=jC().getLocation(),this._history=jC().getHistory()}getBaseHrefFromDOM(){return jC().getBaseHref(this._doc)}onPopState(t){jC().getGlobalEventTarget(this._doc,"window").addEventListener("popstate",t,!1)}onHashChange(t){jC().getGlobalEventTarget(this._doc,"window").addEventListener("hashchange",t,!1)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(t){this.location.pathname=t}pushState(t,e,n){qC()?this._history.pushState(t,e,n):this.location.hash=n}replaceState(t,e,n){qC()?this._history.replaceState(t,e,n):this.location.hash=n}forward(){this._history.forward()}back(){this._history.back()}getState(){return this._history.state}}function qC(){return!!window.history.pushState}function ZC(){return new YC(us(UC))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function XC(t,e){if(0==t.length)return e;if(0==e.length)return t;let n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e}function KC(t){const e=t.match(/#|\?|$/),n=e&&e.index||t.length;return t.slice(0,n-("/"===t[n-1]?1:0))+t.slice(n)}function JC(t){return t&&"?"!==t[0]?"?"+t:t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */YC.ɵfac=function t(e){return new(e||YC)(us(UC))},YC.ɵprov=lo({factory:ZC,token:YC,providedIn:"platform"}),YC.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(YC,[{type:Jm,args:[{providedIn:"platform",useFactory:ZC}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);class QC{}function $C(t){const e=us(UC).location;return new eM(us(WC),e&&e.origin||"")}QC.ɵfac=function t(e){return new(e||QC)},QC.ɵprov=lo({factory:$C,token:QC,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(QC,[{type:Jm,args:[{providedIn:"root",useFactory:$C}]}],null,null);const tM=new Nr("appBaseHref");class eM extends QC{constructor(t,e){if(super(),this._platformLocation=t,null==e&&(e=this._platformLocation.getBaseHrefFromDOM()),null==e)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=e}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return XC(this._baseHref,t)}path(t=!1){const e=this._platformLocation.pathname+JC(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?`${e}${n}`:e}pushState(t,e,n,o){const i=this.prepareExternalUrl(n+JC(o));this._platformLocation.pushState(t,e,i)}replaceState(t,e,n,o){const i=this.prepareExternalUrl(n+JC(o));this._platformLocation.replaceState(t,e,i)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}eM.ɵfac=function t(e){return new(e||eM)(us(WC),us(tM,8))},eM.ɵprov=lo({token:eM,factory:eM.ɵfac}),eM.ctorParameters=()=>[{type:WC},{type:String,decorators:[{type:_s},{type:ys,args:[tM]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(eM,[{type:Jm}],(function(){return[{type:WC},{type:String,decorators:[{type:_s},{type:ys,args:[tM]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class nM extends QC{constructor(t,e){super(),this._platformLocation=t,this._baseHref="",null!=e&&(this._baseHref=e)}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}path(t=!1){let e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e}prepareExternalUrl(t){const e=XC(this._baseHref,t);return e.length>0?"#"+e:e}pushState(t,e,n,o){let i=this.prepareExternalUrl(n+JC(o));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.pushState(t,e,i)}replaceState(t,e,n,o){let i=this.prepareExternalUrl(n+JC(o));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,i)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}nM.ɵfac=function t(e){return new(e||nM)(us(WC),us(tM,8))},nM.ɵprov=lo({token:nM,factory:nM.ɵfac}),nM.ctorParameters=()=>[{type:WC},{type:String,decorators:[{type:_s},{type:ys,args:[tM]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(nM,[{type:Jm}],(function(){return[{type:WC},{type:String,decorators:[{type:_s},{type:ys,args:[tM]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class oM{constructor(t,e){this._subject=new Ab,this._urlChangeListeners=[],this._platformStrategy=t;const n=this._platformStrategy.getBaseHref();this._platformLocation=e,this._baseHref=KC(aM(n)),this._platformStrategy.onPopState((t=>{this._subject.emit({url:this.path(!0),pop:!0,state:t.state,type:t.type})}))}path(t=!1){return this.normalize(this._platformStrategy.path(t))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(t,e=""){return this.path()==this.normalize(t+JC(e))}normalize(t){return oM.stripTrailingSlash((function e(t,n){return t&&n.startsWith(t)?n.substring(t.length):n})(this._baseHref,aM(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)}go(t,e="",n=null){this._platformStrategy.pushState(n,"",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+JC(e)),n)}replaceState(t,e="",n=null){this._platformStrategy.replaceState(n,"",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+JC(e)),n)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}onUrlChange(t){this._urlChangeListeners.push(t),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe((t=>{this._notifyUrlChangeListeners(t.url,t.state)})))}_notifyUrlChangeListeners(t="",e){this._urlChangeListeners.forEach((n=>n(t,e)))}subscribe(t,e,n){return this._subject.subscribe({next:t,error:e,complete:n})}}function iM(){return new oM(us(QC),us(WC))}function aM(t){return t.replace(/\/index.html$/,"")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */oM.ɵfac=function t(e){return new(e||oM)(us(QC),us(WC))},oM.normalizeQueryParams=JC,oM.joinWithSlash=XC,oM.stripTrailingSlash=KC,oM.ɵprov=lo({factory:iM,token:oM,providedIn:"root"}),oM.ctorParameters=()=>[{type:QC},{type:WC}],("undefined"==typeof ngDevMode||ngDevMode)&&db(oM,[{type:Jm,args:[{providedIn:"root",useFactory:iM}]}],(function(){return[{type:QC},{type:WC}]}),null);const rM={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,2],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"৳"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,"р.",2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN¥","¥"],COP:[void 0,"$",2],CRC:[void 0,"₡",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"Kč",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E£"],ESP:[void 0,"₧",0],EUR:["€"],FJD:[void 0,"$"],FKP:[void 0,"£"],GBP:["£"],GEL:[void 0,"₾"],GIP:[void 0,"£"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",2],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",2],ILS:["₪"],INR:["₹"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["¥",void 0,0],KHR:[void 0,"៛"],KMF:[void 0,"CF",0],KPW:[void 0,"₩",0],KRW:["₩",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"₸"],LAK:[void 0,"₭",0],LBP:[void 0,"L£",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"₮",2],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",2],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"₦"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:[void 0,"₱"],PKR:[void 0,"Rs",2],PLN:[void 0,"zł"],PYG:[void 0,"₲",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"₽"],RUR:[void 0,"р."],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"£"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"£"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"£",0],THB:[void 0,"฿"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"₺"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,2],UAH:[void 0,"₴"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,"Bs",2],VND:["₫",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["CFA",void 0,0],XPF:["CFPF",void 0,0],XXX:["¤"],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */var sM,lM,cM,dM,pM,mM,uM;function fM(t,e){return MM(Tf(t)[zf.DateFormat],e)}function gM(t,e){return MM(Tf(t)[zf.TimeFormat],e)}function hM(t,e){return MM(Tf(t)[zf.DateTimeFormat],e)}function bM(t,e){const n=Tf(t),o=n[zf.NumberSymbols][e];if(void 0===o){if(e===mM.CurrencyDecimal)return n[zf.NumberSymbols][mM.Decimal];if(e===mM.CurrencyGroup)return n[zf.NumberSymbols][mM.Group]}return o}function yM(t,e){return Tf(t)[zf.NumberFormats][e]}!(function(t){t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency",t[t.Scientific=3]="Scientific"})(sM||(sM={})),(function(t){t[t.Zero=0]="Zero",t[t.One=1]="One",t[t.Two=2]="Two",t[t.Few=3]="Few",t[t.Many=4]="Many",t[t.Other=5]="Other"})(lM||(lM={})),(function(t){t[t.Format=0]="Format",t[t.Standalone=1]="Standalone"})(cM||(cM={})),(function(t){t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short"})(dM||(dM={})),(function(t){t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full"})(pM||(pM={})),(function(t){t[t.Decimal=0]="Decimal",t[t.Group=1]="Group",t[t.List=2]="List",t[t.PercentSign=3]="PercentSign",t[t.PlusSign=4]="PlusSign",t[t.MinusSign=5]="MinusSign",t[t.Exponential=6]="Exponential",t[t.SuperscriptingExponent=7]="SuperscriptingExponent",t[t.PerMille=8]="PerMille",t[t[1/0]=9]="Infinity",t[t.NaN=10]="NaN",t[t.TimeSeparator=11]="TimeSeparator",t[t.CurrencyDecimal=12]="CurrencyDecimal",t[t.CurrencyGroup=13]="CurrencyGroup"})(mM||(mM={})),(function(t){t[t.Sunday=0]="Sunday",t[t.Monday=1]="Monday",t[t.Tuesday=2]="Tuesday",t[t.Wednesday=3]="Wednesday",t[t.Thursday=4]="Thursday",t[t.Friday=5]="Friday",t[t.Saturday=6]="Saturday"})(uM||(uM={}));const _M=Nf;function CM(t){if(!t[zf.ExtraData])throw new Error(`Missing extra locale data for the locale "${t[zf.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function MM(t,e){for(let n=e;n>-1;n--)if(void 0!==t[n])return t[n];throw new Error("Locale data API: locale data undefined")}function vM(t){const[e,n]=t.split(":");return{hours:+e,minutes:+n}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const xM=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,OM={},PM=/((?:[^GyYMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var wM,kM,SM;function DM(t,e,n,o){let i=(function a(t){if(jM(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[e,n=1,o=1]=t.split("-").map((t=>+t));return EM(e,n-1,o)}const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let n;if(n=t.match(xM))return(function e(t){const e=new Date(0);let n=0,o=0;const i=t[8]?e.setUTCFullYear:e.setFullYear,a=t[8]?e.setUTCHours:e.setHours;t[9]&&(n=Number(t[9]+t[10]),o=Number(t[9]+t[11])),i.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));const r=Number(t[4]||0)-n,s=Number(t[5]||0)-o,l=Number(t[6]||0),c=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return a.call(e,r,s,l,c),e})(n)}const n=new Date(t);if(!jM(n))throw new Error(`Unable to convert "${t}" into a date`);return n})(t);e=AM(n,e)||e;let r,s=[];for(;e;){if(r=PM.exec(e),!r){s.push(e);break}{s=s.concat(r.slice(1));const t=s.pop();if(!t)break;e=t}}let l=i.getTimezoneOffset();o&&(l=VM(o,l),i=(function c(t,e,n){const o=n?-1:1,i=t.getTimezoneOffset();return(function a(t,e){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+e),t})(t,o*(VM(e,i)-i))})(i,o,!0));let d="";return s.forEach((t=>{const e=(function o(t){if(BM[t])return BM[t];let e;switch(t){case"G":case"GG":case"GGG":e=IM(SM.Eras,dM.Abbreviated);break;case"GGGG":e=IM(SM.Eras,dM.Wide);break;case"GGGGG":e=IM(SM.Eras,dM.Narrow);break;case"y":e=NM(kM.FullYear,1,0,!1,!0);break;case"yy":e=NM(kM.FullYear,2,0,!0,!0);break;case"yyy":e=NM(kM.FullYear,3,0,!1,!0);break;case"yyyy":e=NM(kM.FullYear,4,0,!1,!0);break;case"Y":e=LM(1);break;case"YY":e=LM(2,!0);break;case"YYY":e=LM(3);break;case"YYYY":e=LM(4);break;case"M":case"L":e=NM(kM.Month,1,1);break;case"MM":case"LL":e=NM(kM.Month,2,1);break;case"MMM":e=IM(SM.Months,dM.Abbreviated);break;case"MMMM":e=IM(SM.Months,dM.Wide);break;case"MMMMM":e=IM(SM.Months,dM.Narrow);break;case"LLL":e=IM(SM.Months,dM.Abbreviated,cM.Standalone);break;case"LLLL":e=IM(SM.Months,dM.Wide,cM.Standalone);break;case"LLLLL":e=IM(SM.Months,dM.Narrow,cM.Standalone);break;case"w":e=FM(1);break;case"ww":e=FM(2);break;case"W":e=FM(1,!0);break;case"d":e=NM(kM.Date,1);break;case"dd":e=NM(kM.Date,2);break;case"E":case"EE":case"EEE":e=IM(SM.Days,dM.Abbreviated);break;case"EEEE":e=IM(SM.Days,dM.Wide);break;case"EEEEE":e=IM(SM.Days,dM.Narrow);break;case"EEEEEE":e=IM(SM.Days,dM.Short);break;case"a":case"aa":case"aaa":e=IM(SM.DayPeriods,dM.Abbreviated);break;case"aaaa":e=IM(SM.DayPeriods,dM.Wide);break;case"aaaaa":e=IM(SM.DayPeriods,dM.Narrow);break;case"b":case"bb":case"bbb":e=IM(SM.DayPeriods,dM.Abbreviated,cM.Standalone,!0);break;case"bbbb":e=IM(SM.DayPeriods,dM.Wide,cM.Standalone,!0);break;case"bbbbb":e=IM(SM.DayPeriods,dM.Narrow,cM.Standalone,!0);break;case"B":case"BB":case"BBB":e=IM(SM.DayPeriods,dM.Abbreviated,cM.Format,!0);break;case"BBBB":e=IM(SM.DayPeriods,dM.Wide,cM.Format,!0);break;case"BBBBB":e=IM(SM.DayPeriods,dM.Narrow,cM.Format,!0);break;case"h":e=NM(kM.Hours,1,-12);break;case"hh":e=NM(kM.Hours,2,-12);break;case"H":e=NM(kM.Hours,1);break;case"HH":e=NM(kM.Hours,2);break;case"m":e=NM(kM.Minutes,1);break;case"mm":e=NM(kM.Minutes,2);break;case"s":e=NM(kM.Seconds,1);break;case"ss":e=NM(kM.Seconds,2);break;case"S":e=NM(kM.FractionalSeconds,1);break;case"SS":e=NM(kM.FractionalSeconds,2);break;case"SSS":e=NM(kM.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":e=zM(wM.Short);break;case"ZZZZZ":e=zM(wM.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=zM(wM.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":e=zM(wM.Long);break;default:return null}return BM[t]=e,e})(t);d+=e?e(i,n,l):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),d}function EM(t,e,n){const o=new Date(0);return o.setFullYear(t,e,n),o.setHours(0,0,0),o}function AM(t,e){const n=(function o(t){return Tf(t)[zf.LocaleId]})(t);if(OM[n]=OM[n]||{},OM[n][e])return OM[n][e];let i="";switch(e){case"shortDate":i=fM(t,pM.Short);break;case"mediumDate":i=fM(t,pM.Medium);break;case"longDate":i=fM(t,pM.Long);break;case"fullDate":i=fM(t,pM.Full);break;case"shortTime":i=gM(t,pM.Short);break;case"mediumTime":i=gM(t,pM.Medium);break;case"longTime":i=gM(t,pM.Long);break;case"fullTime":i=gM(t,pM.Full);break;case"short":const e=AM(t,"shortTime"),n=AM(t,"shortDate");i=RM(hM(t,pM.Short),[e,n]);break;case"medium":const o=AM(t,"mediumTime"),a=AM(t,"mediumDate");i=RM(hM(t,pM.Medium),[o,a]);break;case"long":const r=AM(t,"longTime"),s=AM(t,"longDate");i=RM(hM(t,pM.Long),[r,s]);break;case"full":const l=AM(t,"fullTime"),c=AM(t,"fullDate");i=RM(hM(t,pM.Full),[l,c])}return i&&(OM[n][e]=i),i}function RM(t,e){return e&&(t=t.replace(/\{([^}]+)}/g,(function(t,n){return null!=e&&n in e?e[n]:t}))),t}function TM(t,e,n="-",o,i){let a="";(t<0||i&&t<=0)&&(i?t=1-t:(t=-t,a=n));let r=String(t);for(;r.length<e;)r="0"+r;return o&&(r=r.substr(r.length-e)),a+r}function NM(t,e,n=0,o=!1,i=!1){return function(a,r){let s=(function l(t,e){switch(t){case kM.FullYear:return e.getFullYear();case kM.Month:return e.getMonth();case kM.Date:return e.getDate();case kM.Hours:return e.getHours();case kM.Minutes:return e.getMinutes();case kM.Seconds:return e.getSeconds();case kM.FractionalSeconds:return e.getMilliseconds();case kM.Day:return e.getDay();default:throw new Error(`Unknown DateType value "${t}".`)}})(t,a);if((n>0||s>-n)&&(s+=n),t===kM.Hours)0===s&&-12===n&&(s=12);else if(t===kM.FractionalSeconds)return(function c(t,e){return TM(t,3).substr(0,e)})(s,e);const d=bM(r,mM.MinusSign);return TM(s,e,d,o,i)}}function IM(t,e,n=cM.Format,o=!1){return function(i,a){return(function r(t,e,n,o,i,a){switch(n){case SM.Months:return(function r(t,e,n){const o=Tf(t),i=MM([o[zf.MonthsFormat],o[zf.MonthsStandalone]],e);return MM(i,n)})(e,i,o)[t.getMonth()];case SM.Days:return(function s(t,e,n){const o=Tf(t),i=MM([o[zf.DaysFormat],o[zf.DaysStandalone]],e);return MM(i,n)})(e,i,o)[t.getDay()];case SM.DayPeriods:const r=t.getHours(),s=t.getMinutes();if(a){const t=(function l(t){const e=Tf(t);return CM(e),(e[zf.ExtraData][2]||[]).map((t=>"string"==typeof t?vM(t):[vM(t[0]),vM(t[1])]))})(e),n=(function c(t,e,n){const o=Tf(t);CM(o);const i=MM([o[zf.ExtraData][0],o[zf.ExtraData][1]],e)||[];return MM(i,n)||[]})(e,i,o),a=t.findIndex((t=>{if(Array.isArray(t)){const[e,n]=t,o=r>=e.hours&&s>=e.minutes,i=r<n.hours||r===n.hours&&s<n.minutes;if(e.hours<n.hours){if(o&&i)return!0}else if(o||i)return!0}else if(t.hours===r&&t.minutes===s)return!0;return!1}));if(-1!==a)return n[a]}return(function d(t,e,n){const o=Tf(t),i=MM([o[zf.DayPeriodsFormat],o[zf.DayPeriodsStandalone]],e);return MM(i,n)})(e,i,o)[r<12?0:1];case SM.Eras:return(function p(t,e){return MM(Tf(t)[zf.Eras],e)})(e,o)[t.getFullYear()<=0?0:1];default:throw new Error(`unexpected translation type ${n}`)}})(i,a,t,e,n,o)}}function zM(t){return function(e,n,o){const i=-1*o,a=bM(n,mM.MinusSign),r=i>0?Math.floor(i/60):Math.ceil(i/60);switch(t){case wM.Short:return(i>=0?"+":"")+TM(r,2,a)+TM(Math.abs(i%60),2,a);case wM.ShortGMT:return"GMT"+(i>=0?"+":"")+TM(r,1,a);case wM.Long:return"GMT"+(i>=0?"+":"")+TM(r,2,a)+":"+TM(Math.abs(i%60),2,a);case wM.Extended:return 0===o?"Z":(i>=0?"+":"")+TM(r,2,a)+":"+TM(Math.abs(i%60),2,a);default:throw new Error(`Unknown zone width "${t}"`)}}}function HM(t){return EM(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function FM(t,e=!1){return function(n,o){let i;if(e){const t=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,e=n.getDate();i=1+Math.floor((e+t)/7)}else{const t=HM(n),e=(function a(t){const e=EM(t,0,1).getDay();return EM(t,0,1+(e<=4?4:11)-e)})(t.getFullYear()),o=t.getTime()-e.getTime();i=1+Math.round(o/6048e5)}return TM(i,t,bM(o,mM.MinusSign))}}function LM(t,e=!1){return function(n,o){return TM(HM(n).getFullYear(),t,bM(o,mM.MinusSign),e)}}!(function(t){t[t.Short=0]="Short",t[t.ShortGMT=1]="ShortGMT",t[t.Long=2]="Long",t[t.Extended=3]="Extended"})(wM||(wM={})),(function(t){t[t.FullYear=0]="FullYear",t[t.Month=1]="Month",t[t.Date=2]="Date",t[t.Hours=3]="Hours",t[t.Minutes=4]="Minutes",t[t.Seconds=5]="Seconds",t[t.FractionalSeconds=6]="FractionalSeconds",t[t.Day=7]="Day"})(kM||(kM={})),(function(t){t[t.DayPeriods=0]="DayPeriods",t[t.Days=1]="Days",t[t.Months=2]="Months",t[t.Eras=3]="Eras"})(SM||(SM={}));const BM={};function VM(t,e){t=t.replace(/:/g,"");const n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function jM(t){return t instanceof Date&&!isNaN(t.valueOf())}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const UM=/^(\d+)?\.((\d+)(-(\d+))?)?$/,WM=".",GM="0";function YM(t,e,n,o,i,a,r=!1){let s="",l=!1;if(isFinite(t)){let c=(function c(t){let e,n,o,i,a,r=Math.abs(t)+"",s=0;for((n=r.indexOf(WM))>-1&&(r=r.replace(WM,"")),(o=r.search(/e/i))>0?(n<0&&(n=o),n+=+r.slice(o+1),r=r.substring(0,o)):n<0&&(n=r.length),o=0;r.charAt(o)===GM;o++);if(o===(a=r.length))e=[0],n=1;else{for(a--;r.charAt(a)===GM;)a--;for(n-=o,e=[],i=0;o<=a;o++,i++)e[i]=Number(r.charAt(o))}return n>22&&(e=e.splice(0,21),s=n-1,n=1),{digits:e,exponent:s,integerLen:n}})(t);r&&(c=(function d(t){if(0===t.digits[0])return t;const e=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===e?t.digits.push(0,0):1===e&&t.digits.push(0),t.integerLen+=2),t})(c));let d=e.minInt,p=e.minFrac,m=e.maxFrac;if(a){const t=a.match(UM);if(null===t)throw new Error(`${a} is not a valid digit info`);const e=t[1],n=t[3],o=t[5];null!=e&&(d=XM(e)),null!=n&&(p=XM(n)),null!=o?m=XM(o):null!=n&&p>m&&(m=p)}!(function p(t,e,n){if(e>n)throw new Error(`The minimum number of digits after fraction (${e}) is higher than the maximum (${n}).`);let o=t.digits,i=o.length-t.integerLen;const a=Math.min(Math.max(e,i),n);let r=a+t.integerLen,s=o[r];if(r>0){o.splice(Math.max(t.integerLen,r));for(let t=r;t<o.length;t++)o[t]=0}else{i=Math.max(0,i),t.integerLen=1,o.length=Math.max(1,r=a+1),o[0]=0;for(let t=1;t<r;t++)o[t]=0}if(s>=5)if(r-1<0){for(let e=0;e>r;e--)o.unshift(0),t.integerLen++;o.unshift(1),t.integerLen++}else o[r-1]++;for(;i<Math.max(0,a);i++)o.push(0);let l=0!==a;const c=e+t.integerLen,d=o.reduceRight((function(t,e,n,o){return o[n]=(e+=t)<10?e:e-10,l&&(0===o[n]&&n>=c?o.pop():l=!1),e>=10?1:0}),0);d&&(o.unshift(d),t.integerLen++)})(c,p,m);let u=c.digits,f=c.integerLen;const g=c.exponent;let h=[];for(l=u.every((t=>!t));f<d;f++)u.unshift(0);for(;f<0;f++)u.unshift(0);f>0?h=u.splice(f,u.length):(h=u,u=[0]);const b=[];for(u.length>=e.lgSize&&b.unshift(u.splice(-e.lgSize,u.length).join(""));u.length>e.gSize;)b.unshift(u.splice(-e.gSize,u.length).join(""));u.length&&b.unshift(u.join("")),s=b.join(bM(n,o)),h.length&&(s+=bM(n,i)+h.join("")),g&&(s+=bM(n,mM.Exponential)+"+"+g)}else s=bM(n,mM.Infinity);return s=t<0&&!l?e.negPre+s+e.negSuf:e.posPre+s+e.posSuf,s}function qM(t,e,n){return YM(t,ZM(yM(e,sM.Decimal),bM(e,mM.MinusSign)),e,mM.Group,mM.Decimal,n)}function ZM(t,e="-"){const n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},o=t.split(";"),i=o[0],a=o[1],r=-1!==i.indexOf(WM)?i.split(WM):[i.substring(0,i.lastIndexOf(GM)+1),i.substring(i.lastIndexOf(GM)+1)],s=r[0],l=r[1]||"";n.posPre=s.substr(0,s.indexOf("#"));for(let t=0;t<l.length;t++){const e=l.charAt(t);e===GM?n.minFrac=n.maxFrac=t+1:"#"===e?n.maxFrac=t+1:n.posSuf+=e}const c=s.split(",");if(n.gSize=c[1]?c[1].length:0,n.lgSize=c[2]||c[1]?(c[2]||c[1]).length:0,a){const t=i.length-n.posPre.length-n.posSuf.length,e=a.indexOf("#");n.negPre=a.substr(0,e).replace(/'/g,""),n.negSuf=a.substr(e+t).replace(/'/g,"")}else n.negPre=e+n.posPre,n.negSuf=n.posSuf;return n}function XM(t){const e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class KM{}function JM(t,e,n,o){let i=`=${t}`;if(e.indexOf(i)>-1)return i;if(i=n.getPluralCategory(t,o),e.indexOf(i)>-1)return i;if(e.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${t}"`)}class QM extends KM{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(_M(e||this.locale)(t)){case lM.Zero:return"zero";case lM.One:return"one";case lM.Two:return"two";case lM.Few:return"few";case lM.Many:return"many";default:return"other"}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function $M(t,e){e=encodeURIComponent(e);for(const n of t.split(";")){const t=n.indexOf("="),[o,i]=-1==t?[n,""]:[n.slice(0,t),n.slice(t+1)];if(o.trim()===e)return decodeURIComponent(i)}return null}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */QM.ɵfac=function t(e){return new(e||QM)(us(B_))},QM.ɵprov=lo({token:QM,factory:QM.ɵfac}),QM.ctorParameters=()=>[{type:String,decorators:[{type:ys,args:[B_]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(QM,[{type:Jm}],(function(){return[{type:String,decorators:[{type:ys,args:[B_]}]}]}),null);class tv{constructor(t,e,n,o){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=n,this._renderer=o,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(wm(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){const t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}_applyKeyValueChanges(t){t.forEachAddedItem((t=>this._toggleClass(t.key,t.currentValue))),t.forEachChangedItem((t=>this._toggleClass(t.key,t.currentValue))),t.forEachRemovedItem((t=>{t.previousValue&&this._toggleClass(t.key,!1)}))}_applyIterableChanges(t){t.forEachAddedItem((t=>{if("string"!=typeof t.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${Rn(t.item)}`);this._toggleClass(t.item,!0)})),t.forEachRemovedItem((t=>this._toggleClass(t.item,!1)))}_applyClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach((t=>this._toggleClass(t,!0))):Object.keys(t).forEach((e=>this._toggleClass(e,!!t[e]))))}_removeClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach((t=>this._toggleClass(t,!1))):Object.keys(t).forEach((t=>this._toggleClass(t,!1))))}_toggleClass(t,e){(t=t.trim())&&t.split(/\s+/g).forEach((t=>{e?this._renderer.addClass(this._ngEl.nativeElement,t):this._renderer.removeClass(this._ngEl.nativeElement,t)}))}}tv.ɵfac=function t(e){return new(e||tv)(Mu(Eh),Mu(Rh),Mu(ch),Mu(uh))},tv.ɵdir=Jo({type:tv,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),tv.ctorParameters=()=>[{type:Eh},{type:Rh},{type:ch},{type:uh}],tv.propDecorators={klass:[{type:y_,args:["class"]}],ngClass:[{type:y_,args:["ngClass"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(tv,[{type:g_,args:[{selector:"[ngClass]"}]}],(function(){return[{type:Eh},{type:Rh},{type:ch},{type:uh}]}),{klass:[{type:y_,args:["class"]}],ngClass:[{type:y_,args:["ngClass"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class ev{constructor(t){this._viewContainerRef=t,this._componentRef=null,this._moduleRef=null}ngOnChanges(t){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){const e=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(t.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){const t=e.get(Zh);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(t.injector)}else this._moduleRef=null;const n=(this._moduleRef?this._moduleRef.componentFactoryResolver:e.get(rh)).resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(n,this._viewContainerRef.length,e,this.ngComponentOutletContent)}}ngOnDestroy(){this._moduleRef&&this._moduleRef.destroy()}}ev.ɵfac=function t(e){return new(e||ev)(Mu(Xh))},ev.ɵdir=Jo({type:ev,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},features:[Si]}),ev.ctorParameters=()=>[{type:Xh}],ev.propDecorators={ngComponentOutlet:[{type:y_}],ngComponentOutletInjector:[{type:y_}],ngComponentOutletContent:[{type:y_}],ngComponentOutletNgModuleFactory:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(ev,[{type:g_,args:[{selector:"[ngComponentOutlet]"}]}],(function(){return[{type:Xh}]}),{ngComponentOutlet:[{type:y_}],ngComponentOutletInjector:[{type:y_}],ngComponentOutletContent:[{type:y_}],ngComponentOutletNgModuleFactory:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class nv{constructor(t,e,n,o){this.$implicit=t,this.ngForOf=e,this.index=n,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}class ov{constructor(t,e,n){this._viewContainer=t,this._template=e,this._differs=n,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){"undefined"!=typeof ngDevMode&&!ngDevMode||null==t||"function"==typeof t||console&&console.warn&&console.warn(`trackBy must be a function, but received ${JSON.stringify(t)}. See https://angular.io/api/common/NgForOf#change-propagation for more information.`),this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;if(!this._differ&&t)try{this._differ=this._differs.find(t).create(this.ngForTrackBy)}catch(e){throw new Error(`Cannot find a differ supporting object '${t}' of type '${(function t(e){return e.name||typeof e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t)}'. NgFor only supports binding to Iterables such as Arrays.`)}}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const e=[];t.forEachOperation(((t,n,o)=>{if(null==t.previousIndex){const n=this._viewContainer.createEmbeddedView(this._template,new nv(null,this._ngForOf,-1,-1),null===o?void 0:o),i=new iv(t,n);e.push(i)}else if(null==o)this._viewContainer.remove(null===n?void 0:n);else if(null!==n){const i=this._viewContainer.get(n);this._viewContainer.move(i,o);const a=new iv(t,i);e.push(a)}}));for(let t=0;t<e.length;t++)this._perViewChange(e[t].view,e[t].record);for(let t=0,e=this._viewContainer.length;t<e;t++){const n=this._viewContainer.get(t);n.context.index=t,n.context.count=e,n.context.ngForOf=this._ngForOf}t.forEachIdentityChange((t=>{this._viewContainer.get(t.currentIndex).context.$implicit=t.item}))}_perViewChange(t,e){t.context.$implicit=e.item}static ngTemplateContextGuard(t,e){return!0}}ov.ɵfac=function t(e){return new(e||ov)(Mu(Xh),Mu(Uh),Mu(Eh))},ov.ɵdir=Jo({type:ov,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),ov.ctorParameters=()=>[{type:Xh},{type:Uh},{type:Eh}],ov.propDecorators={ngForOf:[{type:y_}],ngForTrackBy:[{type:y_}],ngForTemplate:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(ov,[{type:g_,args:[{selector:"[ngFor][ngForOf]"}]}],(function(){return[{type:Xh},{type:Uh},{type:Eh}]}),{ngForOf:[{type:y_}],ngForTrackBy:[{type:y_}],ngForTemplate:[{type:y_}]});class iv{constructor(t,e){this.record=t,this.view=e}}class av{constructor(t,e){this._viewContainer=t,this._context=new rv,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=e}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){sv("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){sv("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,e){return!0}}av.ɵfac=function t(e){return new(e||av)(Mu(Xh),Mu(Uh))},av.ɵdir=Jo({type:av,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),av.ctorParameters=()=>[{type:Xh},{type:Uh}],av.propDecorators={ngIf:[{type:y_}],ngIfThen:[{type:y_}],ngIfElse:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(av,[{type:g_,args:[{selector:"[ngIf]"}]}],(function(){return[{type:Xh},{type:Uh}]}),{ngIf:[{type:y_}],ngIfThen:[{type:y_}],ngIfElse:[{type:y_}]});class rv{constructor(){this.$implicit=null,this.ngIf=null}}function sv(t,e){if(e&&!e.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${Rn(e)}'.`)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class lv{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}class cv{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(t){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(t)}_matchCase(t){const e=t==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||e,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),e}_updateDefaultCases(t){if(this._defaultViews&&t!==this._defaultUsed){this._defaultUsed=t;for(let e=0;e<this._defaultViews.length;e++)this._defaultViews[e].enforceState(t)}}}cv.ɵfac=function t(e){return new(e||cv)},cv.ɵdir=Jo({type:cv,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"}}),cv.propDecorators={ngSwitch:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(cv,[{type:g_,args:[{selector:"[ngSwitch]"}]}],(function(){return[]}),{ngSwitch:[{type:y_}]});class dv{constructor(t,e,n){this.ngSwitch=n,"undefined"!=typeof ngDevMode&&!ngDevMode||n||mv("ngSwitchCase","NgSwitchCase"),n._addCase(),this._view=new lv(t,e)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}dv.ɵfac=function t(e){return new(e||dv)(Mu(Xh),Mu(Uh),Mu(cv,9))},dv.ɵdir=Jo({type:dv,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"}}),dv.ctorParameters=()=>[{type:Xh},{type:Uh},{type:cv,decorators:[{type:_s},{type:vs}]}],dv.propDecorators={ngSwitchCase:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(dv,[{type:g_,args:[{selector:"[ngSwitchCase]"}]}],(function(){return[{type:Xh},{type:Uh},{type:cv,decorators:[{type:_s},{type:vs}]}]}),{ngSwitchCase:[{type:y_}]});class pv{constructor(t,e,n){"undefined"!=typeof ngDevMode&&!ngDevMode||n||mv("ngSwitchDefault","NgSwitchDefault"),n._addDefault(new lv(t,e))}}function mv(t,e){throw new Fn("305",`An element with the "${t}" attribute (matching the "${e}" directive) must be located inside an element with the "ngSwitch" attribute (matching "NgSwitch" directive)`)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */pv.ɵfac=function t(e){return new(e||pv)(Mu(Xh),Mu(Uh),Mu(cv,9))},pv.ɵdir=Jo({type:pv,selectors:[["","ngSwitchDefault",""]]}),pv.ctorParameters=()=>[{type:Xh},{type:Uh},{type:cv,decorators:[{type:_s},{type:vs}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(pv,[{type:g_,args:[{selector:"[ngSwitchDefault]"}]}],(function(){return[{type:Xh},{type:Uh},{type:cv,decorators:[{type:_s},{type:vs}]}]}),null);class uv{constructor(t){this._localization=t,this._caseViews={}}set ngPlural(t){this._switchValue=t,this._updateView()}addCase(t,e){this._caseViews[t]=e}_updateView(){this._clearViews();const t=Object.keys(this._caseViews),e=JM(this._switchValue,t,this._localization);this._activateView(this._caseViews[e])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(t){t&&(this._activeView=t,this._activeView.create())}}uv.ɵfac=function t(e){return new(e||uv)(Mu(KM))},uv.ɵdir=Jo({type:uv,selectors:[["","ngPlural",""]],inputs:{ngPlural:"ngPlural"}}),uv.ctorParameters=()=>[{type:KM}],uv.propDecorators={ngPlural:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(uv,[{type:g_,args:[{selector:"[ngPlural]"}]}],(function(){return[{type:KM}]}),{ngPlural:[{type:y_}]});class fv{constructor(t,e,n,o){this.value=t;const i=!isNaN(Number(t));o.addCase(i?`=${t}`:t,new lv(n,e))}}fv.ɵfac=function t(e){return new(e||fv)(Or("ngPluralCase"),Mu(Uh),Mu(Xh),Mu(uv,1))},fv.ɵdir=Jo({type:fv,selectors:[["","ngPluralCase",""]]}),fv.ctorParameters=()=>[{type:String,decorators:[{type:Rr,args:["ngPluralCase"]}]},{type:Uh},{type:Xh},{type:uv,decorators:[{type:vs}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(fv,[{type:g_,args:[{selector:"[ngPluralCase]"}]}],(function(){return[{type:String,decorators:[{type:Rr,args:["ngPluralCase"]}]},{type:Uh},{type:Xh},{type:uv,decorators:[{type:vs}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class gv{constructor(t,e,n){this._ngEl=t,this._differs=e,this._renderer=n,this._ngStyle=null,this._differ=null}set ngStyle(t){this._ngStyle=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())}ngDoCheck(){if(this._differ){const t=this._differ.diff(this._ngStyle);t&&this._applyChanges(t)}}_setStyle(t,e){const[n,o]=t.split(".");null!=(e=null!=e&&o?`${e}${o}`:e)?this._renderer.setStyle(this._ngEl.nativeElement,n,e):this._renderer.removeStyle(this._ngEl.nativeElement,n)}_applyChanges(t){t.forEachRemovedItem((t=>this._setStyle(t.key,null))),t.forEachAddedItem((t=>this._setStyle(t.key,t.currentValue))),t.forEachChangedItem((t=>this._setStyle(t.key,t.currentValue)))}}gv.ɵfac=function t(e){return new(e||gv)(Mu(ch),Mu(Rh),Mu(uh))},gv.ɵdir=Jo({type:gv,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}}),gv.ctorParameters=()=>[{type:ch},{type:Rh},{type:uh}],gv.propDecorators={ngStyle:[{type:y_,args:["ngStyle"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(gv,[{type:g_,args:[{selector:"[ngStyle]"}]}],(function(){return[{type:ch},{type:Rh},{type:uh}]}),{ngStyle:[{type:y_,args:["ngStyle"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class hv{constructor(t){this._viewContainerRef=t,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(t){if(this._shouldRecreateView(t)){const t=this._viewContainerRef;this._viewRef&&t.remove(t.indexOf(this._viewRef)),this._viewRef=this.ngTemplateOutlet?t.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext):null}else this._viewRef&&this.ngTemplateOutletContext&&this._updateExistingContext(this.ngTemplateOutletContext)}_shouldRecreateView(t){const e=t.ngTemplateOutletContext;return!!t.ngTemplateOutlet||e&&this._hasContextShapeChanged(e)}_hasContextShapeChanged(t){const e=Object.keys(t.previousValue||{}),n=Object.keys(t.currentValue||{});if(e.length===n.length){for(let t of n)if(-1===e.indexOf(t))return!0;return!1}return!0}_updateExistingContext(t){for(let e of Object.keys(t))this._viewRef.context[e]=this.ngTemplateOutletContext[e]}}hv.ɵfac=function t(e){return new(e||hv)(Mu(Xh))},hv.ɵdir=Jo({type:hv,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet"},features:[Si]}),hv.ctorParameters=()=>[{type:Xh}],hv.propDecorators={ngTemplateOutletContext:[{type:y_}],ngTemplateOutlet:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(hv,[{type:g_,args:[{selector:"[ngTemplateOutlet]"}]}],(function(){return[{type:Xh}]}),{ngTemplateOutletContext:[{type:y_}],ngTemplateOutlet:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const bv=[tv,ev,ov,av,hv,gv,cv,dv,pv,uv,fv];
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function yv(t,e){return Error(`InvalidPipeArgument: '${e}' for pipe '${Rn(t)}'`)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const _v=new class{createSubscription(t,e){return t.then(e,(t=>{throw t}))}dispose(t){}onDestroy(t){}},Cv=new class{createSubscription(t,e){return t.subscribe({next:e,error:t=>{throw t}})}dispose(t){t.unsubscribe()}onDestroy(t){t.unsubscribe()}};class Mv{constructor(t){this._ref=t,this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(t){return this._obj?t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue:(t&&this._subscribe(t),this._latestValue)}_subscribe(t){this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,(e=>this._updateLatestValue(t,e)))}_selectStrategy(t){if(Au(t))return _v;if(Ru(t))return Cv;throw yv(Mv,t)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())}}Mv.ɵfac=function t(e){return new(e||Mv)(Jb())},Mv.ɵpipe=Qo({name:"async",type:Mv,pure:!1}),Mv.ctorParameters=()=>[{type:Hh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Mv,[{type:b_,args:[{name:"async",pure:!1}]}],(function(){return[{type:Hh}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class vv{transform(t){if(null==t)return null;if("string"!=typeof t)throw yv(vv,t);return t.toLowerCase()}}vv.ɵfac=function t(e){return new(e||vv)},vv.ɵpipe=Qo({name:"lowercase",type:vv,pure:!0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(vv,[{type:b_,args:[{name:"lowercase"}]}],null,null);const xv=/(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])\S*/g;class Ov{transform(t){if(null==t)return null;if("string"!=typeof t)throw yv(Ov,t);return t.replace(xv,(t=>t[0].toUpperCase()+t.substr(1).toLowerCase()))}}Ov.ɵfac=function t(e){return new(e||Ov)},Ov.ɵpipe=Qo({name:"titlecase",type:Ov,pure:!0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Ov,[{type:b_,args:[{name:"titlecase"}]}],null,null);class Pv{transform(t){if(null==t)return null;if("string"!=typeof t)throw yv(Pv,t);return t.toUpperCase()}}Pv.ɵfac=function t(e){return new(e||Pv)},Pv.ɵpipe=Qo({name:"uppercase",type:Pv,pure:!0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Pv,[{type:b_,args:[{name:"uppercase"}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class wv{constructor(t){this.locale=t}transform(t,e="mediumDate",n,o){if(null==t||""===t||t!=t)return null;try{return DM(t,e,o||this.locale,n)}catch(t){throw yv(wv,t.message)}}}wv.ɵfac=function t(e){return new(e||wv)(Mu(B_))},wv.ɵpipe=Qo({name:"date",type:wv,pure:!0}),wv.ctorParameters=()=>[{type:String,decorators:[{type:ys,args:[B_]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(wv,[{type:b_,args:[{name:"date",pure:!0}]}],(function(){return[{type:String,decorators:[{type:ys,args:[B_]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const kv=/#/g;class Sv{constructor(t){this._localization=t}transform(t,e,n){if(null==t)return"";if("object"!=typeof e||null===e)throw yv(Sv,e);return e[JM(t,Object.keys(e),this._localization,n)].replace(kv,t.toString())}}Sv.ɵfac=function t(e){return new(e||Sv)(Mu(KM))},Sv.ɵpipe=Qo({name:"i18nPlural",type:Sv,pure:!0}),Sv.ctorParameters=()=>[{type:KM}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Sv,[{type:b_,args:[{name:"i18nPlural",pure:!0}]}],(function(){return[{type:KM}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Dv{transform(t,e){if(null==t)return"";if("object"!=typeof e||"string"!=typeof t)throw yv(Dv,e);return e.hasOwnProperty(t)?e[t]:e.hasOwnProperty("other")?e.other:""}}Dv.ɵfac=function t(e){return new(e||Dv)},Dv.ɵpipe=Qo({name:"i18nSelect",type:Dv,pure:!0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Dv,[{type:b_,args:[{name:"i18nSelect",pure:!0}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Ev{transform(t){return JSON.stringify(t,null,2)}}Ev.ɵfac=function t(e){return new(e||Ev)},Ev.ɵpipe=Qo({name:"json",type:Ev,pure:!1}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Ev,[{type:b_,args:[{name:"json",pure:!1}]}],null,null);class Av{constructor(t){this.differs=t,this.keyValues=[]}transform(t,e=Rv){if(!t||!(t instanceof Map)&&"object"!=typeof t)return null;this.differ||(this.differ=this.differs.find(t).create());const n=this.differ.diff(t);return n&&(this.keyValues=[],n.forEachItem((t=>{this.keyValues.push((
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function e(t,n){return{key:t,value:n}})(t.key,t.currentValue))})),this.keyValues.sort(e)),this.keyValues}}function Rv(t,e){const n=t.key,o=e.key;if(n===o)return 0;if(void 0===n)return 1;if(void 0===o)return-1;if(null===n)return 1;if(null===o)return-1;if("string"==typeof n&&"string"==typeof o)return n<o?-1:1;if("number"==typeof n&&"number"==typeof o)return n-o;if("boolean"==typeof n&&"boolean"==typeof o)return n<o?-1:1;const i=String(n),a=String(o);return i==a?0:i<a?-1:1}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */Av.ɵfac=function t(e){return new(e||Av)(Mu(Rh))},Av.ɵpipe=Qo({name:"keyvalue",type:Av,pure:!1}),Av.ctorParameters=()=>[{type:Rh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Av,[{type:b_,args:[{name:"keyvalue",pure:!1}]}],(function(){return[{type:Rh}]}),null);class Tv{constructor(t){this._locale=t}transform(t,e,n){if(!zv(t))return null;n=n||this._locale;try{return qM(Hv(t),n,e)}catch(t){throw yv(Tv,t.message)}}}Tv.ɵfac=function t(e){return new(e||Tv)(Mu(B_))},Tv.ɵpipe=Qo({name:"number",type:Tv,pure:!0}),Tv.ctorParameters=()=>[{type:String,decorators:[{type:ys,args:[B_]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Tv,[{type:b_,args:[{name:"number"}]}],(function(){return[{type:String,decorators:[{type:ys,args:[B_]}]}]}),null);class Nv{constructor(t){this._locale=t}transform(t,e,n){if(!zv(t))return null;n=n||this._locale;try{return(function o(t,e,n){return YM(t,ZM(yM(e,sM.Percent),bM(e,mM.MinusSign)),e,mM.Group,mM.Decimal,n,!0).replace(new RegExp("%","g"),bM(e,mM.PercentSign))})(Hv(t),n,e)}catch(t){throw yv(Nv,t.message)}}}Nv.ɵfac=function t(e){return new(e||Nv)(Mu(B_))},Nv.ɵpipe=Qo({name:"percent",type:Nv,pure:!0}),Nv.ctorParameters=()=>[{type:String,decorators:[{type:ys,args:[B_]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Nv,[{type:b_,args:[{name:"percent"}]}],(function(){return[{type:String,decorators:[{type:ys,args:[B_]}]}]}),null);class Iv{constructor(t,e="USD"){this._locale=t,this._defaultCurrencyCode=e}transform(t,e,n="symbol",o,i){if(!zv(t))return null;i=i||this._locale,"boolean"==typeof n&&(("undefined"==typeof ngDevMode||ngDevMode)&&console&&console.warn&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are "code", "symbol" or "symbol-narrow".'),n=n?"symbol":"code");let a=e||this._defaultCurrencyCode;"code"!==n&&(a="symbol"===n||"symbol-narrow"===n?(function r(t,e,n="en"){const o=(function i(t){return Tf(t)[zf.Currencies]})(n)[t]||rM[t]||[],a=o[1];return"narrow"===e&&"string"==typeof a?a:o[0]||t})(a,"symbol"===n?"wide":"narrow",i):n);try{return(function s(t,e,n,o,i){const a=ZM(yM(e,sM.Currency),bM(e,mM.MinusSign));return a.minFrac=(function r(t){let e;const n=rM[t];return n&&(e=n[2]),"number"==typeof e?e:2})(o),a.maxFrac=a.minFrac,YM(t,a,e,mM.CurrencyGroup,mM.CurrencyDecimal,i).replace("¤",n).replace("¤","").trim()})(Hv(t),i,a,e,o)}catch(t){throw yv(Iv,t.message)}}}function zv(t){return!(null==t||""===t||t!=t)}function Hv(t){if("string"==typeof t&&!isNaN(Number(t)-parseFloat(t)))return Number(t);if("number"!=typeof t)throw new Error(`${t} is not a number`);return t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */Iv.ɵfac=function t(e){return new(e||Iv)(Mu(B_),Mu(V_))},Iv.ɵpipe=Qo({name:"currency",type:Iv,pure:!0}),Iv.ctorParameters=()=>[{type:String,decorators:[{type:ys,args:[B_]}]},{type:String,decorators:[{type:ys,args:[V_]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Iv,[{type:b_,args:[{name:"currency"}]}],(function(){return[{type:String,decorators:[{type:ys,args:[B_]}]},{type:String,decorators:[{type:ys,args:[V_]}]}]}),null);class Fv{transform(t,e,n){if(null==t)return null;if(!this.supports(t))throw yv(Fv,t);return t.slice(e,n)}supports(t){return"string"==typeof t||Array.isArray(t)}}Fv.ɵfac=function t(e){return new(e||Fv)},Fv.ɵpipe=Qo({name:"slice",type:Fv,pure:!1}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Fv,[{type:b_,args:[{name:"slice",pure:!1}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Lv=[Mv,Pv,vv,Ev,Fv,Tv,Nv,Ov,Iv,wv,Sv,Dv,Av];
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class Bv{}Bv.ɵfac=function t(e){return new(e||Bv)},Bv.ɵmod=Zo({type:Bv}),Bv.ɵinj=co({providers:[{provide:KM,useClass:QM}]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Bv,{declarations:[tv,ev,ov,av,hv,gv,cv,dv,pv,uv,fv,Mv,Pv,vv,Ev,Fv,Tv,Nv,Ov,Iv,wv,Sv,Dv,Av],exports:[tv,ev,ov,av,hv,gv,cv,dv,pv,uv,fv,Mv,Pv,vv,Ev,Fv,Tv,Nv,Ov,Iv,wv,Sv,Dv,Av]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Bv,[{type:k_,args:[{declarations:[bv,Lv],exports:[bv,Lv],providers:[{provide:KM,useClass:QM}]}]}],null,null),
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
new bh("11.2.14");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Vv{}Vv.ɵprov=lo({token:Vv,providedIn:"root",factory:()=>new jv(us(UC),window)});class jv{constructor(t,e){this.document=t,this.window=e,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(t){this.supportsScrolling()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(!this.supportsScrolling())return;const e=(function n(t,e){const n=t.getElementById(e)||t.getElementsByName(e)[0];if(n)return n;if("function"==typeof t.createTreeWalker&&t.body&&(t.body.createShadowRoot||t.body.attachShadow)){const n=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=n.currentNode;for(;o;){const t=o.shadowRoot;if(t){const n=t.getElementById(e)||t.querySelector(`[name="${e}"]`);if(n)return n}o=n.nextNode()}}return null}
/**
     * @license Angular v11.2.14
     * (c) 2010-2021 Google LLC. https://angular.io/
     * License: MIT
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(this.document,t);e&&(this.scrollToElement(e),this.attemptFocus(e))}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),n=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(n-i[0],o-i[1])}attemptFocus(t){return t.focus(),this.document.activeElement===t}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const t=Uv(this.window.history)||Uv(Object.getPrototypeOf(this.window.history));return!(!t||!t.writable&&!t.set)}catch(t){return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch(t){return!1}}}function Uv(t){return Object.getOwnPropertyDescriptor(t,"scrollRestoration")}class Wv extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */{static makeCurrent(){!(function t(e){VC||(VC=e)})(new Wv)}getProperty(t,e){return t[e]}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}getValue(t){return t.value}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=(function n(){return Yv||(Yv=document.querySelector("base"),Yv)?Yv.getAttribute("href"):null})();return null==e?null:(function o(t){return Gv||(Gv=document.createElement("a")),Gv.setAttribute("href",t),"/"===Gv.pathname.charAt(0)?Gv.pathname:"/"+Gv.pathname}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(e)}resetBaseElement(){Yv=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return $M(document.cookie,t)}}let Gv,Yv=null;const qv=new Nr("TRANSITION_ID"),Zv=[{provide:E_,useFactory:function Xv(t,e,n){return()=>{n.get(A_).donePromise.then((()=>{const n=jC();Array.prototype.slice.apply(e.querySelectorAll("style[ng-transition]")).filter((e=>e.getAttribute("ng-transition")===t)).forEach((t=>n.remove(t)))}))}},deps:[qv,UC,Qp],multi:!0}];
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Kv{static init(){!(function t(e){dC=e})(new Kv)}addToWindow(t){Eo.getAngularTestability=(e,n=!0)=>{const o=t.findTestabilityInTree(e,n);if(null==o)throw new Error("Could not find testability for element.");return o},Eo.getAllAngularTestabilities=()=>t.getAllTestabilities(),Eo.getAllAngularRootElements=()=>t.getAllRootElements(),Eo.frameworkStabilizers||(Eo.frameworkStabilizers=[]),Eo.frameworkStabilizers.push((t=>{const e=Eo.getAllAngularTestabilities();let n=e.length,o=!1;const i=function(e){o=o||e,n--,0==n&&t(o)};e.forEach((function(t){t.whenStable(i)}))}))}findTestabilityInTree(t,e,n){if(null==e)return null;const o=t.getTestability(e);return null!=o?o:n?jC().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}new _s;const Jv=new Nr("EventManagerPlugins");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class Qv{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach((t=>t.manager=this)),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let e=0;e<n.length;e++){const o=n[e];if(o.supports(t))return this._eventNameToPlugin.set(t,o),o}throw new Error(`No event manager plugin found for event ${t}`)}}Qv.ɵfac=function t(e){return new(e||Qv)(us(Jv),us(tC))},Qv.ɵprov=lo({token:Qv,factory:Qv.ɵfac}),Qv.ctorParameters=()=>[{type:Array,decorators:[{type:ys,args:[Jv]}]},{type:tC}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Qv,[{type:Jm}],(function(){return[{type:Array,decorators:[{type:ys,args:[Jv]}]},{type:tC}]}),null);class $v{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const o=jC().getGlobalEventTarget(this._doc,t);if(!o)throw new Error(`Unsupported event target ${o} for event ${e}`);return this.addEventListener(o,e,n)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class tx{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach((t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))})),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}tx.ɵfac=function t(e){return new(e||tx)},tx.ɵprov=lo({token:tx,factory:tx.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(tx,[{type:Jm}],(function(){return[]}),null);class ex extends tx{constructor(t){super(),this._doc=t,this._hostNodes=new Map,this._hostNodes.set(t.head,[])}_addStylesToHost(t,e,n){t.forEach((t=>{const o=this._doc.createElement("style");o.textContent=t,n.push(e.appendChild(o))}))}addHost(t){const e=[];this._addStylesToHost(this._stylesSet,t,e),this._hostNodes.set(t,e)}removeHost(t){const e=this._hostNodes.get(t);e&&e.forEach(nx),this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(((e,n)=>{this._addStylesToHost(t,n,e)}))}ngOnDestroy(){this._hostNodes.forEach((t=>t.forEach(nx)))}}function nx(t){jC().remove(t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */ex.ɵfac=function t(e){return new(e||ex)(us(UC))},ex.ɵprov=lo({token:ex,factory:ex.ɵfac}),ex.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(ex,[{type:Jm}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);const ox={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},ix=/%COMP%/g,ax="undefined"==typeof ngDevMode||!!ngDevMode;function rx(t,e,n){for(let o=0;o<e.length;o++){let i=e[o];Array.isArray(i)?rx(t,i,n):(i=i.replace(ix,t),n.push(i))}return n}function sx(t){return e=>{if("__ngUnwrap__"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let lx=!1;class cx{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new dx(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case Po.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new ux(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case 1:case Po.ShadowDom:return"undefined"!=typeof ngDevMode&&!ngDevMode||lx||1!==e.encapsulation||(lx=!0,console.warn("ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.")),new fx(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=rx(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}cx.ɵfac=function t(e){return new(e||cx)(us(Qv),us(ex),us(R_))},cx.ɵprov=lo({token:cx,factory:cx.ɵfac}),cx.ctorParameters=()=>[{type:Qv},{type:ex},{type:String,decorators:[{type:ys,args:[R_]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(cx,[{type:Jm}],(function(){return[{type:Qv},{type:ex},{type:String,decorators:[{type:ys,args:[R_]}]}]}),null);class dx{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(ox[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n="string"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector "${t}" did not match any elements`);return e||(n.textContent=""),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,o){if(o){e=o+":"+e;const i=ox[o];i?t.setAttributeNS(i,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const o=ox[n];o?t.removeAttributeNS(o,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,o){o&(tc.DashCase|tc.Important)?t.style.setProperty(e,n,o&tc.Important?"important":""):t.style[e]=n}removeStyle(t,e,n){n&tc.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,n){ax&&mx(e,"property"),t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return ax&&mx(e,"listener"),"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,sx(n)):this.eventManager.addEventListener(t,e,sx(n))}}const px="@".charCodeAt(0);function mx(t,e){if(t.charCodeAt(0)===px)throw new Error(`Found the synthetic ${e} ${t}. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.`)}class ux extends dx{constructor(t,e,n,o){super(t),this.component=n;const i=rx(o+"-"+n.id,n.styles,[]);e.addStyles(i),this.contentAttr=(function a(t){return"_ngcontent-%COMP%".replace(ix,t)})(o+"-"+n.id),this.hostAttr=(function r(t){return"_nghost-%COMP%".replace(ix,t)})(o+"-"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,""),n}}class fx extends dx{constructor(t,e,n,o){super(t),this.sharedStylesHost=e,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=rx(o.id,o.styles,[]);for(let t=0;t<i.length;t++){const e=document.createElement("style");e.textContent=i[t],this.shadowRoot.appendChild(e)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class gx extends $v{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,n){return t.addEventListener(e,n,!1),()=>this.removeEventListener(t,e,n)}removeEventListener(t,e,n){return t.removeEventListener(e,n)}}gx.ɵfac=function t(e){return new(e||gx)(us(UC))},gx.ɵprov=lo({token:gx,factory:gx.ɵfac}),gx.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(gx,[{type:Jm}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const hx={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0,doubletap:!0},bx=new Nr("HammerGestureConfig"),yx=new Nr("HammerLoader");class _x{constructor(){this.events=[],this.overrides={}}buildHammer(t){const e=new Hammer(t,this.options);e.get("pinch").set({enable:!0}),e.get("rotate").set({enable:!0});for(const t in this.overrides)e.get(t).set(this.overrides[t]);return e}}_x.ɵfac=function t(e){return new(e||_x)},_x.ɵprov=lo({token:_x,factory:_x.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(_x,[{type:Jm}],(function(){return[]}),null);class Cx extends $v{constructor(t,e,n,o){super(t),this._config=e,this.console=n,this.loader=o,this._loaderPromise=null}supports(t){return!(!hx.hasOwnProperty(t.toLowerCase())&&!this.isCustomEvent(t)||!window.Hammer&&!this.loader&&(("undefined"==typeof ngDevMode||ngDevMode)&&this.console.warn(`The "${t}" event cannot be bound because Hammer.JS is not loaded and no custom loader has been specified.`),1))}addEventListener(t,e,n){const o=this.manager.getZone();if(e=e.toLowerCase(),!window.Hammer&&this.loader){this._loaderPromise=this._loaderPromise||this.loader();let o=!1,i=()=>{o=!0};return this._loaderPromise.then((()=>{if(!window.Hammer)return("undefined"==typeof ngDevMode||ngDevMode)&&this.console.warn("The custom HAMMER_LOADER completed, but Hammer.JS is not present."),void(i=()=>{});o||(i=this.addEventListener(t,e,n))})).catch((()=>{("undefined"==typeof ngDevMode||ngDevMode)&&this.console.warn(`The "${e}" event cannot be bound because the custom Hammer.JS loader failed.`),i=()=>{}})),()=>{i()}}return o.runOutsideAngular((()=>{const i=this._config.buildHammer(t),a=function(t){o.runGuarded((function(){n(t)}))};return i.on(e,a),()=>{i.off(e,a),"function"==typeof i.destroy&&i.destroy()}}))}isCustomEvent(t){return this._config.events.indexOf(t)>-1}}Cx.ɵfac=function t(e){return new(e||Cx)(us(UC),us(bx),us(L_),us(yx,8))},Cx.ɵprov=lo({token:Cx,factory:Cx.ɵfac}),Cx.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:_x,decorators:[{type:ys,args:[bx]}]},{type:L_},{type:void 0,decorators:[{type:_s},{type:ys,args:[yx]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Cx,[{type:Jm}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:_x,decorators:[{type:ys,args:[bx]}]},{type:L_},{type:void 0,decorators:[{type:_s},{type:ys,args:[yx]}]}]}),null);const Mx=[{provide:Jv,useClass:Cx,multi:!0,deps:[UC,bx,L_,[new _s,yx]]},{provide:bx,useClass:_x,deps:[]}];class vx{}vx.ɵfac=function t(e){return new(e||vx)},vx.ɵmod=Zo({type:vx}),vx.ɵinj=co({providers:Mx}),("undefined"==typeof ngDevMode||ngDevMode)&&db(vx,[{type:k_,args:[{providers:Mx}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const xx=["alt","control","meta","shift"],Ox={"\b":"Backspace","\t":"Tab","":"Delete","":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},Px={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","":"NumLock"},wx={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};class kx extends $v{constructor(t){super(t)}supports(t){return null!=kx.parseEventName(t)}addEventListener(t,e,n){const o=kx.parseEventName(e),i=kx.eventCallback(o.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular((()=>jC().onAndCancel(t,o.domEventName,i)))}static parseEventName(t){const e=t.toLowerCase().split("."),n=e.shift();if(0===e.length||"keydown"!==n&&"keyup"!==n)return null;const o=kx._normalizeKey(e.pop());let i="";if(xx.forEach((t=>{const n=e.indexOf(t);n>-1&&(e.splice(n,1),i+=t+".")})),i+=o,0!=e.length||0===o.length)return null;const a={};return a.domEventName=n,a.fullKey=i,a}static getEventFullKey(t){let e="",n=(function o(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&Px.hasOwnProperty(e)&&(e=Px[e]))}return Ox[e]||e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t);return n=n.toLowerCase()," "===n?n="space":"."===n&&(n="dot"),xx.forEach((o=>{o!=n&&(0,wx[o])(t)&&(e+=o+".")})),e+=n,e}static eventCallback(t,e,n){return o=>{kx.getEventFullKey(o)===t&&n.runGuarded((()=>e(o)))}}static _normalizeKey(t){switch(t){case"esc":return"escape";default:return t}}}kx.ɵfac=function t(e){return new(e||kx)(us(UC))},kx.ɵprov=lo({token:kx,factory:kx.ɵfac}),kx.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(kx,[{type:Jm}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);class Sx{}function Dx(t){return new Ex(t.get(UC))}Sx.ɵfac=function t(e){return new(e||Sx)},Sx.ɵprov=lo({factory:function t(){return us(Ex)},token:Sx,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Sx,[{type:Jm,args:[{providedIn:"root",useExisting:In((()=>Ex))}]}],null,null);class Ex extends Sx{constructor(t){super(),this._doc=t}sanitize(t,e){if(null==e)return null;switch(t){case xl.NONE:return e;case xl.HTML:return Ys(e,"HTML")?Gs(e):Ml(this._doc,String(e)).toString();case xl.STYLE:return Ys(e,"Style")?Gs(e):e;case xl.SCRIPT:if(Ys(e,"Script"))return Gs(e);throw new Error("unsafe value used in a script context");case xl.URL:return qs(e),Ys(e,"URL")?Gs(e):$s(String(e));case xl.RESOURCE_URL:if(Ys(e,"ResourceURL"))return Gs(e);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${t} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(t){return(function e(t){return new Bs(t)})(t)}bypassSecurityTrustStyle(t){return(function e(t){return new Vs(t)})(t)}bypassSecurityTrustScript(t){return(function e(t){return new js(t)})(t)}bypassSecurityTrustUrl(t){return(function e(t){return new Us(t)})(t)}bypassSecurityTrustResourceUrl(t){return(function e(t){return new Ws(t)})(t)}}Ex.ɵfac=function t(e){return new(e||Ex)(us(UC))},Ex.ɵprov=lo({factory:function t(){return Dx(us(Ip))},token:Ex,providedIn:"root"}),Ex.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Ex,[{type:Jm,args:[{providedIn:"root",useFactory:Dx,deps:[Qp]}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);const Ax=gC(wC,"browser",[{provide:H_,useValue:"browser"},{provide:z_,useValue:
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Rx(){Wv.makeCurrent(),Kv.init()},multi:!0},{provide:UC,useFactory:function Tx(){return(function t(e){Fi=e})(document),document},deps:[]}]),Nx=[[],{provide:Hp,useValue:"root"},{provide:El,useFactory:function Ix(){return new El},deps:[]},{provide:Jv,useClass:gx,multi:!0,deps:[UC,tC,H_]},{provide:Jv,useClass:kx,multi:!0,deps:[UC]},[],{provide:cx,useClass:cx,deps:[Qv,ex,R_]},{provide:mh,useExisting:cx},{provide:tx,useExisting:ex},{provide:ex,useClass:ex,deps:[UC]},{provide:sC,useClass:sC,deps:[tC]},{provide:Qv,useClass:Qv,deps:[Jv,tC]},[]];class zx{constructor(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(t){return{ngModule:zx,providers:[{provide:R_,useValue:t.appId},{provide:qv,useExisting:R_},Zv]}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Hx(){return new Fx(us(UC))}zx.ɵfac=function t(e){return new(e||zx)(us(zx,12))},zx.ɵmod=Zo({type:zx}),zx.ɵinj=co({providers:Nx,imports:[Bv,RC]}),zx.ctorParameters=()=>[{type:zx,decorators:[{type:_s},{type:Ms},{type:ys,args:[zx]}]}],("undefined"==typeof ngJitMode||ngJitMode)&&Xo(zx,{exports:function(){return[Bv,RC]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(zx,[{type:k_,args:[{providers:Nx,exports:[Bv,RC]}]}],(function(){return[{type:zx,decorators:[{type:_s},{type:Ms},{type:ys,args:[zx]}]}]}),null);class Fx{constructor(t){this._doc=t,this._dom=jC()}addTag(t,e=!1){return t?this._getOrCreateElement(t,e):null}addTags(t,e=!1){return t?t.reduce(((t,n)=>(n&&t.push(this._getOrCreateElement(n,e)),t)),[]):[]}getTag(t){return t&&this._doc.querySelector(`meta[${t}]`)||null}getTags(t){if(!t)return[];const e=this._doc.querySelectorAll(`meta[${t}]`);return e?[].slice.call(e):[]}updateTag(t,e){if(!t)return null;e=e||this._parseSelector(t);const n=this.getTag(e);return n?this._setMetaElementAttributes(t,n):this._getOrCreateElement(t,!0)}removeTag(t){this.removeTagElement(this.getTag(t))}removeTagElement(t){t&&this._dom.remove(t)}_getOrCreateElement(t,e=!1){if(!e){const e=this._parseSelector(t),n=this.getTag(e);if(n&&this._containsAttributes(t,n))return n}const n=this._dom.createElement("meta");return this._setMetaElementAttributes(t,n),this._doc.getElementsByTagName("head")[0].appendChild(n),n}_setMetaElementAttributes(t,e){return Object.keys(t).forEach((n=>e.setAttribute(this._getMetaKeyMap(n),t[n]))),e}_parseSelector(t){const e=t.name?"name":"property";return`${e}="${t[e]}"`}_containsAttributes(t,e){return Object.keys(t).every((n=>e.getAttribute(this._getMetaKeyMap(n))===t[n]))}_getMetaKeyMap(t){return Lx[t]||t}}Fx.ɵfac=function t(e){return new(e||Fx)(us(UC))},Fx.ɵprov=lo({factory:Hx,token:Fx,providedIn:"root"}),Fx.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Fx,[{type:Jm,args:[{providedIn:"root",useFactory:Hx,deps:[]}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);const Lx={httpEquiv:"http-equiv"};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Bx(){return new Vx(us(UC))}class Vx{constructor(t){this._doc=t}getTitle(){return this._doc.title}setTitle(t){this._doc.title=t||""}}Vx.ɵfac=function t(e){return new(e||Vx)(us(UC))},Vx.ɵprov=lo({factory:Bx,token:Vx,providedIn:"root"}),Vx.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Vx,[{type:Jm,args:[{providedIn:"root",useFactory:Bx,deps:[]}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);class jx{constructor(){this.store={},this.onSerializeCallbacks={}}static init(t){const e=new jx;return e.store=t,e}get(t,e){return void 0!==this.store[t]?this.store[t]:e}set(t,e){this.store[t]=e}remove(t){delete this.store[t]}hasKey(t){return this.store.hasOwnProperty(t)}onSerialize(t,e){this.onSerializeCallbacks[t]=e}toJson(){for(const t in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(t))try{this.store[t]=this.onSerializeCallbacks[t]()}catch(t){console.warn("Exception in onSerialize callback: ",t)}return JSON.stringify(this.store)}}function Ux(t,e){const n=t.getElementById(e+"-state");let o={};if(n&&n.textContent)try{o=JSON.parse((function i(t){const e={"&a;":"&","&q;":'"',"&s;":"'","&l;":"<","&g;":">"};return t.replace(/&[^;]+;/g,(t=>e[t]))})(n.textContent))}catch(t){console.warn("Exception while restoring TransferState for app "+e,t)}return jx.init(o)}jx.ɵfac=function t(e){return new(e||jx)},jx.ɵprov=lo({token:jx,factory:jx.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jx,[{type:Jm}],(function(){return[]}),null);class Wx{}Wx.ɵfac=function t(e){return new(e||Wx)},Wx.ɵmod=Zo({type:Wx}),Wx.ɵinj=co({providers:[{provide:jx,useFactory:Ux,deps:[UC,R_]}]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Wx,[{type:k_,args:[{providers:[{provide:jx,useFactory:Ux,deps:[UC,R_]}]}]}],null,null),
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
new bh("11.2.14");var Gx="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Yx(t,e,n){return t(n={path:e,exports:{},require:function(t,e){return(function n(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}
/**
    * @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes
    * (c) 2010-2020 Google LLC. https://angular.io/
    * License: MIT
    */)()}},n.exports),n.exports}function qx(t){if(t.__esModule)return t;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(t).forEach((function(n){var o=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,o.get?o:{enumerable:!0,get:function(){return t[n]}})})),e}!(function(){
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
(function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function o(t,n){e&&e.measure&&e.measure(t,n)}n("Zone");var i=t.__Zone_symbol_prefix||"__zone_symbol__";function a(t){return i+t}var r=!0===t[a("forceDuplicateZoneCheck")];if(t.Zone){if(r||"function"!=typeof t.Zone.__symbol__)throw new Error("Zone already loaded.");return t.Zone}var s=(function(){function e(t,e){this._parent=t,this._name=e?e.name||"unnamed":"<root>",this._properties=e&&e.properties||{},this._zoneDelegate=new d(this,this._parent&&this._parent._zoneDelegate,e)}return e.assertZonePatched=function(){if(t.Promise!==D.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(e,"root",{get:function(){for(var t=e.current;t.parent;)t=t.parent;return t},enumerable:!0,configurable:!0}),Object.defineProperty(e,"current",{get:function(){return A.zone},enumerable:!0,configurable:!0}),Object.defineProperty(e,"currentTask",{get:function(){return R},enumerable:!0,configurable:!0}),e.__load_patch=function(i,a){if(D.hasOwnProperty(i)){if(r)throw Error("Already loaded patch: "+i)}else if(!t["__Zone_disable_"+i]){var s="Zone:"+i;n(s),D[i]=a(t,e,E),o(s,s)}},Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),e.prototype.get=function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]},e.prototype.getZoneWith=function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null},e.prototype.fork=function(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)},e.prototype.wrap=function(t,e){if("function"!=typeof t)throw new Error("Expecting function got: "+t);var n=this._zoneDelegate.intercept(this,t,e),o=this;return function(){return o.runGuarded(n,this,arguments,e)}},e.prototype.run=function(t,e,n,o){A={parent:A,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,o)}finally{A=A.parent}},e.prototype.runGuarded=function(t,e,n,o){void 0===e&&(e=null),A={parent:A,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,o)}catch(t){if(this._zoneDelegate.handleError(this,t))throw t}}finally{A=A.parent}},e.prototype.runTask=function(t,e,n){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||_).name+"; Execution: "+this.name+")");if(t.state!==C||t.type!==S&&t.type!==k){var o=t.state!=x;o&&t._transitionTo(x,v),t.runCount++;var i=R;R=t,A={parent:A,zone:this};try{t.type==k&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(t){if(this._zoneDelegate.handleError(this,t))throw t}}finally{t.state!==C&&t.state!==P&&(t.type==S||t.data&&t.data.isPeriodic?o&&t._transitionTo(v,x):(t.runCount=0,this._updateTaskCount(t,-1),o&&t._transitionTo(C,x,C))),A=A.parent,R=i}}},e.prototype.scheduleTask=function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+t.zone.name);e=e.parent}t._transitionTo(M,C);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(e){throw t._transitionTo(P,M,C),this._zoneDelegate.handleError(this,e),e}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==M&&t._transitionTo(v,M),t},e.prototype.scheduleMicroTask=function(t,e,n,o){return this.scheduleTask(new p(w,t,e,n,o,void 0))},e.prototype.scheduleMacroTask=function(t,e,n,o,i){return this.scheduleTask(new p(k,t,e,n,o,i))},e.prototype.scheduleEventTask=function(t,e,n,o,i){return this.scheduleTask(new p(S,t,e,n,o,i))},e.prototype.cancelTask=function(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||_).name+"; Execution: "+this.name+")");t._transitionTo(O,v,x);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(P,O),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(C,O),t.runCount=0,t},e.prototype._updateTaskCount=function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var o=0;o<n.length;o++)n[o]._updateTaskCount(t.type,e)},e})();s.__symbol__=a;var l,c={name:"",onHasTask:function(t,e,n,o){return t.hasTask(n,o)},onScheduleTask:function(t,e,n,o){return t.scheduleTask(n,o)},onInvokeTask:function(t,e,n,o,i,a){return t.invokeTask(n,o,i,a)},onCancelTask:function(t,e,n,o){return t.cancelTask(n,o)}},d=(function(){function t(t,e,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=t,this._parentDelegate=e,this._forkZS=n&&(n&&n.onFork?n:e._forkZS),this._forkDlgt=n&&(n.onFork?e:e._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:e._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:e._interceptZS),this._interceptDlgt=n&&(n.onIntercept?e:e._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:e._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:e._invokeZS),this._invokeDlgt=n&&(n.onInvoke?e:e._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:e._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:e._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?e:e._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:e._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:e._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?e:e._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:e._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:e._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?e:e._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:e._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:e._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?e:e._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:e._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var o=n&&n.onHasTask;(o||e&&e._hasTaskZS)&&(this._hasTaskZS=o?n:c,this._hasTaskDlgt=e,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=t,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=e,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=e,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=e,this._cancelTaskCurrZone=this.zone))}return t.prototype.fork=function(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new s(t,e)},t.prototype.intercept=function(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e},t.prototype.invoke=function(t,e,n,o,i){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,o,i):e.apply(n,o)},t.prototype.handleError=function(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)},t.prototype.scheduleTask=function(t,e){var n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e))||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=w)throw new Error("Task is missing scheduleFn.");b(e)}return n},t.prototype.invokeTask=function(t,e,n,o){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,o):e.callback.apply(n,o)},t.prototype.cancelTask=function(t,e){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error("Task is not cancelable");n=e.cancelFn(e)}return n},t.prototype.hasTask=function(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(e){this.handleError(t,e)}},t.prototype._updateTaskCount=function(t,e){var n=this._taskCounts,o=n[t],i=n[t]=o+e;if(i<0)throw new Error("More tasks executed then were scheduled.");0!=o&&0!=i||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})},t})(),p=(function(){function e(n,o,i,a,r,s){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=o,this.data=a,this.scheduleFn=r,this.cancelFn=s,!i)throw new Error("callback is not defined");this.callback=i;var l=this;this.invoke=n===S&&a&&a.useG?e.invokeTask:function(){return e.invokeTask.call(t,l,this,arguments)}}return e.invokeTask=function(t,e,n){t||(t=this),T++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==T&&y(),T--}},Object.defineProperty(e.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),e.prototype.cancelScheduleRequest=function(){this._transitionTo(C,M)},e.prototype._transitionTo=function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(this.type+" '"+this.source+"': can not transition to '"+t+"', expecting state '"+e+"'"+(n?" or '"+n+"'":"")+", was '"+this._state+"'.");this._state=t,t==C&&(this._zoneDelegates=null)},e.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)},e.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}},e})(),m=a("setTimeout"),u=a("Promise"),f=a("then"),g=[],h=!1;function b(e){if(0===T&&0===g.length)if(l||t[u]&&(l=t[u].resolve(0)),l){var n=l[f];n||(n=l.then),n.call(l,y)}else t[m](y,0);e&&g.push(e)}function y(){if(!h){for(h=!0;g.length;){var t=g;g=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.zone.runTask(n,null,null)}catch(t){E.onUnhandledError(t)}}}E.microtaskDrainDone(),h=!1}}var _={name:"NO ZONE"},C="notScheduled",M="scheduling",v="scheduled",x="running",O="canceling",P="unknown",w="microTask",k="macroTask",S="eventTask",D={},E={symbol:a,currentZoneFrame:function(){return A},onUnhandledError:N,microtaskDrainDone:N,scheduleMicroTask:b,showUncaughtError:function(){return!s[a("ignoreConsoleErrorUncaughtError")]},patchEventTarget:function(){return[]},patchOnProperties:N,patchMethod:function(){return N},bindArguments:function(){return[]},patchThen:function(){return N},patchMacroTask:function(){return N},setNativePromise:function(t){t&&"function"==typeof t.resolve&&(l=t.resolve(0))},patchEventPrototype:function(){return N},isIEOrEdge:function(){return!1},getGlobalObjects:function(){},ObjectDefineProperty:function(){return N},ObjectGetOwnPropertyDescriptor:function(){},ObjectCreate:function(){},ArraySlice:function(){return[]},patchClass:function(){return N},wrapWithCurrentZone:function(){return N},filterProperties:function(){return[]},attachOriginToPatched:function(){return N},_redefineProperty:function(){return N},patchCallbacks:function(){return N}},A={parent:null,zone:new s(null,null)},R=null,T=0;function N(){}o("Zone","Zone"),t.Zone=s})("undefined"!=typeof window&&window||"undefined"!=typeof self&&self||Gx),
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
Zone.__load_patch("ZoneAwarePromise",(function(t,e,n){var o=Object.getOwnPropertyDescriptor,i=Object.defineProperty,a=n.symbol,r=[],s=!0===t[a("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],l=a("Promise"),c=a("then");n.onUnhandledError=function(t){if(n.showUncaughtError()){var e=t&&t.rejection;e?console.error("Unhandled Promise rejection:",e instanceof Error?e.message:e,"; Zone:",t.zone.name,"; Task:",t.task&&t.task.source,"; Value:",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=function(){for(var t=function(){var t=r.shift();try{t.zone.runGuarded((function(){throw t}))}catch(t){!(function o(t){n.onUnhandledError(t);try{var o=e[d];"function"==typeof o&&o.call(this,t)}catch(t){}})(t)}};r.length;)t()};var d=a("unhandledPromiseRejectionHandler");function p(t){return t&&t.then}function m(t){return t}function u(t){return D.reject(t)}var f=a("state"),g=a("value"),h=a("finally"),b=a("parentPromiseValue"),y=a("parentPromiseState"),_=null,C=!0,M=!1;function v(t,e){return function(n){try{O(t,e,n)}catch(e){O(t,!1,e)}}}var x=a("currentTaskTrace");function O(t,o,a){var l,c=(l=!1,function t(e){return function(){l||(l=!0,e.apply(null,arguments))}});if(t===a)throw new TypeError("Promise resolved with itself");if(t[f]===_){var d=null;try{"object"!=typeof a&&"function"!=typeof a||(d=a&&a.then)}catch(e){return c((function(){O(t,!1,e)}))(),t}if(o!==M&&a instanceof D&&a.hasOwnProperty(f)&&a.hasOwnProperty(g)&&a[f]!==_)w(a),O(t,a[f],a[g]);else if(o!==M&&"function"==typeof d)try{d.call(a,c(v(t,o)),c(v(t,!1)))}catch(e){c((function(){O(t,!1,e)}))()}else{t[f]=o;var p=t[g];if(t[g]=a,t[h]===h&&o===C&&(t[f]=t[y],t[g]=t[b]),o===M&&a instanceof Error){var m=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;m&&i(a,x,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(var u=0;u<p.length;)k(t,p[u++],p[u++],p[u++],p[u++]);if(0==p.length&&o==M){t[f]=0;var P=a;if(!s)try{throw new Error("Uncaught (in promise): "+(function S(t){return t&&t.toString===Object.prototype.toString?(t.constructor&&t.constructor.name||"")+": "+JSON.stringify(t):t?t.toString():Object.prototype.toString.call(t)})(a)+(a&&a.stack?"\n"+a.stack:""))}catch(t){P=t}P.rejection=a,P.promise=t,P.zone=e.current,P.task=e.currentTask,r.push(P),n.scheduleMicroTask()}}}return t}var P=a("rejectionHandledHandler");function w(t){if(0===t[f]){try{var n=e[P];n&&"function"==typeof n&&n.call(this,{rejection:t[g],promise:t})}catch(t){}t[f]=M;for(var o=0;o<r.length;o++)t===r[o].promise&&r.splice(o,1)}}function k(t,e,n,o,i){w(t);var a=t[f],r=a?"function"==typeof o?o:m:"function"==typeof i?i:u;e.scheduleMicroTask("Promise.then",(function(){try{var o=t[g],i=!!n&&h===n[h];i&&(n[b]=o,n[y]=a);var s=e.run(r,void 0,i&&r!==u&&r!==m?[]:[o]);O(n,!0,s)}catch(t){O(n,!1,t)}}),n)}var S=function(){},D=(function(){function t(e){var n=this;if(!(n instanceof t))throw new Error("Must be an instanceof Promise.");n[f]=_,n[g]=[];try{e&&e(v(n,C),v(n,M))}catch(t){O(n,!1,t)}}return t.toString=function(){return"function ZoneAwarePromise() { [native code] }"},t.resolve=function(t){return O(new this(null),C,t)},t.reject=function(t){return O(new this(null),M,t)},t.race=function(t){var e,n,o=new this((function(t,o){e=t,n=o}));function i(t){e(t)}function a(t){n(t)}for(var r=0,s=t;r<s.length;r++){var l=s[r];p(l)||(l=this.resolve(l)),l.then(i,a)}return o},t.all=function(e){return t.allWithCallback(e)},t.allSettled=function(e){return(this&&this.prototype instanceof t?this:t).allWithCallback(e,{thenCallback:function(t){return{status:"fulfilled",value:t}},errorCallback:function(t){return{status:"rejected",reason:t}}})},t.allWithCallback=function(t,e){for(var n,o,i=new this((function(t,e){n=t,o=e})),a=2,r=0,s=[],l=function(t){p(t)||(t=c.resolve(t));var i=r;try{t.then((function(t){s[i]=e?e.thenCallback(t):t,0==--a&&n(s)}),(function(t){e?(s[i]=e.errorCallback(t),0==--a&&n(s)):o(t)}))}catch(t){o(t)}a++,r++},c=this,d=0,m=t;d<m.length;d++)l(m[d]);return 0==(a-=2)&&n(s),i},Object.defineProperty(t.prototype,Symbol.toStringTag,{get:function(){return"Promise"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,Symbol.species,{get:function(){return t},enumerable:!0,configurable:!0}),t.prototype.then=function(n,o){var i=this.constructor[Symbol.species];i&&"function"==typeof i||(i=this.constructor||t);var a=new i(S),r=e.current;return this[f]==_?this[g].push(r,a,n,o):k(this,r,a,n,o),a},t.prototype.catch=function(t){return this.then(null,t)},t.prototype.finally=function(n){var o=this.constructor[Symbol.species];o&&"function"==typeof o||(o=t);var i=new o(S);i[h]=h;var a=e.current;return this[f]==_?this[g].push(a,i,n,n):k(this,a,i,n,n),i},t})();D.resolve=D.resolve,D.reject=D.reject,D.race=D.race,D.all=D.all;var E=t[l]=t.Promise,A=e.__symbol__("ZoneAwarePromise"),R=o(t,"Promise");R&&!R.configurable||(R&&delete R.writable,R&&delete R.value,R||(R={configurable:!0,enumerable:!0}),R.get=function(){return t[A]?t[A]:t[l]},R.set=function(e){e===D?t[A]=e:(t[l]=e,e.prototype[c]||N(e),n.setNativePromise(e))},i(t,"Promise",R)),t.Promise=D;var T=a("thenPatched");function N(t){var e=t.prototype,n=o(e,"then");if(!n||!1!==n.writable&&n.configurable){var i=e.then;e[c]=i,t.prototype.then=function(t,e){var n=this;return new D((function(t,e){i.call(n,t,e)})).then(t,e)},t[T]=!0}}if(n.patchThen=N,E){N(E);var I=t.fetch;"function"==typeof I&&(t[n.symbol("fetch")]=I,t.fetch=(function z(t){return function(){var e=t.apply(this,arguments);if(e instanceof D)return e;var n=e.constructor;return n[T]||N(n),e}})(I))}return Promise[e.__symbol__("uncaughtPromiseErrors")]=r,D}));
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
var t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,o=Object.create,i=Array.prototype.slice,a="addEventListener",r="removeEventListener",s=Zone.__symbol__(a),l=Zone.__symbol__(r),c="true",d="false",p=Zone.__symbol__("");function m(t,e){return Zone.current.wrap(t,e)}function u(t,e,n,o,i){return Zone.current.scheduleMacroTask(t,e,n,o,i)}var f=Zone.__symbol__,g="undefined"!=typeof window,h=g?window:void 0,b=g&&h||"object"==typeof self&&self||Gx,y=[null];function _(t,e){for(var n=t.length-1;n>=0;n--)"function"==typeof t[n]&&(t[n]=m(t[n],e+"_"+n));return t}function C(t){return!t||!1!==t.writable&&!("function"==typeof t.get&&void 0===t.set)}var M="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,v=!("nw"in b)&&void 0!==b.process&&"[object process]"==={}.toString.call(b.process),x=!v&&!M&&!(!g||!h.HTMLElement),O=void 0!==b.process&&"[object process]"==={}.toString.call(b.process)&&!M&&!(!g||!h.HTMLElement),P={},w=function(t){if(t=t||b.event){var e=P[t.type];e||(e=P[t.type]=f("ON_PROPERTY"+t.type));var n,o=this||t.target||b,i=o[e];return x&&o===h&&"error"===t.type?!0===(n=i&&i.call(this,t.message,t.filename,t.lineno,t.colno,t.error))&&t.preventDefault():null==(n=i&&i.apply(this,arguments))||n||t.preventDefault(),n}};function k(n,o,i){var a=t(n,o);if(!a&&i&&t(i,o)&&(a={enumerable:!0,configurable:!0}),a&&a.configurable){var r=f("on"+o+"patched");if(!n.hasOwnProperty(r)||!n[r]){delete a.writable,delete a.value;var s=a.get,l=a.set,c=o.substr(2),d=P[c];d||(d=P[c]=f("ON_PROPERTY"+c)),a.set=function(t){var e=this;e||n!==b||(e=b),e&&(e[d]&&e.removeEventListener(c,w),l&&l.apply(e,y),"function"==typeof t?(e[d]=t,e.addEventListener(c,w,!1)):e[d]=null)},a.get=function(){var t=this;if(t||n!==b||(t=b),!t)return null;var e=t[d];if(e)return e;if(s){var i=s&&s.call(this);if(i)return a.set.call(this,i),"function"==typeof t.removeAttribute&&t.removeAttribute(o),i}return null},e(n,o,a),n[r]=!0}}}function S(t,e,n){if(e)for(var o=0;o<e.length;o++)k(t,"on"+e[o],n);else{var i=[];for(var a in t)"on"==a.substr(0,2)&&i.push(a);for(var r=0;r<i.length;r++)k(t,i[r],n)}}var D=f("originalInstance");function E(t){var n=b[t];if(n){b[f(t)]=n,b[t]=function(){var e=_(arguments,t);switch(e.length){case 0:this[D]=new n;break;case 1:this[D]=new n(e[0]);break;case 2:this[D]=new n(e[0],e[1]);break;case 3:this[D]=new n(e[0],e[1],e[2]);break;case 4:this[D]=new n(e[0],e[1],e[2],e[3]);break;default:throw new Error("Arg list too long.")}},T(b[t],n);var o,i=new n((function(){}));for(o in i)"XMLHttpRequest"===t&&"responseBlob"===o||(function(n){"function"==typeof i[n]?b[t].prototype[n]=function(){return this[D][n].apply(this[D],arguments)}:e(b[t].prototype,n,{set:function(e){"function"==typeof e?(this[D][n]=m(e,t+"."+n),T(this[D][n],e)):this[D][n]=e},get:function(){return this[D][n]}})})(o);for(o in n)"prototype"!==o&&n.hasOwnProperty(o)&&(b[t][o]=n[o])}}function A(e,o,i){for(var a=e;a&&!a.hasOwnProperty(o);)a=n(a);!a&&e[o]&&(a=e);var r=f(o),s=null;if(a&&!(s=a[r])&&(s=a[r]=a[o],C(a&&t(a,o)))){var l=i(s,r,o);a[o]=function(){return l(this,arguments)},T(a[o],s)}return s}function R(t,e,n){var o=null;function i(t){var e=t.data;return e.args[e.cbIdx]=function(){t.invoke.apply(this,arguments)},o.apply(e.target,e.args),t}o=A(t,e,(function(t){return function(e,o){var a=n(e,o);return a.cbIdx>=0&&"function"==typeof o[a.cbIdx]?u(a.name,o[a.cbIdx],a,i):t.apply(e,o)}}))}function T(t,e){t[f("OriginalDelegate")]=e}var N=!1,I=!1;function z(){try{var t=h.navigator.userAgent;if(-1!==t.indexOf("MSIE ")||-1!==t.indexOf("Trident/"))return!0}catch(t){}return!1}function H(){if(N)return I;N=!0;try{var t=h.navigator.userAgent;-1===t.indexOf("MSIE ")&&-1===t.indexOf("Trident/")&&-1===t.indexOf("Edge/")||(I=!0)}catch(t){}return I}
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */Zone.__load_patch("toString",(function(t){var e=Function.prototype.toString,n=f("OriginalDelegate"),o=f("Promise"),i=f("Error"),a=function a(){if("function"==typeof this){var r=this[n];if(r)return"function"==typeof r?e.call(r):Object.prototype.toString.call(r);if(this===Promise){var s=t[o];if(s)return e.call(s)}if(this===Error){var l=t[i];if(l)return e.call(l)}}return e.call(this)};a[n]=e,Function.prototype.toString=a;var r=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?"[object Promise]":r.call(this)}}));
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
var F=!1;if("undefined"!=typeof window)try{var L=Object.defineProperty({},"passive",{get:function(){F=!0}});window.addEventListener("test",L,L),window.removeEventListener("test",L,L)}catch(t){F=!1}var B={useG:!0},V={},j={},U=new RegExp("^"+p+"(\\w+)(true|false)$"),W=f("propagationStopped");function G(t,e){var n=(e?e(t):t)+d,o=(e?e(t):t)+c,i=p+n,a=p+o;V[t]={},V[t].false=i,V[t].true=a}function Y(t,e,o){var i=o&&o.add||a,s=o&&o.rm||r,l=o&&o.listeners||"eventListeners",m=o&&o.rmAll||"removeAllListeners",u=f(i),g="."+i+":",h=function(t,e,n){if(!t.isRemoved){var o=t.callback;"object"==typeof o&&o.handleEvent&&(t.callback=function(t){return o.handleEvent(t)},t.originalDelegate=o),t.invoke(t,e,[n]);var i=t.options;i&&"object"==typeof i&&i.once&&e[s].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,i)}},b=function(e){if(e=e||t.event){var n=this||e.target||t,o=n[V[e.type].false];if(o)if(1===o.length)h(o[0],n,e);else for(var i=o.slice(),a=0;a<i.length&&(!e||!0!==e[W]);a++)h(i[a],n,e)}},y=function(e){if(e=e||t.event){var n=this||e.target||t,o=n[V[e.type].true];if(o)if(1===o.length)h(o[0],n,e);else for(var i=o.slice(),a=0;a<i.length&&(!e||!0!==e[W]);a++)h(i[a],n,e)}};function _(e,o){if(!e)return!1;var a=!0;o&&void 0!==o.useG&&(a=o.useG);var r=o&&o.vh,h=!0;o&&void 0!==o.chkDup&&(h=o.chkDup);var _=!1;o&&void 0!==o.rt&&(_=o.rt);for(var C=e;C&&!C.hasOwnProperty(i);)C=n(C);if(!C&&e[i]&&(C=e),!C)return!1;if(C[u])return!1;var M,x=o&&o.eventNameToString,O={},P=C[u]=C[i],w=C[f(s)]=C[s],k=C[f(l)]=C[l],S=C[f(m)]=C[m];function D(t,e){return!F&&"object"==typeof t&&t?!!t.capture:F&&e?"boolean"==typeof t?{capture:t,passive:!0}:t?"object"==typeof t&&!1!==t.passive?Object.assign(Object.assign({},t),{passive:!0}):t:{passive:!0}:t}o&&o.prepend&&(M=C[f(o.prepend)]=C[o.prepend]);var E=a?function(t){if(!O.isExisting)return P.call(O.target,O.eventName,O.capture?y:b,O.options)}:function(t){return P.call(O.target,O.eventName,t.invoke,O.options)},A=a?function(t){if(!t.isRemoved){var e=V[t.eventName],n=void 0;e&&(n=e[t.capture?c:d]);var o=n&&t.target[n];if(o)for(var i=0;i<o.length;i++)if(o[i]===t){o.splice(i,1),t.isRemoved=!0,0===o.length&&(t.allRemoved=!0,t.target[n]=null);break}}if(t.allRemoved)return w.call(t.target,t.eventName,t.capture?y:b,t.options)}:function(t){return w.call(t.target,t.eventName,t.invoke,t.options)},R=o&&o.diff?o.diff:function(t,e){var n=typeof e;return"function"===n&&t.callback===e||"object"===n&&t.originalDelegate===e},N=Zone[f("BLACK_LISTED_EVENTS")],I=t[f("PASSIVE_EVENTS")],z=function(e,n,i,s,l,p){return void 0===l&&(l=!1),void 0===p&&(p=!1),function(){var m=this||t,u=arguments[0];o&&o.transferEventName&&(u=o.transferEventName(u));var f=arguments[1];if(!f)return e.apply(this,arguments);if(v&&"uncaughtException"===u)return e.apply(this,arguments);var g=!1;if("function"!=typeof f){if(!f.handleEvent)return e.apply(this,arguments);g=!0}if(!r||r(e,f,m,arguments)){var b=F&&!!I&&-1!==I.indexOf(u),y=D(arguments[2],b);if(N)for(var _=0;_<N.length;_++)if(u===N[_])return b?e.call(m,u,f,y):e.apply(this,arguments);var C=!!y&&("boolean"==typeof y||y.capture),M=!(!y||"object"!=typeof y)&&y.once,P=Zone.current,w=V[u];w||(G(u,x),w=V[u]);var k,S=w[C?c:d],E=m[S],A=!1;if(E){if(A=!0,h)for(_=0;_<E.length;_++)if(R(E[_],f))return}else E=m[S]=[];var T=m.constructor.name,z=j[T];z&&(k=z[u]),k||(k=T+n+(x?x(u):u)),O.options=y,M&&(O.options.once=!1),O.target=m,O.capture=C,O.eventName=u,O.isExisting=A;var H=a?B:void 0;H&&(H.taskData=O);var L=P.scheduleEventTask(k,f,H,i,s);return O.target=null,H&&(H.taskData=null),M&&(y.once=!0),(F||"boolean"!=typeof L.options)&&(L.options=y),L.target=m,L.capture=C,L.eventName=u,g&&(L.originalDelegate=f),p?E.unshift(L):E.push(L),l?m:void 0}}};return C[i]=z(P,g,E,A,_),M&&(C.prependListener=z(M,".prependListener:",(function(t){return M.call(O.target,O.eventName,t.invoke,O.options)}),A,_,!0)),C[s]=function(){var e=this||t,n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));var i=arguments[2],a=!!i&&("boolean"==typeof i||i.capture),s=arguments[1];if(!s)return w.apply(this,arguments);if(!r||r(w,s,e,arguments)){var l,m=V[n];m&&(l=m[a?c:d]);var u=l&&e[l];if(u)for(var f=0;f<u.length;f++){var g=u[f];if(R(g,s))return u.splice(f,1),g.isRemoved=!0,0===u.length&&(g.allRemoved=!0,e[l]=null,"string"==typeof n&&(e[p+"ON_PROPERTY"+n]=null)),g.zone.cancelTask(g),_?e:void 0}return w.apply(this,arguments)}},C[l]=function(){var e=this||t,n=arguments[0];o&&o.transferEventName&&(n=o.transferEventName(n));for(var i=[],a=q(e,x?x(n):n),r=0;r<a.length;r++){var s=a[r];i.push(s.originalDelegate?s.originalDelegate:s.callback)}return i},C[m]=function(){var e=this||t,n=arguments[0];if(n){o&&o.transferEventName&&(n=o.transferEventName(n));var i=V[n];if(i){var a=e[i.false],r=e[i.true];if(a){var l=a.slice();for(p=0;p<l.length;p++)this[s].call(this,n,(c=l[p]).originalDelegate?c.originalDelegate:c.callback,c.options)}if(r)for(l=r.slice(),p=0;p<l.length;p++){var c;this[s].call(this,n,(c=l[p]).originalDelegate?c.originalDelegate:c.callback,c.options)}}}else{for(var d=Object.keys(e),p=0;p<d.length;p++){var u=U.exec(d[p]),f=u&&u[1];f&&"removeListener"!==f&&this[m].call(this,f)}this[m].call(this,"removeListener")}if(_)return this},T(C[i],P),T(C[s],w),S&&T(C[m],S),k&&T(C[l],k),!0}for(var C=[],M=0;M<e.length;M++)C[M]=_(e[M],o);return C}function q(t,e){if(!e){var n=[];for(var o in t){var i=U.exec(o),a=i&&i[1];if(a&&(!e||a===e)){var r=t[o];if(r)for(var s=0;s<r.length;s++)n.push(r[s])}}return n}var l=V[e];l||(G(e),l=V[e]);var c=t[l.false],d=t[l.true];return c?d?c.concat(d):c.slice():d?d.slice():[]}function Z(t,e){var n=t.Event;n&&n.prototype&&e.patchMethod(n.prototype,"stopImmediatePropagation",(function(t){return function(e,n){e[W]=!0,t&&t.apply(e,n)}}))}
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */function X(t,e,n,o,i){var a=Zone.__symbol__(o);if(!e[a]){var r=e[a]=e[o];e[o]=function(a,s,l){return s&&s.prototype&&i.forEach((function(e){var i=n+"."+o+"::"+e,a=s.prototype;if(a.hasOwnProperty(e)){var r=t.ObjectGetOwnPropertyDescriptor(a,e);r&&r.value?(r.value=t.wrapWithCurrentZone(r.value,i),t._redefineProperty(s.prototype,e,r)):a[e]&&(a[e]=t.wrapWithCurrentZone(a[e],i))}else a[e]&&(a[e]=t.wrapWithCurrentZone(a[e],i))})),r.call(e,a,s,l)},t.attachOriginToPatched(e[o],r)}}
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */var K,J,Q,$,tt,et=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],nt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],ot=["load"],it=["blur","error","focus","load","resize","scroll","messageerror"],at=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],st=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],lt=["close","error","open","message"],ct=["error","message"],dt=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],et,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function pt(t,e,n){if(!n||0===n.length)return e;var o=n.filter((function(e){return e.target===t}));if(!o||0===o.length)return e;var i=o[0].ignoreProperties;return e.filter((function(t){return-1===i.indexOf(t)}))}function mt(t,e,n,o){t&&S(t,pt(t,e,n),o)}function ut(t,e){if((!v||O)&&!Zone[t.symbol("patchEvents")]){var o="undefined"!=typeof WebSocket,i=e.__Zone_ignore_on_properties;if(x){var a=window,r=z?[{target:a,ignoreProperties:["error"]}]:[];mt(a,dt.concat(["messageerror"]),i?i.concat(r):i,n(a)),mt(Document.prototype,dt,i),void 0!==a.SVGElement&&mt(a.SVGElement.prototype,dt,i),mt(Element.prototype,dt,i),mt(HTMLElement.prototype,dt,i),mt(HTMLMediaElement.prototype,nt,i),mt(HTMLFrameSetElement.prototype,et.concat(it),i),mt(HTMLBodyElement.prototype,et.concat(it),i),mt(HTMLFrameElement.prototype,ot,i),mt(HTMLIFrameElement.prototype,ot,i);var s=a.HTMLMarqueeElement;s&&mt(s.prototype,at,i);var l=a.Worker;l&&mt(l.prototype,ct,i)}var c=e.XMLHttpRequest;c&&mt(c.prototype,rt,i);var d=e.XMLHttpRequestEventTarget;d&&mt(d&&d.prototype,rt,i),"undefined"!=typeof IDBIndex&&(mt(IDBIndex.prototype,st,i),mt(IDBRequest.prototype,st,i),mt(IDBOpenDBRequest.prototype,st,i),mt(IDBDatabase.prototype,st,i),mt(IDBTransaction.prototype,st,i),mt(IDBCursor.prototype,st,i)),o&&mt(WebSocket.prototype,lt,i)}}
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */function ft(){K=Zone.__symbol__,J=Object[K("defineProperty")]=Object.defineProperty,Q=Object[K("getOwnPropertyDescriptor")]=Object.getOwnPropertyDescriptor,$=Object.create,tt=K("unconfigurables"),Object.defineProperty=function(t,e,n){if(ht(t,e))throw new TypeError("Cannot assign to read only property '"+e+"' of "+t);var o=n.configurable;return"prototype"!==e&&(n=bt(t,e,n)),yt(t,e,n,o)},Object.defineProperties=function(t,e){return Object.keys(e).forEach((function(n){Object.defineProperty(t,n,e[n])})),t},Object.create=function(t,e){return"object"!=typeof e||Object.isFrozen(e)||Object.keys(e).forEach((function(n){e[n]=bt(t,n,e[n])})),$(t,e)},Object.getOwnPropertyDescriptor=function(t,e){var n=Q(t,e);return n&&ht(t,e)&&(n.configurable=!1),n}}function gt(t,e,n){var o=n.configurable;return yt(t,e,n=bt(t,e,n),o)}function ht(t,e){return t&&t[tt]&&t[tt][e]}function bt(t,e,n){return Object.isFrozen(n)||(n.configurable=!0),n.configurable||(t[tt]||Object.isFrozen(t)||J(t,tt,{writable:!0,value:{}}),t[tt]&&(t[tt][e]=!0)),n}function yt(t,e,n,o){try{return J(t,e,n)}catch(a){if(!n.configurable)throw a;void 0===o?delete n.configurable:n.configurable=o;try{return J(t,e,n)}catch(o){var i=null;try{i=JSON.stringify(n)}catch(t){i=n.toString()}console.log("Attempting to configure '"+e+"' with descriptor '"+i+"' on object '"+t+"' and got error, giving up: "+o)}}}
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */function _t(t,e){var n=e.getGlobalObjects(),o=n.eventNames,i=n.globalSources,a=n.zoneSymbolEventNames,r=n.TRUE_STR,s=n.FALSE_STR,l=n.ZONE_SYMBOL_PREFIX,c="ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket".split(","),d=[],p=t.wtf,m="Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video".split(",");p?d=m.map((function(t){return"HTML"+t+"Element"})).concat(c):t.EventTarget?d.push("EventTarget"):d=c;for(var u=t.__Zone_disable_IE_check||!1,f=t.__Zone_enable_cross_context_check||!1,g=e.isIEOrEdge(),h="[object FunctionWrapper]",b="function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }",y={MSPointerCancel:"pointercancel",MSPointerDown:"pointerdown",MSPointerEnter:"pointerenter",MSPointerHover:"pointerhover",MSPointerLeave:"pointerleave",MSPointerMove:"pointermove",MSPointerOut:"pointerout",MSPointerOver:"pointerover",MSPointerUp:"pointerup"},_=0;_<o.length;_++){var C=l+((P=o[_])+s),M=l+(P+r);a[P]={},a[P][s]=C,a[P][r]=M}for(_=0;_<m.length;_++)for(var v=m[_],x=i[v]={},O=0;O<o.length;O++){var P;x[P=o[O]]=v+".addEventListener:"+P}var w=[];for(_=0;_<d.length;_++){var k=t[d[_]];w.push(k&&k.prototype)}return e.patchEventTarget(t,w,{vh:function(t,e,n,o){if(!u&&g){if(f)try{var i;if((i=e.toString())===h||i==b)return t.apply(n,o),!1}catch(e){return t.apply(n,o),!1}else if((i=e.toString())===h||i==b)return t.apply(n,o),!1}else if(f)try{e.toString()}catch(e){return t.apply(n,o),!1}return!0},transferEventName:function(t){return y[t]||t}}),Zone[e.symbol("patchEventTarget")]=!!t.EventTarget,!0}
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
function Ct(t,e){var n=t.getGlobalObjects();if((!n.isNode||n.isMix)&&!(function o(t,e){var n=t.getGlobalObjects();if((n.isBrowser||n.isMix)&&!t.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype,"onclick")&&"undefined"!=typeof Element){var o=t.ObjectGetOwnPropertyDescriptor(Element.prototype,"onclick");if(o&&!o.configurable)return!1;if(o){t.ObjectDefineProperty(Element.prototype,"onclick",{enumerable:!0,configurable:!0,get:function(){return!0}});var i=!!document.createElement("div").onclick;return t.ObjectDefineProperty(Element.prototype,"onclick",o),i}}var a=e.XMLHttpRequest;if(!a)return!1;var r="onreadystatechange",s=a.prototype,l=t.ObjectGetOwnPropertyDescriptor(s,r);if(l)return t.ObjectDefineProperty(s,r,{enumerable:!0,configurable:!0,get:function(){return!0}}),i=!!(d=new a).onreadystatechange,t.ObjectDefineProperty(s,r,l||{}),i;var c=t.symbol("fake");t.ObjectDefineProperty(s,r,{enumerable:!0,configurable:!0,get:function(){return this[c]},set:function(t){this[c]=t}});var d,p=function(){};return(d=new a).onreadystatechange=p,i=d[c]===p,d.onreadystatechange=null,i})(t,e)){var i="undefined"!=typeof WebSocket;(function a(t){for(var e=t.getGlobalObjects().eventNames,n=t.symbol("unbound"),o=function(o){var i=e[o],a="on"+i;self.addEventListener(i,(function(e){var o,i,r=e.target;for(i=r?r.constructor.name+"."+a:"unknown."+a;r;)r[a]&&!r[a][n]&&((o=t.wrapWithCurrentZone(r[a],i))[n]=r[a],r[a]=o),r=r.parentElement}),!0)},i=0;i<e.length;i++)o(i)}
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */)(t),t.patchClass("XMLHttpRequest"),i&&(function r(t,e){var n=t.getGlobalObjects(),o=n.ADD_EVENT_LISTENER_STR,i=n.REMOVE_EVENT_LISTENER_STR,a=e.WebSocket;e.EventTarget||t.patchEventTarget(e,[a.prototype]),e.WebSocket=function(e,n){var r,s,l=arguments.length>1?new a(e,n):new a(e),c=t.ObjectGetOwnPropertyDescriptor(l,"onmessage");return c&&!1===c.configurable?(r=t.ObjectCreate(l),s=l,[o,i,"send","close"].forEach((function(e){r[e]=function(){var n=t.ArraySlice.call(arguments);if(e===o||e===i){var a=n.length>0?n[0]:void 0;if(a){var s=Zone.__symbol__("ON_PROPERTY"+a);l[s]=r[s]}}return l[e].apply(l,n)}}))):r=l,t.patchOnProperties(r,["close","error","message","open"],s),r};var r=e.WebSocket;for(var s in a)r[s]=a[s]})(t,e),Zone[t.symbol("patchEvents")]=!0}}Zone.__load_patch("util",(function(n,s,l){l.patchOnProperties=S,l.patchMethod=A,l.bindArguments=_,l.patchMacroTask=R;var u=s.__symbol__("BLACK_LISTED_EVENTS"),f=s.__symbol__("UNPATCHED_EVENTS");n[f]&&(n[u]=n[f]),n[u]&&(s[u]=s[f]=n[u]),l.patchEventPrototype=Z,l.patchEventTarget=Y,l.isIEOrEdge=H,l.ObjectDefineProperty=e,l.ObjectGetOwnPropertyDescriptor=t,l.ObjectCreate=o,l.ArraySlice=i,l.patchClass=E,l.wrapWithCurrentZone=m,l.filterProperties=pt,l.attachOriginToPatched=T,l._redefineProperty=Object.defineProperty,l.patchCallbacks=X,l.getGlobalObjects=function(){return{globalSources:j,zoneSymbolEventNames:V,eventNames:dt,isBrowser:x,isMix:O,isNode:v,TRUE_STR:c,FALSE_STR:d,ZONE_SYMBOL_PREFIX:p,ADD_EVENT_LISTENER_STR:a,REMOVE_EVENT_LISTENER_STR:r}}})),
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
(function(t){var e=t.__Zone_symbol_prefix||"__zone_symbol__";t[(function n(t){return e+t})("legacyPatch")]=function(){var e=t.Zone;e.__load_patch("defineProperty",(function(t,e,n){n._redefineProperty=gt,ft()})),e.__load_patch("registerElement",(function(t,e,n){!(function o(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&"registerElement"in t.document&&e.patchCallbacks(e,document,"Document","registerElement",["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"])})(t,n)})),e.__load_patch("EventTargetLegacy",(function(t,e,n){_t(t,n),Ct(n,t)}))}})("undefined"!=typeof window?window:void 0!==Gx?Gx:"undefined"!=typeof self?self:{});
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
var Mt=f("zoneTask");function vt(t,e,n,o){var i=null,a=null;n+=o;var r={};function s(e){var n=e.data;return n.args[0]=function o(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||("number"==typeof n.handleId?delete r[n.handleId]:n.handleId&&(n.handleId[Mt]=null))}},n.handleId=i.apply(t,n.args),e}function l(t){return a(t.data.handleId)}i=A(t,e+=o,(function(n){return function(i,a){if("function"==typeof a[0]){var c=u(e,a[0],{isPeriodic:"Interval"===o,delay:"Timeout"===o||"Interval"===o?a[1]||0:void 0,args:a},s,l);if(!c)return c;var d=c.data.handleId;return"number"==typeof d?r[d]=c:d&&(d[Mt]=c),d&&d.ref&&d.unref&&"function"==typeof d.ref&&"function"==typeof d.unref&&(c.ref=d.ref.bind(d),c.unref=d.unref.bind(d)),"number"==typeof d||d?d:c}return n.apply(t,a)}})),a=A(t,n,(function(e){return function(n,o){var i,a=o[0];"number"==typeof a?i=r[a]:(i=a&&a[Mt])||(i=a),i&&"string"==typeof i.type?"notScheduled"!==i.state&&(i.cancelFn&&i.data.isPeriodic||0===i.runCount)&&("number"==typeof a?delete r[a]:a&&(a[Mt]=null),i.zone.cancelTask(i)):e.apply(t,o)}}))}
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
function xt(t,e){if(!Zone[e.symbol("patchEventTarget")]){for(var n=e.getGlobalObjects(),o=n.eventNames,i=n.zoneSymbolEventNames,a=n.TRUE_STR,r=n.FALSE_STR,s=n.ZONE_SYMBOL_PREFIX,l=0;l<o.length;l++){var c=o[l],d=s+(c+r),p=s+(c+a);i[c]={},i[c][r]=d,i[c][a]=p}var m=t.EventTarget;if(m&&m.prototype)return e.patchEventTarget(t,[m&&m.prototype]),!0}}
/**
         * @license
         * Copyright Google Inc. All Rights Reserved.
         *
         * Use of this source code is governed by an MIT-style license that can be
         * found in the LICENSE file at https://angular.io/license
         */
Zone.__load_patch("legacy",(function(t){var e=t[Zone.__symbol__("legacyPatch")];e&&e()})),Zone.__load_patch("timers",(function(t){var e="set",n="clear";vt(t,e,n,"Timeout"),vt(t,e,n,"Interval"),vt(t,e,n,"Immediate")})),Zone.__load_patch("requestAnimationFrame",(function(t){vt(t,"request","cancel","AnimationFrame"),vt(t,"mozRequest","mozCancel","AnimationFrame"),vt(t,"webkitRequest","webkitCancel","AnimationFrame")})),Zone.__load_patch("blocking",(function(t,e){for(var n=["alert","prompt","confirm"],o=0;o<n.length;o++)A(t,n[o],(function(n,o,i){return function(o,a){return e.current.run(n,t,a,i)}}))})),Zone.__load_patch("EventTarget",(function(t,e,n){(function o(t,e){e.patchEventPrototype(t,e)})(t,n),xt(t,n);var i=t.XMLHttpRequestEventTarget;i&&i.prototype&&n.patchEventTarget(t,[i.prototype]),E("MutationObserver"),E("WebKitMutationObserver"),E("IntersectionObserver"),E("FileReader")})),Zone.__load_patch("on_property",(function(t,e,n){ut(n,t)})),Zone.__load_patch("customElements",(function(t,e,n){!(function o(t,e){var n=e.getGlobalObjects();(n.isBrowser||n.isMix)&&t.customElements&&"customElements"in t&&e.patchCallbacks(e,t.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])})(t,n)})),Zone.__load_patch("XHR",(function(t,e){!(function n(t){var n=t.XMLHttpRequest;if(n){var p=n.prototype,m=p[s],g=p[l];if(!m){var h=t.XMLHttpRequestEventTarget;if(h){var b=h.prototype;m=b[s],g=b[l]}}var y="readystatechange",_="scheduled",C=A(p,"open",(function(){return function(t,e){return t[i]=0==e[2],t[c]=e[1],C.apply(t,e)}})),M=f("fetchTaskAborting"),v=f("fetchTaskScheduling"),x=A(p,"send",(function(){return function(t,n){if(!0===e.current[v])return x.apply(t,n);if(t[i])return x.apply(t,n);var o={target:t,url:t[c],isPeriodic:!1,args:n,aborted:!1},a=u("XMLHttpRequest.send",w,o,P,k);t&&!0===t[d]&&!o.aborted&&a.state===_&&a.invoke()}})),O=A(p,"abort",(function(){return function(t,n){var i=(function a(t){return t[o]})(t);if(i&&"string"==typeof i.type){if(null==i.cancelFn||i.data&&i.data.aborted)return;i.zone.cancelTask(i)}else if(!0===e.current[M])return O.apply(t,n)}}))}function P(t){var n=t.data,i=n.target;i[r]=!1,i[d]=!1;var c=i[a];m||(m=i[s],g=i[l]),c&&g.call(i,y,c);var p=i[a]=function(){if(i.readyState===i.DONE)if(!n.aborted&&i[r]&&t.state===_){var o=i[e.__symbol__("loadfalse")];if(o&&o.length>0){var a=t.invoke;t.invoke=function(){for(var o=i[e.__symbol__("loadfalse")],r=0;r<o.length;r++)o[r]===t&&o.splice(r,1);n.aborted||t.state!==_||a.call(t)},o.push(t)}else t.invoke()}else n.aborted||!1!==i[r]||(i[d]=!0)};return m.call(i,y,p),i[o]||(i[o]=t),x.apply(i,n.args),i[r]=!0,t}function w(){}function k(t){var e=t.data;return e.aborted=!0,O.apply(e.target,e.args)}})(t);var o=f("xhrTask"),i=f("xhrSync"),a=f("xhrListener"),r=f("xhrScheduled"),c=f("xhrURL"),d=f("xhrErrorBeforeScheduled")})),Zone.__load_patch("geolocation",(function(e){e.navigator&&e.navigator.geolocation&&(function n(e,o){for(var i=e.constructor.name,a=function(n){var a=o[n],r=e[a];if(r){if(!C(t(e,a)))return"continue";e[a]=(function(t){var e=function(){return t.apply(this,_(arguments,i+"."+a))};return T(e,t),e})(r)}},r=0;r<o.length;r++)a(r)})(e.navigator.geolocation,["getCurrentPosition","watchPosition"])})),Zone.__load_patch("PromiseRejectionEvent",(function(t,e){function n(e){return function(n){q(t,e).forEach((function(o){var i=t.PromiseRejectionEvent;if(i){var a=new i(e,{promise:n.promise,reason:n.rejection});o.invoke(a)}}))}}t.PromiseRejectionEvent&&(e[f("unhandledPromiseRejectionHandler")]=n("unhandledrejection"),e[f("rejectionHandledHandler")]=n("rejectionhandled"))}))})();
/**
     * @license Angular v11.2.14
     * (c) 2010-2021 Google LLC. https://angular.io/
     * License: MIT
     */
class Zx{}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Xx="*";function Kx(t,e){return{type:7,name:t,definitions:e,options:{}}}function Jx(t,e=null){return{type:4,styles:e,timings:t}}function Qx(t,e=null){return{type:2,steps:t,options:e}}function $x(t){return{type:6,styles:t,offset:null}}function tO(t,e,n){return{type:0,name:t,styles:e,options:n}}function eO(t){return{type:5,steps:t}}function nO(t,e,n=null){return{type:1,expr:t,animation:e,options:n}}function oO(t=null){return{type:9,options:t}}function iO(t,e,n=null){return{type:11,selector:t,animation:e,options:n}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function aO(t){Promise.resolve(null).then(t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class rO{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach((t=>t())),this._onDoneFns=[])}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){aO((()=>this._onFinish()))}_onStart(){this._onStartFns.forEach((t=>t())),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach((t=>t())),this._onDestroyFns=[])}reset(){}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach((t=>t())),e.length=0}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class sO{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,n=0,o=0;const i=this.players.length;0==i?aO((()=>this._onFinish())):this.players.forEach((t=>{t.onDone((()=>{++e==i&&this._onFinish()})),t.onDestroy((()=>{++n==i&&this._onDestroy()})),t.onStart((()=>{++o==i&&this._onStart()}))})),this.totalTime=this.players.reduce(((t,e)=>Math.max(t,e.totalTime)),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach((t=>t())),this._onDoneFns=[])}init(){this.players.forEach((t=>t.init()))}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach((t=>t())),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach((t=>t.play()))}pause(){this.players.forEach((t=>t.pause()))}restart(){this.players.forEach((t=>t.restart()))}finish(){this._onFinish(),this.players.forEach((t=>t.finish()))}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach((t=>t.destroy())),this._onDestroyFns.forEach((t=>t())),this._onDestroyFns=[])}reset(){this.players.forEach((t=>t.reset())),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach((t=>{const n=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(n)}))}getPosition(){const t=this.players.reduce(((t,e)=>null===t||e.totalTime>t.totalTime?e:t),null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach((t=>{t.beforeDestroy&&t.beforeDestroy()}))}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach((t=>t())),e.length=0}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function lO(){return"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)}function cO(t){switch(t.length){case 0:return new rO;case 1:return t[0];default:return new sO(t)}}function dO(t,e,n,o,i={},a={}){const r=[],s=[];let l=-1,c=null;if(o.forEach((t=>{const n=t.offset,o=n==l,d=o&&c||{};Object.keys(t).forEach((n=>{let o=n,s=t[n];if("offset"!==n)switch(o=e.normalizePropertyName(o,r),s){case"!":s=i[n];break;case Xx:s=a[n];break;default:s=e.normalizeStyleValue(n,o,s,r)}d[o]=s})),o||s.push(d),c=d,l=n})),r.length){const t="\n - ";throw new Error(`Unable to animate due to the following errors:${t}${r.join(t)}`)}return s}function pO(t,e,n,o){switch(e){case"start":t.onStart((()=>o(n&&mO(n,"start",t))));break;case"done":t.onDone((()=>o(n&&mO(n,"done",t))));break;case"destroy":t.onDestroy((()=>o(n&&mO(n,"destroy",t))))}}function mO(t,e,n){const o=n.totalTime,i=uO(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,null==o?t.totalTime:o,!!n.disabled),a=t._data;return null!=a&&(i._data=a),i}function uO(t,e,n,o,i="",a=0,r){return{element:t,triggerName:e,fromState:n,toState:o,phaseName:i,totalTime:a,disabled:!!r}}function fO(t,e,n){let o;return t instanceof Map?(o=t.get(e),o||t.set(e,o=n)):(o=t[e],o||(o=t[e]=n)),o}function gO(t){const e=t.indexOf(":");return[t.substring(1,e),t.substr(e+1)]}let hO=(t,e)=>!1,bO=(t,e)=>!1,yO=(t,e,n)=>[];const _O=lO();(_O||"undefined"!=typeof Element)&&(hO=(t,e)=>t.contains(e),bO=(()=>{if(_O||Element.prototype.matches)return(t,e)=>t.matches(e);{const t=Element.prototype,e=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector;return e?(t,n)=>e.apply(t,[n]):bO}})(),yO=(t,e,n)=>{let o=[];if(n){const n=t.querySelectorAll(e);for(let t=0;t<n.length;t++)o.push(n[t])}else{const n=t.querySelector(e);n&&o.push(n)}return o});let CO=null,MO=!1;function vO(t){CO||(CO=(function e(){return"undefined"!=typeof document?document.body:null})()||{},MO=!!CO.style&&"WebkitAppearance"in CO.style);let n=!0;return CO.style&&!(function o(t){return"ebkit"==t.substring(1,6)})(t)&&(n=t in CO.style,!n&&MO)&&(n="Webkit"+t.charAt(0).toUpperCase()+t.substr(1)in CO.style),n}const xO=bO,OO=hO,PO=yO;function wO(t){const e={};return Object.keys(t).forEach((n=>{const o=n.replace(/([a-z])([A-Z])/g,"$1-$2");e[o]=t[n]})),e}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class kO{validateStyleProperty(t){return vO(t)}matchesElement(t,e){return xO(t,e)}containsElement(t,e){return OO(t,e)}query(t,e,n){return PO(t,e,n)}computeStyle(t,e,n){return n||""}animate(t,e,n,o,i,a=[],r){return new rO(n,o)}}kO.ɵfac=function t(e){return new(e||kO)},kO.ɵprov=lo({token:kO,factory:kO.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(kO,[{type:Jm}],null,null);class SO{}SO.NOOP=new kO;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const DO="ng-enter",EO="ng-leave",AO="ng-trigger",RO=".ng-trigger",TO="ng-animating",NO=".ng-animating";function IO(t){if("number"==typeof t)return t;const e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:zO(parseFloat(e[1]),e[2])}function zO(t,e){switch(e){case"s":return 1e3*t;default:return t}}function HO(t,e,n){return t.hasOwnProperty("duration")?t:(function o(t,e,n){let o,i=0,a="";if("string"==typeof t){const n=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===n)return e.push(`The provided timing value "${t}" is invalid.`),{duration:0,delay:0,easing:""};o=zO(parseFloat(n[1]),n[2]);const r=n[3];null!=r&&(i=zO(parseFloat(r),n[4]));const s=n[5];s&&(a=s)}else o=t;if(!n){let n=!1,a=e.length;o<0&&(e.push("Duration values below 0 are not allowed for this animation step."),n=!0),i<0&&(e.push("Delay values below 0 are not allowed for this animation step."),n=!0),n&&e.splice(a,0,`The provided timing value "${t}" is invalid.`)}return{duration:o,delay:i,easing:a}})(t,e,n)}function FO(t,e={}){return Object.keys(t).forEach((n=>{e[n]=t[n]})),e}function LO(t,e,n={}){if(e)for(let e in t)n[e]=t[e];else FO(t,n);return n}function BO(t,e,n){return n?e+":"+n+";":""}function VO(t){let e="";for(let n=0;n<t.style.length;n++){const o=t.style.item(n);e+=BO(0,o,t.style.getPropertyValue(o))}for(const n in t.style)t.style.hasOwnProperty(n)&&!n.startsWith("_")&&(e+=BO(0,n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),t.style[n]));t.setAttribute("style",e)}function jO(t,e,n){t.style&&(Object.keys(e).forEach((o=>{const i=KO(o);n&&!n.hasOwnProperty(o)&&(n[o]=t.style[i]),t.style[i]=e[o]})),lO()&&VO(t))}function UO(t,e){t.style&&(Object.keys(e).forEach((e=>{const n=KO(e);t.style[n]=""})),lO()&&VO(t))}function WO(t){return Array.isArray(t)?1==t.length?t[0]:Qx(t):t}const GO=new RegExp("{{\\s*(.+?)\\s*}}","g");function YO(t){let e=[];if("string"==typeof t){let n;for(;n=GO.exec(t);)e.push(n[1]);GO.lastIndex=0}return e}function qO(t,e,n){const o=t.toString(),i=o.replace(GO,((t,o)=>{let i=e[o];return e.hasOwnProperty(o)||(n.push(`Please provide a value for the animation param ${o}`),i=""),i.toString()}));return i==o?t:i}function ZO(t){const e=[];let n=t.next();for(;!n.done;)e.push(n.value),n=t.next();return e}const XO=/-+([a-z0-9])/g;function KO(t){return t.replace(XO,((...t)=>t[1].toUpperCase()))}function JO(t,e){return 0===t||0===e}function QO(t,e,n){const o=Object.keys(n);if(o.length&&e.length){let a=e[0],r=[];if(o.forEach((t=>{a.hasOwnProperty(t)||r.push(t),a[t]=n[t]})),r.length)for(var i=1;i<e.length;i++){let n=e[i];r.forEach((function(e){n[e]=tP(t,e)}))}}return e}function $O(t,e,n){switch(e.type){case 7:return t.visitTrigger(e,n);case 0:return t.visitState(e,n);case 1:return t.visitTransition(e,n);case 2:return t.visitSequence(e,n);case 3:return t.visitGroup(e,n);case 4:return t.visitAnimate(e,n);case 5:return t.visitKeyframes(e,n);case 6:return t.visitStyle(e,n);case 8:return t.visitReference(e,n);case 9:return t.visitAnimateChild(e,n);case 10:return t.visitAnimateRef(e,n);case 11:return t.visitQuery(e,n);case 12:return t.visitStagger(e,n);default:throw new Error(`Unable to resolve animation metadata node #${e.type}`)}}function tP(t,e){return window.getComputedStyle(t)[e]}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const eP="*";function nP(t,e){const n=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach((t=>(function o(t,e,n){if(":"==t[0]){const o=(function o(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,e)=>parseFloat(e)>parseFloat(t);case":decrement":return(t,e)=>parseFloat(e)<parseFloat(t);default:return e.push(`The transition alias value "${t}" is not supported`),"* => *"}})(t,n);if("function"==typeof o)return void e.push(o);t=o}const i=t.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return n.push(`The provided transition expression "${t}" is not supported`),e;const a=i[1],r=i[2],s=i[3];e.push(aP(a,s)),"<"!=r[0]||a==eP&&s==eP||e.push(aP(s,a))})(t,n,e))):n.push(t),n}const oP=new Set(["true","1"]),iP=new Set(["false","0"]);function aP(t,e){const n=oP.has(t)||iP.has(t),o=oP.has(e)||iP.has(e);return(i,a)=>{let r=t==eP||t==i,s=e==eP||e==a;return!r&&n&&"boolean"==typeof i&&(r=i?oP.has(t):iP.has(t)),!s&&o&&"boolean"==typeof a&&(s=a?oP.has(e):iP.has(e)),r&&s}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const rP=new RegExp("s*:selfs*,?","g");function sP(t,e,n){return new lP(t).build(e,n)}class lP{constructor(t){this._driver=t}build(t,e){const n=new cP(e);return this._resetContextStyleTimingState(n),$O(this,WO(t),n)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles={},t.collectedStyles[""]={},t.currentTime=0}visitTrigger(t,e){let n=e.queryCount=0,o=e.depCount=0;const i=[],a=[];return"@"==t.name.charAt(0)&&e.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),t.definitions.forEach((t=>{if(this._resetContextStyleTimingState(e),0==t.type){const n=t,o=n.name;o.toString().split(/\s*,\s*/).forEach((t=>{n.name=t,i.push(this.visitState(n,e))})),n.name=o}else if(1==t.type){const i=this.visitTransition(t,e);n+=i.queryCount,o+=i.depCount,a.push(i)}else e.errors.push("only state() and transition() definitions can sit inside of a trigger()")})),{type:7,name:t.name,states:i,transitions:a,queryCount:n,depCount:o,options:null}}visitState(t,e){const n=this.visitStyle(t.styles,e),o=t.options&&t.options.params||null;if(n.containsDynamicStyles){const i=new Set,a=o||{};if(n.styles.forEach((t=>{if(dP(t)){const e=t;Object.keys(e).forEach((t=>{YO(e[t]).forEach((t=>{a.hasOwnProperty(t)||i.add(t)}))}))}})),i.size){const n=ZO(i.values());e.errors.push(`state("${t.name}", ...) must define default values for all the following style substitutions: ${n.join(", ")}`)}}return{type:0,name:t.name,style:n,options:o?{params:o}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const n=$O(this,WO(t.animation),e);return{type:1,matchers:nP(t.expr,e.errors),animation:n,queryCount:e.queryCount,depCount:e.depCount,options:pP(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map((t=>$O(this,t,e))),options:pP(t.options)}}visitGroup(t,e){const n=e.currentTime;let o=0;const i=t.steps.map((t=>{e.currentTime=n;const i=$O(this,t,e);return o=Math.max(o,e.currentTime),i}));return e.currentTime=o,{type:3,steps:i,options:pP(t.options)}}visitAnimate(t,e){const n=(function o(t,e){let n=null;if(t.hasOwnProperty("duration"))n=t;else if("number"==typeof t)return mP(HO(t,e).duration,0,"");const o=t;if(o.split(/\s+/).some((t=>"{"==t.charAt(0)&&"{"==t.charAt(1)))){const t=mP(0,0,"");return t.dynamic=!0,t.strValue=o,t}return n=n||HO(o,e),mP(n.duration,n.delay,n.easing)})(t.timings,e.errors);let i;e.currentAnimateTimings=n;let a=t.styles?t.styles:$x({});if(5==a.type)i=this.visitKeyframes(a,e);else{let o=t.styles,a=!1;if(!o){a=!0;const t={};n.easing&&(t.easing=n.easing),o=$x(t)}e.currentTime+=n.duration+n.delay;const r=this.visitStyle(o,e);r.isEmptyStep=a,i=r}return e.currentAnimateTimings=null,{type:4,timings:n,style:i,options:null}}visitStyle(t,e){const n=this._makeStyleAst(t,e);return this._validateStyleAst(n,e),n}_makeStyleAst(t,e){const n=[];Array.isArray(t.styles)?t.styles.forEach((t=>{"string"==typeof t?t==Xx?n.push(t):e.errors.push(`The provided style string value ${t} is not allowed.`):n.push(t)})):n.push(t.styles);let o=!1,i=null;return n.forEach((t=>{if(dP(t)){const e=t,n=e.easing;if(n&&(i=n,delete e.easing),!o)for(let t in e)if(e[t].toString().indexOf("{{")>=0){o=!0;break}}})),{type:6,styles:n,easing:i,offset:t.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(t,e){const n=e.currentAnimateTimings;let o=e.currentTime,i=e.currentTime;n&&i>0&&(i-=n.duration+n.delay),t.styles.forEach((t=>{"string"!=typeof t&&Object.keys(t).forEach((n=>{if(!this._driver.validateStyleProperty(n))return void e.errors.push(`The provided animation property "${n}" is not a supported CSS property for animations`);const a=e.collectedStyles[e.currentQuerySelector],r=a[n];let s=!0;r&&(i!=o&&i>=r.startTime&&o<=r.endTime&&(e.errors.push(`The CSS property "${n}" that exists between the times of "${r.startTime}ms" and "${r.endTime}ms" is also being animated in a parallel animation between the times of "${i}ms" and "${o}ms"`),s=!1),i=r.startTime),s&&(a[n]={startTime:i,endTime:o}),e.options&&(function l(t,e,n){const o=e.params||{},i=YO(t);i.length&&i.forEach((t=>{o.hasOwnProperty(t)||n.push(`Unable to resolve the local animation param ${t} in the given list of values`)}))})(t[n],e.options,e.errors)}))}))}visitKeyframes(t,e){const n={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push("keyframes() must be placed inside of a call to animate()"),n;let o=0;const i=[];let a=!1,r=!1,s=0;const l=t.steps.map((t=>{const n=this._makeStyleAst(t,e);let l=null!=n.offset?n.offset:(function c(t){if("string"==typeof t)return null;let e=null;if(Array.isArray(t))t.forEach((t=>{if(dP(t)&&t.hasOwnProperty("offset")){const n=t;e=parseFloat(n.offset),delete n.offset}}));else if(dP(t)&&t.hasOwnProperty("offset")){const n=t;e=parseFloat(n.offset),delete n.offset}return e})(n.styles),d=0;return null!=l&&(o++,d=n.offset=l),r=r||d<0||d>1,a=a||d<s,s=d,i.push(d),n}));r&&e.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),a&&e.errors.push("Please ensure that all keyframe offsets are in order");const c=t.steps.length;let d=0;o>0&&o<c?e.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==o&&(d=1/(c-1));const p=c-1,m=e.currentTime,u=e.currentAnimateTimings,f=u.duration;return l.forEach(((t,o)=>{const a=d>0?o==p?1:d*o:i[o],r=a*f;e.currentTime=m+u.delay+r,u.duration=r,this._validateStyleAst(t,e),t.offset=a,n.styles.push(t)})),n}visitReference(t,e){return{type:8,animation:$O(this,WO(t.animation),e),options:pP(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:pP(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:pP(t.options)}}visitQuery(t,e){const n=e.currentQuerySelector,o=t.options||{};e.queryCount++,e.currentQuery=t;const[i,a]=(function r(t){const e=!!t.split(/\s*,\s*/).find((t=>":self"==t));return e&&(t=t.replace(rP,"")),[t=t.replace(/@\*/g,RO).replace(/@\w+/g,(t=>".ng-trigger-"+t.substr(1))).replace(/:animating/g,NO),e]})(t.selector);e.currentQuerySelector=n.length?n+" "+i:i,fO(e.collectedStyles,e.currentQuerySelector,{});const s=$O(this,WO(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=n,{type:11,selector:i,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:s,originalSelector:t.selector,options:pP(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push("stagger() can only be used inside of query()");const n="full"===t.timings?{duration:0,delay:0,easing:"full"}:HO(t.timings,e.errors,!0);return{type:12,animation:$O(this,WO(t.animation),e),timings:n,options:null}}}class cP{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}}function dP(t){return!Array.isArray(t)&&"object"==typeof t}function pP(t){return t?(t=FO(t)).params&&(t.params=(function e(t){return t?FO(t):null})(t.params)):t={},t}function mP(t,e,n){return{duration:t,delay:e,easing:n}}function uP(t,e,n,o,i,a,r=null,s=!1){return{type:1,element:t,keyframes:e,preStyleProps:n,postStyleProps:o,duration:i,delay:a,totalTime:i+a,easing:r,subTimeline:s}}class fP{constructor(){this._map=new Map}consume(t){let e=this._map.get(t);return e?this._map.delete(t):e=[],e}append(t,e){let n=this._map.get(t);n||this._map.set(t,n=[]),n.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const gP=new RegExp(":enter","g"),hP=new RegExp(":leave","g");function bP(t,e,n,o,i,a={},r={},s,l,c=[]){return(new yP).buildKeyframes(t,e,n,o,i,a,r,s,l,c)}class yP{buildKeyframes(t,e,n,o,i,a,r,s,l,c=[]){l=l||new fP;const d=new CP(t,e,l,o,i,c,[]);d.options=s,d.currentTimeline.setStyles([a],null,d.errors,s),$O(this,n,d);const p=d.timelines.filter((t=>t.containsAnimation()));if(p.length&&Object.keys(r).length){const t=p[p.length-1];t.allowOnlyTimelineStyles()||t.setStyles([r],null,d.errors,s)}return p.length?p.map((t=>t.buildKeyframes())):[uP(e,[],[],[],0,0,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const n=e.subInstructions.consume(e.element);if(n){const o=e.createSubContext(t.options),i=e.currentTimeline.currentTime,a=this._visitSubInstructions(n,o,o.options);i!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){const n=e.createSubContext(t.options);n.transformIntoNewTimeline(),this.visitReference(t.animation,n),e.transformIntoNewTimeline(n.currentTimeline.currentTime),e.previousNode=t}_visitSubInstructions(t,e,n){let o=e.currentTimeline.currentTime;const i=null!=n.duration?IO(n.duration):null,a=null!=n.delay?IO(n.delay):null;return 0!==i&&t.forEach((t=>{const n=e.appendInstructionToTimeline(t,i,a);o=Math.max(o,n.duration+n.delay)})),o}visitReference(t,e){e.updateOptions(t.options,!0),$O(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const n=e.subContextCount;let o=e;const i=t.options;if(i&&(i.params||i.delay)&&(o=e.createSubContext(i),o.transformIntoNewTimeline(),null!=i.delay)){6==o.previousNode.type&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=_P);const t=IO(i.delay);o.delayNextStep(t)}t.steps.length&&(t.steps.forEach((t=>$O(this,t,o))),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>n&&o.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const n=[];let o=e.currentTimeline.currentTime;const i=t.options&&t.options.delay?IO(t.options.delay):0;t.steps.forEach((a=>{const r=e.createSubContext(t.options);i&&r.delayNextStep(i),$O(this,a,r),o=Math.max(o,r.currentTimeline.currentTime),n.push(r.currentTimeline)})),n.forEach((t=>e.currentTimeline.mergeTimelineCollectedStyles(t))),e.transformIntoNewTimeline(o),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const n=t.strValue;return HO(e.params?qO(n,e.params,e.errors):n,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const n=e.currentAnimateTimings=this._visitTiming(t.timings,e),o=e.currentTimeline;n.delay&&(e.incrementTime(n.delay),o.snapshotCurrentStyles());const i=t.style;5==i.type?this.visitKeyframes(i,e):(e.incrementTime(n.duration),this.visitStyle(i,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const n=e.currentTimeline,o=e.currentAnimateTimings;!o&&n.getCurrentStyleProperties().length&&n.forwardFrame();const i=o&&o.easing||t.easing;t.isEmptyStep?n.applyEmptyStep(i):n.setStyles(t.styles,i,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const n=e.currentAnimateTimings,o=e.currentTimeline.duration,i=n.duration,a=e.createSubContext().currentTimeline;a.easing=n.easing,t.styles.forEach((t=>{a.forwardTime((t.offset||0)*i),a.setStyles(t.styles,t.easing,e.errors,e.options),a.applyStylesToKeyframe()})),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(o+i),e.previousNode=t}visitQuery(t,e){const n=e.currentTimeline.currentTime,o=t.options||{},i=o.delay?IO(o.delay):0;i&&(6===e.previousNode.type||0==n&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=_P);let a=n;const r=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=r.length;let s=null;r.forEach(((n,o)=>{e.currentQueryIndex=o;const r=e.createSubContext(t.options,n);i&&r.delayNextStep(i),n===e.element&&(s=r.currentTimeline),$O(this,t.animation,r),r.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,r.currentTimeline.currentTime)})),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),s&&(e.currentTimeline.mergeTimelineCollectedStyles(s),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const n=e.parentContext,o=e.currentTimeline,i=t.timings,a=Math.abs(i.duration),r=a*(e.currentQueryTotal-1);let s=a*e.currentQueryIndex;switch(i.duration<0?"reverse":i.easing){case"reverse":s=r-s;break;case"full":s=n.currentStaggerTime}const l=e.currentTimeline;s&&l.delayNextStep(s);const c=l.currentTime;$O(this,t.animation,e),e.previousNode=t,n.currentStaggerTime=o.currentTime-c+(o.startTime-n.currentTimeline.startTime)}}const _P={};class CP{constructor(t,e,n,o,i,a,r,s){this._driver=t,this.element=e,this.subInstructions=n,this._enterClassName=o,this._leaveClassName=i,this.errors=a,this.timelines=r,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=_P,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=s||new MP(this._driver,e,0),r.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const n=t;let o=this.options;null!=n.duration&&(o.duration=IO(n.duration)),null!=n.delay&&(o.delay=IO(n.delay));const i=n.params;if(i){let t=o.params;t||(t=this.options.params={}),Object.keys(i).forEach((n=>{e&&t.hasOwnProperty(n)||(t[n]=qO(i[n],t,this.errors))}))}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const n=t.params={};Object.keys(e).forEach((t=>{n[t]=e[t]}))}}return t}createSubContext(t=null,e,n){const o=e||this.element,i=new CP(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,n||0));return i.previousNode=this.previousNode,i.currentAnimateTimings=this.currentAnimateTimings,i.options=this._copyOptions(),i.updateOptions(t),i.currentQueryIndex=this.currentQueryIndex,i.currentQueryTotal=this.currentQueryTotal,i.parentContext=this,this.subContextCount++,i}transformIntoNewTimeline(t){return this.previousNode=_P,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,n){const o={duration:null!=e?e:t.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+t.delay,easing:""},i=new vP(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,o,t.stretchStartingKeyframe);return this.timelines.push(i),o}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,n,o,i,a){let r=[];if(o&&r.push(this.element),t.length>0){t=(t=t.replace(gP,"."+this._enterClassName)).replace(hP,"."+this._leaveClassName);let e=this._driver.query(this.element,t,1!=n);0!==n&&(e=n<0?e.slice(e.length+n,e.length):e.slice(0,n)),r.push(...e)}return i||0!=r.length||a.push(`\`query("${e}")\` returned zero elements. (Use \`query("${e}", { optional: true })\` if you wish to allow this.)`),r}}class MP{constructor(t,e,n,o){this._driver=t,this.element=e,this.startTime=n,this._elementTimelineStylesLookup=o,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new MP(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach((t=>{this._backFill[t]=this._globalTimelineStyles[t]||Xx,this._currentKeyframe[t]=Xx})),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,n,o){e&&(this._previousKeyframe.easing=e);const i=o&&o.params||{},a=(function r(t,e){const n={};let o;return t.forEach((t=>{"*"===t?(o=o||Object.keys(e),o.forEach((t=>{n[t]=Xx}))):LO(t,!1,n)})),n}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t,this._globalTimelineStyles);Object.keys(a).forEach((t=>{const e=qO(a[t],i,n);this._pendingStyles[t]=e,this._localTimelineStyles.hasOwnProperty(t)||(this._backFill[t]=this._globalTimelineStyles.hasOwnProperty(t)?this._globalTimelineStyles[t]:Xx),this._updateStyle(t,e)}))}applyStylesToKeyframe(){const t=this._pendingStyles,e=Object.keys(t);0!=e.length&&(this._pendingStyles={},e.forEach((e=>{this._currentKeyframe[e]=t[e]})),Object.keys(this._localTimelineStyles).forEach((t=>{this._currentKeyframe.hasOwnProperty(t)||(this._currentKeyframe[t]=this._localTimelineStyles[t])})))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach((t=>{const e=this._localTimelineStyles[t];this._pendingStyles[t]=e,this._updateStyle(t,e)}))}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){Object.keys(t._styleSummary).forEach((e=>{const n=this._styleSummary[e],o=t._styleSummary[e];(!n||o.time>n.time)&&this._updateStyle(e,o.value)}))}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,n=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach(((i,a)=>{const r=LO(i,!0);Object.keys(r).forEach((n=>{const o=r[n];"!"==o?t.add(n):o==Xx&&e.add(n)})),n||(r.offset=a/this.duration),o.push(r)}));const i=t.size?ZO(t.values()):[],a=e.size?ZO(e.values()):[];if(n){const t=o[0],e=FO(t);t.offset=0,e.offset=1,o=[t,e]}return uP(this.element,o,i,a,this.duration,this.startTime,this.easing,!1)}}class vP extends MP{constructor(t,e,n,o,i,a,r=!1){super(t,e,a.delay),this.element=e,this.keyframes=n,this.preStyleProps=o,this.postStyleProps=i,this._stretchStartingKeyframe=r,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:n,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const i=[],a=n+e,r=e/a,s=LO(t[0],!1);s.offset=0,i.push(s);const l=LO(t[0],!1);l.offset=xP(r),i.push(l);const c=t.length-1;for(let o=1;o<=c;o++){let r=LO(t[o],!1);r.offset=xP((e+r.offset*n)/a),i.push(r)}n=a,e=0,o="",t=i}return uP(this.element,t,this.preStyleProps,this.postStyleProps,n,e,o,!0)}}function xP(t,e=3){const n=Math.pow(10,e-1);return Math.round(t*n)/n}class OP{}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class PP extends OP{normalizePropertyName(t,e){return KO(t)}normalizeStyleValue(t,e,n,o){let i="";const a=n.toString().trim();if(wP[e]&&0!==n&&"0"!==n)if("number"==typeof n)i="px";else{const e=n.match(/^[+-]?[\d\.]+([a-z]*)$/);e&&0==e[1].length&&o.push(`Please provide a CSS unit value for ${t}:${n}`)}return a+i}}const wP=(function kP(t){const e={};return t.forEach((t=>e[t]=!0)),e})("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(","));function SP(t,e,n,o,i,a,r,s,l,c,d,p,m){return{type:0,element:t,triggerName:e,isRemovalTransition:i,fromState:n,fromStyles:a,toState:o,toStyles:r,timelines:s,queriedElements:l,preStyleProps:c,postStyleProps:d,totalTime:p,errors:m}}const DP={};class EP{constructor(t,e,n){this._triggerName=t,this.ast=e,this._stateStyles=n}match(t,e,n,o){return(function i(t,e,n,o,a){return t.some((t=>t(e,n,o,a)))})(this.ast.matchers,t,e,n,o)}buildStyles(t,e,n){const o=this._stateStyles["*"],i=this._stateStyles[t],a=o?o.buildStyles(e,n):{};return i?i.buildStyles(e,n):a}build(t,e,n,o,i,a,r,s,l,c){const d=[],p=this.ast.options&&this.ast.options.params||DP,m=this.buildStyles(n,r&&r.params||DP,d),u=s&&s.params||DP,f=this.buildStyles(o,u,d),g=new Set,h=new Map,b=new Map,y="void"===o,_={params:Object.assign(Object.assign({},p),u)},C=c?[]:bP(t,e,this.ast.animation,i,a,m,f,_,l,d);let M=0;if(C.forEach((t=>{M=Math.max(t.duration+t.delay,M)})),d.length)return SP(e,this._triggerName,n,o,y,m,f,[],[],h,b,M,d);C.forEach((t=>{const n=t.element,o=fO(h,n,{});t.preStyleProps.forEach((t=>o[t]=!0));const i=fO(b,n,{});t.postStyleProps.forEach((t=>i[t]=!0)),n!==e&&g.add(n)}));const v=ZO(g.values());return SP(e,this._triggerName,n,o,y,m,f,C,v,h,b,M)}}class AP{constructor(t,e){this.styles=t,this.defaultParams=e}buildStyles(t,e){const n={},o=FO(this.defaultParams);return Object.keys(t).forEach((e=>{const n=t[e];null!=n&&(o[e]=n)})),this.styles.styles.forEach((t=>{if("string"!=typeof t){const i=t;Object.keys(i).forEach((t=>{let a=i[t];a.length>1&&(a=qO(a,o,e)),n[t]=a}))}})),n}}class RP{constructor(t,e){this.name=t,this.ast=e,this.transitionFactories=[],this.states={},e.states.forEach((t=>{this.states[t.name]=new AP(t.style,t.options&&t.options.params||{})})),TP(this.states,"true","1"),TP(this.states,"false","0"),e.transitions.forEach((e=>{this.transitionFactories.push(new EP(t,e,this.states))})),this.fallbackTransition=(function n(t,e){return new EP(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[(t,e)=>!0],options:null,queryCount:0,depCount:0},e)})(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,n,o){return this.transitionFactories.find((i=>i.match(t,e,n,o)))||null}matchStyles(t,e,n){return this.fallbackTransition.buildStyles(t,e,n)}}function TP(t,e,n){t.hasOwnProperty(e)?t.hasOwnProperty(n)||(t[n]=t[e]):t.hasOwnProperty(n)&&(t[e]=t[n])}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const NP=new fP;class IP{constructor(t,e,n){this.bodyNode=t,this._driver=e,this._normalizer=n,this._animations={},this._playersById={},this.players=[]}register(t,e){const n=[],o=sP(this._driver,e,n);if(n.length)throw new Error(`Unable to build the animation due to the following errors: ${n.join("\n")}`);this._animations[t]=o}_buildPlayer(t,e,n){const o=t.element,i=dO(0,this._normalizer,0,t.keyframes,e,n);return this._driver.animate(o,i,t.duration,t.delay,t.easing,[],!0)}create(t,e,n={}){const o=[],i=this._animations[t];let a;const r=new Map;if(i?(a=bP(this._driver,e,i,DO,EO,{},{},n,NP,o),a.forEach((t=>{const e=fO(r,t.element,{});t.postStyleProps.forEach((t=>e[t]=null))}))):(o.push("The requested animation doesn't exist or has already been destroyed"),a=[]),o.length)throw new Error(`Unable to create the animation due to the following errors: ${o.join("\n")}`);r.forEach(((t,e)=>{Object.keys(t).forEach((n=>{t[n]=this._driver.computeStyle(e,n,Xx)}))}));const s=cO(a.map((t=>{const e=r.get(t.element);return this._buildPlayer(t,{},e)})));return this._playersById[t]=s,s.onDestroy((()=>this.destroy(t))),this.players.push(s),s}destroy(t){const e=this._getPlayer(t);e.destroy(),delete this._playersById[t];const n=this.players.indexOf(e);n>=0&&this.players.splice(n,1)}_getPlayer(t){const e=this._playersById[t];if(!e)throw new Error(`Unable to find the timeline player referenced by ${t}`);return e}listen(t,e,n,o){const i=uO(e,"","","");return pO(this._getPlayer(t),n,i,o),()=>{}}command(t,e,n,o){if("register"==n)return void this.register(t,o[0]);if("create"==n)return void this.create(t,e,o[0]||{});const i=this._getPlayer(t);switch(n){case"play":i.play();break;case"pause":i.pause();break;case"reset":i.reset();break;case"restart":i.restart();break;case"finish":i.finish();break;case"init":i.init();break;case"setPosition":i.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(t)}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const zP="ng-animate-queued",HP="ng-animate-disabled",FP=".ng-animate-disabled",LP=[],BP={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},VP={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0};class jP{constructor(t,e=""){this.namespaceId=e;const n=t&&t.hasOwnProperty("value");if(this.value=(function o(t){return null!=t?t:null})(n?t.value:t),n){const e=FO(t);delete e.value,this.options=e}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const t=this.options.params;Object.keys(e).forEach((n=>{null==t[n]&&(t[n]=e[n])}))}}}const UP="void",WP=new jP(UP);class GP{constructor(t,e,n){this.id=t,this.hostElement=e,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,QP(e,this._hostClassName)}listen(t,e,n,o){if(!this._triggers.hasOwnProperty(e))throw new Error(`Unable to listen on the animation trigger event "${n}" because the animation trigger "${e}" doesn't exist!`);if(null==n||0==n.length)throw new Error(`Unable to listen on the animation trigger "${e}" because the provided event is undefined!`);if(!(function i(t){return"start"==t||"done"==t})(n))throw new Error(`The provided animation trigger event "${n}" for the animation trigger "${e}" is not supported!`);const a=fO(this._elementListeners,t,[]),r={name:e,phase:n,callback:o};a.push(r);const s=fO(this._engine.statesByElement,t,{});return s.hasOwnProperty(e)||(QP(t,AO),QP(t,"ng-trigger-"+e),s[e]=WP),()=>{this._engine.afterFlush((()=>{const t=a.indexOf(r);t>=0&&a.splice(t,1),this._triggers[e]||delete s[e]}))}}register(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)}_getTrigger(t){const e=this._triggers[t];if(!e)throw new Error(`The provided animation trigger "${t}" has not been registered!`);return e}trigger(t,e,n,o=!0){const i=this._getTrigger(e),a=new qP(this.id,e,t);let r=this._engine.statesByElement.get(t);r||(QP(t,AO),QP(t,"ng-trigger-"+e),this._engine.statesByElement.set(t,r={}));let s=r[e];const l=new jP(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&s&&l.absorbOptions(s.options),r[e]=l,s||(s=WP),l.value!==UP&&s.value===l.value){if(!(function c(t,e){const n=Object.keys(t),o=Object.keys(e);if(n.length!=o.length)return!1;for(let o=0;o<n.length;o++){const i=n[o];if(!e.hasOwnProperty(i)||t[i]!==e[i])return!1}return!0})(s.params,l.params)){const e=[],n=i.matchStyles(s.value,s.params,e),o=i.matchStyles(l.value,l.params,e);e.length?this._engine.reportError(e):this._engine.afterFlush((()=>{UO(t,n),jO(t,o)}))}return}const d=fO(this._engine.playersByElement,t,[]);d.forEach((t=>{t.namespaceId==this.id&&t.triggerName==e&&t.queued&&t.destroy()}));let p=i.matchTransition(s.value,l.value,t,l.params),m=!1;if(!p){if(!o)return;p=i.fallbackTransition,m=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:p,fromState:s,toState:l,player:a,isFallbackTransition:m}),m||(QP(t,zP),a.onStart((()=>{$P(t,zP)}))),a.onDone((()=>{let e=this.players.indexOf(a);e>=0&&this.players.splice(e,1);const n=this._engine.playersByElement.get(t);if(n){let t=n.indexOf(a);t>=0&&n.splice(t,1)}})),this.players.push(a),d.push(a),a}deregister(t){delete this._triggers[t],this._engine.statesByElement.forEach(((e,n)=>{delete e[t]})),this._elementListeners.forEach(((e,n)=>{this._elementListeners.set(n,e.filter((e=>e.name!=t)))}))}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach((t=>t.destroy())),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const n=this._engine.driver.query(t,RO,!0);n.forEach((t=>{if(t.__ng_removed)return;const n=this._engine.fetchNamespacesByElement(t);n.size?n.forEach((n=>n.triggerLeaveAnimation(t,e,!1,!0))):this.clearElementCache(t)})),this._engine.afterFlushAnimationsDone((()=>n.forEach((t=>this.clearElementCache(t)))))}triggerLeaveAnimation(t,e,n,o){const i=this._engine.statesByElement.get(t);if(i){const a=[];if(Object.keys(i).forEach((e=>{if(this._triggers[e]){const n=this.trigger(t,e,UP,o);n&&a.push(n)}})),a.length)return this._engine.markElementAsRemoved(this.id,t,!0,e),n&&cO(a).onDone((()=>this._engine.processLeaveNode(t))),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),n=this._engine.statesByElement.get(t);if(e&&n){const o=new Set;e.forEach((e=>{const i=e.name;if(o.has(i))return;o.add(i);const a=this._triggers[i].fallbackTransition,r=n[i]||WP,s=new jP(UP),l=new qP(this.id,i,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:i,transition:a,fromState:r,toState:s,player:l,isFallbackTransition:!0})}))}}removeNode(t,e){const n=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let o=!1;if(n.totalAnimations){const e=n.players.length?n.playersByQueriedElement.get(t):[];if(e&&e.length)o=!0;else{let e=t;for(;e=e.parentNode;)if(n.statesByElement.get(e)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(t),o)n.markElementAsRemoved(this.id,t,!1,e);else{const o=t.__ng_removed;o&&o!==BP||(n.afterFlush((()=>this.clearElementCache(t))),n.destroyInnerAnimations(t),n._onRemovalComplete(t,e))}}insertNode(t,e){QP(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach((n=>{const o=n.player;if(o.destroyed)return;const i=n.element,a=this._elementListeners.get(i);a&&a.forEach((e=>{if(e.name==n.triggerName){const o=uO(i,n.triggerName,n.fromState.value,n.toState.value);o._data=t,pO(n.player,e.phase,o,e.callback)}})),o.markedForDestroy?this._engine.afterFlush((()=>{o.destroy()})):e.push(n)})),this._queue=[],e.sort(((t,e)=>{const n=t.transition.ast.depCount,o=e.transition.ast.depCount;return 0==n||0==o?n-o:this._engine.driver.containsElement(t.element,e.element)?1:-1}))}destroy(t){this.players.forEach((t=>t.destroy())),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find((e=>e.element===t))||e,e}}class YP{constructor(t,e,n){this.bodyNode=t,this.driver=e,this._normalizer=n,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(t,e)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach((e=>{e.players.forEach((e=>{e.queued&&t.push(e)}))})),t}createNamespace(t,e){const n=new GP(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(n,e):(this.newHostElements.set(e,n),this.collectEnterElement(e)),this._namespaceLookup[t]=n}_balanceNamespaceList(t,e){const n=this._namespaceList.length-1;if(n>=0){let o=!1;for(let i=n;i>=0;i--)if(this.driver.containsElement(this._namespaceList[i].hostElement,e)){this._namespaceList.splice(i+1,0,t),o=!0;break}o||this._namespaceList.splice(0,0,t)}else this._namespaceList.push(t);return this.namespacesByHostElement.set(e,t),t}register(t,e){let n=this._namespaceLookup[t];return n||(n=this.createNamespace(t,e)),n}registerTrigger(t,e,n){let o=this._namespaceLookup[t];o&&o.register(e,n)&&this.totalAnimations++}destroy(t,e){if(!t)return;const n=this._fetchNamespace(t);this.afterFlush((()=>{this.namespacesByHostElement.delete(n.hostElement),delete this._namespaceLookup[t];const e=this._namespaceList.indexOf(n);e>=0&&this._namespaceList.splice(e,1)})),this.afterFlushAnimationsDone((()=>n.destroy(e)))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,n=this.statesByElement.get(t);if(n){const t=Object.keys(n);for(let o=0;o<t.length;o++){const i=n[t[o]].namespaceId;if(i){const t=this._fetchNamespace(i);t&&e.add(t)}}}return e}trigger(t,e,n,o){if(ZP(e)){const i=this._fetchNamespace(t);if(i)return i.trigger(e,n,o),!0}return!1}insertNode(t,e,n,o){if(!ZP(e))return;const i=e.__ng_removed;if(i&&i.setForRemoval){i.setForRemoval=!1,i.setForMove=!0;const t=this.collectedLeaveElements.indexOf(e);t>=0&&this.collectedLeaveElements.splice(t,1)}if(t){const o=this._fetchNamespace(t);o&&o.insertNode(e,n)}o&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),QP(t,HP)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),$P(t,HP))}removeNode(t,e,n,o){if(ZP(e)){const i=t?this._fetchNamespace(t):null;if(i?i.removeNode(e,o):this.markElementAsRemoved(t,e,!1,o),n){const n=this.namespacesByHostElement.get(e);n&&n.id!==t&&n.removeNode(e,o)}}else this._onRemovalComplete(e,o)}markElementAsRemoved(t,e,n,o){this.collectedLeaveElements.push(e),e.__ng_removed={namespaceId:t,setForRemoval:o,hasAnimation:n,removedBeforeQueried:!1}}listen(t,e,n,o,i){return ZP(e)?this._fetchNamespace(t).listen(e,n,o,i):()=>{}}_buildInstruction(t,e,n,o,i){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,n,o,t.fromState.options,t.toState.options,e,i)}destroyInnerAnimations(t){let e=this.driver.query(t,RO,!0);e.forEach((t=>this.destroyActiveAnimationsForElement(t))),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,NO,!0),e.forEach((t=>this.finishActiveQueriedAnimationOnElement(t))))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach((t=>{t.queued?t.markedForDestroy=!0:t.destroy()}))}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach((t=>t.finish()))}whenRenderingDone(){return new Promise((t=>{if(this.players.length)return cO(this.players).onDone((()=>t()));t()}))}processLeaveNode(t){const e=t.__ng_removed;if(e&&e.setForRemoval){if(t.__ng_removed=BP,e.namespaceId){this.destroyInnerAnimations(t);const n=this._fetchNamespace(e.namespaceId);n&&n.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}this.driver.matchesElement(t,FP)&&this.markElementAsDisabled(t,!1),this.driver.query(t,FP,!0).forEach((t=>{this.markElementAsDisabled(t,!1)}))}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach(((t,e)=>this._balanceNamespaceList(t,e))),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let t=0;t<this.collectedEnterElements.length;t++)QP(this.collectedEnterElements[t],"ng-star-inserted");if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){const n=[];try{e=this._flushAnimations(n,t)}finally{for(let t=0;t<n.length;t++)n[t]()}}else for(let t=0;t<this.collectedLeaveElements.length;t++)this.processLeaveNode(this.collectedLeaveElements[t]);if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach((t=>t())),this._flushFns=[],this._whenQuietFns.length){const t=this._whenQuietFns;this._whenQuietFns=[],e.length?cO(e).onDone((()=>{t.forEach((t=>t()))})):t.forEach((t=>t()))}}reportError(t){throw new Error(`Unable to process animations due to the following failed trigger transitions\n ${t.join("\n")}`)}_flushAnimations(t,e){const n=new fP,o=[],i=new Map,a=[],r=new Map,s=new Map,l=new Map,c=new Set;this.disabledNodes.forEach((t=>{c.add(t);const e=this.driver.query(t,".ng-animate-queued",!0);for(let t=0;t<e.length;t++)c.add(e[t])}));const d=this.bodyNode,p=Array.from(this.statesByElement.keys()),m=JP(p,this.collectedEnterElements),u=new Map;let f=0;m.forEach(((t,e)=>{const n=DO+f++;u.set(e,n),t.forEach((t=>QP(t,n)))}));const g=[],h=new Set,b=new Set;for(let t=0;t<this.collectedLeaveElements.length;t++){const e=this.collectedLeaveElements[t],n=e.__ng_removed;n&&n.setForRemoval&&(g.push(e),h.add(e),n.hasAnimation?this.driver.query(e,".ng-star-inserted",!0).forEach((t=>h.add(t))):b.add(e))}const y=new Map,_=JP(p,Array.from(h));_.forEach(((t,e)=>{const n=EO+f++;y.set(e,n),t.forEach((t=>QP(t,n)))})),t.push((()=>{m.forEach(((t,e)=>{const n=u.get(e);t.forEach((t=>$P(t,n)))})),_.forEach(((t,e)=>{const n=y.get(e);t.forEach((t=>$P(t,n)))})),g.forEach((t=>{this.processLeaveNode(t)}))}));const C=[],M=[];for(let t=this._namespaceList.length-1;t>=0;t--)this._namespaceList[t].drainQueuedTransitions(e).forEach((t=>{const e=t.player,i=t.element;if(C.push(e),this.collectedEnterElements.length){const t=i.__ng_removed;if(t&&t.setForMove)return void e.destroy()}const c=!d||!this.driver.containsElement(d,i),p=y.get(i),m=u.get(i),f=this._buildInstruction(t,n,m,p,c);if(f.errors&&f.errors.length)M.push(f);else{if(c)return e.onStart((()=>UO(i,f.fromStyles))),e.onDestroy((()=>jO(i,f.toStyles))),void o.push(e);if(t.isFallbackTransition)return e.onStart((()=>UO(i,f.fromStyles))),e.onDestroy((()=>jO(i,f.toStyles))),void o.push(e);f.timelines.forEach((t=>t.stretchStartingKeyframe=!0)),n.append(i,f.timelines),a.push({instruction:f,player:e,element:i}),f.queriedElements.forEach((t=>fO(r,t,[]).push(e))),f.preStyleProps.forEach(((t,e)=>{const n=Object.keys(t);if(n.length){let t=s.get(e);t||s.set(e,t=new Set),n.forEach((e=>t.add(e)))}})),f.postStyleProps.forEach(((t,e)=>{const n=Object.keys(t);let o=l.get(e);o||l.set(e,o=new Set),n.forEach((t=>o.add(t)))}))}}));if(M.length){const t=[];M.forEach((e=>{t.push(`@${e.triggerName} has failed due to:\n`),e.errors.forEach((e=>t.push(`- ${e}\n`)))})),C.forEach((t=>t.destroy())),this.reportError(t)}const v=new Map,x=new Map;a.forEach((t=>{const e=t.element;n.has(e)&&(x.set(e,e),this._beforeAnimationBuild(t.player.namespaceId,t.instruction,v))})),o.forEach((t=>{const e=t.element;this._getPreviousPlayers(e,!1,t.namespaceId,t.triggerName,null).forEach((t=>{fO(v,e,[]).push(t),t.destroy()}))}));const O=g.filter((t=>nw(t,s,l))),P=new Map;KP(P,this.driver,b,l,Xx).forEach((t=>{nw(t,s,l)&&O.push(t)}));const w=new Map;m.forEach(((t,e)=>{KP(w,this.driver,new Set(t),s,"!")})),O.forEach((t=>{const e=P.get(t),n=w.get(t);P.set(t,Object.assign(Object.assign({},e),n))}));const k=[],S=[],D={};a.forEach((t=>{const{element:e,player:a,instruction:r}=t;if(n.has(e)){if(c.has(e))return a.onDestroy((()=>jO(e,r.toStyles))),a.disabled=!0,a.overrideTotalTime(r.totalTime),void o.push(a);let t=D;if(x.size>1){let n=e;const o=[];for(;n=n.parentNode;){const e=x.get(n);if(e){t=e;break}o.push(n)}o.forEach((e=>x.set(e,t)))}const n=this._buildAnimation(a.namespaceId,r,v,i,w,P);if(a.setRealPlayer(n),t===D)k.push(a);else{const e=this.playersByElement.get(t);e&&e.length&&(a.parentPlayer=cO(e)),o.push(a)}}else UO(e,r.fromStyles),a.onDestroy((()=>jO(e,r.toStyles))),S.push(a),c.has(e)&&o.push(a)})),S.forEach((t=>{const e=i.get(t.element);if(e&&e.length){const n=cO(e);t.setRealPlayer(n)}})),o.forEach((t=>{t.parentPlayer?t.syncPlayerEvents(t.parentPlayer):t.destroy()}));for(let t=0;t<g.length;t++){const e=g[t],n=e.__ng_removed;if($P(e,EO),n&&n.hasAnimation)continue;let o=[];if(r.size){let t=r.get(e);t&&t.length&&o.push(...t);let n=this.driver.query(e,NO,!0);for(let t=0;t<n.length;t++){let e=r.get(n[t]);e&&e.length&&o.push(...e)}}const i=o.filter((t=>!t.destroyed));i.length?tw(this,e,i):this.processLeaveNode(e)}return g.length=0,k.forEach((t=>{this.players.push(t),t.onDone((()=>{t.destroy();const e=this.players.indexOf(t);this.players.splice(e,1)})),t.play()})),k}elementContainsData(t,e){let n=!1;const o=e.__ng_removed;return o&&o.setForRemoval&&(n=!0),this.playersByElement.has(e)&&(n=!0),this.playersByQueriedElement.has(e)&&(n=!0),this.statesByElement.has(e)&&(n=!0),this._fetchNamespace(t).elementContainsData(e)||n}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,n,o,i){let a=[];if(e){const e=this.playersByQueriedElement.get(t);e&&(a=e)}else{const e=this.playersByElement.get(t);if(e){const t=!i||i==UP;e.forEach((e=>{e.queued||(t||e.triggerName==o)&&a.push(e)}))}}return(n||o)&&(a=a.filter((t=>!(n&&n!=t.namespaceId||o&&o!=t.triggerName)))),a}_beforeAnimationBuild(t,e,n){const o=e.element,i=e.isRemovalTransition?void 0:t,a=e.isRemovalTransition?void 0:e.triggerName;for(const t of e.timelines){const r=t.element,s=r!==o,l=fO(n,r,[]);this._getPreviousPlayers(r,s,i,a,e.toState).forEach((t=>{const e=t.getRealPlayer();e.beforeDestroy&&e.beforeDestroy(),t.destroy(),l.push(t)}))}UO(o,e.fromStyles)}_buildAnimation(t,e,n,o,i,a){const r=e.triggerName,s=e.element,l=[],c=new Set,d=new Set,p=e.timelines.map((e=>{const p=e.element;c.add(p);const m=p.__ng_removed;if(m&&m.removedBeforeQueried)return new rO(e.duration,e.delay);const u=p!==s,f=(function g(t){const e=[];return ew(t,e),e})((n.get(p)||LP).map((t=>t.getRealPlayer()))).filter((t=>!!t.element&&t.element===p)),h=i.get(p),b=a.get(p),y=dO(0,this._normalizer,0,e.keyframes,h,b),_=this._buildPlayer(e,y,f);if(e.subTimeline&&o&&d.add(p),u){const e=new qP(t,r,p);e.setRealPlayer(_),l.push(e)}return _}));l.forEach((t=>{fO(this.playersByQueriedElement,t.element,[]).push(t),t.onDone((()=>(function e(t,n,o){let i;if(t instanceof Map){if(i=t.get(n),i){if(i.length){const t=i.indexOf(o);i.splice(t,1)}0==i.length&&t.delete(n)}}else if(i=t[n],i){if(i.length){const t=i.indexOf(o);i.splice(t,1)}0==i.length&&delete t[n]}return i})(this.playersByQueriedElement,t.element,t)))})),c.forEach((t=>QP(t,TO)));const m=cO(p);return m.onDestroy((()=>{c.forEach((t=>$P(t,TO))),jO(s,e.toStyles)})),d.forEach((t=>{fO(o,t,[]).push(m)})),m}_buildPlayer(t,e,n){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,n):new rO(t.duration,t.delay)}}class qP{constructor(t,e,n){this.namespaceId=t,this.triggerName=e,this.element=n,this._player=new rO,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach((e=>{this._queuedCallbacks[e].forEach((n=>pO(t,e,void 0,n)))})),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart((()=>e.triggerCallback("start"))),t.onDone((()=>this.finish())),t.onDestroy((()=>this.destroy()))}_queueEvent(t,e){fO(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function ZP(t){return t&&1===t.nodeType}function XP(t,e){const n=t.style.display;return t.style.display=null!=e?e:"none",n}function KP(t,e,n,o,i){const a=[];n.forEach((t=>a.push(XP(t))));const r=[];o.forEach(((n,o)=>{const a={};n.forEach((t=>{const n=a[t]=e.computeStyle(o,t,i);n&&0!=n.length||(o.__ng_removed=VP,r.push(o))})),t.set(o,a)}));let s=0;return n.forEach((t=>XP(t,a[s++]))),r}function JP(t,e){const n=new Map;if(t.forEach((t=>n.set(t,[]))),0==e.length)return n;const o=new Set(e),i=new Map;function a(t){if(!t)return 1;let e=i.get(t);if(e)return e;const r=t.parentNode;return e=n.has(r)?r:o.has(r)?1:a(r),i.set(t,e),e}return e.forEach((t=>{const e=a(t);1!==e&&n.get(e).push(t)})),n}function QP(t,e){if(t.classList)t.classList.add(e);else{let n=t.$$classes;n||(n=t.$$classes={}),n[e]=!0}}function $P(t,e){if(t.classList)t.classList.remove(e);else{let n=t.$$classes;n&&delete n[e]}}function tw(t,e,n){cO(n).onDone((()=>t.processLeaveNode(e)))}function ew(t,e){for(let n=0;n<t.length;n++){const o=t[n];o instanceof sO?ew(o.players,e):e.push(o)}}function nw(t,e,n){const o=n.get(t);if(!o)return!1;let i=e.get(t);return i?o.forEach((t=>i.add(t))):e.set(t,o),n.delete(t),!0}class ow{constructor(t,e,n){this.bodyNode=t,this._driver=e,this._triggerCache={},this.onRemovalComplete=(t,e)=>{},this._transitionEngine=new YP(t,e,n),this._timelineEngine=new IP(t,e,n),this._transitionEngine.onRemovalComplete=(t,e)=>this.onRemovalComplete(t,e)}registerTrigger(t,e,n,o,i){const a=t+"-"+o;let r=this._triggerCache[a];if(!r){const t=[],e=sP(this._driver,i,t);if(t.length)throw new Error(`The animation trigger "${o}" has failed to build due to the following errors:\n - ${t.join("\n - ")}`);r=(function s(t,e){return new RP(t,e)})(o,e),this._triggerCache[a]=r}this._transitionEngine.registerTrigger(e,o,r)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,n,o){this._transitionEngine.insertNode(t,e,n,o)}onRemove(t,e,n,o){this._transitionEngine.removeNode(t,e,o||!1,n)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,n,o){if("@"==n.charAt(0)){const[t,i]=gO(n);this._timelineEngine.command(t,e,i,o)}else this._transitionEngine.trigger(t,e,n,o)}listen(t,e,n,o,i){if("@"==n.charAt(0)){const[t,o]=gO(n);return this._timelineEngine.listen(t,e,o,i)}return this._transitionEngine.listen(t,e,n,o,i)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function iw(t,e){let n=null,o=null;return Array.isArray(e)&&e.length?(n=rw(e[0]),e.length>1&&(o=rw(e[e.length-1]))):e&&(n=rw(e)),n||o?new aw(t,n,o):null}class aw{constructor(t,e,n){this._element=t,this._startStyles=e,this._endStyles=n,this._state=0;let o=aw.initialStylesByElement.get(t);o||aw.initialStylesByElement.set(t,o={}),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&jO(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(jO(this._element,this._initialStyles),this._endStyles&&(jO(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(aw.initialStylesByElement.delete(this._element),this._startStyles&&(UO(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(UO(this._element,this._endStyles),this._endStyles=null),jO(this._element,this._initialStyles),this._state=3)}}function rw(t){let e=null;const n=Object.keys(t);for(let o=0;o<n.length;o++){const i=n[o];sw(i)&&(e=e||{},e[i]=t[i])}return e}function sw(t){return"display"===t||"position"===t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */aw.initialStylesByElement=new WeakMap;const lw="animation",cw="animationend";class dw{constructor(t,e,n,o,i,a,r){this._element=t,this._name=e,this._duration=n,this._delay=o,this._easing=i,this._fillMode=a,this._onDoneFn=r,this._finished=!1,this._destroyed=!1,this._startTime=0,this._position=0,this._eventFn=t=>this._handleCallback(t)}apply(){!(function t(e,n){const o=hw(e,"").trim();let i=0;o.length&&((function a(t,e){let n=0;for(let o=0;o<t.length;o++)t.charAt(o)===e&&n++;return n})(o,",")+1,n=`${o}, ${n}`),gw(e,"",n)})(this._element,`${this._duration}ms ${this._easing} ${this._delay}ms 1 normal ${this._fillMode} ${this._name}`),fw(this._element,this._eventFn,!1),this._startTime=Date.now()}pause(){pw(this._element,this._name,"paused")}resume(){pw(this._element,this._name,"running")}setPosition(t){const e=mw(this._element,this._name);this._position=t*this._duration,gw(this._element,"Delay",`-${this._position}ms`,e)}getPosition(){return this._position}_handleCallback(t){const e=t._ngTestManualTimestamp||Date.now(),n=1e3*parseFloat(t.elapsedTime.toFixed(3));t.animationName==this._name&&Math.max(e-this._startTime,0)>=this._delay&&n>=this._duration&&this.finish()}finish(){this._finished||(this._finished=!0,this._onDoneFn(),fw(this._element,this._eventFn,!0))}destroy(){this._destroyed||(this._destroyed=!0,this.finish(),(function t(e,n){const o=hw(e,"").split(","),i=uw(o,n);i>=0&&(o.splice(i,1),gw(e,"",o.join(",")))})(this._element,this._name))}}function pw(t,e,n){gw(t,"PlayState",n,mw(t,e))}function mw(t,e){const n=hw(t,"");return n.indexOf(",")>0?uw(n.split(","),e):uw([n],e)}function uw(t,e){for(let n=0;n<t.length;n++)if(t[n].indexOf(e)>=0)return n;return-1}function fw(t,e,n){n?t.removeEventListener(cw,e):t.addEventListener(cw,e)}function gw(t,e,n,o){const i=lw+e;if(null!=o){const e=t.style[i];if(e.length){const t=e.split(",");t[o]=n,n=t.join(",")}}t.style[i]=n}function hw(t,e){return t.style[lw+e]||""}class bw{constructor(t,e,n,o,i,a,r,s){this.element=t,this.keyframes=e,this.animationName=n,this._duration=o,this._delay=i,this._finalStyles=r,this._specialStyles=s,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this.currentSnapshot={},this._state=0,this.easing=a||"linear",this.totalTime=o+i,this._buildStyler()}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}destroy(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach((t=>t())),this._onDestroyFns=[])}_flushDoneFns(){this._onDoneFns.forEach((t=>t())),this._onDoneFns=[]}_flushStartFns(){this._onStartFns.forEach((t=>t())),this._onStartFns=[]}finish(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())}setPosition(t){this._styler.setPosition(t)}getPosition(){return this._styler.getPosition()}hasStarted(){return this._state>=2}init(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())}play(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()}pause(){this.init(),this._styler.pause()}restart(){this.reset(),this.play()}reset(){this._styler.destroy(),this._buildStyler(),this._styler.apply()}_buildStyler(){this._styler=new dw(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",(()=>this.finish()))}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach((t=>t())),e.length=0}beforeDestroy(){this.init();const t={};if(this.hasStarted()){const e=this._state>=3;Object.keys(this._finalStyles).forEach((n=>{"offset"!=n&&(t[n]=e?this._finalStyles[n]:tP(this.element,n))}))}this.currentSnapshot=t}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class yw extends rO{constructor(t,e){super(),this.element=t,this._startingStyles={},this.__initialized=!1,this._styles=wO(e)}init(){!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach((t=>{this._startingStyles[t]=this.element.style[t]})),super.init())}play(){this._startingStyles&&(this.init(),Object.keys(this._styles).forEach((t=>this.element.style.setProperty(t,this._styles[t]))),super.play())}destroy(){this._startingStyles&&(Object.keys(this._startingStyles).forEach((t=>{const e=this._startingStyles[t];e?this.element.style.setProperty(t,e):this.element.style.removeProperty(t)})),this._startingStyles=null,super.destroy())}}class _w{constructor(){this._count=0,this._head=document.querySelector("head")}validateStyleProperty(t){return vO(t)}matchesElement(t,e){return xO(t,e)}containsElement(t,e){return OO(t,e)}query(t,e,n){return PO(t,e,n)}computeStyle(t,e,n){return window.getComputedStyle(t)[e]}buildKeyframeElement(t,e,n){n=n.map((t=>wO(t)));let o=`@keyframes ${e} {\n`,i="";n.forEach((t=>{i=" ";const e=parseFloat(t.offset);o+=`${i}${100*e}% {\n`,i+=" ",Object.keys(t).forEach((e=>{const n=t[e];switch(e){case"offset":return;case"easing":return void(n&&(o+=`${i}animation-timing-function: ${n};\n`));default:return void(o+=`${i}${e}: ${n};\n`)}})),o+=`${i}}\n`})),o+="}\n";const a=document.createElement("style");return a.textContent=o,a}animate(t,e,n,o,i,a=[],r){("undefined"==typeof ngDevMode||ngDevMode)&&r&&(function s(){Cw||(console.warn("@angular/animations: please load the web-animations.js polyfill to allow programmatic access...\n","  visit https://bit.ly/IWukam to learn more about using the web-animation-js polyfill."),Cw=!0)})();const l=a.filter((t=>t instanceof bw)),c={};JO(n,o)&&l.forEach((t=>{let e=t.currentSnapshot;Object.keys(e).forEach((t=>c[t]=e[t]))}));const d=(function p(t){let e={};return t&&(Array.isArray(t)?t:[t]).forEach((t=>{Object.keys(t).forEach((n=>{"offset"!=n&&"easing"!=n&&(e[n]=t[n])}))})),e})(e=QO(t,e,c));if(0==n)return new yw(t,d);const m="gen_css_kf_"+this._count++,u=this.buildKeyframeElement(t,m,e);document.querySelector("head").appendChild(u);const f=iw(t,e),g=new bw(t,e,m,n,o,i,d,f);return g.onDestroy((()=>(function t(e){e.parentNode.removeChild(e)})(u))),g}}let Cw=!1;class Mw{constructor(t,e,n,o){this.element=t,this.keyframes=e,this.options=n,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach((t=>t())),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this.domPlayer.addEventListener("finish",(()=>this._onFinish()))}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(t,e,n){return t.animate(e,n)}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach((t=>t())),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach((t=>t())),this._onDestroyFns=[])}setPosition(t){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach((e=>{"offset"!=e&&(t[e]=this._finished?this._finalKeyframe[e]:tP(this.element,e))})),this.currentSnapshot=t}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach((t=>t())),e.length=0}}class vw{constructor(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(xw().toString()),this._cssKeyframesDriver=new _w}validateStyleProperty(t){return vO(t)}matchesElement(t,e){return xO(t,e)}containsElement(t,e){return OO(t,e)}query(t,e,n){return PO(t,e,n)}computeStyle(t,e,n){return window.getComputedStyle(t)[e]}overrideWebAnimationsSupport(t){this._isNativeImpl=t}animate(t,e,n,o,i,a=[],r){if(!r&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(t,e,n,o,i,a);const s={duration:n,delay:o,fill:0==o?"both":"forwards"};i&&(s.easing=i);const l={},c=a.filter((t=>t instanceof Mw));JO(n,o)&&c.forEach((t=>{let e=t.currentSnapshot;Object.keys(e).forEach((t=>l[t]=e[t]))}));const d=iw(t,e=QO(t,e=e.map((t=>LO(t,!1))),l));return new Mw(t,e,s,d)}}function xw(){
/**
     * @license Angular v11.2.14
     * (c) 2010-2021 Google LLC. https://angular.io/
     * License: MIT
     */
return(function t(){return"undefined"!=typeof window&&void 0!==window.document})()&&Element.prototype.animate||{}}
/**
     * @license Angular v11.2.14
     * (c) 2010-2021 Google LLC. https://angular.io/
     * License: MIT
     */class Ow extends Zx{constructor(t,e){super(),this._nextAnimationId=0,this._renderer=t.createRenderer(e.body,{id:"0",encapsulation:Po.None,styles:[],data:{animation:[]}})}build(t){const e=this._nextAnimationId.toString();this._nextAnimationId++;const n=Array.isArray(t)?Qx(t):t;return kw(this._renderer,null,e,"register",[n]),new Pw(e,this._renderer)}}Ow.ɵfac=function t(e){return new(e||Ow)(us(mh),us(UC))},Ow.ɵprov=lo({token:Ow,factory:Ow.ɵfac}),Ow.ctorParameters=()=>[{type:mh},{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Ow,[{type:Jm}],(function(){return[{type:mh},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);class Pw extends class{}{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new ww(this._id,t,e||{},this._renderer)}}class ww{constructor(t,e,n,o){this.id=t,this.element=e,this._renderer=o,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",n)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return kw(this._renderer,this.element,this.id,t,e)}onDone(t){this._listen("done",t)}onStart(t){this._listen("start",t)}onDestroy(t){this._listen("destroy",t)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset")}setPosition(t){this._command("setPosition",t)}getPosition(){var t,e;return null!==(e=null===(t=this._renderer.engine.players[+this.id])||void 0===t?void 0:t.getPosition())&&void 0!==e?e:0}}function kw(t,e,n,o,i){return t.setProperty(e,`@@${n}:${o}`,i)}const Sw="@",Dw="@.disabled";class Ew{constructor(t,e,n){this.delegate=t,this.engine=e,this._zone=n,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),e.onRemovalComplete=(t,e)=>{e&&e.parentNode(t)&&e.removeChild(t.parentNode,t)}}createRenderer(t,e){const n=this.delegate.createRenderer(t,e);if(!(t&&e&&e.data&&e.data.animation)){let t=this._rendererCache.get(n);return t||(t=new Aw("",n,this.engine),this._rendererCache.set(n,t)),t}const o=e.id,i=e.id+"-"+this._currentId;this._currentId++,this.engine.register(i,t);const a=e=>{Array.isArray(e)?e.forEach(a):this.engine.registerTrigger(o,i,t,e.name,e)};return e.data.animation.forEach(a),new Rw(this,i,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then((()=>{this._microtaskId++}))}scheduleListenerCallback(t,e,n){t>=0&&t<this._microtaskId?this._zone.run((()=>e(n))):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then((()=>{this._zone.run((()=>{this._animationCallbacksBuffer.forEach((t=>{const[e,n]=t;e(n)})),this._animationCallbacksBuffer=[]}))})),this._animationCallbacksBuffer.push([e,n]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular((()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)})),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}Ew.ɵfac=function t(e){return new(e||Ew)(us(mh),us(ow),us(tC))},Ew.ɵprov=lo({token:Ew,factory:Ew.ɵfac}),Ew.ctorParameters=()=>[{type:mh},{type:ow},{type:tC}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Ew,[{type:Jm}],(function(){return[{type:mh},{type:ow},{type:tC}]}),null);class Aw{constructor(t,e,n){this.namespaceId=t,this.delegate=e,this.engine=n,this.destroyNode=this.delegate.destroyNode?t=>e.destroyNode(t):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,n,o=!0){this.delegate.insertBefore(t,e,n),this.engine.onInsert(this.namespaceId,e,t,o)}removeChild(t,e,n){this.engine.onRemove(this.namespaceId,e,this.delegate,n)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,n,o){this.delegate.setAttribute(t,e,n,o)}removeAttribute(t,e,n){this.delegate.removeAttribute(t,e,n)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,n,o){this.delegate.setStyle(t,e,n,o)}removeStyle(t,e,n){this.delegate.removeStyle(t,e,n)}setProperty(t,e,n){e.charAt(0)==Sw&&e==Dw?this.disableAnimations(t,!!n):this.delegate.setProperty(t,e,n)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,n){return this.delegate.listen(t,e,n)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class Rw extends Aw{constructor(t,e,n,o){super(e,n,o),this.factory=t,this.namespaceId=e}setProperty(t,e,n){e.charAt(0)==Sw?"."==e.charAt(1)&&e==Dw?this.disableAnimations(t,n=void 0===n||!!n):this.engine.process(this.namespaceId,t,e.substr(1),n):this.delegate.setProperty(t,e,n)}listen(t,e,n){if(e.charAt(0)==Sw){const o=(function o(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}})(t);let i=e.substr(1),a="";return i.charAt(0)!=Sw&&([i,a]=(function i(t){const e=t.indexOf(".");return[t.substring(0,e),t.substr(e+1)]}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(i)),this.engine.listen(this.namespaceId,o,i,a,(t=>{this.factory.scheduleListenerCallback(t._data||-1,n,t)}))}return this.delegate.listen(t,e,n)}}class Tw extends ow{constructor(t,e,n){super(t.body,e,n)}}Tw.ɵfac=function t(e){return new(e||Tw)(us(UC),us(SO),us(OP))},Tw.ɵprov=lo({token:Tw,factory:Tw.ɵfac}),Tw.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:SO},{type:OP}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Tw,[{type:Jm}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:SO},{type:OP}]}),null);const Nw=new Nr("AnimationModuleType"),Iw=[{provide:Zx,useClass:Ow},{provide:OP,useFactory:function zw(){return new PP}},{provide:ow,useClass:Tw},{provide:mh,useFactory:function Hw(t,e,n){return new Ew(t,e,n)},deps:[cx,ow,tC]}],Fw=[{provide:SO,useFactory:function Lw(){return(function t(){return"function"==typeof xw()})()?new vw:new _w}},{provide:Nw,useValue:"BrowserAnimations"},...Iw],Bw=[{provide:SO,useClass:kO},{provide:Nw,useValue:"NoopAnimations"},...Iw];
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Vw{}Vw.ɵfac=function t(e){return new(e||Vw)},Vw.ɵmod=Zo({type:Vw}),Vw.ɵinj=co({providers:Fw,imports:[zx]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Vw,{exports:function(){return[zx]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Vw,[{type:k_,args:[{exports:[zx],providers:Fw}]}],null,null);class jw{}jw.ɵfac=function t(e){return new(e||jw)},jw.ɵmod=Zo({type:jw}),jw.ɵinj=co({providers:Bw,imports:[zx]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(jw,{exports:function(){return[zx]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jw,[{type:k_,args:[{exports:[zx],providers:Bw}]}],null,null);
/**
     * @license NgRx 9.2.1
     * (c) 2015-2018 Brandon Roberts, Mike Ryan, Rob Wormald, Victor Savkin
     * License: MIT
     */
let Uw={};function Ww(t,e){if(Uw[t]=(Uw[t]||0)+1,"function"==typeof e)return Gw(t,((...n)=>Object.assign(Object.assign({},e(...n)),{type:t})));switch(e?e._as:"empty"){case"empty":return Gw(t,(()=>({type:t})));case"props":return Gw(t,(e=>Object.assign(Object.assign({},e),{type:t})));default:throw new Error("Unexpected config.")}}function Gw(t,e){return Object.defineProperty(e,"type",{value:t,writable:!1})}const Yw="@ngrx/store/init";class qw extends H{constructor(){super({type:Yw})}next(t){if("function"==typeof t)throw new TypeError("\n        Dispatch expected an object, instead it received a function.\n        If you're using the createAction function, make sure to invoke the function\n        before dispatching the action. For example, someAction should be someAction().");if(void 0===t)throw new TypeError("Actions must be objects");if(void 0===t.type)throw new TypeError("Actions must have a type property");super.next(t)}complete(){}ngOnDestroy(){super.complete()}}qw.ɵfac=function t(e){return new(e||qw)},qw.ɵprov=lo({token:qw,factory:qw.ɵfac}),qw.ctorParameters=()=>[],("undefined"==typeof ngDevMode||ngDevMode)&&db(qw,[{type:Jm}],(function(){return[]}),null);const Zw=[qw],Xw=new Nr("@ngrx/store Internal Root Guard"),Kw=new Nr("@ngrx/store Internal Initial State"),Jw=new Nr("@ngrx/store Initial State"),Qw=new Nr("@ngrx/store Reducer Factory"),$w=new Nr("@ngrx/store Internal Reducer Factory Provider"),tk=new Nr("@ngrx/store Initial Reducers"),ek=new Nr("@ngrx/store Internal Initial Reducers"),nk=new Nr("@ngrx/store Store Features"),ok=new Nr("@ngrx/store Internal Store Reducers"),ik=new Nr("@ngrx/store Internal Feature Reducers"),ak=new Nr("@ngrx/store Internal Feature Configs"),rk=new Nr("@ngrx/store Internal Store Features"),sk=new Nr("@ngrx/store Internal Feature Reducers Token"),lk=new Nr("@ngrx/store Feature Reducers"),ck=new Nr("@ngrx/store User Provided Meta Reducers"),dk=new Nr("@ngrx/store Meta Reducers"),pk=new Nr("@ngrx/store Internal Resolved Meta Reducers"),mk=new Nr("@ngrx/store User Runtime Checks Config"),uk=new Nr("@ngrx/store Internal User Runtime Checks Config"),fk=new Nr("@ngrx/store Internal Runtime Checks"),gk=new Nr("@ngrx/store Check if Action types are unique");function hk(t,e={}){const n=Object.keys(t),o={};for(let e=0;e<n.length;e++){const i=n[e];"function"==typeof t[i]&&(o[i]=t[i])}const i=Object.keys(o);return function t(n,a){n=void 0===n?e:n;let r=!1;const s={};for(let t=0;t<i.length;t++){const e=i[t],l=n[e],c=(0,o[e])(l,a);s[e]=c,r=r||c!==l}return r?s:n}}function bk(...t){return function(e){if(0===t.length)return e;const n=t[t.length-1];return t.slice(0,-1).reduceRight(((t,e)=>e(t)),n(e))}}function yk(t,e){return Array.isArray(e)&&e.length>0&&(t=bk.apply(null,[...e,t])),(e,n)=>{const o=t(e);return(t,e)=>o(t=void 0===t?n:t,e)}}class _k extends y{}class Ck extends qw{}class Mk extends H{constructor(t,e,n,o){super(o(n,e)),this.dispatcher=t,this.initialState=e,this.reducers=n,this.reducerFactory=o}addFeature(t){this.addFeatures([t])}addFeatures(t){const e=t.reduce(((t,{reducers:e,reducerFactory:n,metaReducers:o,initialState:i,key:a})=>{const r="function"==typeof e?(function s(t){const e=Array.isArray(t)&&t.length>0?bk(...t):t=>t;return(t,n)=>(t=e(t),(e,o)=>t(e=void 0===e?n:e,o))})(o)(e,i):yk(n,o)(e,i);return t[a]=r,t}),{});this.addReducers(e)}removeFeature(t){this.removeFeatures([t])}removeFeatures(t){this.removeReducers(t.map((t=>t.key)))}addReducer(t,e){this.addReducers({[t]:e})}addReducers(t){this.reducers=Object.assign(Object.assign({},this.reducers),t),this.updateReducers(Object.keys(t))}removeReducer(t){this.removeReducers([t])}removeReducers(t){t.forEach((t=>{this.reducers=(function e(t,n){return Object.keys(t).filter((t=>t!==n)).reduce(((e,n)=>Object.assign(e,{[n]:t[n]})),{})})(this.reducers,t)})),this.updateReducers(t)}updateReducers(t){this.next(this.reducerFactory(this.reducers,this.initialState)),this.dispatcher.next({type:"@ngrx/store/update-reducers",features:t})}ngOnDestroy(){this.complete()}}Mk.ɵfac=function t(e){return new(e||Mk)(us(Ck),us(Jw),us(tk),us(Qw))},Mk.ɵprov=lo({token:Mk,factory:Mk.ɵfac}),Mk.ctorParameters=()=>[{type:Ck},{type:void 0,decorators:[{type:ys,args:[Jw]}]},{type:void 0,decorators:[{type:ys,args:[tk]}]},{type:void 0,decorators:[{type:ys,args:[Qw]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Mk,[{type:Jm}],(function(){return[{type:Ck},{type:void 0,decorators:[{type:ys,args:[Jw]}]},{type:void 0,decorators:[{type:ys,args:[tk]}]},{type:void 0,decorators:[{type:ys,args:[Qw]}]}]}),null);const vk=[Mk,{provide:_k,useExisting:Mk},{provide:Ck,useExisting:qw}];class xk extends x{ngOnDestroy(){this.complete()}}xk.ɵfac=function t(e){return Ok(e||xk)},xk.ɵprov=lo({token:xk,factory:xk.ɵfac});const Ok=vr(xk);("undefined"==typeof ngDevMode||ngDevMode)&&db(xk,[{type:Jm}],null,null);const Pk=[xk];class wk extends y{}class kk extends H{constructor(t,e,n,o){super(o);const i=t.pipe((function r(t,e=0){return function n(o){return o.lift(new $(t,e))}})(j)).pipe(kn(e)).pipe((function a(t,e){let n=!1;return arguments.length>=2&&(n=!0),function o(i){return i.lift(new Xe(t,e,n))}})(Sk,{state:o}));this.stateSubscription=i.subscribe((({state:t,action:e})=>{this.next(t),n.next(e)}))}ngOnDestroy(){this.stateSubscription.unsubscribe(),this.complete()}}function Sk(t={state:void 0},[e,n]){const{state:o}=t;return{state:n(o,e),action:e}}kk.ɵfac=function t(e){return new(e||kk)(us(qw),us(_k),us(xk),us(Jw))},kk.ɵprov=lo({token:kk,factory:kk.ɵfac}),kk.INIT=Yw,kk.ctorParameters=()=>[{type:qw},{type:_k},{type:xk},{type:void 0,decorators:[{type:ys,args:[Jw]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(kk,[{type:Jm}],(function(){return[{type:qw},{type:_k},{type:xk},{type:void 0,decorators:[{type:ys,args:[Jw]}]}]}),null);const Dk=[kk,{provide:wk,useExisting:kk}];class Ek extends y{constructor(t,e,n){super(),this.actionsObserver=e,this.reducerManager=n,this.source=t}select(t,...e){return Rk.call(null,t,...e)(this)}lift(t){const e=new Ek(this,this.actionsObserver,this.reducerManager);return e.operator=t,e}dispatch(t){this.actionsObserver.next(t)}next(t){this.actionsObserver.next(t)}error(t){this.actionsObserver.error(t)}complete(){this.actionsObserver.complete()}addReducer(t,e){this.reducerManager.addReducer(t,e)}removeReducer(t){this.reducerManager.removeReducer(t)}}Ek.ɵfac=function t(e){return new(e||Ek)(us(wk),us(qw),us(Mk))},Ek.ɵprov=lo({token:Ek,factory:Ek.ɵfac}),Ek.ctorParameters=()=>[{type:wk},{type:qw},{type:Mk}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Ek,[{type:Jm}],(function(){return[{type:wk},{type:qw},{type:Mk}]}),null);const Ak=[Ek];function Rk(t,e,...n){return function o(i){let a;if("string"==typeof t){const o=[e,...n].filter(Boolean);a=i.pipe((function r(...t){const e=t.length;if(0===e)throw new Error("list of properties cannot be empty.");return ht((n=>{let o=n;for(let n=0;n<e;n++){const e=o[t[n]];if(void 0===e)return;o=e}return o}))})(t,...o))}else{if("function"!=typeof t)throw new TypeError(`Unexpected type '${typeof t}' in select operator, expected 'string' or 'function'`);a=i.pipe(ht((n=>t(n,e))))}return a.pipe(ke())}}function Tk(t,e){return t===e}function Nk(t,e,n){for(let o=0;o<t.length;o++)if(!n(t[o],e[o]))return!0;return!1}function Ik(t,e=Tk,n=Tk){let o,i=null,a=null;return{memoized:function r(){if(void 0!==o)return o.result;if(!i)return a=t.apply(null,arguments),i=arguments,a;if(!Nk(arguments,i,e))return a;const r=t.apply(null,arguments);return i=arguments,n(a,r)?a:(a=r,r)},reset:function s(){i=null,a=null},setResult:function l(t){o={result:t}},clearResult:function c(){o=void 0}}}function zk(...t){return(function e(t,n={stateFn:Hk}){return function(...e){let o=e;if(Array.isArray(o[0])){const[t,...e]=o;o=[...t,...e]}const i=o.slice(0,o.length-1),a=o[o.length-1],r=i.filter((t=>t.release&&"function"==typeof t.release)),s=t((function(...t){return a.apply(null,t)})),l=Ik((function(t,e){return n.stateFn.apply(null,[t,i,e,s])}));return Object.assign(l.memoized,{release:function c(){l.reset(),s.reset(),r.forEach((t=>t.release()))},projector:s.memoized,setResult:l.setResult,clearResult:l.clearResult})}})(Ik)(...t)}function Hk(t,e,n,o){if(void 0===n){const n=e.map((e=>e(t)));return o.memoized.apply(null,n)}const i=e.map((e=>e(t,n)));return o.memoized.apply(null,[...i,n])}function Fk(t){return zk((e=>{const n=e[t];return uC()&&!(t in e)&&console.warn(`@ngrx/store: The feature name "${t}" does not exist in the state, therefore createFeatureSelector cannot access it.  Be sure it is imported in a loaded module using StoreModule.forRoot('${t}', ...) or StoreModule.forFeature('${t}', ...).  If the default state is intended to be undefined, as is the case with router state, this development-only warning message can be ignored.`),n}),(t=>t))}const Lk="https://ngrx.io/guide/store/configuration/runtime-checks";function Bk(t){return void 0===t}function Vk(t){return null===t}function jk(t){return Array.isArray(t)}function Uk(t){return"object"==typeof t&&null!==t}function Wk(t){return"function"==typeof t}function Gk(t){Object.freeze(t);const e=Wk(t);return Object.getOwnPropertyNames(t).forEach((n=>{if(!n.startsWith("ɵ")&&(function o(t,e){return Object.prototype.hasOwnProperty.call(t,e)})(t,n)&&(!e||"caller"!==n&&"callee"!==n&&"arguments"!==n)){const e=t[n];!Uk(e)&&!Wk(e)||Object.isFrozen(e)||Gk(e)}})),t}function Yk(t,e=[]){return(Bk(t)||Vk(t))&&0===e.length?{path:["root"],value:t}:Object.keys(t).reduce(((n,o)=>{if(n)return n;const i=t[o];return(function a(t){return Wk(t)&&t.hasOwnProperty("ɵcmp")})(i)?n:!(Bk(i)||Vk(i)||(function r(t){return"number"==typeof t})(i)||(function s(t){return"boolean"==typeof t})(i)||(function l(t){return"string"==typeof t})(i)||jk(i))&&((function c(t){if(!(function e(t){return Uk(t)&&!jk(t)})(t))return!1;const n=Object.getPrototypeOf(t);return n===Object.prototype||null===n})(i)?Yk(i,[...e,o]):{path:[...e,o],value:i})}),!1)}function qk(t,e){if(!1===t)return;const n=t.path.join("."),o=new Error(`Detected unserializable ${e} at "${n}". ${Lk}#strict${e}serializability`);throw o.value=t.value,o.unserializablePath=n,o}function Zk(t){return uC()?Object.assign({strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!0,strictActionImmutability:!0,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1},t):{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!1,strictActionImmutability:!1,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1}}function Xk({strictActionSerializability:t,strictStateSerializability:e}){return n=>t||e?(function o(t,e){return function(n,o){e.action(o)&&qk(Yk(o),"action");const i=t(n,o);return e.state()&&qk(Yk(i),"state"),i}})(n,{action:e=>t&&!Jk(e),state:()=>e}):n}function Kk({strictActionImmutability:t,strictStateImmutability:e}){return n=>t||e?(function o(t,e){return function(n,o){const i=e.action(o)?Gk(o):o,a=t(n,i);return e.state()?Gk(a):a}})(n,{action:e=>t&&!Jk(e),state:()=>e}):n}function Jk(t){return t.type.startsWith("@ngrx")}function Qk({strictActionWithinNgZone:t}){return e=>t?(function n(t,e){return function(n,o){if(e.action(o)&&!tC.isInAngularZone())throw new Error(`Action '${o.type}' running outside NgZone. ${Lk}#strictactionwithinngzone`);return t(n,o)}})(e,{action:e=>t&&!Jk(e)}):e}function $k(){return[{provide:gk,multi:!0,deps:[fk],useFactory:eS}]}function tS(t){return t}function eS(t){if(!t.strictActionTypeUniqueness)return;const e=Object.entries(Uw).filter((([,t])=>t>1)).map((([t])=>t));if(e.length)throw new Error(`Action types are registered more than once, ${e.map((t=>`"${t}"`)).join(", ")}. ${Lk}#strictactiontypeuniqueness`)}class nS{constructor(t,e,n,o,i,a){}}nS.ɵfac=function t(e){return new(e||nS)(us(qw),us(_k),us(xk),us(Ek),us(Xw,8),us(gk,8))},nS.ɵmod=Zo({type:nS}),nS.ɵinj=co({}),nS.ctorParameters=()=>[{type:qw},{type:_k},{type:xk},{type:Ek},{type:void 0,decorators:[{type:_s},{type:ys,args:[Xw]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[gk]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(nS,[{type:k_,args:[{}]}],(function(){return[{type:qw},{type:_k},{type:xk},{type:Ek},{type:void 0,decorators:[{type:_s},{type:ys,args:[Xw]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[gk]}]}]}),null);class oS{constructor(t,e,n,o,i){this.features=t,this.featureReducers=e,this.reducerManager=n;const a=t.map(((t,n)=>{const o=e.shift()[n];return Object.assign(Object.assign({},t),{reducers:o,initialState:lS(t.initialState)})}));n.addFeatures(a)}ngOnDestroy(){this.reducerManager.removeFeatures(this.features)}}oS.ɵfac=function t(e){return new(e||oS)(us(rk),us(lk),us(Mk),us(nS),us(gk,8))},oS.ɵmod=Zo({type:oS}),oS.ɵinj=co({}),oS.ctorParameters=()=>[{type:Array,decorators:[{type:ys,args:[rk]}]},{type:Array,decorators:[{type:ys,args:[lk]}]},{type:Mk},{type:nS},{type:void 0,decorators:[{type:_s},{type:ys,args:[gk]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(oS,[{type:k_,args:[{}]}],(function(){return[{type:Array,decorators:[{type:ys,args:[rk]}]},{type:Array,decorators:[{type:ys,args:[lk]}]},{type:Mk},{type:nS},{type:void 0,decorators:[{type:_s},{type:ys,args:[gk]}]}]}),null);class iS{static forRoot(t,e={}){return{ngModule:nS,providers:[{provide:Xw,useFactory:dS,deps:[[Ek,new _s,new Ms]]},{provide:Kw,useValue:e.initialState},{provide:Jw,useFactory:lS,deps:[Kw]},{provide:ek,useValue:t},{provide:ok,useExisting:t instanceof Nr?t:ek},{provide:tk,deps:[Qp,ek,[new ys(ok)]],useFactory:aS},{provide:ck,useValue:e.metaReducers?e.metaReducers:[]},{provide:pk,deps:[dk,ck],useFactory:cS},{provide:$w,useValue:e.reducerFactory?e.reducerFactory:hk},{provide:Qw,deps:[$w,pk],useFactory:yk},Zw,vk,Pk,Dk,Ak,(n=e.runtimeChecks,[{provide:uk,useValue:n},{provide:mk,useFactory:tS,deps:[uk]},{provide:fk,deps:[mk],useFactory:Zk},{provide:dk,multi:!0,deps:[fk],useFactory:Kk},{provide:dk,multi:!0,deps:[fk],useFactory:Xk},{provide:dk,multi:!0,deps:[fk],useFactory:Qk}]),$k()]};var n}static forFeature(t,e,n={}){return{ngModule:oS,providers:[{provide:ak,multi:!0,useValue:n},{provide:nk,multi:!0,useValue:{key:t,reducerFactory:n instanceof Nr||!n.reducerFactory?hk:n.reducerFactory,metaReducers:n instanceof Nr||!n.metaReducers?[]:n.metaReducers,initialState:n instanceof Nr||!n.initialState?void 0:n.initialState}},{provide:rk,deps:[Qp,ak,nk],useFactory:rS},{provide:ik,multi:!0,useValue:e},{provide:sk,multi:!0,useExisting:e instanceof Nr?e:ik},{provide:lk,multi:!0,deps:[Qp,ik,[new ys(sk)]],useFactory:sS},$k()]}}}function aS(t,e){return e instanceof Nr?t.get(e):e}function rS(t,e,n){return n.map(((n,o)=>{if(e[o]instanceof Nr){const i=t.get(e[o]);return{key:n.key,reducerFactory:i.reducerFactory?i.reducerFactory:hk,metaReducers:i.metaReducers?i.metaReducers:[],initialState:i.initialState}}return n}))}function sS(t,e){return e.map((e=>e instanceof Nr?t.get(e):e))}function lS(t){return"function"==typeof t?t():t}function cS(t,e){return t.concat(e)}function dS(t){if(t)throw new TypeError("StoreModule.forRoot() called twice. Feature modules should use StoreModule.forFeature() instead.");return"guarded"}function pS(...t){return{reducer:t.pop(),types:t.reduce(((t,e)=>[...t,e.type]),[])}}function mS(t,...e){const n=new Map;for(let t of e)for(let e of t.types)if(n.has(e)){const o=n.get(e);n.set(e,((e,n)=>t.reducer(o(e,n),n)))}else n.set(e,t.reducer);return function(e=t,o){const i=n.get(o.type);return i?i(e,o):e}}
/**
     * @license NgRx 9.2.1
     * (c) 2015-2018 Brandon Roberts, Mike Ryan, Rob Wormald, Victor Savkin
     * License: MIT
     */iS.ɵfac=function t(e){return new(e||iS)},iS.ɵmod=Zo({type:iS}),iS.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db(iS,[{type:k_,args:[{}]}],null,null);const uS={dispatch:!0,useEffectsErrorHandler:!0},fS="__@ngrx/effects_create__";function gS(t,e){const n=t(),o=Object.assign(Object.assign({},uS),e);return Object.defineProperty(n,fS,{value:o}),n}function hS(t){return Object.getOwnPropertyNames(t).filter((e=>t[e]&&t[e].hasOwnProperty(fS))).map((e=>Object.assign({propertyName:e},t[e][fS])))}function bS(t){return Object.getPrototypeOf(t)}const yS="__@ngrx/effects__";function _S(t){return bk(CS,bS)(t)}function CS(t){return(function e(t){return t.constructor.hasOwnProperty(yS)})(t)?t.constructor[yS]:[]}function MS(t,e,n=10){return t.pipe(re((o=>(e&&e.handleError(o),n<=1?t:MS(t,e,n-1)))))}class vS extends y{constructor(t){super(),t&&(this.source=t)}lift(t){const e=new vS;return e.source=this,e.operator=t,e}}function xS(...t){return Gt((e=>t.some((t=>"string"==typeof t?t===e.type:t.type===e.type))))}function OS(t){return PS(t,"ngrxOnInitEffects")}function PS(t,e){return t&&e in t&&"function"==typeof t[e]}vS.ɵfac=function t(e){return new(e||vS)(us(xk))},vS.ɵprov=lo({token:vS,factory:vS.ɵfac}),vS.ctorParameters=()=>[{type:y,decorators:[{type:ys,args:[xk]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(vS,[{type:Jm}],(function(){return[{type:y,decorators:[{type:ys,args:[xk]}]}]}),null);const wS=new Nr("@ngrx/effects Internal Root Guard");new Nr("ngrx/effects: Immediate Effects");const kS=new Nr("ngrx/effects: User Provided Effects"),SS=new Nr("ngrx/effects: Internal Root Effects"),DS=new Nr("ngrx/effects: Root Effects"),ES=new Nr("ngrx/effects: Internal Feature Effects"),AS=new Nr("ngrx/effects: Feature Effects"),RS=new Nr("ngrx/effects: Effects Error Handler");class TS extends x{constructor(t,e){super(),this.errorHandler=t,this.effectsErrorHandler=e}addEffects(t){this.next(t)}toActions(){return this.pipe(A(bS),Tt((t=>t.pipe(A(NS)))),Tt((t=>Wt(t.pipe(He((t=>(function e(t,n){return e=>{const o=(function i(t,e,n){const o=bS(t).constructor.name;return Wt(...(function i(t){return[_S,hS].reduce(((e,n)=>e.concat(n(t))),[])})(t).map((({propertyName:i,dispatch:a,useEffectsErrorHandler:r})=>{const s="function"==typeof t[i]?t[i]():t[i],l=r?n(s,e):s;return!1===a?l.pipe((function c(){return function t(e){return e.lift(new je)}})()):l.pipe((function d(){return function t(e){return e.lift(new qe)}})()).pipe(ht((e=>({effect:t[i],notification:e,propertyName:i,sourceName:o,sourceInstance:t}))))})))})(e,t,n);return(function a(t){return PS(t,"ngrxOnRunEffects")})(e)?e.ngrxOnRunEffects(o):o}})(this.errorHandler,this.effectsErrorHandler)(t))),ht((t=>((function e(t,n){if("N"===t.notification.kind){const e=t.notification.value;!(function o(t){return"function"!=typeof t&&t&&t.type&&"string"==typeof t.type})(e)&&n.handleError(new Error(`Effect ${(function i({propertyName:t,sourceInstance:e,sourceName:n}){const o="function"==typeof e[t];return`"${n}.${String(t)}${o?"()":""}"`})(t)} dispatched an invalid action: ${(function a(t){try{return JSON.stringify(t)}catch(e){return t}})(e)}`))}})(t,this.errorHandler),t.notification))),Gt((t=>"N"===t.kind)),(function e(){return function t(e){return e.lift(new Pe)}})()),t.pipe(Ne(1),Gt(OS),ht((t=>t.ngrxOnInitEffects())))))))}}function NS(t){return(function e(t){return PS(t,"ngrxOnIdentifyEffects")})(t)?t.ngrxOnIdentifyEffects():""}TS.ɵfac=function t(e){return new(e||TS)(us(El),us(RS))},TS.ɵprov=lo({token:TS,factory:TS.ɵfac}),TS.ctorParameters=()=>[{type:El},{type:void 0,decorators:[{type:ys,args:[RS]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(TS,[{type:Jm}],(function(){return[{type:El},{type:void 0,decorators:[{type:ys,args:[RS]}]}]}),null);class IS{constructor(t,e){this.effectSources=t,this.store=e,this.effectsSubscription=null}start(){this.effectsSubscription||(this.effectsSubscription=this.effectSources.toActions().subscribe(this.store))}ngOnDestroy(){this.effectsSubscription&&(this.effectsSubscription.unsubscribe(),this.effectsSubscription=null)}}IS.ɵfac=function t(e){return new(e||IS)(us(TS),us(Ek))},IS.ɵprov=lo({token:IS,factory:IS.ɵfac}),IS.ctorParameters=()=>[{type:TS},{type:Ek}],("undefined"==typeof ngDevMode||ngDevMode)&&db(IS,[{type:Jm}],(function(){return[{type:TS},{type:Ek}]}),null);const zS="@ngrx/effects/init";Ww(zS);class HS{constructor(t,e,n,o,i,a,r){this.sources=t,e.start(),o.forEach((e=>t.addEffects(e))),n.dispatch({type:zS})}addEffects(t){this.sources.addEffects(t)}}HS.ɵfac=function t(e){return new(e||HS)(us(TS),us(IS),us(Ek),us(DS),us(nS,8),us(oS,8),us(wS,8))},HS.ɵmod=Zo({type:HS}),HS.ɵinj=co({}),HS.ctorParameters=()=>[{type:TS},{type:IS},{type:Ek},{type:Array,decorators:[{type:ys,args:[DS]}]},{type:nS,decorators:[{type:_s}]},{type:oS,decorators:[{type:_s}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[wS]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(HS,[{type:k_,args:[{}]}],(function(){return[{type:TS},{type:IS},{type:Ek},{type:Array,decorators:[{type:ys,args:[DS]}]},{type:nS,decorators:[{type:_s}]},{type:oS,decorators:[{type:_s}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[wS]}]}]}),null);class FS{constructor(t,e,n,o){e.forEach((e=>e.forEach((e=>t.addEffects(e)))))}}FS.ɵfac=function t(e){return new(e||FS)(us(HS),us(AS),us(nS,8),us(oS,8))},FS.ɵmod=Zo({type:FS}),FS.ɵinj=co({}),FS.ctorParameters=()=>[{type:HS},{type:Array,decorators:[{type:ys,args:[AS]}]},{type:nS,decorators:[{type:_s}]},{type:oS,decorators:[{type:_s}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(FS,[{type:k_,args:[{}]}],(function(){return[{type:HS},{type:Array,decorators:[{type:ys,args:[AS]}]},{type:nS,decorators:[{type:_s}]},{type:oS,decorators:[{type:_s}]}]}),null);class LS{static forFeature(t=[]){return{ngModule:FS,providers:[t,{provide:ES,multi:!0,useValue:t},{provide:kS,multi:!0,useValue:[]},{provide:AS,multi:!0,useFactory:BS,deps:[Qp,ES,kS]}]}}static forRoot(t=[]){return{ngModule:HS,providers:[{provide:wS,useFactory:VS,deps:[[IS,new _s,new Ms]]},{provide:RS,useValue:MS},IS,TS,vS,t,{provide:SS,useValue:[t]},{provide:kS,multi:!0,useValue:[]},{provide:DS,useFactory:BS,deps:[Qp,SS,kS]}]}}}function BS(t,e,n){const o=[];for(let t of e)o.push(...t);for(let t of n)o.push(...t);return(function i(t,e){return e.map((e=>t.get(e)))})(t,o)}function VS(t){if(t)throw new TypeError("EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.");return"guarded"}var jS;LS.ɵfac=function t(e){return new(e||LS)},LS.ɵmod=Zo({type:LS}),LS.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db(LS,[{type:k_,args:[{}]}],null,null),(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.EXPERIMENTS=1]="EXPERIMENTS",t[t.EXPERIMENT=2]="EXPERIMENT",t[t.COMPARE_EXPERIMENT=3]="COMPARE_EXPERIMENT",t[t.NOT_SET=4]="NOT_SET"})(jS||(jS={}));const US="defaultExperimentId";function WS(t){return t.split(",").map((t=>{const e=t.indexOf(":");if(e<0)throw new Error(`Expect colon delimiting name and ID: ${t}`);const n=t.slice(0,e),o=t.slice(e+1);if(!n)throw new Error(`Expect name to be non-falsy: ${t}`);if(!o)throw new Error(`Expect id to be non-falsy: ${t}`);return{name:n,id:o}}))}function GS(t,e){switch(t){case jS.EXPERIMENT:return Object.prototype.hasOwnProperty.call(e,"experimentId")?[e.experimentId]:[US];case jS.COMPARE_EXPERIMENT:return WS(e.experimentIds).map((({id:t})=>t));case jS.EXPERIMENTS:default:return null}}function YS(t,e){var n;switch(t){case jS.COMPARE_EXPERIMENT:case jS.EXPERIMENT:{const o=null!==(n=GS(t,e))&&void 0!==n?n:[];return o.sort(),`${t}/${o.join(",")}`}case jS.EXPERIMENTS:return String(t);case jS.NOT_SET:return"__not_set";default:return""}}const qS=()=>window.location.href;class ZS{getHref(){return qS()}getSearch(){const t=new URLSearchParams(window.location.search),e=[];return t.forEach(((t,n)=>{e.push({key:n,value:t})})),e}getHash(){return window.location.hash}getPath(){return window.location.pathname}replaceState(t){window.history.replaceState(null,"",t)}pushState(t){window.history.pushState(null,"",t)}onPopState(){return Vt(window,"popstate").pipe(ht((()=>({pathname:this.getPath(),queryParams:this.getSearch()}))))}getResolvedPath(t){return new URL(t,qS()).pathname}getFullPathFromRouteOrNav(t,e){const n=this.getResolvedPath(t.pathname);let o="";return!(function i(t){return t.hasOwnProperty("pathname")&&!t.hasOwnProperty("queryParams")})(t)&&t.queryParams.length&&(o="?"+(function a(t){const e=new URLSearchParams;for(const{key:n,value:o}of t)e.append(n,o);return e})(t.queryParams).toString()),`${n}${o}${e?this.getHash():""}`}}ZS.ɵfac=function t(e){return new(e||ZS)},ZS.ɵprov=lo({token:ZS,factory:ZS.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(ZS,[{type:Jm}],null,null);class XS{constructor(t){this.appRoot=this.getAppRootFromMetaElement(t)}getAppRootFromMetaElement(t){const e=document.querySelector('head meta[name="tb-relative-root"]');if(!e)return"/";const{pathname:n}=new URL(e.content,t.getHref());return n.replace(/\/*$/,"/")}getAbsPathnameWithAppRoot(t){return this.appRoot.slice(0,-1)+t}getAppRootlessPathname(t){return t.startsWith(this.appRoot)?"/"+t.slice(this.appRoot.length):t}}XS.ɵfac=function t(e){return new(e||XS)(us(ZS))},XS.ɵprov=lo({token:XS,factory:XS.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(XS,[{type:Jm}],(function(){return[{type:ZS}]}),null);class KS extends XS{getAppRoot(){return this.appRoot}setAppRoot(t){this.appRoot=t}}KS.ɵfac=function t(e){return JS(e||KS)},KS.ɵprov=lo({token:KS,factory:KS.ɵfac});const JS=vr(KS);("undefined"==typeof ngDevMode||ngDevMode)&&db(KS,[{type:Jm}],null,null);class QS{}QS.ɵfac=function t(e){return new(e||QS)},QS.ɵmod=Zo({type:QS}),QS.ɵinj=co({providers:[ZS]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(QS,[{type:k_,args:[{providers:[ZS]}]}],null,null);class $S{}$S.ɵfac=function t(e){return new(e||$S)},$S.ɵmod=Zo({type:$S}),$S.ɵinj=co({providers:[XS],imports:[[QS]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo($S,{imports:[QS]}),("undefined"==typeof ngDevMode||ngDevMode)&&db($S,[{type:k_,args:[{imports:[QS],providers:[XS]}]}],null,null);const tD=Ww("[App Routing] State Rehydrated From Url",{_as:"props",_p:void 0}),eD=Ww("[App Routing] In App Navigation Requested",{_as:"props",_p:void 0}),nD=Ww("[App Routing] In App Navigating",{_as:"props",_p:void 0}),oD=Ww("[App Routing] In App Navigated",{_as:"props",_p:void 0}),iD=new Nr("[App Routing] Programmatical Navigation Provider");class aD{constructor(t){this.providers=new Map;for(const e of t||[]){if(this.providers.has(e.actionCreator.type))throw new RangeError(`"${e.actionCreator.type}" is already registered for nav. Multiple navigations on same kick is not allowed.`);this.providers.set(e.actionCreator.type,e.lambda)}}getNavigation(t){const e=this.providers.get(t.type);return e?e(t):null}static registerProgrammaticalNavigation(t){return{ngModule:aD,providers:[{provide:iD,multi:!0,useFactory:t}]}}}function rD(t){return null!=t.routeKind}function sD(t){return uD(t).map((t=>{const e=t.startsWith(":");return e?{pathPart:t,isParam:!0,paramName:t.slice(1)}:{pathPart:t,isParam:e}}))}aD.ɵfac=function t(e){return new(e||aD)(us(iD,8))},aD.ɵmod=Zo({type:aD}),aD.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db(aD,[{type:k_,args:[{}]}],(function(){return[{type:void 0,decorators:[{type:_s},{type:ys,args:[iD]}]}]}),null);class lD{constructor(t){this.validateConfig(t),this.pathFragments=sD(t.path),this.pathMatchers=this.getPathMatchers(this.pathFragments)}static getMatcher(t){return rD(t)?new cD(t):(function e(t){return void 0!==t.redirectionPath})(t)?new dD(t):new pD(t)}validateConfig({path:t}){if(!t.startsWith("/"))throw new RangeError(`config.path should start with '/'. ${t}`);let e=0;for(;(e=t.indexOf(":",e+1))>=0;){if("/"!==t[e-1])throw new RangeError(`config.path parameter should come after '/'. ${t}`);if(void 0===t[e+1]||"/"===t[e+1])throw new RangeError(`config.path parameter should have non-empty name. ${t}`)}}getPathMatchers(t){return t.map((t=>{const{pathPart:e}=t;return t.isParam?e=>({isParamPathPart:!0,partMatched:!0,paramName:t.paramName,paramValue:e}):t=>({isParamPathPart:!1,partMatched:t===e})}))}match(t){let e={};if(this.pathMatchers.length!==t.length)return{result:!1};let n=0;for(const o of this.pathMatchers){const i=o(t[n++]);if(!i.partMatched)return{result:!1};i.isParamPathPart&&(e=Object.assign(Object.assign({},e),{[i.paramName]:i.paramValue}))}return{result:!0,params:e,pathParts:t,isRedirection:!1}}matchByParams(t){return{result:!0,params:t,pathParts:this.reprojectPathByParams(this.pathFragments,t),isRedirection:!1}}reprojectPathByParams(t,e){const n=[];for(const o of t)if(o.isParam){const{paramName:t}=o;if(!e.hasOwnProperty(t))throw new RangeError(`Failed to reproject parameter. "${t}" parameter should be present.`);n.push(e[t])}else n.push(o.pathPart);return n}}class cD extends lD{constructor(t){super(t),this.definition=t}}class dD extends lD{constructor(t){super(t),this.definition=t,this.redirectionFragments=sD(t.redirectionPath)}match(t){const e=super.match(t);if(!e.result)return e;const n=this.reprojectPathByParams(this.redirectionFragments,e.params);return{result:!0,params:e.params,pathParts:n,isRedirection:!0}}}class pD extends lD{constructor(t){super(t),this.definition=t}match(t){const e=super.match(t);if(!e.result)return e;const{pathParts:n,queryParams:o}=this.definition.redirector(t);return{result:!0,params:e.params,pathParts:n,isRedirection:!0,redirectionQueryParams:o}}}class mD{constructor(t,e=3){if(this.maxRedirection=e,e<0)throw new RangeError("maxRedirection has to be non-negative number");this.validateRouteConfigs(t),this.defaultRouteConfig=null,this.routeKindToConcreteConfigMatchers=new Map,this.configMatchers=[];for(const e of t){const t=lD.getMatcher(e);this.configMatchers.push(t),t instanceof cD&&(this.routeKindToConcreteConfigMatchers.set(t.definition.routeKind,t),t.definition.defaultRoute&&(this.defaultRouteConfig=t))}}validateRouteConfigs(t){const e=t.filter(rD),n=e.filter((t=>t.defaultRoute));if(n.length>1){const t=n.map((({path:t})=>t)).join(", ");throw new RangeError(`There are more than one defaultRoutes. ${t}`)}if(1===n.length){const{path:t}=n[0];if(Boolean(sD(t).find((({isParam:t})=>t))))throw new RangeError(`A defaultRoute cannot have any params. ${t}`)}const o=new Set;for(const{routeKind:t}of e){if(o.has(t))throw new RangeError(`Multiple route configuration for kind: ${t}. Configurations should have unique routeKinds`);o.add(t)}}match(t){var e;if(!t.pathname.startsWith("/"))throw new RangeError('Navigation has to made with pathname that starts with "/"');let n,o=uD(t.pathname),i=0,a=!1;for(;;){let t=!1;for(const e of this.configMatchers){const i=e.match(o);if(i.result){t=!0;const{params:r,pathParts:s,isRedirection:l}=i;if(l){o=s,a=!0,n=i.redirectionQueryParams;break}if(!(e instanceof cD))throw new RangeError("No concrete route definition `match` return redirection");const{definition:c}=e,d={routeKind:c.routeKind,params:r,pathname:fD(s),deepLinkProvider:c.deepLinkProvider||null};return Object.assign(Object.assign({},d),a?{originateFromRedirection:!0,redirectionOnlyQueryParams:n}:{originateFromRedirection:!1})}}if(a&&i++,!t||i>this.maxRedirection)break}if(i>this.maxRedirection)throw new Error(`Potential redirection loop (redirecting more than ${this.maxRedirection} times. Please do not have cycles in the routes.`);if(this.defaultRouteConfig){const{definition:t}=this.defaultRouteConfig;return{routeKind:t.routeKind,deepLinkProvider:null!==(e=t.deepLinkProvider)&&void 0!==e?e:null,pathname:t.path,params:{},originateFromRedirection:a}}return null}matchByRouteKind(t,e){const n=this.routeKindToConcreteConfigMatchers.get(t);if(!n)throw new RangeError(`Requires configuration for routeKind: ${t}`);return{routeKind:t,params:e,pathname:fD(n.matchByParams(e).pathParts),deepLinkProvider:n.definition.deepLinkProvider||null,originateFromRedirection:!1}}}function uD(t){return t.split("/").slice(1)}function fD(t){return"/"+t.join("/")}const gD=new Nr("[App Routing] Route Config");class hD{constructor(t){if(this.routeConfigs=null,this.routeKindToNgComponent=new Map,!t)return;const e=[];for(const n of t)for(const t of n)e.push(t);this.routeConfigs=new mD(e),e.forEach((t=>{rD(t)&&this.routeKindToNgComponent.set(t.routeKind,t.ngComponent)}))}getRouteConfigs(){return this.routeConfigs}getNgComponentByRouteKind(t){return this.routeKindToNgComponent.get(t)||null}static registerRoutes(t){return{ngModule:hD,providers:[{provide:gD,multi:!0,useFactory:t}]}}}hD.ɵfac=function t(e){return new(e||hD)(us(gD,8))},hD.ɵmod=Zo({type:hD}),hD.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db(hD,[{type:k_,args:[{}]}],(function(){return[{type:void 0,decorators:[{type:_s},{type:ys,args:[gD]}]}]}),null);const bD="app_routing",yD=Fk(bD),_D=zk(yD,(t=>t.activeRoute)),CD=zk(yD,(t=>t.nextRoute)),MD=zk(_D,(t=>t?t.routeKind:jS.NOT_SET)),vD=zk(_D,(t=>t?t.params:{})),xD=zk(MD,vD,((t,e)=>GS(t,e))),OD=zk(MD,vD,((t,e)=>YS(t,e))),PD=zk(MD,vD,((t,e)=>{if(t!==jS.COMPARE_EXPERIMENT)return{};const n=(function o(t){const e=new Map,n=WS(t.experimentIds);for(const{id:t,name:o}of n)e.set(t,o);return e})(e);return Object.fromEntries(n.entries())})),wD=Ww("[App Routing] Effects Init");class kD{constructor(t,e,n,o,i,a){this.actions$=t,this.store=e,this.location=n,this.programmaticalNavModule=i,this.appRootProvider=a,this.onNavigationRequested$=this.actions$.pipe(xS(eD),ht((t=>{const e=t.pathname.startsWith("/")?this.appRootProvider.getAbsPathnameWithAppRoot(t.pathname):this.location.getResolvedPath(t.pathname);return Object.assign(Object.assign({},t),{pathname:e})}))),this.onInit$=this.actions$.pipe(xS(wD)).pipe(be(0),ht((()=>({pathname:this.location.getPath(),queryParams:this.location.getSearch(),replaceState:!0,browserInitiated:!0})))),this.userInitNavRoute$=Wt(this.onNavigationRequested$,this.onInit$,this.location.onPopState().pipe(ht((t=>({pathname:t.pathname,replaceState:t.replaceState,browserInitiated:!0}))))).pipe(ht((t=>{if(!t.pathname.startsWith("/"))throw new Error(`[App routing] pathname must start with '/'. Got: ${t.pathname}`);return Object.assign(Object.assign({},t),{pathname:this.appRootProvider.getAppRootlessPathname(t.pathname)})})),ht((t=>({routeMatch:this.routeConfigs?this.routeConfigs.match(t):null,options:{replaceState:t.replaceState,browserInitiated:t.browserInitiated}})))),this.programmticalNavRoute$=this.actions$.pipe(ht((t=>this.programmaticalNavModule.getNavigation(t))),Gt((t=>null!==t)),ht((t=>{const e=t,n=e.routeKind;let o;switch(e.routeKind){case jS.COMPARE_EXPERIMENT:o={experimentIds:(i=e.routeParams.aliasAndExperimentIds,i.map((({alias:t,id:e})=>`${t}:${e}`)).join(","))};break;default:o=e.routeParams}var i;return{routeKind:n,routeParams:o}})),ht((({routeKind:t,routeParams:e})=>({routeMatch:this.routeConfigs?this.routeConfigs.matchByRouteKind(t,e):null,options:{replaceState:!1,browserInitiated:!1}})))),this.validatedRoute$=Wt(this.userInitNavRoute$,this.programmticalNavRoute$).pipe(Gt((({routeMatch:t})=>Boolean(t))),ht((t=>({routeMatch:t.routeMatch,options:t.options})))),this.navigate$=gS((()=>this.validatedRoute$.pipe(_n((({routeMatch:t,options:e})=>{if(e.browserInitiated&&t.deepLinkProvider){const e=t.originateFromRedirection&&t.redirectionOnlyQueryParams?t.redirectionOnlyQueryParams:this.location.getSearch(),n=t.deepLinkProvider.deserializeQueryParams(e);this.store.dispatch(tD({routeKind:t.routeKind,partialState:n}))}})),dn((({routeMatch:t,options:e})=>{var n;const o={replaceState:null!==(n=e.replaceState)&&void 0!==n&&n},i=Z({routeKind:t.routeKind,params:t.params,pathname:t.pathname,queryParams:[],navigationOptions:o});return null===t.deepLinkProvider?i:t.deepLinkProvider.serializeStateToQueryParams(this.store).pipe(ht(((e,n)=>({routeKind:t.routeKind,params:t.params,pathname:t.pathname,queryParams:e,navigationOptions:0===n?o:Object.assign(Object.assign({},o),{replaceState:!0})}))))})),_n((t=>{this.store.dispatch(nD({after:t}))})),de(0)).pipe(kn(this.store.select(_D)),ht((([t,e])=>({preserveHash:null===e||null===t||YS(e.routeKind,e.params)===YS(t.routeKind,t.params),route:t}))),_n((({preserveHash:t,route:e})=>{!(function n(t,e){return t.pathname===e.pathname&&t.queryParams.length===e.queryParams.length&&t.queryParams.every(((t,n)=>{const o=e.queryParams[n];return t.key===o.key&&t.value===o.value}))})(e,{pathname:this.appRootProvider.getAppRootlessPathname(this.location.getPath()),queryParams:this.location.getSearch()})&&(e.navigationOptions.replaceState?this.location.replaceState(this.appRootProvider.getAbsPathnameWithAppRoot(this.location.getFullPathFromRouteOrNav(e,t))):this.location.pushState(this.appRootProvider.getAbsPathnameWithAppRoot(this.location.getFullPathFromRouteOrNav(e,t))))}))).pipe(kn(this.store.select(_D)),ht((([{route:t},e])=>oD({before:e,after:t})))))),this.routeConfigs=o.getRouteConfigs()}ngrxOnInitEffects(){return wD()}}kD.ɵfac=function t(e){return new(e||kD)(us(vS),us(Ek),us(ZS),us(hD),us(aD),us(XS))},kD.ɵprov=lo({token:kD,factory:kD.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(kD,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:ZS},{type:hD},{type:aD},{type:XS}]}),null);const SD=mS({activeRoute:null,nextRoute:null},pS(nD,((t,{after:e})=>Object.assign(Object.assign({},t),{nextRoute:e}))),pS(oD,((t,{after:e})=>Object.assign(Object.assign({},t),{activeRoute:e,nextRoute:null}))));function DD(t,e){return SD(t,e)}class ED{}ED.ɵfac=function t(e){return new(e||ED)},ED.ɵmod=Zo({type:ED}),ED.ɵinj=co({providers:[aD],imports:[[hD,iS.forFeature(bD,DD),LS.forFeature([kD]),$S,QS]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(ED,{imports:[hD,oS,FS,$S,QS]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(ED,[{type:k_,args:[{imports:[hD,iS.forFeature(bD,DD),LS.forFeature([kD]),$S,QS],providers:[aD]}]}],null,null);
/**
     * @license Angular v11.2.14
     * (c) 2010-2021 Google LLC. https://angular.io/
     * License: MIT
     */
class AD{}class RD{}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class TD{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach((t=>{const e=t.indexOf(":");if(e>0){const n=t.slice(0,e),o=n.toLowerCase(),i=t.slice(e+1).trim();this.maybeSetNormalizedName(n,o),this.headers.has(o)?this.headers.get(o).push(i):this.headers.set(o,[i])}}))}:()=>{this.headers=new Map,Object.keys(t).forEach((e=>{let n=t[e];const o=e.toLowerCase();"string"==typeof n&&(n=[n]),n.length>0&&(this.headers.set(o,n),this.maybeSetNormalizedName(e,o))}))}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof TD?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach((t=>this.applyUpdate(t))),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach((e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))}))}clone(t){const e=new TD;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof TD?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,e);const o=("a"===t.op?this.headers.get(e):void 0)||[];o.push(...n),this.headers.set(e,o);break;case"d":const i=t.value;if(i){let t=this.headers.get(e);if(!t)return;t=t.filter((t=>-1===i.indexOf(t))),0===t.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,t)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach((e=>t(this.normalizedNames.get(e),this.headers.get(e))))}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class ND{encodeKey(t){return ID(t)}encodeValue(t){return ID(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}function ID(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}class zD{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new ND,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=(function e(t,n){const o=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach((t=>{const e=t.indexOf("="),[i,a]=-1==e?[n.decodeKey(t),""]:[n.decodeKey(t.slice(0,e)),n.decodeValue(t.slice(e+1))],r=o.get(i)||[];r.push(a),o.set(i,r)})),o})(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach((e=>{const n=t.fromObject[e];this.map.set(e,Array.isArray(n)?n:[n])}))):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach((n=>{const o=t[n];Array.isArray(o)?o.forEach((t=>{e.push({param:n,value:t,op:"a"})})):e.push({param:n,value:o,op:"a"})})),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map((t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map((t=>e+"="+this.encoder.encodeValue(t))).join("&")})).filter((t=>""!==t)).join("&")}clone(t){const e=new zD({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach((t=>this.map.set(t,this.cloneFrom.map.get(t)))),this.updates.forEach((t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(t.value),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let e=this.map.get(t.param)||[];const n=e.indexOf(t.value);-1!==n&&e.splice(n,1),e.length>0?this.map.set(t.param,e):this.map.delete(t.param)}}})),this.cloneFrom=this.updates=null)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function HD(t){return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function FD(t){return"undefined"!=typeof Blob&&t instanceof Blob}function LD(t){return"undefined"!=typeof FormData&&t instanceof FormData}class BD{constructor(t,e,n,o){let i;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),(function a(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}})(this.method)||o?(this.body=void 0!==n?n:null,i=o):i=n,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.params&&(this.params=i.params)),this.headers||(this.headers=new TD),this.params){const t=this.params.toString();if(0===t.length)this.urlWithParams=e;else{const n=e.indexOf("?");this.urlWithParams=e+(-1===n?"?":n<e.length-1?"&":"")+t}}else this.params=new zD,this.urlWithParams=e}serializeBody(){return null===this.body?null:HD(this.body)||FD(this.body)||LD(this.body)||"string"==typeof this.body?this.body:this.body instanceof zD?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return null===this.body||LD(this.body)?null:FD(this.body)?this.body.type||null:HD(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof zD?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||"boolean"==typeof this.body?"application/json":null}clone(t={}){const e=t.method||this.method,n=t.url||this.url,o=t.responseType||this.responseType,i=void 0!==t.body?t.body:this.body,a=void 0!==t.withCredentials?t.withCredentials:this.withCredentials,r=void 0!==t.reportProgress?t.reportProgress:this.reportProgress;let s=t.headers||this.headers,l=t.params||this.params;return void 0!==t.setHeaders&&(s=Object.keys(t.setHeaders).reduce(((e,n)=>e.set(n,t.setHeaders[n])),s)),t.setParams&&(l=Object.keys(t.setParams).reduce(((e,n)=>e.set(n,t.setParams[n])),l)),new BD(e,n,i,{params:l,headers:s,reportProgress:r,responseType:o,withCredentials:a})}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */var VD;!(function(t){t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User"})(VD||(VD={}));class jD{constructor(t,e=200,n="OK"){this.headers=t.headers||new TD,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class UD extends jD{constructor(t={}){super(t),this.type=VD.ResponseHeader}clone(t={}){return new UD({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class WD extends jD{constructor(t={}){super(t),this.type=VD.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new WD({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class GD extends jD{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function YD(t,e){return{body:e,headers:t.headers,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}class qD{constructor(t){this.handler=t}request(t,e,n={}){let o;if(t instanceof BD)o=t;else{let i,a;i=n.headers instanceof TD?n.headers:new TD(n.headers),n.params&&(a=n.params instanceof zD?n.params:new zD({fromObject:n.params})),o=new BD(t,e,void 0!==n.body?n.body:null,{headers:i,params:a,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials})}const i=Z(o).pipe((function a(t,e){return"function"==typeof e?Tt(t,e,1):Tt(t,1)})((t=>this.handler.handle(t))));if(t instanceof BD||"events"===n.observe)return i;const r=i.pipe(Gt((t=>t instanceof WD)));switch(n.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return r.pipe(ht((t=>{if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return t.body})));case"blob":return r.pipe(ht((t=>{if(null!==t.body&&!(t.body instanceof Blob))throw new Error("Response is not a Blob.");return t.body})));case"text":return r.pipe(ht((t=>{if(null!==t.body&&"string"!=typeof t.body)throw new Error("Response is not a string.");return t.body})));case"json":default:return r.pipe(ht((t=>t.body)))}case"response":return r;default:throw new Error(`Unreachable: unhandled observe type ${n.observe}}`)}}delete(t,e={}){return this.request("DELETE",t,e)}get(t,e={}){return this.request("GET",t,e)}head(t,e={}){return this.request("HEAD",t,e)}jsonp(t,e){return this.request("JSONP",t,{params:(new zD).append(e,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,e={}){return this.request("OPTIONS",t,e)}patch(t,e,n={}){return this.request("PATCH",t,YD(n,e))}post(t,e,n={}){return this.request("POST",t,YD(n,e))}put(t,e,n={}){return this.request("PUT",t,YD(n,e))}}qD.ɵfac=function t(e){return new(e||qD)(us(AD))},qD.ɵprov=lo({token:qD,factory:qD.ɵfac}),qD.ctorParameters=()=>[{type:AD}],("undefined"==typeof ngDevMode||ngDevMode)&&db(qD,[{type:Jm}],(function(){return[{type:AD}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class ZD{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const XD=new Nr("HTTP_INTERCEPTORS");class KD{intercept(t,e){return e.handle(t)}}KD.ɵfac=function t(e){return new(e||KD)},KD.ɵprov=lo({token:KD,factory:KD.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(KD,[{type:Jm}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let JD=0;class QD{}class $D{constructor(t,e){this.callbackMap=t,this.document=e,this.resolvedPromise=Promise.resolve()}nextCallback(){return"ng_jsonp_callback_"+JD++}handle(t){if("JSONP"!==t.method)throw new Error("JSONP requests must use JSONP request method.");if("json"!==t.responseType)throw new Error("JSONP requests must use Json response type.");return new y((e=>{const n=this.nextCallback(),o=t.urlWithParams.replace(/=JSONP_CALLBACK(&|$)/,`=${n}$1`),i=this.document.createElement("script");i.src=o;let a=null,r=!1,s=!1;this.callbackMap[n]=t=>{delete this.callbackMap[n],s||(a=t,r=!0)};const l=()=>{i.parentNode&&i.parentNode.removeChild(i),delete this.callbackMap[n]},c=t=>{s||this.resolvedPromise.then((()=>{l(),r?(e.next(new WD({body:a,status:200,statusText:"OK",url:o})),e.complete()):e.error(new GD({url:o,status:0,statusText:"JSONP Error",error:new Error("JSONP injected script did not invoke callback.")}))}))},d=t=>{s||(l(),e.error(new GD({error:t,status:0,statusText:"JSONP Error",url:o})))};return i.addEventListener("load",c),i.addEventListener("error",d),this.document.body.appendChild(i),e.next({type:VD.Sent}),()=>{s=!0,i.removeEventListener("load",c),i.removeEventListener("error",d),l()}}))}}$D.ɵfac=function t(e){return new(e||$D)(us(QD),us(UC))},$D.ɵprov=lo({token:$D,factory:$D.ɵfac}),$D.ctorParameters=()=>[{type:QD},{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db($D,[{type:Jm}],(function(){return[{type:QD},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);class tE{constructor(t){this.jsonp=t}intercept(t,e){return"JSONP"===t.method?this.jsonp.handle(t):e.handle(t)}}tE.ɵfac=function t(e){return new(e||tE)(us($D))},tE.ɵprov=lo({token:tE,factory:tE.ɵfac}),tE.ctorParameters=()=>[{type:$D}],("undefined"==typeof ngDevMode||ngDevMode)&&db(tE,[{type:Jm}],(function(){return[{type:$D}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const eE=/^\)\]\}',?\n/;class nE{}class oE{constructor(){}build(){return new XMLHttpRequest}}oE.ɵfac=function t(e){return new(e||oE)},oE.ɵprov=lo({token:oE,factory:oE.ɵfac}),oE.ctorParameters=()=>[],("undefined"==typeof ngDevMode||ngDevMode)&&db(oE,[{type:Jm}],(function(){return[]}),null);class iE{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new y((e=>{const n=this.xhrFactory.build();if(n.open(t.method,t.urlWithParams),t.withCredentials&&(n.withCredentials=!0),t.headers.forEach(((t,e)=>n.setRequestHeader(t,e.join(",")))),t.headers.has("Accept")||n.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){const e=t.detectContentTypeHeader();null!==e&&n.setRequestHeader("Content-Type",e)}if(t.responseType){const e=t.responseType.toLowerCase();n.responseType="json"!==e?e:"text"}const o=t.serializeBody();let i=null;const a=()=>{if(null!==i)return i;const e=1223===n.status?204:n.status,o=n.statusText||"OK",a=new TD(n.getAllResponseHeaders()),r=(function s(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null})(n)||t.url;return i=new UD({headers:a,status:e,statusText:o,url:r}),i},r=()=>{let{headers:o,status:i,statusText:r,url:s}=a(),l=null;204!==i&&(l=void 0===n.response?n.responseText:n.response),0===i&&(i=l?200:0);let c=i>=200&&i<300;if("json"===t.responseType&&"string"==typeof l){const t=l;l=l.replace(eE,"");try{l=""!==l?JSON.parse(l):null}catch(e){l=t,c&&(c=!1,l={error:e,text:l})}}c?(e.next(new WD({body:l,headers:o,status:i,statusText:r,url:s||void 0})),e.complete()):e.error(new GD({error:l,headers:o,status:i,statusText:r,url:s||void 0}))},s=t=>{const{url:o}=a(),i=new GD({error:t,status:n.status||0,statusText:n.statusText||"Unknown Error",url:o||void 0});e.error(i)};let l=!1;const c=o=>{l||(e.next(a()),l=!0);let i={type:VD.DownloadProgress,loaded:o.loaded};o.lengthComputable&&(i.total=o.total),"text"===t.responseType&&n.responseText&&(i.partialText=n.responseText),e.next(i)},d=t=>{let n={type:VD.UploadProgress,loaded:t.loaded};t.lengthComputable&&(n.total=t.total),e.next(n)};return n.addEventListener("load",r),n.addEventListener("error",s),n.addEventListener("timeout",s),n.addEventListener("abort",s),t.reportProgress&&(n.addEventListener("progress",c),null!==o&&n.upload&&n.upload.addEventListener("progress",d)),n.send(o),e.next({type:VD.Sent}),()=>{n.removeEventListener("error",s),n.removeEventListener("abort",s),n.removeEventListener("load",r),n.removeEventListener("timeout",s),t.reportProgress&&(n.removeEventListener("progress",c),null!==o&&n.upload&&n.upload.removeEventListener("progress",d)),n.readyState!==n.DONE&&n.abort()}}))}}iE.ɵfac=function t(e){return new(e||iE)(us(nE))},iE.ɵprov=lo({token:iE,factory:iE.ɵfac}),iE.ctorParameters=()=>[{type:nE}],("undefined"==typeof ngDevMode||ngDevMode)&&db(iE,[{type:Jm}],(function(){return[{type:nE}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const aE=new Nr("XSRF_COOKIE_NAME"),rE=new Nr("XSRF_HEADER_NAME");class sE{}class lE{constructor(t,e,n){this.doc=t,this.platform=e,this.cookieName=n,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=$M(t,this.cookieName),this.lastCookieString=t),this.lastToken}}lE.ɵfac=function t(e){return new(e||lE)(us(UC),us(H_),us(aE))},lE.ɵprov=lo({token:lE,factory:lE.ɵfac}),lE.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:String,decorators:[{type:ys,args:[H_]}]},{type:String,decorators:[{type:ys,args:[aE]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(lE,[{type:Jm}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:String,decorators:[{type:ys,args:[H_]}]},{type:String,decorators:[{type:ys,args:[aE]}]}]}),null);class cE{constructor(t,e){this.tokenService=t,this.headerName=e}intercept(t,e){const n=t.url.toLowerCase();if("GET"===t.method||"HEAD"===t.method||n.startsWith("http://")||n.startsWith("https://"))return e.handle(t);const o=this.tokenService.getToken();return null===o||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,o)})),e.handle(t)}}cE.ɵfac=function t(e){return new(e||cE)(us(sE),us(rE))},cE.ɵprov=lo({token:cE,factory:cE.ɵfac}),cE.ctorParameters=()=>[{type:sE},{type:String,decorators:[{type:ys,args:[rE]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(cE,[{type:Jm}],(function(){return[{type:sE},{type:String,decorators:[{type:ys,args:[rE]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class dE{constructor(t,e){this.backend=t,this.injector=e,this.chain=null}handle(t){if(null===this.chain){const t=this.injector.get(XD,[]);this.chain=t.reduceRight(((t,e)=>new ZD(t,e)),this.backend)}return this.chain.handle(t)}}function pE(){return"object"==typeof window?window:{}}dE.ɵfac=function t(e){return new(e||dE)(us(RD),us(Qp))},dE.ɵprov=lo({token:dE,factory:dE.ɵfac}),dE.ctorParameters=()=>[{type:RD},{type:Qp}],("undefined"==typeof ngDevMode||ngDevMode)&&db(dE,[{type:Jm}],(function(){return[{type:RD},{type:Qp}]}),null);class mE{static disable(){return{ngModule:mE,providers:[{provide:cE,useClass:KD}]}}static withOptions(t={}){return{ngModule:mE,providers:[t.cookieName?{provide:aE,useValue:t.cookieName}:[],t.headerName?{provide:rE,useValue:t.headerName}:[]]}}}mE.ɵfac=function t(e){return new(e||mE)},mE.ɵmod=Zo({type:mE}),mE.ɵinj=co({providers:[cE,{provide:XD,useExisting:cE,multi:!0},{provide:sE,useClass:lE},{provide:aE,useValue:"XSRF-TOKEN"},{provide:rE,useValue:"X-XSRF-TOKEN"}]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(mE,[{type:k_,args:[{providers:[cE,{provide:XD,useExisting:cE,multi:!0},{provide:sE,useClass:lE},{provide:aE,useValue:"XSRF-TOKEN"},{provide:rE,useValue:"X-XSRF-TOKEN"}]}]}],null,null);class uE{}uE.ɵfac=function t(e){return new(e||uE)},uE.ɵmod=Zo({type:uE}),uE.ɵinj=co({providers:[qD,{provide:AD,useClass:dE},iE,{provide:RD,useExisting:iE},oE,{provide:nE,useExisting:oE}],imports:[[mE.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(uE,{imports:[mE]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(uE,[{type:k_,args:[{imports:[mE.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})],providers:[qD,{provide:AD,useClass:dE},iE,{provide:RD,useExisting:iE},oE,{provide:nE,useExisting:oE}]}]}],null,null);class fE{}fE.ɵfac=function t(e){return new(e||fE)},fE.ɵmod=Zo({type:fE}),fE.ɵinj=co({providers:[$D,{provide:QD,useFactory:pE},{provide:XD,useClass:tE,multi:!0}]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fE,[{type:k_,args:[{providers:[$D,{provide:QD,useFactory:pE},{provide:XD,useClass:tE,multi:!0}]}]}],null,null);const gE="feature",hE=Fk(gE),bE=zk(hE,(t=>t.isFeatureFlagsLoaded)),yE=zk(hE,(t=>Object.assign(Object.assign({},t.defaultFlags),t.flagOverrides))),_E=zk(hE,(t=>t.flagOverrides||{})),CE=zk(yE,(t=>t.isAutoDarkModeAllowed)),ME=zk(yE,(t=>null!==t.enableDarkModeOverride?t.enableDarkModeOverride:t.defaultEnableDarkMode)),vE=zk(yE,(t=>t.enableDarkModeOverride)),xE=zk(yE,(t=>t.enabledExperimentalPlugins)),OE=zk(yE,(t=>t.inColab)),PE=zk(yE,(t=>t.enabledColorGroup)),wE=zk(yE,(t=>t.enabledColorGroupByRegex)),kE=zk(yE,(t=>t.metricsImageSupportEnabled));function SE(t){const e={};for(const[n,o]of t.entries())e[n]=o;return e}function DE(t){let e=t.headers||new TD;return e=e.append("X-XSRF-Protected","1"),Object.assign(Object.assign({},t),{headers:e})}zk(yE,(t=>t.enabledLinkedTime));class EE{constructor(t,e,n){this.appRootProvider=t,this.http=e,this.store=n}resolveAppRoot(t){return t.startsWith("/")?this.appRootProvider.getAbsPathnameWithAppRoot(t):t}get(t,e={}){return this.http.get(this.resolveAppRoot(t),e)}post(t,e,n={}){return n=DE(n),this.store.select(bE).pipe(Gt((t=>Boolean(t))),Ne(1),kn(this.store.select(OE)),Tt((([,o])=>{const i=this.resolveAppRoot(t);return o?this.http.get(i,{headers:n.headers,params:SE(e)}):this.http.post(i,e,n)})))}put(t,e,n={}){return this.http.put(this.resolveAppRoot(t),e,DE(n))}delete(t,e={}){return this.http.delete(this.resolveAppRoot(t),DE(e))}}EE.ɵfac=function t(e){return new(e||EE)(us(XS),us(qD),us(Ek))},EE.ɵprov=lo({token:EE,factory:EE.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(EE,[{type:Jm}],(function(){return[{type:XS},{type:qD},{type:Ek}]}),null);class AE{}var RE,TE,NE;AE.ɵfac=function t(e){return new(e||AE)},AE.ɵmod=Zo({type:AE}),AE.ɵinj=co({providers:[EE],imports:[[uE,$S]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(AE,{imports:[uE,$S]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(AE,[{type:k_,args:[{imports:[uE,$S],providers:[EE]}]}],null,null),(function(t){t.STEP="step",t.WALL_TIME="wall_time",t.RELATIVE="relative"})(RE||(RE={})),(function(t){t.OFFSET="offset",t.OVERLAY="overlay"})(TE||(TE={})),(function(t){t.UNKNOWN="UNKNOWN",t.NOT_FOUND="NOT_FOUND"})(NE||(NE={}));const IE=new Nr("TensorBoard brand name");function zE(t){let e=NE.UNKNOWN;return t instanceof GD&&404===t.status&&(e=NE.NOT_FOUND),X(new HE(e))}class HE{constructor(t){this.failureCode=t}}class FE{constructor(t){this.http=t,this.tfBackend=document.createElement("tf-backend").tf_backend}fetchPluginsListing(t){const e=(function n(t){if(!t.length)return null;const e=new URLSearchParams;for(const n of t)e.append("experimentalPlugin",n);return e})(t),o=e?`data/plugins_listing?${e.toString()}`:"data/plugins_listing";return this.http.get(o).pipe(re(zE))}fetchEnvironment(){return Lt([this.http.get("data/environment"),Rt(this.tfBackend.environmentStore.refresh())]).pipe(ht((([t])=>t)),re(zE))}}FE.ɵfac=function t(e){return new(e||FE)(us(EE))},FE.ɵprov=lo({token:FE,factory:FE.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(FE,[{type:Jm}],(function(){return[{type:EE}]}),null);class LE{}var BE;LE.ɵfac=function t(e){return new(e||LE)},LE.ɵmod=Zo({type:LE}),LE.ɵinj=co({providers:[FE],imports:[[AE]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(LE,{imports:[AE]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(LE,[{type:k_,args:[{imports:[AE],providers:[FE]}]}],null,null),(function(t){t[t.NOT_LOADED=0]="NOT_LOADED",t[t.LOADED=1]="LOADED",t[t.LOADING=2]="LOADING",t[t.FAILED=3]="FAILED"})(BE||(BE={}));const VE=Ww("[Core] Plugin Changed",{_as:"props",_p:void 0}),jE=Ww("[Core] Plugin Url Hash Changed",{_as:"props",_p:void 0}),UE=Ww("[Core] Loaded"),WE=Ww("[Core] User Triggered Reload"),GE=Ww("[Core] Auto Reload"),YE=Ww("[Core] PluginListing Fetch Requested"),qE=Ww("[Core] PluginListing Fetch Successful",{_as:"props",_p:void 0}),ZE=Ww("[Core] PluginListing Fetch Failed",{_as:"props",_p:void 0}),XE=Ww("[Core] Polymer Component Runs Fetch Requested"),KE=Ww("[Core] Polymer Component Runs Fetch Successful"),JE=Ww("[Core] Polymer Component Runs Fetch Failed"),QE=Ww("[Core] Environment Fetch Successful",{_as:"props",_p:void 0}),$E=Ww("[Core] Run Selection Changed",{_as:"props",_p:void 0}),tA=Ww("[Core] Run Fetch Successful",{_as:"props",_p:void 0}),eA="core",nA={activePlugin:null,plugins:{},coreDataLoadState:{state:BE.NOT_LOADED,lastLoadedTimeInMs:null},pluginsListLoaded:{state:BE.NOT_LOADED,lastLoadedTimeInMs:null,failureCode:null},environment:{data_location:"",window_title:""},polymerRunsLoadState:{state:BE.NOT_LOADED,lastLoadedTimeInMs:null},polymerInteropRuns:[],polymerInteropRunSelection:new Set},oA=mS(nA,pS(VE,jE,((t,{plugin:e})=>Object.assign(Object.assign({},t),{activePlugin:e}))),pS(YE,(t=>Object.assign(Object.assign({},t),{coreDataLoadState:Object.assign(Object.assign({},t.coreDataLoadState),{state:BE.LOADING}),pluginsListLoaded:Object.assign(Object.assign({},t.pluginsListLoaded),{state:BE.LOADING})}))),pS(ZE,((t,{failureCode:e})=>Object.assign(Object.assign({},t),{coreDataLoadState:Object.assign(Object.assign({},t.coreDataLoadState),{state:BE.FAILED}),pluginsListLoaded:Object.assign(Object.assign({},t.pluginsListLoaded),{state:BE.FAILED,failureCode:e})}))),pS(qE,((t,{plugins:e})=>{const n=Object.keys(e).find((t=>e[t].enabled))||null,o=t.activePlugin||n,i=Date.now();let a=t.coreDataLoadState;return t.polymerRunsLoadState.state===BE.LOADED&&(a={state:BE.LOADED,lastLoadedTimeInMs:i}),Object.assign(Object.assign({},t),{activePlugin:o,coreDataLoadState:a,plugins:e,pluginsListLoaded:{state:BE.LOADED,lastLoadedTimeInMs:i,failureCode:null}})})),pS(XE,(t=>Object.assign(Object.assign({},t),{coreDataLoadState:Object.assign(Object.assign({},t.coreDataLoadState),{state:BE.LOADING}),polymerRunsLoadState:Object.assign(Object.assign({},t.polymerRunsLoadState),{state:BE.LOADING})}))),pS(KE,(t=>{const e=Date.now();let n=t.coreDataLoadState;return t.pluginsListLoaded.state===BE.LOADED&&(n={state:BE.LOADED,lastLoadedTimeInMs:e}),Object.assign(Object.assign({},t),{coreDataLoadState:n,polymerRunsLoadState:Object.assign(Object.assign({},t.polymerRunsLoadState),{state:BE.LOADED,lastLoadedTimeInMs:e})})})),pS(JE,(t=>Object.assign(Object.assign({},t),{coreDataLoadState:Object.assign(Object.assign({},t.coreDataLoadState),{state:BE.FAILED}),polymerRunsLoadState:Object.assign(Object.assign({},t.polymerRunsLoadState),{state:BE.FAILED})}))),pS(QE,((t,{environment:e})=>Object.assign(Object.assign({},t),{environment:e}))),pS(tA,((t,{runs:e})=>Object.assign(Object.assign({},t),{polymerInteropRuns:e}))),pS($E,((t,{nextSelection:e})=>Object.assign(Object.assign({},t),{polymerInteropRunSelection:new Set(e)}))));function iA(t,e){return oA(t,e)}const aA=Fk(eA),rA=zk(aA,(t=>t.pluginsListLoaded)),sA=zk(aA,(t=>t.polymerRunsLoadState)),lA=zk(aA,(t=>t.coreDataLoadState.state)),cA=zk(aA,(t=>t.coreDataLoadState.lastLoadedTimeInMs)),dA=zk(aA,(t=>t.activePlugin)),pA=zk(aA,(t=>t.plugins)),mA=zk(aA,(t=>t.environment)),uA=new Set([jS.COMPARE_EXPERIMENT,jS.EXPERIMENT,jS.NOT_SET]);class fA{constructor(t,e,n){this.actions$=t,this.store=e,this.webappDataSource=n,this.tfBackend={ref:document.createElement("tf-backend").tf_backend},this.onDashboardLoad$=Wt(this.actions$.pipe(xS(UE,oD),kn(this.store.select(OD)),ke((([,t],[,e])=>t===e))),this.actions$.pipe(xS(GE,WE))).pipe(kn(this.store.select(MD)),Gt((([,t])=>uA.has(t))),xn(1,void 0,{leading:!0})),this.fetchWebAppData$=gS((()=>Wt(this.onDashboardLoad$.pipe(kn(this.store.select(rA),this.store.select(xE)),Gt((([,{state:t}])=>t!==BE.LOADING)),_n((()=>this.store.dispatch(YE()))),Tt((([,,t])=>(function e(...t){let e;return"function"==typeof t[t.length-1]&&(e=t.pop()),q(t,void 0).lift(new Kt(e))})(this.webappDataSource.fetchPluginsListing(t),this.fetchEnvironment()).pipe(ht((([t])=>{this.store.dispatch(qE({plugins:t}))})),re((t=>(this.store.dispatch(ZE(t instanceof HE?{failureCode:t.failureCode}:{failureCode:NE.UNKNOWN})),U))))))),this.onDashboardLoad$.pipe(ht((([,t])=>t)),dn((t=>t!==jS.COMPARE_EXPERIMENT?Z([]):this.store.select(PD).pipe(ke(((t,e)=>{const n=Object.entries(t),o=new Map(Object.entries(e));if(n.length!==o.size)return!1;for(const[t,e]of n)if(o.get(t)!==e)return!1;return!0})),be(0),xn(500,void 0,{leading:!0,trailing:!0})))),kn(this.store.select(MD),this.store.select(sA)),Gt((([,t,e])=>uA.has(t)&&e.state!==BE.LOADING)),_n((()=>{this.store.dispatch(XE())})),dn((()=>this.refreshPolymerRuns())),_n((()=>{this.store.dispatch(KE())})),re((()=>(this.store.dispatch(JE()),U)))))),{dispatch:!1}),this.dispatchChangePlugin$=gS((()=>Wt(this.onDashboardLoad$,this.actions$.pipe(xS(qE))).pipe(kn(this.store.select(dA)),ht((([,t])=>t)),ke(),Gt((t=>null!==t)),Ne(1),_n((t=>{this.store.dispatch(VE({plugin:t}))})))),{dispatch:!1})}refreshPolymerRuns(){return Rt(this.tfBackend.ref.runsStore.refresh())}fetchEnvironment(){return this.webappDataSource.fetchEnvironment().pipe(_n((t=>{this.store.dispatch(QE({environment:t}))})))}}fA.ɵfac=function t(e){return new(e||fA)(us(vS),us(Ek),us(FE))},fA.ɵprov=lo({token:fA,factory:fA.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fA,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:FE}]}),null);const gA=new Nr("Core Feature Config");function hA(t){return{initialState:Object.assign(Object.assign({},nA),{activePlugin:t.getPluginId()||null})}}class bA{}const yA="__tab__";class _A{constructor(){this.tfStorage=document.createElement("tf-storage"),document.createElement("tf-globals").tf_globals.setUseHash(!0),this.tfStorage.tf_storage.migrateLegacyURLScheme()}getString(t){return this.tfStorage.tf_storage.getString(t)}setString(t,e,n){this.tfStorage.tf_storage.setString(t,e,n)}getPluginId(){return this.getString(yA)}setPluginId(t,e){this.setString(yA,t,e)}}_A.ɵfac=function t(e){return new(e||_A)},_A.ɵprov=lo({token:_A,factory:_A.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(_A,[{type:Jm}],(function(){return[]}),null);class CA{}CA.ɵfac=function t(e){return new(e||CA)},CA.ɵmod=Zo({type:CA}),CA.ɵinj=co({providers:[{provide:gA,deps:[bA],useFactory:hA}],imports:[[LS.forFeature([fA]),iS.forFeature(eA,iA,gA),LE]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(CA,{imports:[FS,oS,LE]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(CA,[{type:k_,args:[{imports:[LS.forFeature([fA]),iS.forFeature(eA,iA,gA),LE],providers:[{provide:gA,deps:[bA],useFactory:hA}]}]}],null,null);const MA=new Nr("[Alert] Action-To-Alert Provider");class vA{constructor(t){this.providers=new Map;for(const e of t||[])for(const t of e){if(this.providers.has(t.actionCreator.type))throw new RangeError(`"${t.actionCreator.type}" is already registered for alerts. Multiple alerts for the same action is not allowed.`);this.providers.set(t.actionCreator.type,t.alertFromAction)}}getAlertFromAction(t){const e=this.providers.get(t.type);return e?e(t):null}static registerAlertActions(t){return{ngModule:vA,providers:[{provide:MA,multi:!0,useFactory:t}]}}}vA.ɵfac=function t(e){return new(e||vA)(us(MA,8))},vA.ɵmod=Zo({type:vA}),vA.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db(vA,[{type:k_,args:[{}]}],(function(){return[{type:void 0,decorators:[{type:_s},{type:ys,args:[MA]}]}]}),null);const xA="hparams",OA=Ww("[Runs] Fetch Runs Requested",{_as:"props",_p:void 0}),PA=Ww("[Runs] Fetch Runs Succeeded",{_as:"props",_p:void 0}),wA=Ww("[Runs] Fetch Runs Failed",{_as:"props",_p:void 0}),kA=Ww("[Runs] Run Selection Toggled",{_as:"props",_p:void 0}),SA=Ww("[Runs] Run Page Selection Toggled",{_as:"props",_p:void 0}),DA=Ww("[Runs] Runs Select All",{_as:"props",_p:void 0}),EA=Ww("[Runs] Run Selector Pagination Option Changed",{_as:"props",_p:void 0}),AA=Ww("[Runs] Run Selector Sort Changed",{_as:"props",_p:void 0}),RA=Ww("[Runs] Run Selector Regex Filter Changed",{_as:"props",_p:void 0}),TA=Ww("[Runs] Run Color Changed",{_as:"props",_p:void 0}),NA=Ww("[Runs] Run Table Shown",{_as:"props",_p:void 0}),IA=Ww("[Runs] Run Group By Changed",{_as:"props",_p:void 0});var zA,HA,FA,LA;!(function(t){t.DATASET_UNKNOWN="DATASET_UNKNOWN",t.DATASET_TRAINING="DATASET_TRAINING",t.DATASET_VALIDATION="DATASET_VALIDATION"})(zA||(zA={})),(function(t){t.STATUS_UNKNOWN="STATUS_UNKNOWN",t.STATUS_SUCCESS="STATUS_SUCCESS",t.STATUS_FAILURE="STATUS_FAILURE",t.STATUS_RUNNING="STATUS_RUNNING"})(HA||(HA={})),(function(t){t.DATA_TYPE_UNSET="DATA_TYPE_UNSET",t.DATA_TYPE_STRING="DATA_TYPE_STRING",t.DATA_TYPE_BOOL="DATA_TYPE_BOOL",t.DATA_TYPE_FLOAT64="DATA_TYPE_FLOAT64"})(FA||(FA={})),(function(t){t[t.DISCRETE=0]="DISCRETE",t[t.INTERVAL=1]="INTERVAL"})(LA||(LA={}));class BA{}BA.ɵfac=function t(e){return new(e||BA)},BA.ɵprov=lo({token:BA,factory:BA.ɵfac,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(BA,[{type:Jm,args:[{providedIn:"root"}]}],null,null);const VA=Ww("[Hparams] Hparams Discrete Hparam Filter Changed",{_as:"props",_p:void 0}),jA=Ww("[Hparams] Hparams Interval Hparam Filter Changed",{_as:"props",_p:void 0}),UA=Ww("[Hparams] Hparams Metric Filter Changed",{_as:"props",_p:void 0});function WA(t){return JSON.stringify([...t].sort())}function GA(t){var e,n,o,i;const a=new Map,r=new Map,s=new Map;for(const a of t)for(const[t,l]of a)if(l.type===LA.DISCRETE){const{possibleValues:e,values:n}=r.get(t)||{possibleValues:new Set,values:new Set};for(const t of l.filterValues)n.add(t);for(const t of l.possibleValues)e.add(t);r.set(t,{possibleValues:e,values:n})}else{const a=s.get(t);s.set(t,{filterLowerValue:Math.min(l.filterLowerValue,null!==(e=null==a?void 0:a.filterLowerValue)&&void 0!==e?e:1/0),filterUpperValue:Math.max(l.filterUpperValue,null!==(n=null==a?void 0:a.filterUpperValue)&&void 0!==n?n:-1/0),minValue:Math.min(l.minValue,null!==(o=null==a?void 0:a.minValue)&&void 0!==o?o:1/0),maxValue:Math.max(l.maxValue,null!==(i=null==a?void 0:a.maxValue)&&void 0!==i?i:-1/0)})}for(const[t,{values:e,possibleValues:n}]of r)a.set(t,{type:LA.DISCRETE,includeUndefined:!0,possibleValues:[...n],filterValues:[...e]});for(const[t,{minValue:e,maxValue:n,filterLowerValue:o,filterUpperValue:i}]of s){if(a.has(t))throw new RangeError(`Cannot combine hparam, ${t}, as it is of mixed types.`);a.set(t,{type:LA.INTERVAL,includeUndefined:!0,minValue:e,maxValue:n,filterLowerValue:o,filterUpperValue:i})}return a}function YA(t){var e,n,o,i;const a=new Map;for(const r of t)for(const[t,s]of r){const r=a.get(t);a.set(t,Object.assign(Object.assign({type:LA.INTERVAL,includeUndefined:!0},r),{minValue:Math.min(s.minValue,null!==(e=null==r?void 0:r.minValue)&&void 0!==e?e:1/0),maxValue:Math.max(s.maxValue,null!==(n=null==r?void 0:r.maxValue)&&void 0!==n?n:-1/0),filterLowerValue:Math.min(s.filterLowerValue,null!==(o=null==r?void 0:r.filterLowerValue)&&void 0!==o?o:1/0),filterUpperValue:Math.max(s.filterUpperValue,null!==(i=null==r?void 0:r.filterUpperValue)&&void 0!==i?i:-1/0)}))}return a}const qA=mS({specs:{},filters:{}},pS(VA,((t,e)=>{var n;const{experimentIds:o,hparamName:i,filterValues:a,includeUndefined:r}=e,s=WA(o),l=null!==(n=t.filters[s])&&void 0!==n?n:{hparams:new Map},c=l.hparams.get(i);if(c&&c.type!==LA.DISCRETE)throw new RangeError(`New discrete filter of ${i} conflicts existing filter of `+LA[c.type]);const d=GA(o.filter((e=>Boolean(t.specs[e]))).map((e=>t.specs[e].hparam.defaultFilters))).get(i);if(!d)throw new Error(`Cannot set hparam, ${i}, when it is not known for experimentIds: ${o.join(", ")}`);if(d.type!==LA.DISCRETE)throw new Error(`Cannot set ${i} when default filter is not of discrete type.`);const p=new Set(d.possibleValues),m=[...a].filter((t=>!p.has(t)));if(m.length)throw new Error(`New filter for ${i} has more than one value that is not present in the spec. Bad values: ${m.join(", ")}`);const u=new Map(l.hparams);return u.set(i,Object.assign(Object.assign({},c),{type:LA.DISCRETE,includeUndefined:r,possibleValues:[...p],filterValues:a})),Object.assign(Object.assign({},t),{filters:Object.assign(Object.assign({},t.filters),{[s]:Object.assign(Object.assign({},l),{hparams:u})})})})),pS(jA,((t,e)=>{var n;const{experimentIds:o,hparamName:i,filterLowerValue:a,filterUpperValue:r,includeUndefined:s}=e,l=WA(o),c=null!==(n=t.filters[l])&&void 0!==n?n:{metrics:new Map,hparams:new Map},d=c.hparams.get(i);if(d&&d.type!==LA.INTERVAL)throw new RangeError(`New interval filter of ${i} conflicts existing filter of `+LA[d.type]);const p=GA(o.filter((e=>Boolean(t.specs[e]))).map((e=>t.specs[e].hparam.defaultFilters))).get(i);if(!p)throw new Error(`Cannot set hpara, ${i}, when it is not known for experimentIds: ${o.join(", ")}`);if(p.type!==LA.INTERVAL)throw new Error(`Cannot set ${i} when default filter is not of interval type.`);const m=new Map(c.hparams);return m.set(i,Object.assign(Object.assign({},d),{type:LA.INTERVAL,includeUndefined:s,minValue:p.minValue,maxValue:p.maxValue,filterLowerValue:a,filterUpperValue:r})),Object.assign(Object.assign({},t),{filters:Object.assign(Object.assign({},t.filters),{[l]:Object.assign(Object.assign({},c),{hparams:m})})})})),pS(UA,((t,e)=>{var n;const{experimentIds:o,metricTag:i,filterLowerValue:a,filterUpperValue:r,includeUndefined:s}=e,l=WA(o),c=null!==(n=t.filters[l])&&void 0!==n?n:{metrics:new Map,hparams:new Map},d=YA(o.filter((e=>Boolean(t.specs[e]))).map((e=>t.specs[e].metric.defaultFilters))).get(i);if(!d)throw new Error(`Cannot set metric, ${i}, when it is not known for experimentIds: ${o.join(", ")}`);const p=c.metrics.get(i),m=new Map(c.metrics);return m.set(i,Object.assign(Object.assign({},p),{type:LA.INTERVAL,includeUndefined:s,minValue:d.minValue,maxValue:d.maxValue,filterLowerValue:a,filterUpperValue:r})),Object.assign(Object.assign({},t),{filters:Object.assign(Object.assign({},t.filters),{[l]:Object.assign(Object.assign({},c),{metrics:m})})})})),pS(PA,((t,e)=>{var n,o,i,a;if(0===Object.keys(e.newRunsAndMetadata).length)return t;const r=Object.assign({},t.specs),s=new Map,l=new Set;for(const t of Object.keys(e.newRunsAndMetadata)){const c=new Map,d=new Map,p=new Map,m=new Map,{runs:u,metadata:f}=e.newRunsAndMetadata[t];for(const t of u){const e=f.runToHparamsAndMetrics[t.id];if(e)for(const t of e.metrics){const e=s.get(t.tag);s.set(t.tag,{min:e?Math.min(e.min,t.value):t.value,max:e?Math.max(e.max,t.value):t.value})}}for(const{name:t,domain:e}of f.hparamSpecs)if(e.type===LA.DISCRETE){const n=p.get(t)||new Set;for(const t of e.values)n.add(t);p.set(t,n)}else{const n=m.get(t);m.set(t,{minValue:n?Math.min(e.minValue,n.minValue):e.minValue,maxValue:n?Math.max(e.maxValue,n.maxValue):e.maxValue})}for(const t of f.metricSpecs)l.add(t.tag);for(const[t,e]of p)c.set(t,{type:LA.DISCRETE,includeUndefined:!0,possibleValues:[...e],filterValues:[...e]});for(const[t,{minValue:e,maxValue:n}]of m)c.set(t,{type:LA.INTERVAL,includeUndefined:!0,minValue:e,maxValue:n,filterLowerValue:e,filterUpperValue:n});for(const t of l){const e=s.get(t),i=null!==(n=null==e?void 0:e.min)&&void 0!==n?n:0,a=null!==(o=null==e?void 0:e.max)&&void 0!==o?o:0;d.set(t,{type:LA.INTERVAL,includeUndefined:!0,minValue:i,maxValue:a,filterLowerValue:i,filterUpperValue:a})}r[t]={hparam:Object.assign(Object.assign({},null===(i=r[t])||void 0===i?void 0:i.hparam),{specs:f.hparamSpecs,defaultFilters:c}),metric:Object.assign(Object.assign({},null===(a=r[t])||void 0===a?void 0:a.metric),{specs:f.metricSpecs,defaultFilters:d})}}return Object.assign(Object.assign({},t),{specs:r})})));function ZA(t,e){return qA(t,e)}class XA{}XA.ɵfac=function t(e){return new(e||XA)},XA.ɵmod=Zo({type:XA}),XA.ɵinj=co({imports:[[iS.forFeature(xA,ZA)]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(XA,{imports:[oS]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(XA,[{type:k_,args:[{imports:[iS.forFeature(xA,ZA)]}]}],null,null);class KA{}function JA(t,e){return`${e}/${t}`}KA.ɵfac=function t(e){return new(e||KA)},KA.ɵmod=Zo({type:KA}),KA.ɵinj=co({imports:[[XA]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(KA,{imports:[XA]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(KA,[{type:k_,args:[{imports:[XA]}]}],null,null);class QA{constructor(t){this.http=t}fetchRuns(t){return this.http.get("data/runs").pipe(ht((e=>e.map((e=>({id:JA(e,t),name:e,startTime:0}))))))}fetchHparamsMetadata(t){return Z({hparamSpecs:[],metricSpecs:[],runToHparamsAndMetrics:{}})}}QA.ɵfac=function t(e){return new(e||QA)(us(EE))},QA.ɵprov=lo({token:QA,factory:QA.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(QA,[{type:Jm}],(function(){return[{type:EE}]}),null);class $A{}$A.ɵfac=function t(e){return new(e||$A)},$A.ɵmod=Zo({type:$A}),$A.ɵinj=co({providers:[{provide:BA,useClass:QA}]}),("undefined"==typeof ngDevMode||ngDevMode)&&db($A,[{type:k_,args:[{providers:[{provide:BA,useClass:QA}]}]}],null,null);const tR="alerts",eR=zk(Fk(tR),(t=>t.latestAlert)),nR="experiments",oR=zk(Fk(nR),(t=>t.data)),iR=zk(oR,((t,e)=>{const{experimentId:n}=e;return t.experimentMap[n]||null}));
/*! *****************************************************************************
    Copyright (c) Microsoft Corporation.

    Permission to use, copy, modify, and/or distribute this software for any
    purpose with or without fee is hereby granted.

    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.
    ***************************************************************************** */
function aR(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(o=Object.getOwnPropertySymbols(t);i<o.length;i++)e.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(t,o[i])&&(n[o[i]]=t[o[i]])}return n}function rR(t,e,n,o){return new(n||(n=Promise))((function(i,a){function r(t){try{l(o.next(t))}catch(t){a(t)}}function s(t){try{l(o.throw(t))}catch(t){a(t)}}function l(t){t.done?i(t.value):(function e(t){return t instanceof n?t:new n((function(e){e(t)}))})(t.value).then(r,s)}l((o=o.apply(t,e||[])).next())}))}var sR,lR,cR;!(function(t){t.SCALARS="scalars",t.HISTOGRAMS="histograms",t.IMAGES="images"})(sR||(sR={})),(function(t){t.DEFAULT="default",t.ASCENDING="ascending",t.DESCENDING="descending",t.NEAREST="nearest"})(lR||(lR={})),(function(t){t[t.STEP=0]="STEP",t[t.RELATIVE=1]="RELATIVE",t[t.WALL_TIME=2]="WALL_TIME"})(cR||(cR={}));const dR="timeseries",pR=[sR.IMAGES];function mR(t){return pR.includes(t)}const uR=[sR.HISTOGRAMS,sR.IMAGES];function fR(t){return uR.includes(t)}function gR(t){return fR(t.plugin)}class hR{}function bR(t){return t.hasOwnProperty("error")}const yR="data/plugin/timeseries";function _R(t){const e=t.indexOf("/");return{run:t.substring(e+1),experimentId:t.substring(0,e)}}function CR(t,e){return`${e}/${t}`}function MR(t,e){const{runToSeries:n,run:o}=t,i=aR(t,["runToSeries","run"]),a=Object.assign({},i);return n&&(a.runToSeries=vR(n,e)),o&&(a.runId=CR(o,e)),a}function vR(t,e){const n={};for(const o in t)t.hasOwnProperty(o)&&(n[CR(o,e)]=t[o]);return n}class xR{constructor(t,e){this.http=t,this.store=e}fetchTagMetadata(t){const e=t.map((t=>this.http.get(`/experiment/${t}/${yR}/tags`).pipe(ht((e=>(function n(t,e){const n={};for(const o of Object.keys(t)){const i=o;if(mR(i)){const o=t[i],{tagRunSampledInfo:a}=o,r=aR(o,["tagRunSampledInfo"]),s={};for(const t in a)a.hasOwnProperty(t)&&(s[t]=vR(a[t],e));n[i]=Object.assign(Object.assign({},r),{tagRunSampledInfo:s})}else{const o=t[i],{runTagInfo:a}=o,r=aR(o,["runTagInfo"]);n[i]=Object.assign(Object.assign({},r),{runTagInfo:vR(a,e)})}}return n})(e,t)))))),n=this.store.select(bE).pipe(Gt(Boolean),Ne(1),kn(this.store.select(kE)),ht((([,t])=>t)));return Lt(e).pipe(kn(n),ht((([t,e])=>{const n=(function o(t){const e={};for(const n of t)for(const t of Object.values(sR))if(mR(t)){e[t]=e[t]||{tagDescriptions:{},tagRunSampledInfo:{}};const{tagDescriptions:o,tagRunSampledInfo:i}=n[t];e[t].tagDescriptions=Object.assign(Object.assign({},e[t].tagDescriptions),o);const a=e[t].tagRunSampledInfo;for(const t of Object.keys(i)){a[t]=a[t]||{};for(const e of Object.keys(i[t]))a[t][e]=i[t][e]}}else{e[t]=e[t]||{tagDescriptions:{},runTagInfo:{}};const{tagDescriptions:o,runTagInfo:i}=n[t];e[t].tagDescriptions=Object.assign(Object.assign({},e[t].tagDescriptions),o),e[t].runTagInfo=Object.assign(Object.assign({},e[t].runTagInfo),i)}return e})(t);return e||(n[sR.IMAGES]={tagDescriptions:{},tagRunSampledInfo:{}}),n})))}fetchTimeSeries(t){const e=t.map((t=>{if(fR(t.plugin)){const e=t,{runId:n}=e,o=aR(e,["runId"]),{run:i,experimentId:a}=_R(n),r=Object.assign(Object.assign({},o),{run:i});return this.fetchTimeSeriesBackendRequest(r,a).pipe(ht((({response:t,experimentId:e})=>MR(t,e))))}const e=t,{experimentIds:n}=e,o=aR(e,["experimentIds"]);return Lt(n.map((t=>this.fetchTimeSeriesBackendRequest(o,t)))).pipe(ht((t=>{const e=aR(t[0].response,["runToSeries","error"]);for(const{response:n,experimentId:o}of t){const t=MR(n,o);if(e.error)continue;const{runToSeries:i,error:a}=t;if(a)e.error=a,e.runToSeries=void 0;else{e.runToSeries=e.runToSeries||{};for(const t of Object.keys(i))e.runToSeries[t]=i[t]}}return e})))}));return Lt(e)}fetchTimeSeriesBackendRequest(t,e){const n=new FormData;return n.append("requests",JSON.stringify([t])),this.http.post(`/experiment/${e}/${yR}/timeSeries`,n).pipe(ht((t=>({response:t[0],experimentId:e}))))}imageUrl(t){return`${yR}/imageData?imageId=${t}`}downloadUrl(t,e,n,o){const{run:i,experimentId:a}=_R(n);let r;switch(t){case sR.SCALARS:r="scalars/scalars";break;default:throw new Error(`Not implemented: downloadUrl for ${t} is not implemented yet`)}if(!a)throw new Error("experimentId is empty; it is required to form downloadUrl.");return`/experiment/${a}/data/plugin/${r}?${new URLSearchParams({tag:e,run:i,format:o})}`}}var OR;xR.ɵfac=function t(e){return new(e||xR)(us(EE),us(Ek))},xR.ɵprov=lo({token:xR,factory:xR.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(xR,[{type:Jm}],(function(){return[{type:EE},{type:Ek}]}),null),(function(t){t.BROWSER_DEFAULT="browser_default",t.LIGHT="light",t.DARK="dark"})(OR||(OR={}));const PR=Ww("[Persistent Settings] Global Settings Loaded",{_as:"props",_p:void 0}),wR=new Nr("[Persistent Settings] Global Settings");class kR{constructor(t){this.globalSettingSelectors=[],t&&(this.globalSettingSelectors=t.map((t=>t())))}getGlobalSettingSelectors(){var t;return null!==(t=this.globalSettingSelectors)&&void 0!==t?t:[]}static defineGlobalSetting(t){return{ngModule:kR,providers:[{provide:wR,multi:!0,useValue:t}]}}}kR.ɵfac=function t(e){return new(e||kR)(us(wR,8))},kR.ɵmod=Zo({type:kR}),kR.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db(kR,[{type:k_}],(function(){return[{type:Array,decorators:[{type:_s},{type:ys,args:[wR]}]}]}),null);class SR{setItem(t,e){localStorage.setItem(t,e)}getItem(t){return localStorage.getItem(t)}removeItem(t){localStorage.removeItem(t)}}SR.ɵfac=function t(e){return new(e||SR)},SR.ɵprov=lo({token:SR,factory:SR.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(SR,[{type:Jm}],null,null);class DR{}DR.ɵfac=function t(e){return new(e||DR)},DR.ɵmod=Zo({type:DR}),DR.ɵinj=co({providers:[SR]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(DR,[{type:k_,args:[{providers:[SR]}]}],null,null);const ER="_tb_global_settings.timeseries",AR="_tb_global_settings",RR="notificationLastReadTimestamp";class TR{}TR.ɵfac=function t(e){return new(e||TR)},TR.ɵprov=lo({token:TR,factory:TR.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(TR,[{type:Jm}],null,null);class NR{}NR.ɵfac=function t(e){return new(e||NR)},NR.ɵprov=lo({token:NR,factory:NR.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(NR,[{type:Jm}],null,null);class IR extends NR{uiToBackend(t){return{ignoreOutliers:t.ignoreOutliers,scalarSmoothing:t.scalarSmoothing,tooltipSort:t.tooltipSortString,autoReload:t.autoReload,autoReloadPeriodInMs:t.autoReloadPeriodInMs,paginationSize:t.pageSize,theme:t.themeOverride,notificationLastReadTimeInMs:t.notificationLastReadTimeInMs}}backendToUi(t){const e={};return t.hasOwnProperty("scalarSmoothing")&&"number"==typeof t.scalarSmoothing&&(e.scalarSmoothing=t.scalarSmoothing),t.hasOwnProperty("ignoreOutliers")&&"boolean"==typeof t.ignoreOutliers&&(e.ignoreOutliers=t.ignoreOutliers),t.hasOwnProperty("tooltipSort")&&"string"==typeof t.tooltipSort&&(e.tooltipSortString=t.tooltipSort),t.hasOwnProperty("autoReload")&&"boolean"==typeof t.autoReload&&(e.autoReload=t.autoReload),t.hasOwnProperty("autoReloadPeriodInMs")&&"number"==typeof t.autoReloadPeriodInMs&&(e.autoReloadPeriodInMs=t.autoReloadPeriodInMs),t.hasOwnProperty("paginationSize")&&"number"==typeof t.paginationSize&&(e.pageSize=t.paginationSize),t.hasOwnProperty("theme")&&"string"==typeof t.theme&&new Set(Object.values(OR)).has(t.theme)&&(e.themeOverride=t.theme),t.hasOwnProperty("notificationLastReadTimeInMs")&&"number"==typeof t.notificationLastReadTimeInMs&&(e.notificationLastReadTimeInMs=t.notificationLastReadTimeInMs),e}}IR.ɵfac=function t(e){return zR(e||IR)},IR.ɵprov=lo({token:IR,factory:IR.ɵfac});const zR=vr(IR);("undefined"==typeof ngDevMode||ngDevMode)&&db(IR,[{type:Jm}],null,null);class HR{constructor(t,e){this.localStorage=t,this.converter=e}setSettings(t){return Object.keys(t)?this.getSettings().pipe(_n((e=>{this.localStorage.setItem(AR,JSON.stringify(this.converter.uiToBackend(Object.assign(Object.assign({},e),t)))),this.localStorage.removeItem(ER),this.localStorage.removeItem(RR)})),ht((()=>{}))):U}deserialize(t){try{return JSON.parse(t)}catch(t){return{}}}getSettings(){var t,e;const n=this.localStorage.getItem(RR),o=this.converter.backendToUi(this.deserialize(n?JSON.stringify({notificationLastReadTimeInMs:Number(n)}):"{}")),i=this.converter.backendToUi(this.deserialize(null!==(t=this.localStorage.getItem(ER))&&void 0!==t?t:"{}")),a=this.converter.backendToUi(this.deserialize(null!==(e=this.localStorage.getItem(AR))&&void 0!==e?e:"{}"));return Z(Object.assign(Object.assign(Object.assign({},o),i),a))}}HR.ɵfac=function t(e){return new(e||HR)(us(SR),us(NR))},HR.ɵprov=lo({token:HR,factory:HR.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(HR,[{type:Jm}],(function(){return[{type:SR},{type:NR}]}),null);class FR{}FR.ɵfac=function t(e){return new(e||FR)},FR.ɵmod=Zo({type:FR}),FR.ɵinj=co({providers:[{provide:TR,useClass:HR},{provide:NR,useClass:IR}],imports:[[DR]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(FR,{imports:[DR]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(FR,[{type:k_,args:[{imports:[DR],providers:[{provide:TR,useClass:HR},{provide:NR,useClass:IR}]}]}],null,null);const LR=Ww("[Persistent Settings] Effects Init");class BR{constructor(t,e,n,o){this.actions$=t,this.store=e,this.configModule=n,this.dataSource=o,this.initializeAndUpdateSettings$=gS((()=>{const t=this.actions$.pipe(xS(LR),Tt((()=>this.dataSource.getSettings())),_n((t=>{this.store.dispatch(PR({partialSettings:t}))})),be(0),Tt((()=>Wt(...this.configModule.getGlobalSettingSelectors().map((t=>this.store.select(t).pipe(ke(((t,e)=>{const n=Object.values(t),o=Object.values(e);return n.length===o.length&&n.every(((t,e)=>t===o[e]))})),rn(1))))))),on());return t.pipe((function e(t){return function e(n){return n.lift(new ie(t))}})(t.pipe(de(500))),Tt((t=>{const e={};for(const n of t)Object.assign(e,n);return this.dataSource.setSettings(e)})))}),{dispatch:!1})}ngrxOnInitEffects(){return LR()}}BR.ɵfac=function t(e){return new(e||BR)(us(vS),us(Ek),us(kR),us(TR))},BR.ɵprov=lo({token:BR,factory:BR.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(BR,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:kR},{type:TR}]}),null);class VR{}VR.ɵfac=function t(e){return new(e||VR)},VR.ɵmod=Zo({type:VR}),VR.ɵinj=co({providers:[kR],imports:[[LS.forFeature([BR]),FR]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(VR,{imports:[FS,FR]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(VR,[{type:k_,args:[{imports:[LS.forFeature([BR]),FR],providers:[kR]}]}],null,null);class jR{}jR.ɵfac=function t(e){return new(e||jR)},jR.ɵprov=lo({token:jR,factory:jR.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jR,[{type:Jm}],null,null);const UR="experimentalPlugin",WR="scalarsBatchSize",GR="enableColorGroup",YR="enableColorGroupByRegex",qR="darkMode",ZR="enableLinkTime",XR=new URLSearchParams(window.location.search);class KR{getParams(){return XR}}KR.ɵfac=function t(e){return new(e||KR)},KR.ɵprov=lo({token:KR,factory:KR.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(KR,[{type:Jm}],null,null);class JR{constructor(t){this.queryParams=t}getFeatures(t=!1){const e=this.queryParams.getParams(),n=t?this.getPartialFeaturesFromMediaQuery():{};return e.has(UR)&&(n.enabledExperimentalPlugins=e.getAll(UR)),e.has("tensorboardColab")&&(n.inColab="true"===e.get("tensorboardColab")),e.has(WR)&&(n.scalarsBatchSize=Number(e.get(WR))),e.has(GR)&&(n.enabledColorGroup="false"!==e.get(GR)),e.has(YR)&&(n.enabledColorGroupByRegex="false"!==e.get(YR)),e.has(qR)&&(n.defaultEnableDarkMode="false"!==e.get(qR)),e.has(ZR)&&(n.enabledLinkedTime="false"!==e.get(ZR)),n}getPartialFeaturesFromMediaQuery(){const t={};return window.matchMedia("(prefers-color-scheme: dark)").matches&&(t.defaultEnableDarkMode=!0),t}}JR.ɵfac=function t(e){return new(e||JR)(us(KR))},JR.ɵprov=lo({token:JR,factory:JR.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(JR,[{type:Jm}],(function(){return[{type:KR}]}),null);class QR{}QR.ɵfac=function t(e){return new(e||QR)},QR.ɵmod=Zo({type:QR}),QR.ɵinj=co({providers:[JR,KR,{provide:jR,useClass:JR}]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(QR,[{type:k_,args:[{providers:[JR,KR,{provide:jR,useClass:JR}]}]}],null,null);const $R=Ww("[FEATURE FLAG] Partial Feature Flags Loaded",{_as:"props",_p:void 0}),tT=Ww("[FEATURE FLAG] Enable Dark Mode Override Changed",{_as:"props",_p:void 0}),eT=Ww("[FEATURE FLAG] Effects Init");class nT{constructor(t,e,n){this.actions$=t,this.store=e,this.dataSource=n,this.getFeatureFlags$=gS((()=>this.actions$.pipe(xS(eT),ce(this.store.select(CE)),ht((([,t])=>{const e=this.dataSource.getFeatures(t);return $R({features:e})})))))}ngrxOnInitEffects(){return eT()}}nT.ɵfac=function t(e){return new(e||nT)(us(vS),us(Ek),us(jR))},nT.ɵprov=lo({token:nT,factory:nT.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(nT,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:jR}]}),null);const oT={isFeatureFlagsLoaded:!1,defaultFlags:{isAutoDarkModeAllowed:!0,defaultEnableDarkMode:!1,enableDarkModeOverride:null,enabledColorGroup:!1,enabledColorGroupByRegex:!1,enabledExperimentalPlugins:[],inColab:!1,scalarsBatchSize:void 0,metricsImageSupportEnabled:!0,enabledLinkedTime:!1},flagOverrides:{}},iT=new Nr("[Feature Flag] Store Config");function aT(){return{initialState:oT}}const rT=mS(oT,pS($R,((t,{features:e})=>Object.assign(Object.assign({},t),{isFeatureFlagsLoaded:!0,flagOverrides:Object.assign(Object.assign({},t.flagOverrides),e)}))),pS(tT,((t,{enableDarkMode:e})=>Object.assign(Object.assign({},t),{flagOverrides:Object.assign(Object.assign({},t.flagOverrides),{enableDarkModeOverride:e})}))),pS(PR,((t,{partialSettings:e})=>{if(!e.themeOverride)return t;let n;switch(e.themeOverride){case OR.BROWSER_DEFAULT:n=null;break;case OR.DARK:n=!0;break;case OR.LIGHT:n=!1}return Object.assign(Object.assign({},t),{flagOverrides:Object.assign(Object.assign({},t.flagOverrides),{enableDarkModeOverride:n})})})));function sT(t,e){return rT(t,e)}function lT(){return zk(vE,(t=>null===t?{themeOverride:OR.BROWSER_DEFAULT}:{themeOverride:t?OR.DARK:OR.LIGHT}))}class cT{}cT.ɵfac=function t(e){return new(e||cT)},cT.ɵmod=Zo({type:cT}),cT.ɵinj=co({providers:[{provide:iT,useFactory:aT}],imports:[[QR,iS.forFeature(gE,sT,iT),LS.forFeature([nT]),kR.defineGlobalSetting(lT)]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(cT,{imports:[QR,oS,FS,kR]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(cT,[{type:k_,args:[{imports:[QR,iS.forFeature(gE,sT,iT),LS.forFeature([nT]),kR.defineGlobalSetting(lT)],providers:[{provide:iT,useFactory:aT}]}]}],null,null);class dT{}function pT(t,e,n,o){return t[e].hasOwnProperty(n)?mR(e)?t[e][n].hasOwnProperty(o)?t[e][n][o]:null:t[e][n]:null}function mT(t,e,n,o){if(mR(e)){const i=Object.assign({},t[e]),a=(function i(t,e,n){const o=t.hasOwnProperty(e)?Object.assign({},t[e]):{},i=o.hasOwnProperty(n);return o[n]=i?Object.assign({},o[n]):{runToSeries:{},runToLoadState:{}},o})(i,n,o);return i[n]=a,i}const a=Object.assign({},t[e]),r=a.hasOwnProperty(n);return a[n]=r?Object.assign({},a[n]):{runToSeries:{},runToLoadState:{}},a}function uT(t){return JSON.stringify(t)}function fT(t,e,n){const o=Object.assign({},n);for(const n of e)o[n]=t;return o}function gT(t,e,n,o){if(mR(e)){const i=t[e].tagRunSampledInfo;return i.hasOwnProperty(n)?Object.keys(i[n]).filter((t=>o<i[n][t].maxSamplesPerStep)):[]}const i=t[e].tagToRuns;return i.hasOwnProperty(n)?i[n]:[]}function hT(t,e,n,o,i,a){const r=new Set(t),s=[];for(const o of t)for(const t of e)if((l=n[t]).plugin===(c=o).plugin&&l.tag===c.tag&&l.sample===c.sample&&(l.runId===c.runId||!l.runId&&!c.runId)){s.push(t),r.delete(o);break}var l,c;if(!s.length)return{unresolvedImportedPinnedCards:t,cardMetadataMap:n,cardToPinnedCopy:o,pinnedCardToOriginal:i,cardStepIndex:a};let d={cardToPinnedCopy:o,pinnedCardToOriginal:i,cardStepIndex:a,cardMetadataMap:n};for(const t of s)d=bT(t,d.cardToPinnedCopy,d.pinnedCardToOriginal,d.cardStepIndex,d.cardMetadataMap);return Object.assign(Object.assign({},d),{unresolvedImportedPinnedCards:[...r]})}function bT(t,e,n,o,i){if(e.has(t))return{cardToPinnedCopy:e,pinnedCardToOriginal:n,cardStepIndex:o,cardMetadataMap:i};const a=new Map(e),r=new Map(n),s=Object.assign({},o),l=Object.assign({},i),c=(function d(t){return JSON.stringify({baseCardId:t})})(t);a.set(t,c),r.set(c,t),o.hasOwnProperty(t)&&(s[c]=o[t]);const p=i[t];if(!p)throw new Error("Cannot pin a card without metadata");return l[c]=p,{cardToPinnedCopy:a,pinnedCardToOriginal:r,cardStepIndex:s,cardMetadataMap:l}}function yT(t){return t.pinnedCardToOriginal.size+t.unresolvedImportedPinnedCards.length<10}dT.ɵfac=function t(e){return new(e||dT)},dT.ɵmod=Zo({type:dT}),dT.ɵinj=co({providers:[{provide:hR,useClass:xR}],imports:[[cT,AE]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(dT,{imports:[cT,AE]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(dT,[{type:k_,args:[{imports:[cT,AE],providers:[{provide:hR,useClass:xR}]}]}],null,null);const _T="metrics",CT={tooltipSort:lR.DEFAULT,ignoreOutliers:!0,xAxisType:cR.STEP,scalarSmoothing:.6,scalarPartitionNonMonotonicX:!1,imageBrightnessInMilli:1e3,imageContrastInMilli:1e3,imageShowActualSize:!1,histogramMode:TE.OFFSET},MT=Fk(_T),vT=zk(MT,(t=>t.tagMetadataLoaded));zk(MT,(t=>t.tagMetadata));const xT=zk(MT,(t=>t.cardList)),OT=zk(MT,((t,e)=>{if(!t.cardMetadataMap.hasOwnProperty(e))return BE.NOT_LOADED;const{plugin:n,tag:o,runId:i,sample:a}=t.cardMetadataMap[e],r=pT(t.timeSeriesData,n,o,a);if(!r)return BE.NOT_LOADED;const s=r.runToLoadState;if(i)return s.hasOwnProperty(i)?s[i]:BE.NOT_LOADED;const l=gT(t.tagMetadata,n,o,a);if(!l.length)throw new Error("Cannot load a card whose tag has no runs");return l.every((t=>s[t]===BE.LOADED))?BE.LOADED:l.some((t=>s[t]===BE.LOADING))?BE.LOADING:BE.NOT_LOADED})),PT=zk(MT,((t,e)=>{if(!t.cardMetadataMap.hasOwnProperty(e))return null;const{plugin:n,tag:o,sample:i}=t.cardMetadataMap[e],a=pT(t.timeSeriesData,n,o,i);return a?a.runToSeries:null})),wT=zk(MT,(t=>t.cardMetadataMap)),kT=zk(wT,((t,e)=>t.hasOwnProperty(e)?t[e]:null)),ST=zk(MT,(t=>t.visibleCards)),DT=zk(ST,(t=>t)),ET=zk(xT,wT,((t,e)=>t.filter((t=>e.hasOwnProperty(t))).map((t=>Object.assign({cardId:t},e[t]))))),AT=zk(MT,((t,e)=>t.cardStepIndex.hasOwnProperty(e)?t.cardStepIndex[e]:null)),RT=zk(MT,(t=>t.cardToPinnedCopy)),TT=zk(MT,(t=>t.pinnedCardToOriginal)),NT=zk(RT,wT,((t,e)=>[...t.values()].filter((t=>e.hasOwnProperty(t))).map((t=>Object.assign({cardId:t},e[t]))))),IT=zk(RT,TT,((t,e,n)=>t.has(n)||e.has(n))),zT=zk(MT,(t=>t.unresolvedImportedPinnedCards)),HT=zk(MT,(t=>yT(t))),FT=zk(MT,(t=>Object.assign(Object.assign({},t.settings),t.settingOverrides))),LT=zk(MT,(t=>t.settingOverrides)),BT=zk(FT,(t=>t.tooltipSort)),VT=zk(FT,(t=>t.ignoreOutliers)),jT=zk(FT,(t=>t.xAxisType)),UT=zk(FT,(t=>t.histogramMode)),WT=zk(FT,(t=>t.scalarSmoothing)),GT=zk(FT,(t=>t.scalarPartitionNonMonotonicX)),YT=zk(FT,(t=>t.imageBrightnessInMilli)),qT=zk(FT,(t=>t.imageContrastInMilli)),ZT=zk(FT,(t=>t.imageShowActualSize)),XT=zk(MT,(t=>t.tagFilter)),KT=zk(MT,((t,e)=>Boolean(t.tagGroupExpanded.get(e))));var JT;zk(MT,(t=>t.selectedTime)),(function(t){t[t.NONE=0]="NONE",t[t.WHATS_NEW=1]="WHATS_NEW"})(JT||(JT={}));const QT=Fk("notification");zk(QT,(t=>t.notifications)),zk(QT,(t=>{var e;return null!==(e=t.lastReadTimestampInMs)&&void 0!==e?e:-1}));const $T="runs";var tN,eN;function nN(t){return JSON.stringify(t.slice().sort())}function oN(t,e,n){const o={},i=[],a={matches:o,nonMatches:i};switch(t.key){case eN.RUN:for(const t of e)o[t.id]=[t];break;case eN.EXPERIMENT:for(const t of e){const e=n[t.id],i=o[e]||[];i.push(t),o[e]=i}break;case eN.REGEX:if(!t.regexString)break;let a;try{a=new RegExp(t.regexString)}catch(t){break}for(const t of e){const e=t.name.match(a);if(e){const n=e.length>1?JSON.stringify(e.slice(1)):"pseudo_group",i=o[n]||[];i.push(t),o[n]=i}else i.push(t)}}return a}function iN(t,e){switch(t){case eN.REGEX:return{key:t,regexString:null!=e?e:""};case eN.RUN:case eN.EXPERIMENT:default:return{key:t}}}!(function(t){t[t.EXPERIMENT_NAME=0]="EXPERIMENT_NAME",t[t.HPARAM=1]="HPARAM",t[t.METRIC=2]="METRIC",t[t.RUN_NAME=3]="RUN_NAME"})(tN||(tN={})),(function(t){t[t.RUN=0]="RUN",t[t.EXPERIMENT=1]="EXPERIMENT",t[t.REGEX=2]="REGEX"})(eN||(eN={}));const aN=Fk($T),rN=zk(aN,(t=>t.data)),sN=zk(rN,((t,e)=>{var n;return null!==(n=t.runIdToExpId[e.runId])&&void 0!==n?n:null})),lN=zk(rN,((t,e)=>{var n;return null!==(n=t.runMetadata[e.runId])&&void 0!==n?n:null})),cN=zk(rN,((t,e)=>(t.runIds[e.experimentId]||[]).filter((e=>Boolean(t.runMetadata[e]))).map((e=>t.runMetadata[e])))),dN=zk(rN,((t,e)=>{var n;return null!==(n=t.runIds[e.experimentId])&&void 0!==n?n:[]})),pN=zk(rN,(t=>new Map(Object.entries(t.runMetadata)))),mN=zk(rN,((t,e)=>t.runsLoadState[e.experimentId]||{lastLoadedTimeInMs:null,state:BE.NOT_LOADED})),uN=zk(rN,((t,e)=>{const n=nN(e.experimentIds);return t.selectionState.get(n)||new Map})),fN=zk(rN,(t=>null!==t.userSetGroupByKey?iN(t.userSetGroupByKey,t.colorGroupRegexString):null)),gN=zk(fN,rN,((t,e)=>null!=t?t:e.initialGroupBy)),hN=zk(rN,(t=>t.regexFilter)),bN=zk(aN,(t=>t.ui)),yN=zk(bN,(t=>t.paginationOption)),_N=zk(bN,(t=>t.sort)),CN=zk(rN,(t=>{const e=new Map([...t.defaultRunColorForGroupBy,...t.runColorOverrideForGroupBy]),n={};return e.forEach(((t,e)=>{n[e]=t})),n})),MN=zk(rN,(t=>t.colorGroupRegexString)),vN=zk((t=>{const e=xD(t);return null===e?null:uN(t,{experimentIds:e})}),(t=>t));class xN{constructor(t,e,n){this.actions$=t,this.store=e,this.runsDataSource=n,this.loadRunsOnRunTableShown$=gS((()=>this.actions$.pipe(xS(NA),Tt((({experimentIds:t})=>this.getExperimentsWithLoadState(t,(t=>t===BE.FAILED||t===BE.NOT_LOADED)).pipe(Gt((t=>!!t.length)),Tt((e=>this.fetchAllRunsList(t,e)))))))),{dispatch:!1}),this.experimentsWithStaleRunsOnRouteChange$=this.actions$.pipe(xS(oD),kn(this.store.select(OD)),ke((([,t],[,e])=>t===e)),kn(this.store.select(xD)),Gt((([,t])=>!!t)),ht((([,t])=>t)),Tt((t=>this.getExperimentsWithLoadState(t,(t=>t===BE.FAILED||t===BE.NOT_LOADED)).pipe(ht((e=>({experimentIds:t,experimentIdsToBeFetched:e}))))))),this.experimentsWithStaleRunsOnReload$=this.actions$.pipe(xS(GE,WE),kn(this.store.select(xD)),Gt((([,t])=>!!t)),ht((([,t])=>t)),Tt((t=>this.getExperimentsWithLoadState(t,(t=>t!==BE.LOADING)).pipe(ht((e=>({experimentIds:t,experimentIdsToBeFetched:e}))))))),this.loadRunsOnNavigationOrReload$=gS((()=>Wt(this.experimentsWithStaleRunsOnRouteChange$,this.experimentsWithStaleRunsOnReload$).pipe(Tt((({experimentIds:t,experimentIdsToBeFetched:e})=>this.fetchAllRunsList(t,e))))),{dispatch:!1})}getRunsListLoadState(t){return this.store.select(mN,{experimentId:t}).pipe(Ne(1))}getExperimentsWithLoadState(t,e){return Lt(t.map((t=>this.getRunsListLoadState(t)))).pipe(ht((n=>t.filter(((t,o)=>e(n[o].state))))))}fetchAllRunsList(t,e){return Z({experimentIds:t,experimentIdsToBeFetched:e}).pipe(_n((()=>{this.store.dispatch(OA({experimentIds:t,requestedExperimentIds:e}))})),Tt((()=>{const n=new Set(e);return Lt(t.map((t=>n.has(t)?this.fetchRunsForExperiment(t):this.maybeWaitForRunsAndGetRuns(t))))})),ht((t=>{const e={},n=[];for(const o of t)n.push(...o.runs),o.fromRemote&&(e[o.experimentId]={runs:o.runs,metadata:o.metadata});return{newRunsAndMetadata:e,runsForAllExperiments:n}})),_n((({newRunsAndMetadata:e,runsForAllExperiments:n})=>{this.store.dispatch(PA({experimentIds:t,newRunsAndMetadata:e,runsForAllExperiments:n}))})),re((n=>(this.store.dispatch(wA({experimentIds:t,requestedExperimentIds:e})),Z(null)))),ht((()=>null)))}maybeWaitForRunsAndGetRuns(t){return this.store.select(mN,{experimentId:t}).pipe(Gt((t=>t.state!==BE.LOADING)),Ne(1),Tt((t=>t.state===BE.FAILED?X(new Error("Pending request failed")):Z(t))),kn(this.store.select(cN,{experimentId:t})),ht((([,e])=>({fromRemote:!1,experimentId:t,runs:e}))))}fetchRunsForExperiment(t){return Lt([this.runsDataSource.fetchRuns(t),this.runsDataSource.fetchHparamsMetadata(t)]).pipe(ht((([e,n])=>({fromRemote:!0,experimentId:t,runs:e,metadata:n}))))}}function ON(t,e,n){const o=Object.keys(t),i=Object.assign(Object.assign(Object.assign({},t),e),{privateRouteContextedState:{}});return{initialState:i,reducers:mS(i,pS(oD,((e,{before:i,after:a})=>{const r=YS(a.routeKind,a.params),s=i?YS(i.routeKind,i.params):null;if(s===r)return e;let l=Object.assign({},e.privateRouteContextedState);if(s){const t={};for(const n of o)t[n]=e[n];l=Object.assign(Object.assign({},l),{[s]:t})}let c=e.privateRouteContextedState&&e.privateRouteContextedState[r]?e.privateRouteContextedState[r]:null;s&&null===c&&(c=t);let d=Object.assign(Object.assign(Object.assign({},e),c),{privateRouteContextedState:l});return n?n(d,a):d})))}}var PN,wN;xN.ɵfac=function t(e){return new(e||xN)(us(vS),us(Ek),us(BA))},xN.ɵprov=lo({token:xN,factory:xN.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(xN,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:BA}]}),null),(function(t){t.ASC="asc",t.DESC="desc",t.UNSET=""})(PN||(PN={})),(function(t){t.USER="user",t.BEFORE="before",t.AFTER="after",t.REGEX="regex"})(wN||(wN={}));const kN=["#425066","#12b5cb","#e52592","#f9ab00","#9334e6","#7cb342","#e8710a"];function SN(...t){return(e,n)=>{let o=e;for(const e of t)o=e(o,n);return o}}const{initialState:DN,reducers:EN}=ON({runColorOverrideForGroupBy:new Map,defaultRunColorForGroupBy:new Map,groupKeyToColorString:new Map,initialGroupBy:{key:eN.RUN},userSetGroupByKey:null,colorGroupRegexString:"",regexFilter:""},{runIds:{},runIdToExpId:{},runMetadata:{},runsLoadState:{},selectionState:new Map},((t,e)=>Object.assign(Object.assign({},t),{initialGroupBy:{key:e.routeKind===jS.COMPARE_EXPERIMENT?eN.EXPERIMENT:eN.RUN}}))),AN=SN(mS(DN,pS(tD,((t,{routeKind:e,partialState:n})=>{var o;if(e!==jS.COMPARE_EXPERIMENT&&e!==jS.EXPERIMENT)return t;const i=n.runs.groupBy;if(!i)return t;const a=i.key===eN.REGEX?i.regexString:t.colorGroupRegexString;return Object.assign(Object.assign({},t),{colorGroupRegexString:a,userSetGroupByKey:null!==(o=i.key)&&void 0!==o?o:null})})),pS(OA,((t,e)=>{const n=Object.assign({},t.runsLoadState);for(const t of e.requestedExperimentIds)n[t]=Object.assign(Object.assign({lastLoadedTimeInMs:null},n[t]),{state:BE.LOADING});return Object.assign(Object.assign({},t),{runsLoadState:n})})),pS(PA,((t,e)=>{var n;const o=Object.assign({},t.runIds),i=Object.assign({},t.runMetadata),a=Object.assign({},t.runIdToExpId),r=Object.assign({},t.runsLoadState),s=new Map(t.selectionState);for(const t of Object.keys(e.newRunsAndMetadata)){const{runs:n,metadata:s}=e.newRunsAndMetadata[t];o[t]=n.map((({id:t})=>t)),r[t]=Object.assign(Object.assign({},r[t]),{lastLoadedTimeInMs:Date.now(),state:BE.LOADED});for(const e of n){const n=s.runToHparamsAndMetrics[e.id];i[e.id]=Object.assign(Object.assign({},e),{hparams:n?n.hparams:null,metrics:n?n.metrics:null}),a[e.id]=t}}const l=nN(e.experimentIds),c=new Map(null!==(n=s.get(l))&&void 0!==n?n:[]),d=e.runsForAllExperiments.length<=500;for(const t of e.runsForAllExperiments)c.has(t.id)||c.set(t.id,d);return s.set(l,c),Object.assign(Object.assign({},t),{runIds:o,runIdToExpId:a,runMetadata:i,runsLoadState:r,selectionState:s})})),pS(wA,((t,e)=>{const n=Object.assign({},t.runsLoadState);for(const t of e.requestedExperimentIds)n[t]=Object.assign(Object.assign({lastLoadedTimeInMs:null},n[t]),{state:BE.FAILED});return Object.assign(Object.assign({},t),{runsLoadState:n})})),pS(kA,((t,{experimentIds:e,runId:n})=>{var o;const i=nN(e),a=new Map(t.selectionState),r=new Map(null!==(o=a.get(i))&&void 0!==o?o:[]);return r.set(n,!Boolean(r.get(n))),a.set(i,r),Object.assign(Object.assign({},t),{selectionState:a})})),pS(SA,((t,{experimentIds:e,runIds:n})=>{var o;const i=nN(e),a=new Map(t.selectionState),r=new Map(null!==(o=a.get(i))&&void 0!==o?o:[]),s=!n.every((t=>Boolean(r.get(t))));for(const t of n)r.set(t,s);return a.set(i,r),Object.assign(Object.assign({},t),{selectionState:a})})),pS(DA,((t,{experimentIds:e})=>{var n;const o=nN(e),i=new Map(t.selectionState),a=new Map(null!==(n=i.get(o))&&void 0!==n?n:[]);for(const n of e)for(const e of t.runIds[n])a.set(e,!0);return i.set(o,a),Object.assign(Object.assign({},t),{selectionState:i})})),pS(PA,((t,{runsForAllExperiments:e})=>{const n=new Map(t.groupKeyToColorString),o=new Map(t.defaultRunColorForGroupBy);let i=t.initialGroupBy;null!==t.userSetGroupByKey&&(i=iN(t.userSetGroupByKey,t.colorGroupRegexString));const a=oN(i,e,t.runIdToExpId);Object.entries(a.matches).forEach((([t,e])=>{var i;const a=null!==(i=n.get(t))&&void 0!==i?i:kN[n.size%kN.length];n.set(t,a);for(const t of e)o.set(t.id,a)}));for(const t of a.nonMatches)o.delete(t.id);return Object.assign(Object.assign({},t),{defaultRunColorForGroupBy:o,groupKeyToColorString:n})})),pS(IA,((t,{experimentIds:e,groupBy:n})=>{const o=new Map,i=new Map(t.defaultRunColorForGroupBy),a=oN(n,e.flatMap((e=>t.runIds[e])).map((e=>t.runMetadata[e])),t.runIdToExpId);Object.entries(a.matches).forEach((([t,e])=>{var n;const a=null!==(n=o.get(t))&&void 0!==n?n:kN[o.size%kN.length];o.set(t,a);for(const t of e)i.set(t.id,a)}));for(const t of a.nonMatches)i.delete(t.id);const r=n.key===eN.REGEX?n.regexString:t.colorGroupRegexString;return Object.assign(Object.assign({},t),{colorGroupRegexString:r,userSetGroupByKey:n.key,defaultRunColorForGroupBy:i,groupKeyToColorString:o,runColorOverrideForGroupBy:new Map})})),pS(TA,((t,{runId:e,newColor:n})=>{const o=new Map(t.runColorOverrideForGroupBy);return o.set(e,n),Object.assign(Object.assign({},t),{runColorOverrideForGroupBy:o})})),pS(RA,((t,e)=>Object.assign(Object.assign({},t),{regexFilter:e.regexString})))),EN),RN={key:null,direction:PN.UNSET},{initialState:TN,reducers:NN}=ON({paginationOption:{pageIndex:0,pageSize:10},sort:RN},{}),IN=SN(mS(TN,pS(EA,((t,{pageSize:e,pageIndex:n})=>Object.assign(Object.assign({},t),{paginationOption:{pageSize:e,pageIndex:n}}))),pS(RA,((t,e)=>Object.assign(Object.assign({},t),{paginationOption:Object.assign(Object.assign({},t.paginationOption),{pageIndex:0})}))),pS(AA,((t,e)=>Object.assign(Object.assign({},t),{sort:{key:e.key,direction:e.direction}})))),NN);function zN(t,e){return hk({data:AN,ui:IN})(t,e)}function HN(){return[{actionCreator:wA,alertFromAction:()=>({localizedMessage:"Failed to fetch runs"})}]}class FN{}var LN;FN.ɵfac=function t(e){return new(e||FN)},FN.ɵmod=Zo({type:FN}),FN.ɵinj=co({imports:[[iS.forFeature($T,zN),LS.forFeature([xN]),$A,vA.registerAlertActions(HN),KA]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(FN,{imports:[oS,FS,$A,vA,KA]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(FN,[{type:k_,args:[{imports:[iS.forFeature($T,zN),LS.forFeature([xN]),$A,vA.registerAlertActions(HN),KA]}]}],null,null),(function(t){t.RUNS_CHANGED="experimental.RunsChanged",t.GET_RUNS="experimental.GetRuns",t.GET_URL_DATA="experimental.GetURLPluginData",t.DATA_RELOADED="experimental.DataReloaded"})(LN||(LN={}));class BN{constructor(t){this.port=t,this.id=0,this.responseWaits=new Map,this.listeners=new Map,this.port.addEventListener("message",(t=>this.onMessage(t)))}listen(t,e){this.listeners.set(t,e)}unlisten(t){this.listeners.delete(t)}onMessage(t){return rR(this,void 0,void 0,(function*(){const e=JSON.parse(t.data),n=e.type,o=e.id,i=e.payload,a=e.error;if(e.isReply){if(!this.responseWaits.has(o))return;const{resolve:t,reject:e}=this.responseWaits.get(o);return this.responseWaits.delete(o),void(a?e(new Error(a)):t(i))}let r=null,s=null;if(this.listeners.has(n)){const t=this.listeners.get(n);try{r=yield t(i)}catch(t){s=t}}this.postMessage({type:n,id:o,payload:r,error:s,isReply:!0})}))}postMessage(t){this.port.postMessage(JSON.stringify(t))}sendMessage(t,e){const n=this.id++;return this.postMessage({type:t,id:n,payload:e,error:null,isReply:!1}),new Promise(((t,e)=>{this.responseWaits.set(n,{resolve:t,reject:e})}))}}const VN=new WeakMap,jN=new Set,UN=new Map,WN=new Map;function GN(t,e){return n=>{const o=WN.get(e),i=VN.get(o)||null;return t(i,n)}}window.addEventListener("message",(t=>{if("experimental.bootstrap"!==t.data)return;const e=t.ports[0];if(!e)return;const n=t.source?t.source.frameElement:null;n&&(function o(t,e){const n=new BN(t);jN.add(n),WN.set(n,e),t.start();for(const[t,e]of UN){const o=GN(e,n);n.listen(t,o)}})(e,n)}));class YN{broadcast(t,e){return(function n(t,e){for(const t of jN)WN.get(t).isConnected||(jN.delete(t),WN.delete(t));const n=[...jN].map((n=>n.sendMessage(t,e)));return Promise.all(n)})(t,e)}listen(t,e){!(function n(t,e){UN.set(t,e);for(const n of jN){const o=GN(e,n);n.listen(t,o)}})(t,e)}unlisten(t){!(function e(t){UN.delete(t);for(const e of jN)e.unlisten(t)})(t)}}YN.ɵfac=function t(e){return new(e||YN)},YN.ɵprov=lo({token:YN,factory:YN.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(YN,[{type:Jm}],null,null);class qN{constructor(t,e){this.ipc=t,this.store=e}init(){const t=document.createElement("tf-storage");this.ipc.listen(LN.GET_URL_DATA,(e=>{if(!e)return;const n=`p.${e.pluginName}.`,o={},i=t.tf_storage.getUrlHashDict();for(let t in i)t.startsWith(n)&&(o[t.substring(n.length)]=i[t]);return o})),this.store.select(cA).pipe(Gt((t=>null!==t)),ke()).subscribe((()=>{this.ipc.broadcast(LN.DATA_RELOADED,void 0)}))}}qN.ɵfac=function t(e){return new(e||qN)(us(YN),us(Ek))},qN.ɵprov=lo({token:qN,factory:qN.ɵfac,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(qN,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:YN},{type:Ek}]}),null);class ZN{constructor(t,e){this.ipc=t,this.store=e}init(){const t=this.store.select(xD).pipe(Tt((t=>t?Dt(t.map((t=>this.store.select(cN,{experimentId:t})))).pipe(ht((t=>t.flat())),ke(((t,e)=>t.length===e.length&&t.every(((t,n)=>e[n].id===t.id)))),ht((t=>t.map((({name:t})=>t))))):Z([]))));t.subscribe((t=>{this.ipc.broadcast(LN.RUNS_CHANGED,t)})),this.ipc.listen(LN.GET_RUNS,(()=>t.pipe(Ne(1)).toPromise()))}}ZN.ɵfac=function t(e){return new(e||ZN)(us(YN),us(Ek))},ZN.ɵprov=lo({token:ZN,factory:ZN.ɵfac,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(ZN,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:YN},{type:Ek}]}),null);class XN{constructor(t,e){e.init(),t.init()}registerPluginIframe(t,e){!(function n(t,e){VN.set(t,{pluginName:e})})(t,e)}}XN.ɵfac=function t(e){return new(e||XN)(us(ZN),us(qN))},XN.ɵmod=Zo({type:XN}),XN.ɵinj=co({providers:[YN,qN,ZN],imports:[[ED,CA,FN]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(XN,{imports:[ED,CA,FN]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(XN,[{type:k_,args:[{providers:[YN,qN,ZN],imports:[ED,CA,FN]}]}],(function(){return[{type:ZN},{type:qN}]}),null);const KN=Ww("[Alert] Alert Reported",{_as:"props",_p:void 0});class JN{constructor(t,e,n){this.actions$=t,this.store=e,this.alertActionModule=n,this.reportRegisteredActionAlerts$=gS((()=>this.actions$.pipe(_n((t=>{const e=this.alertActionModule.getAlertFromAction(t);e&&this.store.dispatch(KN(e))})))),{dispatch:!1})}}JN.ɵfac=function t(e){return new(e||JN)(us(vS),us(Ek),us(vA))},JN.ɵprov=lo({token:JN,factory:JN.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(JN,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:vA}]}),null);const QN=mS({latestAlert:null},pS(KN,((t,{localizedMessage:e,followupAction:n})=>Object.assign(Object.assign({},t),{latestAlert:{localizedMessage:e,followupAction:n,created:Date.now()}}))));function $N(t,e){return QN(t,e)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const tI=13,eI=27,nI=32,oI=38,iI=40;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function aI(t,...e){return e.length?e.some((e=>t[e])):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function rI(t){return null!=t&&"false"!=`${t}`}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function sI(t,e=0){return lI(t)?Number(t):e}function lI(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function cI(t){return Array.isArray(t)?t:[t]}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function dI(t){return null==t?"":"string"==typeof t?t:`${t}px`}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function pI(t){return t instanceof ch?t.nativeElement:t}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */let mI,uI;try{mI="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(t){mI=!1}class fI{constructor(t){this._platformId=t,this.isBrowser=this._platformId?(function e(t){return"browser"===t})(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!mI)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}fI.ɵfac=function t(e){return new(e||fI)(us(H_))},fI.ɵprov=lo({factory:function t(){return new fI(us(H_))},token:fI,providedIn:"root"}),fI.ctorParameters=()=>[{type:Object,decorators:[{type:ys,args:[H_]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(fI,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:Object,decorators:[{type:ys,args:[H_]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class gI{}gI.ɵfac=function t(e){return new(e||gI)},gI.ɵmod=Zo({type:gI}),gI.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db(gI,[{type:k_,args:[{}]}],null,null);const hI=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function bI(){if(uI)return uI;if("object"!=typeof document||!document)return uI=new Set(hI),uI;let t=document.createElement("input");return uI=new Set(hI.filter((e=>(t.setAttribute("type",e),t.type===e)))),uI}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */let yI,_I,CI,MI;function vI(t){return(function e(){if(null==yI&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>yI=!0}))}finally{yI=yI||!1}return yI})()?t:!!t.capture}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function xI(){if(null==CI){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return CI=!1,CI;if("scrollBehavior"in document.documentElement.style)CI=!0;else{const t=Element.prototype.scrollTo;CI=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return CI}function OI(){if("object"!=typeof document||!document)return 0;if(null==_I){const t=document.createElement("div"),e=t.style;t.dir="rtl",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";const n=document.createElement("div"),o=n.style;o.width="2px",o.height="1px",t.appendChild(n),document.body.appendChild(t),_I=0,0===t.scrollLeft&&(t.scrollLeft=1,_I=0===t.scrollLeft?1:2),t.parentNode.removeChild(t)}return _I}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function PI(t){if((function e(){if(null==MI){const t="undefined"!=typeof document?document.head:null;MI=!(!t||!t.createShadowRoot&&!t.attachShadow)}return MI})()){const e=t.getRootNode?t.getRootNode():null;if("undefined"!=typeof ShadowRoot&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}class wI{create(t){return"undefined"==typeof MutationObserver?null:new MutationObserver(t)}}wI.ɵfac=function t(e){return new(e||wI)},wI.ɵprov=lo({factory:function t(){return new wI},token:wI,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(wI,[{type:Jm,args:[{providedIn:"root"}]}],null,null);class kI{constructor(t){this._mutationObserverFactory=t,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach(((t,e)=>this._cleanupObserver(e)))}observe(t){const e=pI(t);return new y((t=>{const n=this._observeElement(e).subscribe(t);return()=>{n.unsubscribe(),this._unobserveElement(e)}}))}_observeElement(t){if(this._observedElements.has(t))this._observedElements.get(t).count++;else{const e=new x,n=this._mutationObserverFactory.create((t=>e.next(t)));n&&n.observe(t,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(t,{observer:n,stream:e,count:1})}return this._observedElements.get(t).stream}_unobserveElement(t){this._observedElements.has(t)&&(this._observedElements.get(t).count--,this._observedElements.get(t).count||this._cleanupObserver(t))}_cleanupObserver(t){if(this._observedElements.has(t)){const{observer:e,stream:n}=this._observedElements.get(t);e&&e.disconnect(),n.complete(),this._observedElements.delete(t)}}}kI.ɵfac=function t(e){return new(e||kI)(us(wI))},kI.ɵprov=lo({factory:function t(){return new kI(us(wI))},token:kI,providedIn:"root"}),kI.ctorParameters=()=>[{type:wI}],("undefined"==typeof ngDevMode||ngDevMode)&&db(kI,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:wI}]}),null);class SI{constructor(t,e,n){this._contentObserver=t,this._elementRef=e,this._ngZone=n,this.event=new Ab,this._disabled=!1,this._currentSubscription=null}get disabled(){return this._disabled}set disabled(t){this._disabled=rI(t),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(t){this._debounce=sI(t),this._subscribe()}ngAfterContentInit(){this._currentSubscription||this.disabled||this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const t=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular((()=>{this._currentSubscription=(this.debounce?t.pipe(de(this.debounce)):t).subscribe(this.event)}))}_unsubscribe(){var t;null===(t=this._currentSubscription)||void 0===t||t.unsubscribe()}}SI.ɵfac=function t(e){return new(e||SI)(Mu(kI),Mu(ch),Mu(tC))},SI.ɵdir=Jo({type:SI,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),SI.ctorParameters=()=>[{type:kI},{type:ch},{type:tC}],SI.propDecorators={event:[{type:__,args:["cdkObserveContent"]}],disabled:[{type:y_,args:["cdkObserveContentDisabled"]}],debounce:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(SI,[{type:g_,args:[{selector:"[cdkObserveContent]",exportAs:"cdkObserveContent"}]}],(function(){return[{type:kI},{type:ch},{type:tC}]}),{event:[{type:__,args:["cdkObserveContent"]}],disabled:[{type:y_,args:["cdkObserveContentDisabled"]}],debounce:[{type:y_}]});class DI{}function EI(t,e){return(t.getAttribute(e)||"").match(/\S+/g)||[]}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */DI.ɵfac=function t(e){return new(e||DI)},DI.ɵmod=Zo({type:DI}),DI.ɵinj=co({providers:[wI]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(DI,{declarations:[SI],exports:[SI]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(DI,[{type:k_,args:[{exports:[SI],declarations:[SI],providers:[wI]}]}],null,null);const AI="cdk-describedby-message-container",RI="cdk-describedby-host";let TI=0;const NI=new Map;let II=null;class zI{constructor(t){this._document=t}describe(t,e,n){if(!this._canBeDescribed(t,e))return;const o=HI(e,n);"string"!=typeof e?(FI(e),NI.set(o,{messageElement:e,referenceCount:0})):NI.has(o)||this._createMessageElement(e,n),this._isElementDescribedByMessage(t,o)||this._addMessageReference(t,o)}removeDescription(t,e,n){if(!e||!this._isElementNode(t))return;const o=HI(e,n);if(this._isElementDescribedByMessage(t,o)&&this._removeMessageReference(t,o),"string"==typeof e){const t=NI.get(o);t&&0===t.referenceCount&&this._deleteMessageElement(o)}II&&0===II.childNodes.length&&this._deleteMessagesContainer()}ngOnDestroy(){const t=this._document.querySelectorAll("[cdk-describedby-host]");for(let e=0;e<t.length;e++)this._removeCdkDescribedByReferenceIds(t[e]),t[e].removeAttribute(RI);II&&this._deleteMessagesContainer(),NI.clear()}_createMessageElement(t,e){const n=this._document.createElement("div");FI(n),n.textContent=t,e&&n.setAttribute("role",e),this._createMessagesContainer(),II.appendChild(n),NI.set(HI(t,e),{messageElement:n,referenceCount:0})}_deleteMessageElement(t){const e=NI.get(t),n=e&&e.messageElement;II&&n&&II.removeChild(n),NI.delete(t)}_createMessagesContainer(){if(!II){const t=this._document.getElementById(AI);t&&t.parentNode&&t.parentNode.removeChild(t),II=this._document.createElement("div"),II.id=AI,II.style.visibility="hidden",II.classList.add("cdk-visually-hidden"),this._document.body.appendChild(II)}}_deleteMessagesContainer(){II&&II.parentNode&&(II.parentNode.removeChild(II),II=null)}_removeCdkDescribedByReferenceIds(t){const e=EI(t,"aria-describedby").filter((t=>0!=t.indexOf("cdk-describedby-message")));t.setAttribute("aria-describedby",e.join(" "))}_addMessageReference(t,e){const n=NI.get(e);!(function o(t,e,n){const o=EI(t,e);o.some((t=>t.trim()==n.trim()))||(o.push(n.trim()),t.setAttribute(e,o.join(" ")))})(t,"aria-describedby",n.messageElement.id),t.setAttribute(RI,""),n.referenceCount++}_removeMessageReference(t,e){const n=NI.get(e);n.referenceCount--,(function o(t,e,n){const o=EI(t,e).filter((t=>t!=n.trim()));o.length?t.setAttribute(e,o.join(" ")):t.removeAttribute(e)})(t,"aria-describedby",n.messageElement.id),t.removeAttribute(RI)}_isElementDescribedByMessage(t,e){const n=EI(t,"aria-describedby"),o=NI.get(e),i=o&&o.messageElement.id;return!!i&&-1!=n.indexOf(i)}_canBeDescribed(t,e){if(!this._isElementNode(t))return!1;if(e&&"object"==typeof e)return!0;const n=null==e?"":`${e}`.trim(),o=t.getAttribute("aria-label");return!(!n||o&&o.trim()===n)}_isElementNode(t){return t.nodeType===this._document.ELEMENT_NODE}}function HI(t,e){return"string"==typeof t?`${e||""}/${t}`:t}function FI(t){t.id||(t.id="cdk-describedby-message-"+TI++)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */zI.ɵfac=function t(e){return new(e||zI)(us(UC))},zI.ɵprov=lo({factory:function t(){return new zI(us(UC))},token:zI,providedIn:"root"}),zI.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(zI,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);class LI{constructor(t){this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new x,this._typeaheadSubscription=l.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._skipPredicateFn=t=>t.disabled,this._pressedLetters=[],this.tabOut=new x,this.change=new x,t instanceof Tb&&t.changes.subscribe((t=>{if(this._activeItem){const e=t.toArray().indexOf(this._activeItem);e>-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e)}}))}skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){if(("undefined"==typeof ngDevMode||ngDevMode)&&this._items.length&&this._items.some((t=>"function"!=typeof t.getLabel)))throw Error("ListKeyManager items in typeahead mode must implement the `getLabel` method.");return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(_n((t=>this._pressedLetters.push(t))),de(t),Gt((()=>this._pressedLetters.length>0)),ht((()=>this._pressedLetters.join("")))).subscribe((t=>{const e=this._getItemsArray();for(let n=1;n<e.length+1;n++){const o=(this._activeItemIndex+n)%e.length,i=e[o];if(!this._skipPredicateFn(i)&&0===i.getLabel().toUpperCase().trim().indexOf(t)){this.setActiveItem(o);break}}this._pressedLetters=[]})),this}withHomeAndEnd(t=!0){return this._homeAndEnd=t,this}setActiveItem(t){const e=this._activeItem;this.updateActiveItem(t),this._activeItem!==e&&this.change.next(this._activeItemIndex)}onKeydown(t){const e=t.keyCode,n=["altKey","ctrlKey","metaKey","shiftKey"].every((e=>!t[e]||this._allowedModifierKeys.indexOf(e)>-1));switch(e){case 9:return void this.tabOut.next();case iI:if(this._vertical&&n){this.setNextItemActive();break}return;case oI:if(this._vertical&&n){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&n){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&n){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&n){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&n){this.setLastItemActive();break}return;default:return void((n||aI(t,"shiftKey"))&&(t.key&&1===t.key.length?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],t.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(t){const e=this._getItemsArray(),n="number"==typeof t?t:e.indexOf(t),o=e[n];this._activeItem=null==o?null:o,this._activeItemIndex=n}_setActiveItemByDelta(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)}_setActiveInWrapMode(t){const e=this._getItemsArray();for(let n=1;n<=e.length;n++){const o=(this._activeItemIndex+t*n+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)}_setActiveItemByIndex(t,e){const n=this._getItemsArray();if(n[t]){for(;this._skipPredicateFn(n[t]);)if(!n[t+=e])return;this.setActiveItem(t)}}_getItemsArray(){return this._items instanceof Tb?this._items.toArray():this._items}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class BI extends LI{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class VI extends LI{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}}class jI{constructor(t){this._platform=t}isDisabled(t){return t.hasAttribute("disabled")}isVisible(t){return(function e(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)})(t)&&"visible"===getComputedStyle(t).visibility}isTabbable(t){if(!this._platform.isBrowser)return!1;const e=(function o(t){try{return t.frameElement}catch(t){return null}})((function n(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t));if(e){if(-1===WI(e))return!1;if(!this.isVisible(e))return!1}let i=t.nodeName.toLowerCase(),a=WI(t);return t.hasAttribute("contenteditable")?-1!==a:"iframe"!==i&&"object"!==i&&!(this._platform.WEBKIT&&this._platform.IOS&&!(function r(t){let e=t.nodeName.toLowerCase(),n="input"===e&&t.type;return"text"===n||"password"===n||"select"===e||"textarea"===e})(t))&&("audio"===i?!!t.hasAttribute("controls")&&-1!==a:"video"===i?-1!==a&&(null!==a||this._platform.FIREFOX||t.hasAttribute("controls")):t.tabIndex>=0)}isFocusable(t,e){return(function n(t){return!(function e(t){return(function e(t){return"input"==t.nodeName.toLowerCase()})(t)&&"hidden"==t.type})(t)&&((function n(t){let e=t.nodeName.toLowerCase();return"input"===e||"select"===e||"button"===e||"textarea"===e})(t)||(function o(t){return(function e(t){return"a"==t.nodeName.toLowerCase()})(t)&&t.hasAttribute("href")})(t)||t.hasAttribute("contenteditable")||UI(t))})(t)&&!this.isDisabled(t)&&((null==e?void 0:e.ignoreVisibility)||this.isVisible(t))}}function UI(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let e=t.getAttribute("tabindex");return"-32768"!=e&&!(!e||isNaN(parseInt(e,10)))}function WI(t){if(!UI(t))return null;const e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}jI.ɵfac=function t(e){return new(e||jI)(us(fI))},jI.ɵprov=lo({factory:function t(){return new jI(us(fI))},token:jI,providedIn:"root"}),jI.ctorParameters=()=>[{type:fI}],("undefined"==typeof ngDevMode||ngDevMode)&&db(jI,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:fI}]}),null);class GI{constructor(t,e,n,o,i=!1){this._element=t,this._checker=e,this._ngZone=n,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,i||this.attachAnchors()}get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}destroy(){const t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.parentNode&&t.parentNode.removeChild(t)),e&&(e.removeEventListener("focus",this.endAnchorListener),e.parentNode&&e.parentNode.removeChild(e)),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular((()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))})),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(){return new Promise((t=>{this._executeOnStable((()=>t(this.focusInitialElement())))}))}focusFirstTabbableElementWhenReady(){return new Promise((t=>{this._executeOnStable((()=>t(this.focusFirstTabbableElement())))}))}focusLastTabbableElementWhenReady(){return new Promise((t=>{this._executeOnStable((()=>t(this.focusLastTabbableElement())))}))}_getRegionBoundary(t){let e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);for(let n=0;n<e.length;n++)e[n].hasAttribute(`cdk-focus-${t}`)?console.warn(`Found use of deprecated attribute 'cdk-focus-${t}', use 'cdkFocusRegion${t}' instead. The deprecated attribute will be removed in 8.0.0.`,e[n]):e[n].hasAttribute(`cdk-focus-region-${t}`)&&console.warn(`Found use of deprecated attribute 'cdk-focus-region-${t}', use 'cdkFocusRegion${t}' instead. The deprecated attribute will be removed in 8.0.0.`,e[n]);return"start"==t?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(){const t=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(t){if(t.hasAttribute("cdk-focus-initial")&&console.warn("Found use of deprecated attribute 'cdk-focus-initial', use 'cdkFocusInitial' instead. The deprecated attribute will be removed in 8.0.0",t),"undefined"!=typeof ngDevMode&&!ngDevMode||this._checker.isFocusable(t)||console.warn("Element matching '[cdkFocusInitial]' is not focusable.",t),!this._checker.isFocusable(t)){const e=this._getFirstTabbableElement(t);return null==e||e.focus(),!!e}return t.focus(),!0}return this.focusFirstTabbableElement()}focusFirstTabbableElement(){const t=this._getRegionBoundary("start");return t&&t.focus(),!!t}focusLastTabbableElement(){const t=this._getRegionBoundary("end");return t&&t.focus(),!!t}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;let e=t.children||t.childNodes;for(let t=0;t<e.length;t++){let n=e[t].nodeType===this._document.ELEMENT_NODE?this._getFirstTabbableElement(e[t]):null;if(n)return n}return null}_getLastTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;let e=t.children||t.childNodes;for(let t=e.length-1;t>=0;t--){let n=e[t].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[t]):null;if(n)return n}return null}_createAnchor(){const t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._ngZone.isStable?t():this._ngZone.onStable.pipe(Ne(1)).subscribe(t)}}class YI{constructor(t,e,n){this._checker=t,this._ngZone=e,this._document=n}create(t,e=!1){return new GI(t,this._checker,this._ngZone,this._document,e)}}YI.ɵfac=function t(e){return new(e||YI)(us(jI),us(tC),us(UC))},YI.ɵprov=lo({factory:function t(){return new YI(us(jI),us(tC),us(UC))},token:YI,providedIn:"root"}),YI.ctorParameters=()=>[{type:jI},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(YI,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:jI},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);class qI{constructor(t,e,n){this._elementRef=t,this._focusTrapFactory=e,this._previouslyFocusedElement=null,this._document=n,this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0)}get enabled(){return this.focusTrap.enabled}set enabled(t){this.focusTrap.enabled=rI(t)}get autoCapture(){return this._autoCapture}set autoCapture(t){this._autoCapture=rI(t)}ngOnDestroy(){this.focusTrap.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap.hasAttached()||this.focusTrap.attachAnchors()}ngOnChanges(t){const e=t.autoCapture;e&&!e.firstChange&&this.autoCapture&&this.focusTrap.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=this._document.activeElement,this.focusTrap.focusInitialElementWhenReady()}}qI.ɵfac=function t(e){return new(e||qI)(Mu(ch),Mu(YI),Mu(UC))},qI.ɵdir=Jo({type:qI,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:["cdkTrapFocus","enabled"],autoCapture:["cdkTrapFocusAutoCapture","autoCapture"]},exportAs:["cdkTrapFocus"],features:[Si]}),qI.ctorParameters=()=>[{type:ch},{type:YI},{type:void 0,decorators:[{type:ys,args:[UC]}]}],qI.propDecorators={enabled:[{type:y_,args:["cdkTrapFocus"]}],autoCapture:[{type:y_,args:["cdkTrapFocusAutoCapture"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(qI,[{type:g_,args:[{selector:"[cdkTrapFocus]",exportAs:"cdkTrapFocus"}]}],(function(){return[{type:ch},{type:YI},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),{enabled:[{type:y_,args:["cdkTrapFocus"]}],autoCapture:[{type:y_,args:["cdkTrapFocusAutoCapture"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class ZI extends GI{constructor(t,e,n,o,i,a,r){super(t,e,n,o,r.defer),this._focusTrapManager=i,this._inertStrategy=a,this._focusTrapManager.register(this)}get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._enabled?this._focusTrapManager.register(this):this._focusTrapManager.deregister(this)}destroy(){this._focusTrapManager.deregister(this),super.destroy()}_enable(){this._inertStrategy.preventFocus(this),this.toggleAnchors(!0)}_disable(){this._inertStrategy.allowFocus(this),this.toggleAnchors(!1)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const XI="undefined"!=typeof Element&&!!Element.prototype.closest;function KI(t,e){return t.matches?t.matches(e):t.msMatchesSelector(e)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class JI{constructor(){this._listener=null}preventFocus(t){this._listener&&t._document.removeEventListener("focus",this._listener,!0),this._listener=e=>this._trapFocus(t,e),t._ngZone.runOutsideAngular((()=>{t._document.addEventListener("focus",this._listener,!0)}))}allowFocus(t){this._listener&&(t._document.removeEventListener("focus",this._listener,!0),this._listener=null)}_trapFocus(t,e){const n=e.target,o=t._element;o.contains(n)||null!==(function i(t,e){if(!(t instanceof Node))return null;let n=t;for(;null!=n&&!(n instanceof Element);)n=n.parentNode;return n&&(XI?n.closest(e):(function o(t,e){let n=t;for(;null!=n&&!(n instanceof Element&&KI(n,e));)n=n.parentNode;return n||null})(n,e))})(n,"div.cdk-overlay-pane")||setTimeout((()=>{t.enabled&&!o.contains(t._document.activeElement)&&t.focusFirstTabbableElement()}))}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class QI{constructor(){this.defer=!1}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const $I=new Nr("FOCUS_TRAP_INERT_STRATEGY");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class tz{constructor(){this._focusTrapStack=[]}register(t){this._focusTrapStack=this._focusTrapStack.filter((e=>e!==t));let e=this._focusTrapStack;e.length&&e[e.length-1]._disable(),e.push(t),t._enable()}deregister(t){t._disable();const e=this._focusTrapStack,n=e.indexOf(t);-1!==n&&(e.splice(n,1),e.length&&e[e.length-1]._enable())}}tz.ɵfac=function t(e){return new(e||tz)},tz.ɵprov=lo({factory:function t(){return new tz},token:tz,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(tz,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class ez{constructor(t,e,n,o,i){this._checker=t,this._ngZone=e,this._focusTrapManager=n,this._document=o,this._inertStrategy=i||new JI}create(t,e=new QI){let n;return"boolean"==typeof e?(n=new QI,n.defer=e):n=e,new ZI(t,this._checker,this._ngZone,this._document,this._focusTrapManager,this._inertStrategy,n)}}ez.ɵfac=function t(e){return new(e||ez)(us(jI),us(tC),us(tz),us(UC),us($I,8))},ez.ɵprov=lo({factory:function t(){return new ez(us(jI),us(tC),us(tz),us(UC),us($I,8))},token:ez,providedIn:"root"}),ez.ctorParameters=()=>[{type:jI},{type:tC},{type:tz},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[$I]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(ez,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:jI},{type:tC},{type:tz},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[$I]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const nz=new Nr("liveAnnouncerElement",{providedIn:"root",factory:function oz(){return null}}),iz=new Nr("LIVE_ANNOUNCER_DEFAULT_OPTIONS");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class az{constructor(t,e,n,o){this._ngZone=e,this._defaultOptions=o,this._document=n,this._liveElement=t||this._createLiveElement()}announce(t,...e){const n=this._defaultOptions;let o,i;return 1===e.length&&"number"==typeof e[0]?i=e[0]:[o,i]=e,this.clear(),clearTimeout(this._previousTimeout),o||(o=n&&n.politeness?n.politeness:"polite"),null==i&&n&&(i=n.duration),this._liveElement.setAttribute("aria-live",o),this._ngZone.runOutsideAngular((()=>new Promise((e=>{clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout((()=>{this._liveElement.textContent=t,e(),"number"==typeof i&&(this._previousTimeout=setTimeout((()=>this.clear()),i))}),100)}))))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement&&this._liveElement.parentNode&&(this._liveElement.parentNode.removeChild(this._liveElement),this._liveElement=null)}_createLiveElement(){const t="cdk-live-announcer-element",e=this._document.getElementsByClassName(t),n=this._document.createElement("div");for(let t=0;t<e.length;t++)e[t].parentNode.removeChild(e[t]);return n.classList.add(t),n.classList.add("cdk-visually-hidden"),n.setAttribute("aria-atomic","true"),n.setAttribute("aria-live","polite"),this._document.body.appendChild(n),n}}az.ɵfac=function t(e){return new(e||az)(us(nz,8),us(tC),us(UC),us(iz,8))},az.ɵprov=lo({factory:function t(){return new az(us(nz,8),us(tC),us(UC),us(iz,8))},token:az,providedIn:"root"}),az.ctorParameters=()=>[{type:void 0,decorators:[{type:_s},{type:ys,args:[nz]}]},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[iz]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(az,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:_s},{type:ys,args:[nz]}]},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[iz]}]}]}),null);class rz{constructor(t,e,n,o){this._elementRef=t,this._liveAnnouncer=e,this._contentObserver=n,this._ngZone=o,this._politeness="polite"}get politeness(){return this._politeness}set politeness(t){this._politeness="off"===t||"assertive"===t?t:"polite","off"===this._politeness?this._subscription&&(this._subscription.unsubscribe(),this._subscription=null):this._subscription||(this._subscription=this._ngZone.runOutsideAngular((()=>this._contentObserver.observe(this._elementRef).subscribe((()=>{const t=this._elementRef.nativeElement.textContent;t!==this._previousAnnouncedText&&(this._liveAnnouncer.announce(t,this._politeness),this._previousAnnouncedText=t)})))))}ngOnDestroy(){this._subscription&&this._subscription.unsubscribe()}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function sz(t){return 0===t.buttons}function lz(t){const e=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!e||-1!==e.identifier||null!=e.radiusX&&1!==e.radiusX||null!=e.radiusY&&1!==e.radiusY)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */rz.ɵfac=function t(e){return new(e||rz)(Mu(ch),Mu(az),Mu(kI),Mu(tC))},rz.ɵdir=Jo({type:rz,selectors:[["","cdkAriaLive",""]],inputs:{politeness:["cdkAriaLive","politeness"]},exportAs:["cdkAriaLive"]}),rz.ctorParameters=()=>[{type:ch},{type:az},{type:kI},{type:tC}],rz.propDecorators={politeness:[{type:y_,args:["cdkAriaLive"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(rz,[{type:g_,args:[{selector:"[cdkAriaLive]",exportAs:"cdkAriaLive"}]}],(function(){return[{type:ch},{type:az},{type:kI},{type:tC}]}),{politeness:[{type:y_,args:["cdkAriaLive"]}]});const cz=new Nr("cdk-focus-monitor-default-options"),dz=vI({passive:!0,capture:!0});class pz{constructor(t,e,n,o){this._ngZone=t,this._platform=e,this._origin=null,this._windowFocused=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._documentKeydownListener=()=>{this._lastTouchTarget=null,this._setOriginForCurrentEventQueue("keyboard")},this._documentMousedownListener=t=>{if(!this._lastTouchTarget){const e=sz(t)?"keyboard":"mouse";this._setOriginForCurrentEventQueue(e)}},this._documentTouchstartListener=t=>{lz(t)?this._lastTouchTarget||this._setOriginForCurrentEventQueue("keyboard"):(null!=this._touchTimeoutId&&clearTimeout(this._touchTimeoutId),this._lastTouchTarget=mz(t),this._touchTimeoutId=setTimeout((()=>this._lastTouchTarget=null),650))},this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout((()=>this._windowFocused=!1))},this._rootNodeFocusAndBlurListener=t=>{const e=mz(t),n="focus"===t.type?this._onFocus:this._onBlur;for(let o=e;o;o=o.parentElement)n.call(this,t,o)},this._document=n,this._detectionMode=(null==o?void 0:o.detectionMode)||0}monitor(t,e=!1){const n=pI(t);if(!this._platform.isBrowser||1!==n.nodeType)return Z(null);const o=PI(n)||this._getDocument(),i=this._elementInfo.get(n);if(i)return e&&(i.checkChildren=!0),i.subject;const a={checkChildren:e,subject:new x,rootNode:o};return this._elementInfo.set(n,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(t){const e=pI(t),n=this._elementInfo.get(e);n&&(n.subject.complete(),this._setClasses(e),this._elementInfo.delete(e),this._removeGlobalListeners(n))}focusVia(t,e,n){const o=pI(t);o===this._getDocument().activeElement?this._getClosestElementsInfo(o).forEach((([t,n])=>this._originChanged(t,e,n))):(this._setOriginForCurrentEventQueue(e),"function"==typeof o.focus&&o.focus(n))}ngOnDestroy(){this._elementInfo.forEach(((t,e)=>this.stopMonitoring(e)))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_toggleClass(t,e,n){n?t.classList.add(e):t.classList.remove(e)}_getFocusOrigin(t){return this._origin?this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:this._wasCausedByTouch(t)?"touch":"program"}_setClasses(t,e){this._toggleClass(t,"cdk-focused",!!e),this._toggleClass(t,"cdk-touch-focused","touch"===e),this._toggleClass(t,"cdk-keyboard-focused","keyboard"===e),this._toggleClass(t,"cdk-mouse-focused","mouse"===e),this._toggleClass(t,"cdk-program-focused","program"===e)}_setOriginForCurrentEventQueue(t){this._ngZone.runOutsideAngular((()=>{this._origin=t,0===this._detectionMode&&(this._originTimeoutId=setTimeout((()=>this._origin=null),1))}))}_wasCausedByTouch(t){const e=mz(t);return this._lastTouchTarget instanceof Node&&e instanceof Node&&(e===this._lastTouchTarget||e.contains(this._lastTouchTarget))}_onFocus(t,e){const n=this._elementInfo.get(e);n&&(n.checkChildren||e===mz(t))&&this._originChanged(e,this._getFocusOrigin(t),n)}_onBlur(t,e){const n=this._elementInfo.get(e);!n||n.checkChildren&&t.relatedTarget instanceof Node&&e.contains(t.relatedTarget)||(this._setClasses(e),this._emitOrigin(n.subject,null))}_emitOrigin(t,e){this._ngZone.run((()=>t.next(e)))}_registerGlobalListeners(t){if(!this._platform.isBrowser)return;const e=t.rootNode,n=this._rootNodeFocusListenerCount.get(e)||0;n||this._ngZone.runOutsideAngular((()=>{e.addEventListener("focus",this._rootNodeFocusAndBlurListener,dz),e.addEventListener("blur",this._rootNodeFocusAndBlurListener,dz)})),this._rootNodeFocusListenerCount.set(e,n+1),1==++this._monitoredElementCount&&this._ngZone.runOutsideAngular((()=>{const t=this._getDocument(),e=this._getWindow();t.addEventListener("keydown",this._documentKeydownListener,dz),t.addEventListener("mousedown",this._documentMousedownListener,dz),t.addEventListener("touchstart",this._documentTouchstartListener,dz),e.addEventListener("focus",this._windowFocusListener)}))}_removeGlobalListeners(t){const e=t.rootNode;if(this._rootNodeFocusListenerCount.has(e)){const t=this._rootNodeFocusListenerCount.get(e);t>1?this._rootNodeFocusListenerCount.set(e,t-1):(e.removeEventListener("focus",this._rootNodeFocusAndBlurListener,dz),e.removeEventListener("blur",this._rootNodeFocusAndBlurListener,dz),this._rootNodeFocusListenerCount.delete(e))}if(!--this._monitoredElementCount){const t=this._getDocument(),e=this._getWindow();t.removeEventListener("keydown",this._documentKeydownListener,dz),t.removeEventListener("mousedown",this._documentMousedownListener,dz),t.removeEventListener("touchstart",this._documentTouchstartListener,dz),e.removeEventListener("focus",this._windowFocusListener),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._touchTimeoutId),clearTimeout(this._originTimeoutId)}}_originChanged(t,e,n){this._setClasses(t,e),this._emitOrigin(n.subject,e),this._lastFocusOrigin=e}_getClosestElementsInfo(t){const e=[];return this._elementInfo.forEach(((n,o)=>{(o===t||n.checkChildren&&o.contains(t))&&e.push([o,n])})),e}}function mz(t){return t.composedPath?t.composedPath()[0]:t.target}pz.ɵfac=function t(e){return new(e||pz)(us(tC),us(fI),us(UC,8),us(cz,8))},pz.ɵprov=lo({factory:function t(){return new pz(us(tC),us(fI),us(UC,8),us(cz,8))},token:pz,providedIn:"root"}),pz.ctorParameters=()=>[{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[cz]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(pz,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[cz]}]}]}),null);class uz{constructor(t,e){this._elementRef=t,this._focusMonitor=e,this.cdkFocusChange=new Ab}ngAfterViewInit(){const t=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(t,1===t.nodeType&&t.hasAttribute("cdkMonitorSubtreeFocus")).subscribe((t=>this.cdkFocusChange.emit(t)))}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}}uz.ɵfac=function t(e){return new(e||uz)(Mu(ch),Mu(pz))},uz.ɵdir=Jo({type:uz,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"}}),uz.ctorParameters=()=>[{type:ch},{type:pz}],uz.propDecorators={cdkFocusChange:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(uz,[{type:g_,args:[{selector:"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]"}]}],(function(){return[{type:ch},{type:pz}]}),{cdkFocusChange:[{type:__}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const fz="cdk-high-contrast-black-on-white",gz="cdk-high-contrast-white-on-black",hz="cdk-high-contrast-active";class bz{constructor(t,e){this._platform=t,this._document=e}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const t=this._document.createElement("div");t.style.backgroundColor="rgb(1,2,3)",t.style.position="absolute",this._document.body.appendChild(t);const e=this._document.defaultView||window,n=e&&e.getComputedStyle?e.getComputedStyle(t):null,o=(n&&n.backgroundColor||"").replace(/ /g,"");switch(this._document.body.removeChild(t),o){case"rgb(0,0,0)":return 2;case"rgb(255,255,255)":return 1}return 0}_applyBodyHighContrastModeCssClasses(){if(this._platform.isBrowser&&this._document.body){const t=this._document.body.classList;t.remove(hz),t.remove(fz),t.remove(gz);const e=this.getHighContrastMode();1===e?(t.add(hz),t.add(fz)):2===e&&(t.add(hz),t.add(gz))}}}bz.ɵfac=function t(e){return new(e||bz)(us(fI),us(UC))},bz.ɵprov=lo({factory:function t(){return new bz(us(fI),us(UC))},token:bz,providedIn:"root"}),bz.ctorParameters=()=>[{type:fI},{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(bz,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:fI},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class yz{constructor(t){t._applyBodyHighContrastModeCssClasses()}}yz.ɵfac=function t(e){return new(e||yz)(us(bz))},yz.ɵmod=Zo({type:yz}),yz.ɵinj=co({imports:[[gI,DI]]}),yz.ctorParameters=()=>[{type:bz}],("undefined"==typeof ngJitMode||ngJitMode)&&Xo(yz,{declarations:function(){return[rz,qI,uz]},imports:function(){return[gI,DI]},exports:function(){return[rz,qI,uz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(yz,[{type:k_,args:[{imports:[gI,DI],declarations:[rz,qI,uz],exports:[rz,qI,uz]}]}],(function(){return[{type:bz}]}),null);const _z=new Nr("cdk-dir-doc",{providedIn:"root",factory:function Cz(){return gs(UC)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */});class Mz{constructor(t){if(this.value="ltr",this.change=new Ab,t){const e=t.documentElement?t.documentElement.dir:null,n=(t.body?t.body.dir:null)||e;this.value="ltr"===n||"rtl"===n?n:"ltr"}}ngOnDestroy(){this.change.complete()}}Mz.ɵfac=function t(e){return new(e||Mz)(us(_z,8))},Mz.ɵprov=lo({factory:function t(){return new Mz(us(_z,8))},token:Mz,providedIn:"root"}),Mz.ctorParameters=()=>[{type:void 0,decorators:[{type:_s},{type:ys,args:[_z]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Mz,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:_s},{type:ys,args:[_z]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class vz{constructor(){this._dir="ltr",this._isInitialized=!1,this.change=new Ab}get dir(){return this._dir}set dir(t){const e=this._dir,n=t?t.toLowerCase():t;this._rawDir=t,this._dir="ltr"===n||"rtl"===n?n:"ltr",e!==this._dir&&this._isInitialized&&this.change.emit(this._dir)}get value(){return this.dir}ngAfterContentInit(){this._isInitialized=!0}ngOnDestroy(){this.change.complete()}}vz.ɵfac=function t(e){return new(e||vz)},vz.ɵdir=Jo({type:vz,selectors:[["","dir",""]],hostVars:1,hostBindings:function t(e,n){2&e&&Nm("dir",n._rawDir)},inputs:{dir:"dir"},outputs:{change:"dirChange"},exportAs:["dir"],features:[ih([{provide:Mz,useExisting:vz}])]}),vz.propDecorators={change:[{type:__,args:["dirChange"]}],dir:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(vz,[{type:g_,args:[{selector:"[dir]",providers:[{provide:Mz,useExisting:vz}],host:{"[attr.dir]":"_rawDir"},exportAs:"dir"}]}],(function(){return[]}),{change:[{type:__,args:["dirChange"]}],dir:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class xz{}xz.ɵfac=function t(e){return new(e||xz)},xz.ɵmod=Zo({type:xz}),xz.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(xz,{declarations:[vz],exports:[vz]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(xz,[{type:k_,args:[{exports:[vz],declarations:[vz]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Oz=new bh("11.2.12"),Pz=["*",[["mat-option"],["ng-container"]]];function wz(t,e){if(1&t&&wu(0,"mat-pseudo-checkbox",4),2&t){const t=Lu();vu("state",t.selected?"checked":"unchecked")("disabled",t.disabled)}}function kz(t,e){if(1&t&&(Ou(0,"span",5),Mf(1),Pu()),2&t){const t=Lu();Jc(1),xf("(",t.group.label,")")}}new bh("11.2.12");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Sz{}Sz.STANDARD_CURVE="cubic-bezier(0.4,0.0,0.2,1)",Sz.DECELERATION_CURVE="cubic-bezier(0.0,0.0,0.2,1)",Sz.ACCELERATION_CURVE="cubic-bezier(0.4,0.0,1,1)",Sz.SHARP_CURVE="cubic-bezier(0.4,0.0,0.6,1)";class Dz{}Dz.COMPLEX="375ms",Dz.ENTERING="225ms",Dz.EXITING="195ms";
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Ez=new bh("11.2.12"),Az=new Nr("mat-sanity-checks",{providedIn:"root",factory:function Rz(){return!0}});class Tz{constructor(t,e,n){this._hasDoneGlobalChecks=!1,this._document=n,t._applyBodyHighContrastModeCssClasses(),this._sanityChecks=e,this._hasDoneGlobalChecks||(this._checkDoctypeIsDefined(),this._checkThemeIsPresent(),this._checkCdkVersionMatch(),this._hasDoneGlobalChecks=!0)}_getWindow(){const t=this._document.defaultView||window;return"object"==typeof t&&t?t:null}_checksAreEnabled(){return uC()&&!this._isTestEnv()}_isTestEnv(){const t=this._getWindow();return t&&(t.__karma__||t.jasmine)}_checkDoctypeIsDefined(){this._checksAreEnabled()&&(!0===this._sanityChecks||this._sanityChecks.doctype)&&!this._document.doctype&&console.warn("Current document does not have a doctype. This may cause some Angular Material components not to behave as expected.")}_checkThemeIsPresent(){if(!this._checksAreEnabled()||!1===this._sanityChecks||!this._sanityChecks.theme||!this._document.body||"function"!=typeof getComputedStyle)return;const t=this._document.createElement("div");t.classList.add("mat-theme-loaded-marker"),this._document.body.appendChild(t);const e=getComputedStyle(t);e&&"none"!==e.display&&console.warn("Could not find Angular Material core theme. Most Material components may not work as expected. For more info refer to the theming guide: https://material.angular.io/guide/theming"),this._document.body.removeChild(t)}_checkCdkVersionMatch(){this._checksAreEnabled()&&(!0===this._sanityChecks||this._sanityChecks.version)&&Ez.full!==Oz.full&&console.warn("The Angular Material version ("+Ez.full+") does not match the Angular CDK version ("+Oz.full+").\nPlease ensure the versions of these two packages exactly match.")}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function Nz(t){return class extends t{constructor(...t){super(...t),this._disabled=!1}get disabled(){return this._disabled}set disabled(t){this._disabled=rI(t)}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Iz(t,e){return class extends t{constructor(...t){super(...t),this.defaultColor=e,this.color=e}get color(){return this._color}set color(t){const e=t||this.defaultColor;e!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),e&&this._elementRef.nativeElement.classList.add(`mat-${e}`),this._color=e)}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function zz(t){return class extends t{constructor(...t){super(...t),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=rI(t)}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Hz(t,e=0){return class extends t{constructor(...t){super(...t),this._tabIndex=e,this.defaultTabIndex=e}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(t){this._tabIndex=null!=t?sI(t):this.defaultTabIndex}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Fz(t){return class extends t{constructor(...t){super(...t),this.errorState=!1,this.stateChanges=new x}updateErrorState(){const t=this.errorState,e=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);e!==t&&(this.errorState=e,this.stateChanges.next())}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function Lz(t){return class extends t{constructor(...t){super(...t),this._isInitialized=!1,this._pendingSubscribers=[],this.initialized=new y((t=>{this._isInitialized?this._notifySubscriber(t):this._pendingSubscribers.push(t)}))}_markInitialized(){if(this._isInitialized&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("This directive has already been marked as initialized and should not be called twice.");this._isInitialized=!0,this._pendingSubscribers.forEach(this._notifySubscriber),this._pendingSubscribers=null}_notifySubscriber(t){t.next(),t.complete()}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */Tz.ɵfac=function t(e){return new(e||Tz)(us(bz),us(Az,8),us(UC))},Tz.ɵmod=Zo({type:Tz}),Tz.ɵinj=co({imports:[[xz],xz]}),Tz.ctorParameters=()=>[{type:bz},{type:void 0,decorators:[{type:_s},{type:ys,args:[Az]}]},{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Tz,{imports:function(){return[xz]},exports:function(){return[xz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Tz,[{type:k_,args:[{imports:[xz],exports:[xz]}]}],(function(){return[{type:bz},{type:void 0,decorators:[{type:_s},{type:ys,args:[Az]}]},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);const Bz=new Nr("MAT_DATE_LOCALE",{providedIn:"root",factory:function Vz(){return gs(B_)}});class jz{constructor(){this._localeChanges=new x,this.localeChanges=this._localeChanges}getValidDateOrNull(t){return this.isDateInstance(t)&&this.isValid(t)?t:null}deserialize(t){return null==t||this.isDateInstance(t)&&this.isValid(t)?t:this.invalid()}setLocale(t){this.locale=t,this._localeChanges.next()}compareDate(t,e){return this.getYear(t)-this.getYear(e)||this.getMonth(t)-this.getMonth(e)||this.getDate(t)-this.getDate(e)}sameDate(t,e){if(t&&e){let n=this.isValid(t),o=this.isValid(e);return n&&o?!this.compareDate(t,e):n==o}return t==e}clampDate(t,e,n){return e&&this.compareDate(t,e)<0?e:n&&this.compareDate(t,n)>0?n:t}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Uz=new Nr("mat-date-formats");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */let Wz;try{Wz="undefined"!=typeof Intl}catch(t){Wz=!1}const Gz={long:["January","February","March","April","May","June","July","August","September","October","November","December"],short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],narrow:["J","F","M","A","M","J","J","A","S","O","N","D"]},Yz=Xz(31,(t=>String(t+1))),qz={long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],narrow:["S","M","T","W","T","F","S"]},Zz=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;function Xz(t,e){const n=Array(t);for(let o=0;o<t;o++)n[o]=e(o);return n}class Kz extends jz{constructor(t,e){super(),this.useUtcForDisplay=!0,super.setLocale(t),this.useUtcForDisplay=!e.TRIDENT,this._clampDate=e.TRIDENT||e.EDGE}getYear(t){return t.getFullYear()}getMonth(t){return t.getMonth()}getDate(t){return t.getDate()}getDayOfWeek(t){return t.getDay()}getMonthNames(t){if(Wz){const e=new Intl.DateTimeFormat(this.locale,{month:t,timeZone:"utc"});return Xz(12,(t=>this._stripDirectionalityCharacters(this._format(e,new Date(2017,t,1)))))}return Gz[t]}getDateNames(){if(Wz){const t=new Intl.DateTimeFormat(this.locale,{day:"numeric",timeZone:"utc"});return Xz(31,(e=>this._stripDirectionalityCharacters(this._format(t,new Date(2017,0,e+1)))))}return Yz}getDayOfWeekNames(t){if(Wz){const e=new Intl.DateTimeFormat(this.locale,{weekday:t,timeZone:"utc"});return Xz(7,(t=>this._stripDirectionalityCharacters(this._format(e,new Date(2017,0,t+1)))))}return qz[t]}getYearName(t){if(Wz){const e=new Intl.DateTimeFormat(this.locale,{year:"numeric",timeZone:"utc"});return this._stripDirectionalityCharacters(this._format(e,t))}return String(this.getYear(t))}getFirstDayOfWeek(){return 0}getNumDaysInMonth(t){return this.getDate(this._createDateWithOverflow(this.getYear(t),this.getMonth(t)+1,0))}clone(t){return new Date(t.getTime())}createDate(t,e,n){if("undefined"==typeof ngDevMode||ngDevMode){if(e<0||e>11)throw Error(`Invalid month index "${e}". Month index has to be between 0 and 11.`);if(n<1)throw Error(`Invalid date "${n}". Date has to be greater than 0.`)}let o=this._createDateWithOverflow(t,e,n);if(o.getMonth()!=e&&("undefined"==typeof ngDevMode||ngDevMode))throw Error(`Invalid date "${n}" for month with index "${e}".`);return o}today(){return new Date}parse(t){return"number"==typeof t?new Date(t):t?new Date(Date.parse(t)):null}format(t,e){if(!this.isValid(t))throw Error("NativeDateAdapter: Cannot format invalid date.");if(Wz){this._clampDate&&(t.getFullYear()<1||t.getFullYear()>9999)&&(t=this.clone(t)).setFullYear(Math.max(1,Math.min(9999,t.getFullYear()))),e=Object.assign(Object.assign({},e),{timeZone:"utc"});const n=new Intl.DateTimeFormat(this.locale,e);return this._stripDirectionalityCharacters(this._format(n,t))}return this._stripDirectionalityCharacters(t.toDateString())}addCalendarYears(t,e){return this.addCalendarMonths(t,12*e)}addCalendarMonths(t,e){let n=this._createDateWithOverflow(this.getYear(t),this.getMonth(t)+e,this.getDate(t));return this.getMonth(n)!=((this.getMonth(t)+e)%12+12)%12&&(n=this._createDateWithOverflow(this.getYear(n),this.getMonth(n),0)),n}addCalendarDays(t,e){return this._createDateWithOverflow(this.getYear(t),this.getMonth(t),this.getDate(t)+e)}toIso8601(t){return[t.getUTCFullYear(),this._2digit(t.getUTCMonth()+1),this._2digit(t.getUTCDate())].join("-")}deserialize(t){if("string"==typeof t){if(!t)return null;if(Zz.test(t)){let e=new Date(t);if(this.isValid(e))return e}}return super.deserialize(t)}isDateInstance(t){return t instanceof Date}isValid(t){return!isNaN(t.getTime())}invalid(){return new Date(NaN)}_createDateWithOverflow(t,e,n){const o=new Date;return o.setFullYear(t,e,n),o.setHours(0,0,0,0),o}_2digit(t){return("00"+t).slice(-2)}_stripDirectionalityCharacters(t){return t.replace(/[\u200e\u200f]/g,"")}_format(t,e){const n=new Date;return n.setUTCFullYear(e.getFullYear(),e.getMonth(),e.getDate()),n.setUTCHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),t.format(n)}}Kz.ɵfac=function t(e){return new(e||Kz)(us(Bz,8),us(fI))},Kz.ɵprov=lo({token:Kz,factory:Kz.ɵfac}),Kz.ctorParameters=()=>[{type:String,decorators:[{type:_s},{type:ys,args:[Bz]}]},{type:fI}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Kz,[{type:Jm}],(function(){return[{type:String,decorators:[{type:_s},{type:ys,args:[Bz]}]},{type:fI}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Jz{}Jz.ɵfac=function t(e){return new(e||Jz)},Jz.ɵmod=Zo({type:Jz}),Jz.ɵinj=co({providers:[{provide:jz,useClass:Kz}],imports:[[gI]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Jz,{imports:function(){return[gI]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Jz,[{type:k_,args:[{imports:[gI],providers:[{provide:jz,useClass:Kz}]}]}],null,null);const Qz={parse:{dateInput:null},display:{dateInput:{year:"numeric",month:"numeric",day:"numeric"},monthYearLabel:{year:"numeric",month:"short"},dateA11yLabel:{year:"numeric",month:"long",day:"numeric"},monthYearA11yLabel:{year:"numeric",month:"long"}}};class $z{}$z.ɵfac=function t(e){return new(e||$z)},$z.ɵmod=Zo({type:$z}),$z.ɵinj=co({providers:[{provide:Uz,useValue:Qz}],imports:[[Jz]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo($z,{imports:[Jz]}),("undefined"==typeof ngDevMode||ngDevMode)&&db($z,[{type:k_,args:[{imports:[Jz],providers:[{provide:Uz,useValue:Qz}]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class tH{isErrorState(t,e){return!!(t&&t.invalid&&(t.dirty||e&&e.submitted))}}tH.ɵfac=function t(e){return new(e||tH)},tH.ɵprov=lo({token:tH,factory:tH.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(tH,[{type:Jm}],null,null);class eH{isErrorState(t,e){return!!(t&&t.invalid&&(t.touched||e&&e.submitted))}}eH.ɵfac=function t(e){return new(e||eH)},eH.ɵprov=lo({factory:function t(){return new eH},token:eH,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(eH,[{type:Jm,args:[{providedIn:"root"}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class nH{}nH.ɵfac=function t(e){return new(e||nH)},nH.ɵdir=Jo({type:nH,selectors:[["","mat-line",""],["","matLine",""]],hostAttrs:[1,"mat-line"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(nH,[{type:g_,args:[{selector:"[mat-line], [matLine]",host:{class:"mat-line"}}]}],null,null);class oH{}oH.ɵfac=function t(e){return new(e||oH)},oH.ɵmod=Zo({type:oH}),oH.ɵinj=co({imports:[[Tz],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(oH,{declarations:[nH],imports:[Tz],exports:[nH,Tz]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(oH,[{type:k_,args:[{imports:[Tz],exports:[nH,Tz],declarations:[nH]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class iH{constructor(t,e,n){this._renderer=t,this.element=e,this.config=n,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const aH={enterDuration:450,exitDuration:400},rH=vI({passive:!0}),sH=["mousedown","touchstart"],lH=["mouseup","mouseleave","touchend","touchcancel"];class cH{constructor(t,e,n,o){this._target=t,this._ngZone=e,this._isPointerDown=!1,this._activeRipples=new Set,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=pI(n))}fadeInRipple(t,e,n={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),i=Object.assign(Object.assign({},aH),n.animation);n.centered&&(t=o.left+o.width/2,e=o.top+o.height/2);const a=n.radius||(function r(t,e,n){const o=Math.max(Math.abs(t-n.left),Math.abs(t-n.right)),i=Math.max(Math.abs(e-n.top),Math.abs(e-n.bottom));return Math.sqrt(o*o+i*i)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t,e,o),s=t-o.left,l=e-o.top,c=i.enterDuration,d=document.createElement("div");d.classList.add("mat-ripple-element"),d.style.left=s-a+"px",d.style.top=l-a+"px",d.style.height=2*a+"px",d.style.width=2*a+"px",null!=n.color&&(d.style.backgroundColor=n.color),d.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(d),(function p(t){window.getComputedStyle(t).getPropertyValue("opacity")})(d),d.style.transform="scale(1)";const m=new iH(this,d,n);return m.state=0,this._activeRipples.add(m),n.persistent||(this._mostRecentTransientRipple=m),this._runTimeoutOutsideZone((()=>{const t=m===this._mostRecentTransientRipple;m.state=1,n.persistent||t&&this._isPointerDown||m.fadeOut()}),c),m}fadeOutRipple(t){const e=this._activeRipples.delete(t);if(t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),this._activeRipples.size||(this._containerRect=null),!e)return;const n=t.element,o=Object.assign(Object.assign({},aH),t.config.animation);n.style.transitionDuration=`${o.exitDuration}ms`,n.style.opacity="0",t.state=2,this._runTimeoutOutsideZone((()=>{t.state=3,n.parentNode.removeChild(n)}),o.exitDuration)}fadeOutAll(){this._activeRipples.forEach((t=>t.fadeOut()))}fadeOutAllNonPersistent(){this._activeRipples.forEach((t=>{t.config.persistent||t.fadeOut()}))}setupTriggerEvents(t){const e=pI(t);e&&e!==this._triggerElement&&(this._removeTriggerEvents(),this._triggerElement=e,this._registerEvents(sH))}handleEvent(t){"mousedown"===t.type?this._onMousedown(t):"touchstart"===t.type?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._registerEvents(lH),this._pointerUpEventsRegistered=!0)}_onMousedown(t){const e=sz(t),n=this._lastTouchStartEvent&&Date.now()<this._lastTouchStartEvent+800;this._target.rippleDisabled||e||n||(this._isPointerDown=!0,this.fadeInRipple(t.clientX,t.clientY,this._target.rippleConfig))}_onTouchStart(t){if(!this._target.rippleDisabled&&!lz(t)){this._lastTouchStartEvent=Date.now(),this._isPointerDown=!0;const e=t.changedTouches;for(let t=0;t<e.length;t++)this.fadeInRipple(e[t].clientX,e[t].clientY,this._target.rippleConfig)}}_onPointerUp(){this._isPointerDown&&(this._isPointerDown=!1,this._activeRipples.forEach((t=>{!t.config.persistent&&(1===t.state||t.config.terminateOnPointerUp&&0===t.state)&&t.fadeOut()})))}_runTimeoutOutsideZone(t,e=0){this._ngZone.runOutsideAngular((()=>setTimeout(t,e)))}_registerEvents(t){this._ngZone.runOutsideAngular((()=>{t.forEach((t=>{this._triggerElement.addEventListener(t,this,rH)}))}))}_removeTriggerEvents(){this._triggerElement&&(sH.forEach((t=>{this._triggerElement.removeEventListener(t,this,rH)})),this._pointerUpEventsRegistered&&lH.forEach((t=>{this._triggerElement.removeEventListener(t,this,rH)})))}}const dH=new Nr("mat-ripple-global-options");class pH{constructor(t,e,n,o,i){this._elementRef=t,this._animationMode=i,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=o||{},this._rippleRenderer=new cH(this,e,t,n)}get disabled(){return this._disabled}set disabled(t){t&&this.fadeOutAllNonPersistent(),this._disabled=t,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(t){this._trigger=t,this._setupTriggerEventsIfEnabled()}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:Object.assign(Object.assign(Object.assign({},this._globalOptions.animation),"NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(t,e=0,n){return"number"==typeof t?this._rippleRenderer.fadeInRipple(t,e,Object.assign(Object.assign({},this.rippleConfig),n)):this._rippleRenderer.fadeInRipple(0,0,Object.assign(Object.assign({},this.rippleConfig),t))}}pH.ɵfac=function t(e){return new(e||pH)(Mu(ch),Mu(tC),Mu(fI),Mu(dH,8),Mu(Nw,8))},pH.ɵdir=Jo({type:pH,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function t(e,n){2&e&&af("mat-ripple-unbounded",n.unbounded)},inputs:{radius:["matRippleRadius","radius"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"],color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],animation:["matRippleAnimation","animation"]},exportAs:["matRipple"]}),pH.ctorParameters=()=>[{type:ch},{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[dH]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],pH.propDecorators={color:[{type:y_,args:["matRippleColor"]}],unbounded:[{type:y_,args:["matRippleUnbounded"]}],centered:[{type:y_,args:["matRippleCentered"]}],radius:[{type:y_,args:["matRippleRadius"]}],animation:[{type:y_,args:["matRippleAnimation"]}],disabled:[{type:y_,args:["matRippleDisabled"]}],trigger:[{type:y_,args:["matRippleTrigger"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(pH,[{type:g_,args:[{selector:"[mat-ripple], [matRipple]",exportAs:"matRipple",host:{class:"mat-ripple","[class.mat-ripple-unbounded]":"unbounded"}}]}],(function(){return[{type:ch},{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[dH]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{radius:[{type:y_,args:["matRippleRadius"]}],disabled:[{type:y_,args:["matRippleDisabled"]}],trigger:[{type:y_,args:["matRippleTrigger"]}],color:[{type:y_,args:["matRippleColor"]}],unbounded:[{type:y_,args:["matRippleUnbounded"]}],centered:[{type:y_,args:["matRippleCentered"]}],animation:[{type:y_,args:["matRippleAnimation"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class mH{}mH.ɵfac=function t(e){return new(e||mH)},mH.ɵmod=Zo({type:mH}),mH.ɵinj=co({imports:[[Tz,gI],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(mH,{declarations:function(){return[pH]},imports:function(){return[Tz,gI]},exports:function(){return[pH,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(mH,[{type:k_,args:[{imports:[Tz,gI],exports:[pH,Tz],declarations:[pH]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class uH{constructor(t){this._animationMode=t,this.state="unchecked",this.disabled=!1}}uH.ɵfac=function t(e){return new(e||uH)(Mu(Nw,8))},uH.ɵcmp=Uo({type:uH,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:8,hostBindings:function t(e,n){2&e&&af("mat-pseudo-checkbox-indeterminate","indeterminate"===n.state)("mat-pseudo-checkbox-checked","checked"===n.state)("mat-pseudo-checkbox-disabled",n.disabled)("_mat-animation-noopable","NoopAnimations"===n._animationMode)},inputs:{state:"state",disabled:"disabled"},decls:0,vars:0,template:function t(e,n){},styles:['.mat-pseudo-checkbox{width:16px;height:16px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\n'],encapsulation:2,changeDetection:0}),uH.ctorParameters=()=>[{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],uH.propDecorators={state:[{type:y_}],disabled:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(uH,[{type:h_,args:[{encapsulation:Po.None,changeDetection:xo.OnPush,selector:"mat-pseudo-checkbox",template:"",host:{class:"mat-pseudo-checkbox","[class.mat-pseudo-checkbox-indeterminate]":'state === "indeterminate"',"[class.mat-pseudo-checkbox-checked]":'state === "checked"',"[class.mat-pseudo-checkbox-disabled]":"disabled","[class._mat-animation-noopable]":'_animationMode === "NoopAnimations"'},styles:['.mat-pseudo-checkbox{width:16px;height:16px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\n']}]}],(function(){return[{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{state:[{type:y_}],disabled:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class fH{}fH.ɵfac=function t(e){return new(e||fH)},fH.ɵmod=Zo({type:fH}),fH.ɵinj=co({imports:[[Tz]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(fH,{declarations:[uH],imports:[Tz],exports:[uH]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fH,[{type:k_,args:[{imports:[Tz],exports:[uH],declarations:[uH]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const gH=new Nr("MAT_OPTION_PARENT_COMPONENT"),hH=Nz(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class{});let bH=0;class yH extends hH{constructor(t){var e;super(),this._labelId="mat-optgroup-label-"+bH++,this._inert=null!==(e=null==t?void 0:t.inertGroups)&&void 0!==e&&e}}yH.ɵfac=function t(e){return new(e||yH)(Mu(gH,8))},yH.ɵdir=Jo({type:yH,inputs:{label:"label"},features:[gm]}),yH.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[gH]},{type:_s}]}],yH.propDecorators={label:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(yH,[{type:g_}],(function(){return[{type:void 0,decorators:[{type:ys,args:[gH]},{type:_s}]}]}),{label:[{type:y_}]});const _H=new Nr("MatOptgroup");class CH extends yH{}CH.ɵfac=function t(e){return MH(e||CH)},CH.ɵcmp=Uo({type:CH,selectors:[["mat-optgroup"]],hostAttrs:[1,"mat-optgroup"],hostVars:5,hostBindings:function t(e,n){2&e&&(Nm("role",n._inert?null:"group")("aria-disabled",n._inert?null:n.disabled.toString())("aria-labelledby",n._inert?null:n._labelId),af("mat-optgroup-disabled",n.disabled))},inputs:{disabled:"disabled"},exportAs:["matOptgroup"],features:[ih([{provide:_H,useExisting:CH}]),gm],ngContentSelectors:["*","mat-option, ng-container"],decls:4,vars:2,consts:[["aria-hidden","true",1,"mat-optgroup-label",3,"id"]],template:function t(e,n){1&e&&(Vu(Pz),Ou(0,"span",0),Mf(1),ju(2),Pu(),ju(3,1)),2&e&&(vu("id",n._labelId),Jc(1),xf("",n.label," "))},styles:[".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\n"],encapsulation:2,changeDetection:0});const MH=vr(CH);("undefined"==typeof ngDevMode||ngDevMode)&&db(CH,[{type:h_,args:[{selector:"mat-optgroup",exportAs:"matOptgroup",template:'<span class="mat-optgroup-label" aria-hidden="true" [id]="_labelId">{{ label }} <ng-content></ng-content></span>\n<ng-content select="mat-option, ng-container"></ng-content>\n',encapsulation:Po.None,changeDetection:xo.OnPush,inputs:["disabled"],host:{class:"mat-optgroup","[attr.role]":'_inert ? null : "group"',"[attr.aria-disabled]":"_inert ? null : disabled.toString()","[attr.aria-labelledby]":"_inert ? null : _labelId","[class.mat-optgroup-disabled]":"disabled"},providers:[{provide:_H,useExisting:CH}],styles:[".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\n"]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let vH=0;class xH{constructor(t,e=!1){this.source=t,this.isUserInput=e}}class OH{constructor(t,e,n,o){this._element=t,this._changeDetectorRef=e,this._parent=n,this.group=o,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+vH++,this.onSelectionChange=new Ab,this._stateChanges=new x}get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(t){this._disabled=rI(t)}get disableRipple(){return this._parent&&this._parent.disableRipple}get active(){return this._active}get viewValue(){return(this._getHostElement().textContent||"").trim()}select(){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}deselect(){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}focus(t,e){const n=this._getHostElement();"function"==typeof n.focus&&n.focus(e)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(t){t.keyCode!==tI&&t.keyCode!==nI||aI(t)||(this._selectViaInteraction(),t.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getAriaSelected(){return this.selected||!this.multiple&&null}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const t=this.viewValue;t!==this._mostRecentViewValue&&(this._mostRecentViewValue=t,this._stateChanges.next())}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(t=!1){this.onSelectionChange.emit(new xH(this,t))}}OH.ɵfac=function t(e){return new(e||OH)(Mu(ch),Mu(Hh),Mu(void 0),Mu(yH))},OH.ɵdir=Jo({type:OH,inputs:{id:"id",disabled:"disabled",value:"value"},outputs:{onSelectionChange:"onSelectionChange"}}),OH.ctorParameters=()=>[{type:ch},{type:Hh},{type:void 0},{type:yH}],OH.propDecorators={value:[{type:y_}],id:[{type:y_}],disabled:[{type:y_}],onSelectionChange:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(OH,[{type:g_}],(function(){return[{type:ch},{type:Hh},{type:void 0},{type:yH}]}),{id:[{type:y_}],onSelectionChange:[{type:__}],disabled:[{type:y_}],value:[{type:y_}]});class PH extends OH{constructor(t,e,n,o){super(t,e,n,o)}}function wH(t,e,n){if(n.length){let o=e.toArray(),i=n.toArray(),a=0;for(let e=0;e<t+1;e++)o[e].group&&o[e].group===i[a]&&a++;return a}return 0}function kH(t,e,n,o){return t<n?t:t+e>n+o?Math.max(0,t-o+e):n}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */PH.ɵfac=function t(e){return new(e||PH)(Mu(ch),Mu(Hh),Mu(gH,8),Mu(_H,8))},PH.ɵcmp=Uo({type:PH,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-option","mat-focus-indicator"],hostVars:12,hostBindings:function t(e,n){1&e&&Nu("click",(function t(){return n._selectViaInteraction()}))("keydown",(function t(e){return n._handleKeydown(e)})),2&e&&(kf("id",n.id),Nm("tabindex",n._getTabIndex())("aria-selected",n._getAriaSelected())("aria-disabled",n.disabled.toString()),af("mat-selected",n.selected)("mat-option-multiple",n.multiple)("mat-active",n.active)("mat-option-disabled",n.disabled))},exportAs:["matOption"],features:[gm],ngContentSelectors:["*"],decls:5,vars:4,consts:[["class","mat-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mat-option-text"],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-option-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-option-pseudo-checkbox",3,"state","disabled"],[1,"cdk-visually-hidden"]],template:function t(e,n){1&e&&(Vu(),Wm(0,wz,1,2,"mat-pseudo-checkbox",0),Ou(1,"span",1),ju(2),Pu(),Wm(3,kz,2,1,"span",2),wu(4,"div",3)),2&e&&(vu("ngIf",n.multiple),Jc(3),vu("ngIf",n.group&&n.group._inert),Jc(1),vu("matRippleTrigger",n._getHostElement())("matRippleDisabled",n.disabled||n.disableRipple))},directives:[av,pH,uH],styles:[".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\n"],encapsulation:2,changeDetection:0}),PH.ctorParameters=()=>[{type:ch},{type:Hh},{type:void 0,decorators:[{type:_s},{type:ys,args:[gH]}]},{type:CH,decorators:[{type:_s},{type:ys,args:[_H]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(PH,[{type:h_,args:[{selector:"mat-option",exportAs:"matOption",host:{role:"option","[attr.tabindex]":"_getTabIndex()","[class.mat-selected]":"selected","[class.mat-option-multiple]":"multiple","[class.mat-active]":"active","[id]":"id","[attr.aria-selected]":"_getAriaSelected()","[attr.aria-disabled]":"disabled.toString()","[class.mat-option-disabled]":"disabled","(click)":"_selectViaInteraction()","(keydown)":"_handleKeydown($event)",class:"mat-option mat-focus-indicator"},template:'<mat-pseudo-checkbox *ngIf="multiple" class="mat-option-pseudo-checkbox"\n    [state]="selected ? \'checked\' : \'unchecked\'" [disabled]="disabled"></mat-pseudo-checkbox>\n\n<span class="mat-option-text"><ng-content></ng-content></span>\n\n\x3c!-- See a11y notes inside optgroup.ts for context behind this element. --\x3e\n<span class="cdk-visually-hidden" *ngIf="group && group._inert">({{ group.label }})</span>\n\n<div class="mat-option-ripple" mat-ripple\n     [matRippleTrigger]="_getHostElement()"\n     [matRippleDisabled]="disabled || disableRipple">\n</div>\n',encapsulation:Po.None,changeDetection:xo.OnPush,styles:[".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\n"]}]}],(function(){return[{type:ch},{type:Hh},{type:void 0,decorators:[{type:_s},{type:ys,args:[gH]}]},{type:CH,decorators:[{type:_s},{type:ys,args:[_H]}]}]}),null);class SH{}SH.ɵfac=function t(e){return new(e||SH)},SH.ɵmod=Zo({type:SH}),SH.ɵinj=co({imports:[[mH,Bv,Tz,fH]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(SH,{declarations:function(){return[PH,CH]},imports:function(){return[mH,Bv,Tz,fH]},exports:function(){return[PH,CH]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(SH,[{type:k_,args:[{imports:[mH,Bv,Tz,fH],exports:[PH,CH],declarations:[PH,CH]}]}],null,null);const DH=["mat-button",""],EH=["*"],AH=".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n",RH=["mat-button","mat-flat-button","mat-icon-button","mat-raised-button","mat-stroked-button","mat-mini-fab","mat-fab"],TH=Iz(Nz(zz(class{constructor(t){this._elementRef=t}})));class NH extends TH{constructor(t,e,n){super(t),this._focusMonitor=e,this._animationMode=n,this.isRoundButton=this._hasHostAttributes("mat-fab","mat-mini-fab"),this.isIconButton=this._hasHostAttributes("mat-icon-button");for(const t of RH)this._hasHostAttributes(t)&&this._getHostElement().classList.add(t);t.nativeElement.classList.add("mat-button-base"),this.isRoundButton&&(this.color="accent")}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(t,e){t?this._focusMonitor.focusVia(this._getHostElement(),t,e):this._getHostElement().focus(e)}_getHostElement(){return this._elementRef.nativeElement}_isRippleDisabled(){return this.disableRipple||this.disabled}_hasHostAttributes(...t){return t.some((t=>this._getHostElement().hasAttribute(t)))}}NH.ɵfac=function t(e){return new(e||NH)(Mu(ch),Mu(pz),Mu(Nw,8))},NH.ɵcmp=Uo({type:NH,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-icon-button",""],["button","mat-fab",""],["button","mat-mini-fab",""],["button","mat-stroked-button",""],["button","mat-flat-button",""]],viewQuery:function t(e,n){if(1&e&&Wb(pH,1),2&e){let t;Ub(t=Yb())&&(n.ripple=t.first)}},hostAttrs:[1,"mat-focus-indicator"],hostVars:5,hostBindings:function t(e,n){2&e&&(Nm("disabled",n.disabled||null),af("_mat-animation-noopable","NoopAnimations"===n._animationMode)("mat-button-disabled",n.disabled))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[gm],attrs:DH,ngContentSelectors:EH,decls:4,vars:5,consts:[[1,"mat-button-wrapper"],["matRipple","",1,"mat-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-button-focus-overlay"]],template:function t(e,n){1&e&&(Vu(),Ou(0,"span",0),ju(1),Pu(),wu(2,"span",1),wu(3,"span",2)),2&e&&(Jc(2),af("mat-button-ripple-round",n.isRoundButton||n.isIconButton),vu("matRippleDisabled",n._isRippleDisabled())("matRippleCentered",n.isIconButton)("matRippleTrigger",n._getHostElement()))},directives:[pH],styles:[AH],encapsulation:2,changeDetection:0}),NH.ctorParameters=()=>[{type:ch},{type:pz},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],NH.propDecorators={ripple:[{type:Fr,args:[pH]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(NH,[{type:h_,args:[{selector:"button[mat-button], button[mat-raised-button], button[mat-icon-button],\n             button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],\n             button[mat-flat-button]",exportAs:"matButton",host:{"[attr.disabled]":"disabled || null","[class._mat-animation-noopable]":'_animationMode === "NoopAnimations"',"[class.mat-button-disabled]":"disabled",class:"mat-focus-indicator"},template:'<span class="mat-button-wrapper"><ng-content></ng-content></span>\n<span matRipple class="mat-button-ripple"\n      [class.mat-button-ripple-round]="isRoundButton || isIconButton"\n      [matRippleDisabled]="_isRippleDisabled()"\n      [matRippleCentered]="isIconButton"\n      [matRippleTrigger]="_getHostElement()"></span>\n<span class="mat-button-focus-overlay"></span>\n',inputs:["disabled","disableRipple","color"],encapsulation:Po.None,changeDetection:xo.OnPush,styles:[".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n"]}]}],(function(){return[{type:ch},{type:pz},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{ripple:[{type:Fr,args:[pH]}]});class IH extends NH{constructor(t,e,n){super(e,t,n)}_haltDisabledEvents(t){this.disabled&&(t.preventDefault(),t.stopImmediatePropagation())}}IH.ɵfac=function t(e){return new(e||IH)(Mu(pz),Mu(ch),Mu(Nw,8))},IH.ɵcmp=Uo({type:IH,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-icon-button",""],["a","mat-fab",""],["a","mat-mini-fab",""],["a","mat-stroked-button",""],["a","mat-flat-button",""]],hostAttrs:[1,"mat-focus-indicator"],hostVars:7,hostBindings:function t(e,n){1&e&&Nu("click",(function t(e){return n._haltDisabledEvents(e)})),2&e&&(Nm("tabindex",n.disabled?-1:n.tabIndex||0)("disabled",n.disabled||null)("aria-disabled",n.disabled.toString()),af("_mat-animation-noopable","NoopAnimations"===n._animationMode)("mat-button-disabled",n.disabled))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[gm],attrs:DH,ngContentSelectors:EH,decls:4,vars:5,consts:[[1,"mat-button-wrapper"],["matRipple","",1,"mat-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-button-focus-overlay"]],template:function t(e,n){1&e&&(Vu(),Ou(0,"span",0),ju(1),Pu(),wu(2,"span",1),wu(3,"span",2)),2&e&&(Jc(2),af("mat-button-ripple-round",n.isRoundButton||n.isIconButton),vu("matRippleDisabled",n._isRippleDisabled())("matRippleCentered",n.isIconButton)("matRippleTrigger",n._getHostElement()))},directives:[pH],styles:[AH],encapsulation:2,changeDetection:0}),IH.ctorParameters=()=>[{type:pz},{type:ch},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],IH.propDecorators={tabIndex:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(IH,[{type:h_,args:[{selector:"a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab],\n             a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]",exportAs:"matButton, matAnchor",host:{"[attr.tabindex]":"disabled ? -1 : (tabIndex || 0)","[attr.disabled]":"disabled || null","[attr.aria-disabled]":"disabled.toString()","(click)":"_haltDisabledEvents($event)","[class._mat-animation-noopable]":'_animationMode === "NoopAnimations"',"[class.mat-button-disabled]":"disabled",class:"mat-focus-indicator"},inputs:["disabled","disableRipple","color"],template:'<span class="mat-button-wrapper"><ng-content></ng-content></span>\n<span matRipple class="mat-button-ripple"\n      [class.mat-button-ripple-round]="isRoundButton || isIconButton"\n      [matRippleDisabled]="_isRippleDisabled()"\n      [matRippleCentered]="isIconButton"\n      [matRippleTrigger]="_getHostElement()"></span>\n<span class="mat-button-focus-overlay"></span>\n',encapsulation:Po.None,changeDetection:xo.OnPush,styles:[".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n"]}]}],(function(){return[{type:pz},{type:ch},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{tabIndex:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class zH{}zH.ɵfac=function t(e){return new(e||zH)},zH.ɵmod=Zo({type:zH}),zH.ɵinj=co({imports:[[mH,Tz],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(zH,{declarations:function(){return[NH,IH]},imports:function(){return[mH,Tz]},exports:function(){return[NH,IH,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(zH,[{type:k_,args:[{imports:[mH,Tz],exports:[NH,IH,Tz],declarations:[NH,IH]}]}],null,null);class HH{}function FH(t){return t&&"function"==typeof t.connect}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class LH extends HH{constructor(t){super(),this._data=t}connect(){return ut(this._data)?this._data:Z(this._data)}disconnect(){}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class BH{applyChanges(t,e,n,o,i){t.forEachOperation(((t,o,a)=>{let r,s;if(null==t.previousIndex){const i=n(t,o,a);r=e.createEmbeddedView(i.templateRef,i.context,i.index),s=1}else null==a?(e.remove(o),s=3):(r=e.get(o),e.move(r,a),s=2);i&&i({context:null==r?void 0:r.context,operation:s,record:t})}))}detach(){}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class VH{constructor(){this.viewCacheSize=20,this._viewCache=[]}applyChanges(t,e,n,o,i){t.forEachOperation(((t,a,r)=>{let s,l;null==t.previousIndex?(s=this._insertView((()=>n(t,a,r)),r,e,o(t)),l=s?1:0):null==r?(this._detachAndCacheView(a,e),l=3):(s=this._moveView(a,r,e,o(t)),l=2),i&&i({context:null==s?void 0:s.context,operation:l,record:t})}))}detach(){for(const t of this._viewCache)t.destroy();this._viewCache=[]}_insertView(t,e,n,o){const i=this._insertViewFromCache(e,n);if(i)return void(i.context.$implicit=o);const a=t();return n.createEmbeddedView(a.templateRef,a.context,a.index)}_detachAndCacheView(t,e){const n=e.detach(t);this._maybeCacheView(n,e)}_moveView(t,e,n,o){const i=n.get(t);return n.move(i,e),i.context.$implicit=o,i}_maybeCacheView(t,e){if(this._viewCache.length<this.viewCacheSize)this._viewCache.push(t);else{const n=e.indexOf(t);-1===n?t.destroy():e.remove(n)}}_insertViewFromCache(t,e){const n=this._viewCache.pop();return n&&e.insert(n,t),n||null}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class jH{constructor(t=!1,e,n=!0){this._multiple=t,this._emitChanges=n,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new x,e&&e.length&&(t?e.forEach((t=>this._markSelected(t))):this._markSelected(e[0]),this._selectedToEmit.length=0)}get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}select(...t){this._verifyValueAssignment(t),t.forEach((t=>this._markSelected(t))),this._emitChangeEvent()}deselect(...t){this._verifyValueAssignment(t),t.forEach((t=>this._unmarkSelected(t))),this._emitChangeEvent()}toggle(t){this.isSelected(t)?this.deselect(t):this.select(t)}clear(){this._unmarkAll(),this._emitChangeEvent()}isSelected(t){return this._selection.has(t)}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){this.isSelected(t)||(this._multiple||this._unmarkAll(),this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach((t=>this._unmarkSelected(t)))}_verifyValueAssignment(t){if(t.length>1&&!this._multiple&&("undefined"==typeof ngDevMode||ngDevMode))throw(function e(){return Error("Cannot pass multiple values into SelectionModel with single-value mode.")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)()}}class UH{constructor(){this._listeners=[]}notify(t,e){for(let n of this._listeners)n(t,e)}listen(t){return this._listeners.push(t),()=>{this._listeners=this._listeners.filter((e=>t!==e))}}ngOnDestroy(){this._listeners=[]}}UH.ɵfac=function t(e){return new(e||UH)},UH.ɵprov=lo({factory:function t(){return new UH},token:UH,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(UH,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const WH=new Nr("_ViewRepeater"),GH=["contentWrapper"],YH=new Nr("VIRTUAL_SCROLL_STRATEGY");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class qH{constructor(t,e,n){this._scrolledIndexChange=new x,this.scrolledIndexChange=this._scrolledIndexChange.pipe(ke()),this._viewport=null,this._itemSize=t,this._minBufferPx=e,this._maxBufferPx=n}attach(t){this._viewport=t,this._updateTotalContentSize(),this._updateRenderedRange()}detach(){this._scrolledIndexChange.complete(),this._viewport=null}updateItemAndBufferSize(t,e,n){if(n<e&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx");this._itemSize=t,this._minBufferPx=e,this._maxBufferPx=n,this._updateTotalContentSize(),this._updateRenderedRange()}onContentScrolled(){this._updateRenderedRange()}onDataLengthChanged(){this._updateTotalContentSize(),this._updateRenderedRange()}onContentRendered(){}onRenderedOffsetChanged(){}scrollToIndex(t,e){this._viewport&&this._viewport.scrollToOffset(t*this._itemSize,e)}_updateTotalContentSize(){this._viewport&&this._viewport.setTotalContentSize(this._viewport.getDataLength()*this._itemSize)}_updateRenderedRange(){if(!this._viewport)return;const t=this._viewport.getRenderedRange(),e={start:t.start,end:t.end},n=this._viewport.getViewportSize(),o=this._viewport.getDataLength();let i=this._viewport.measureScrollOffset(),a=this._itemSize>0?i/this._itemSize:0;if(e.end>o){const t=Math.ceil(n/this._itemSize),r=Math.max(0,Math.min(a,o-t));a!=r&&(a=r,i=r*this._itemSize,e.start=Math.floor(a)),e.end=Math.max(0,Math.min(o,e.start+t))}const r=i-e.start*this._itemSize;if(r<this._minBufferPx&&0!=e.start){const t=Math.ceil((this._maxBufferPx-r)/this._itemSize);e.start=Math.max(0,e.start-t),e.end=Math.min(o,Math.ceil(a+(n+this._minBufferPx)/this._itemSize))}else{const t=e.end*this._itemSize-(i+n);if(t<this._minBufferPx&&e.end!=o){const n=Math.ceil((this._maxBufferPx-t)/this._itemSize);n>0&&(e.end=Math.min(o,e.end+n),e.start=Math.max(0,Math.floor(a-this._minBufferPx/this._itemSize)))}}this._viewport.setRenderedRange(e),this._viewport.setRenderedContentOffset(this._itemSize*e.start),this._scrolledIndexChange.next(Math.floor(a))}}function ZH(t){return t._scrollStrategy}class XH{constructor(){this._itemSize=20,this._minBufferPx=100,this._maxBufferPx=200,this._scrollStrategy=new qH(this.itemSize,this.minBufferPx,this.maxBufferPx)}get itemSize(){return this._itemSize}set itemSize(t){this._itemSize=sI(t)}get minBufferPx(){return this._minBufferPx}set minBufferPx(t){this._minBufferPx=sI(t)}get maxBufferPx(){return this._maxBufferPx}set maxBufferPx(t){this._maxBufferPx=sI(t)}ngOnChanges(){this._scrollStrategy.updateItemAndBufferSize(this.itemSize,this.minBufferPx,this.maxBufferPx)}}XH.ɵfac=function t(e){return new(e||XH)},XH.ɵdir=Jo({type:XH,selectors:[["cdk-virtual-scroll-viewport","itemSize",""]],inputs:{itemSize:"itemSize",minBufferPx:"minBufferPx",maxBufferPx:"maxBufferPx"},features:[ih([{provide:YH,useFactory:ZH,deps:[In((()=>XH))]}]),Si]}),XH.propDecorators={itemSize:[{type:y_}],minBufferPx:[{type:y_}],maxBufferPx:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(XH,[{type:g_,args:[{selector:"cdk-virtual-scroll-viewport[itemSize]",providers:[{provide:YH,useFactory:ZH,deps:[In((()=>XH))]}]}]}],(function(){return[]}),{itemSize:[{type:y_}],minBufferPx:[{type:y_}],maxBufferPx:[{type:y_}]});class KH{constructor(t,e,n){this._ngZone=t,this._platform=e,this._scrolled=new x,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=n}register(t){this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe((()=>this._scrolled.next(t))))}deregister(t){const e=this.scrollContainers.get(t);e&&(e.unsubscribe(),this.scrollContainers.delete(t))}scrolled(t=20){return this._platform.isBrowser?new y((e=>{this._globalSubscription||this._addGlobalListener();const n=t>0?this._scrolled.pipe(oe(t)).subscribe(e):this._scrolled.subscribe(e);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}})):Z()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach(((t,e)=>this.deregister(e))),this._scrolled.complete()}ancestorScrolled(t,e){const n=this.getAncestorScrollContainers(t);return this.scrolled(e).pipe(Gt((t=>!t||n.indexOf(t)>-1)))}getAncestorScrollContainers(t){const e=[];return this.scrollContainers.forEach(((n,o)=>{this._scrollableContainsElement(o,t)&&e.push(o)})),e}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(t,e){let n=pI(e),o=t.getElementRef().nativeElement;do{if(n==o)return!0}while(n=n.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular((()=>Vt(this._getWindow().document,"scroll").subscribe((()=>this._scrolled.next()))))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}KH.ɵfac=function t(e){return new(e||KH)(us(tC),us(fI),us(UC,8))},KH.ɵprov=lo({factory:function t(){return new KH(us(tC),us(fI),us(UC,8))},token:KH,providedIn:"root"}),KH.ctorParameters=()=>[{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(KH,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class JH{constructor(t,e,n,o){this.elementRef=t,this.scrollDispatcher=e,this.ngZone=n,this.dir=o,this._destroyed=new x,this._elementScrolled=new y((t=>this.ngZone.runOutsideAngular((()=>Vt(this.elementRef.nativeElement,"scroll").pipe(un(this._destroyed)).subscribe(t)))))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(t){const e=this.elementRef.nativeElement,n=this.dir&&"rtl"==this.dir.value;null==t.left&&(t.left=n?t.end:t.start),null==t.right&&(t.right=n?t.start:t.end),null!=t.bottom&&(t.top=e.scrollHeight-e.clientHeight-t.bottom),n&&0!=OI()?(null!=t.left&&(t.right=e.scrollWidth-e.clientWidth-t.left),2==OI()?t.left=t.right:1==OI()&&(t.left=t.right?-t.right:t.right)):null!=t.right&&(t.left=e.scrollWidth-e.clientWidth-t.right),this._applyScrollToOptions(t)}_applyScrollToOptions(t){const e=this.elementRef.nativeElement;xI()?e.scrollTo(t):(null!=t.top&&(e.scrollTop=t.top),null!=t.left&&(e.scrollLeft=t.left))}measureScrollOffset(t){const e="left",n="right",o=this.elementRef.nativeElement;if("top"==t)return o.scrollTop;if("bottom"==t)return o.scrollHeight-o.clientHeight-o.scrollTop;const i=this.dir&&"rtl"==this.dir.value;return"start"==t?t=i?n:e:"end"==t&&(t=i?e:n),i&&2==OI()?t==e?o.scrollWidth-o.clientWidth-o.scrollLeft:o.scrollLeft:i&&1==OI()?t==e?o.scrollLeft+o.scrollWidth-o.clientWidth:-o.scrollLeft:t==e?o.scrollLeft:o.scrollWidth-o.clientWidth-o.scrollLeft}}JH.ɵfac=function t(e){return new(e||JH)(Mu(ch),Mu(KH),Mu(tC),Mu(Mz,8))},JH.ɵdir=Jo({type:JH,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]}),JH.ctorParameters=()=>[{type:ch},{type:KH},{type:tC},{type:Mz,decorators:[{type:_s}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(JH,[{type:g_,args:[{selector:"[cdk-scrollable], [cdkScrollable]"}]}],(function(){return[{type:ch},{type:KH},{type:tC},{type:Mz,decorators:[{type:_s}]}]}),null);class QH{constructor(t,e,n){this._platform=t,this._change=new x,this._changeListener=t=>{this._change.next(t)},this._document=n,e.runOutsideAngular((()=>{if(t.isBrowser){const t=this._getWindow();t.addEventListener("resize",this._changeListener),t.addEventListener("orientationchange",this._changeListener)}this.change().subscribe((()=>this._updateViewportSize()))}))}ngOnDestroy(){if(this._platform.isBrowser){const t=this._getWindow();t.removeEventListener("resize",this._changeListener),t.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t}getViewportRect(){const t=this.getViewportScrollPosition(),{width:e,height:n}=this.getViewportSize();return{top:t.top,left:t.left,bottom:t.top+n,right:t.left+e,height:n,width:e}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const t=this._document,e=this._getWindow(),n=t.documentElement,o=n.getBoundingClientRect();return{top:-o.top||t.body.scrollTop||e.scrollY||n.scrollTop||0,left:-o.left||t.body.scrollLeft||e.scrollX||n.scrollLeft||0}}change(t=20){return t>0?this._change.pipe(oe(t)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const t=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:t.innerWidth,height:t.innerHeight}:{width:0,height:0}}}QH.ɵfac=function t(e){return new(e||QH)(us(fI),us(tC),us(UC,8))},QH.ɵprov=lo({factory:function t(){return new QH(us(fI),us(tC),us(UC,8))},token:QH,providedIn:"root"}),QH.ctorParameters=()=>[{type:fI},{type:tC},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(QH,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:fI},{type:tC},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]}]}),null);const $H="undefined"!=typeof requestAnimationFrame?pt:ct;class tF extends JH{constructor(t,e,n,o,i,a,r){if(super(t,a,n,i),this.elementRef=t,this._changeDetectorRef=e,this._scrollStrategy=o,this._detachedSubject=new x,this._renderedRangeSubject=new x,this._orientation="vertical",this.scrolledIndexChange=new y((t=>this._scrollStrategy.scrolledIndexChange.subscribe((e=>Promise.resolve().then((()=>this.ngZone.run((()=>t.next(e))))))))),this.renderedRangeStream=this._renderedRangeSubject,this._totalContentSize=0,this._totalContentWidth="",this._totalContentHeight="",this._renderedRange={start:0,end:0},this._dataLength=0,this._viewportSize=0,this._renderedContentOffset=0,this._renderedContentOffsetNeedsRewrite=!1,this._isChangeDetectionPending=!1,this._runAfterChangeDetection=[],this._viewportChanges=l.EMPTY,!o&&("undefined"==typeof ngDevMode||ngDevMode))throw Error('Error: cdk-virtual-scroll-viewport requires the "itemSize" property to be set.');this._viewportChanges=r.change().subscribe((()=>{this.checkViewportSize()}))}get orientation(){return this._orientation}set orientation(t){this._orientation!==t&&(this._orientation=t,this._calculateSpacerSize())}ngOnInit(){super.ngOnInit(),this.ngZone.runOutsideAngular((()=>Promise.resolve().then((()=>{this._measureViewportSize(),this._scrollStrategy.attach(this),this.elementScrolled().pipe(cn(null),oe(0,$H)).subscribe((()=>this._scrollStrategy.onContentScrolled())),this._markChangeDetectionNeeded()}))))}ngOnDestroy(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),super.ngOnDestroy()}attach(t){if(this._forOf&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("CdkVirtualScrollViewport is already attached.");this.ngZone.runOutsideAngular((()=>{this._forOf=t,this._forOf.dataStream.pipe(un(this._detachedSubject)).subscribe((t=>{const e=t.length;e!==this._dataLength&&(this._dataLength=e,this._scrollStrategy.onDataLengthChanged()),this._doChangeDetection()}))}))}detach(){this._forOf=null,this._detachedSubject.next()}getDataLength(){return this._dataLength}getViewportSize(){return this._viewportSize}getRenderedRange(){return this._renderedRange}setTotalContentSize(t){this._totalContentSize!==t&&(this._totalContentSize=t,this._calculateSpacerSize(),this._markChangeDetectionNeeded())}setRenderedRange(t){(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function e(t,n){return t.start==n.start&&t.end==n.end})(this._renderedRange,t)||(this._renderedRangeSubject.next(this._renderedRange=t),this._markChangeDetectionNeeded((()=>this._scrollStrategy.onContentRendered())))}getOffsetToRenderedContentStart(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset}setRenderedContentOffset(t,e="to-start"){const n="horizontal"==this.orientation,o=n?"X":"Y";let i=`translate${o}(${Number((n&&this.dir&&"rtl"==this.dir.value?-1:1)*t)}px)`;this._renderedContentOffset=t,"to-end"===e&&(i+=` translate${o}(-100%)`,this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=i&&(this._renderedContentTransform=i,this._markChangeDetectionNeeded((()=>{this._renderedContentOffsetNeedsRewrite?(this._renderedContentOffset-=this.measureRenderedContentSize(),this._renderedContentOffsetNeedsRewrite=!1,this.setRenderedContentOffset(this._renderedContentOffset)):this._scrollStrategy.onRenderedOffsetChanged()})))}scrollToOffset(t,e="auto"){const n={behavior:e};"horizontal"===this.orientation?n.start=t:n.top=t,this.scrollTo(n)}scrollToIndex(t,e="auto"){this._scrollStrategy.scrollToIndex(t,e)}measureScrollOffset(t){return super.measureScrollOffset(t||("horizontal"===this.orientation?"start":"top"))}measureRenderedContentSize(){const t=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?t.offsetWidth:t.offsetHeight}measureRangeSize(t){return this._forOf?this._forOf.measureRangeSize(t,this.orientation):0}checkViewportSize(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()}_measureViewportSize(){const t=this.elementRef.nativeElement;this._viewportSize="horizontal"===this.orientation?t.clientWidth:t.clientHeight}_markChangeDetectionNeeded(t){t&&this._runAfterChangeDetection.push(t),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular((()=>Promise.resolve().then((()=>{this._doChangeDetection()})))))}_doChangeDetection(){this._isChangeDetectionPending=!1,this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,this.ngZone.run((()=>this._changeDetectorRef.markForCheck()));const t=this._runAfterChangeDetection;this._runAfterChangeDetection=[];for(const e of t)e()}_calculateSpacerSize(){this._totalContentHeight="horizontal"===this.orientation?"":`${this._totalContentSize}px`,this._totalContentWidth="horizontal"===this.orientation?`${this._totalContentSize}px`:""}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function eF(t,e,n){if(!n.getBoundingClientRect)return 0;const o=n.getBoundingClientRect();return"horizontal"===t?"start"===e?o.left:o.right:"start"===e?o.top:o.bottom}tF.ɵfac=function t(e){return new(e||tF)(Mu(ch),Mu(Hh),Mu(tC),Mu(YH,8),Mu(Mz,8),Mu(KH),Mu(QH))},tF.ɵcmp=Uo({type:tF,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function t(e,n){if(1&e&&Wb(GH,3),2&e){let t;Ub(t=Yb())&&(n._contentWrapper=t.first)}},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function t(e,n){2&e&&af("cdk-virtual-scroll-orientation-horizontal","horizontal"===n.orientation)("cdk-virtual-scroll-orientation-vertical","horizontal"!==n.orientation)},inputs:{orientation:"orientation"},outputs:{scrolledIndexChange:"scrolledIndexChange"},features:[ih([{provide:JH,useExisting:tF}]),gm],ngContentSelectors:["*"],decls:4,vars:4,consts:[[1,"cdk-virtual-scroll-content-wrapper"],["contentWrapper",""],[1,"cdk-virtual-scroll-spacer"]],template:function t(e,n){1&e&&(Vu(),Ou(0,"div",0,1),ju(2),Pu(),wu(3,"div",2)),2&e&&(Jc(3),of("width",n._totalContentWidth)("height",n._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\n"],encapsulation:2,changeDetection:0}),tF.ctorParameters=()=>[{type:ch},{type:Hh},{type:tC},{type:void 0,decorators:[{type:_s},{type:ys,args:[YH]}]},{type:Mz,decorators:[{type:_s}]},{type:KH},{type:QH}],tF.propDecorators={orientation:[{type:y_}],scrolledIndexChange:[{type:__}],_contentWrapper:[{type:Fr,args:["contentWrapper",{static:!0}]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(tF,[{type:h_,args:[{selector:"cdk-virtual-scroll-viewport",template:'\x3c!--\n  Wrap the rendered content in an element that will be used to offset it based on the scroll\n  position.\n--\x3e\n<div #contentWrapper class="cdk-virtual-scroll-content-wrapper">\n  <ng-content></ng-content>\n</div>\n\x3c!--\n  Spacer used to force the scrolling container to the correct size for the *total* number of items\n  so that the scrollbar captures the size of the entire data set.\n--\x3e\n<div class="cdk-virtual-scroll-spacer"\n     [style.width]="_totalContentWidth" [style.height]="_totalContentHeight"></div>\n',host:{class:"cdk-virtual-scroll-viewport","[class.cdk-virtual-scroll-orientation-horizontal]":'orientation === "horizontal"',"[class.cdk-virtual-scroll-orientation-vertical]":'orientation !== "horizontal"'},encapsulation:Po.None,changeDetection:xo.OnPush,providers:[{provide:JH,useExisting:tF}],styles:["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\n"]}]}],(function(){return[{type:ch},{type:Hh},{type:tC},{type:void 0,decorators:[{type:_s},{type:ys,args:[YH]}]},{type:Mz,decorators:[{type:_s}]},{type:KH},{type:QH}]}),{scrolledIndexChange:[{type:__}],orientation:[{type:y_}],_contentWrapper:[{type:Fr,args:["contentWrapper",{static:!0}]}]});class nF{constructor(t,e,n,o,i,a){this._viewContainerRef=t,this._template=e,this._differs=n,this._viewRepeater=o,this._viewport=i,this.viewChange=new x,this._dataSourceChanges=new x,this.dataStream=this._dataSourceChanges.pipe(cn(null),(function r(){return t=>t.lift(new Qe)})(),dn((([t,e])=>this._changeDataSource(t,e))),an(1)),this._differ=null,this._needsUpdate=!1,this._destroyed=new x,this.dataStream.subscribe((t=>{this._data=t,this._onRenderedDataChange()})),this._viewport.renderedRangeStream.pipe(un(this._destroyed)).subscribe((t=>{this._renderedRange=t,a.run((()=>this.viewChange.next(this._renderedRange))),this._onRenderedDataChange()})),this._viewport.attach(this)}get cdkVirtualForOf(){return this._cdkVirtualForOf}set cdkVirtualForOf(t){this._cdkVirtualForOf=t,FH(t)?this._dataSourceChanges.next(t):this._dataSourceChanges.next(new LH(ut(t)?t:Array.from(t||[])))}get cdkVirtualForTrackBy(){return this._cdkVirtualForTrackBy}set cdkVirtualForTrackBy(t){this._needsUpdate=!0,this._cdkVirtualForTrackBy=t?(e,n)=>t(e+(this._renderedRange?this._renderedRange.start:0),n):void 0}set cdkVirtualForTemplate(t){t&&(this._needsUpdate=!0,this._template=t)}get cdkVirtualForTemplateCacheSize(){return this._viewRepeater.viewCacheSize}set cdkVirtualForTemplateCacheSize(t){this._viewRepeater.viewCacheSize=sI(t)}measureRangeSize(t,e){if(t.start>=t.end)return 0;if((t.start<this._renderedRange.start||t.end>this._renderedRange.end)&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("Error: attempted to measure an item that isn't rendered.");const n=t.start-this._renderedRange.start,o=t.end-t.start;let i,a;for(let t=0;t<o;t++){const e=this._viewContainerRef.get(t+n);if(e&&e.rootNodes.length){i=a=e.rootNodes[0];break}}for(let t=o-1;t>-1;t--){const e=this._viewContainerRef.get(t+n);if(e&&e.rootNodes.length){a=e.rootNodes[e.rootNodes.length-1];break}}return i&&a?eF(e,"end",a)-eF(e,"start",i):0}ngDoCheck(){if(this._differ&&this._needsUpdate){const t=this._differ.diff(this._renderedItems);t?this._applyChanges(t):this._updateContext(),this._needsUpdate=!1}}ngOnDestroy(){this._viewport.detach(),this._dataSourceChanges.next(void 0),this._dataSourceChanges.complete(),this.viewChange.complete(),this._destroyed.next(),this._destroyed.complete(),this._viewRepeater.detach()}_onRenderedDataChange(){this._renderedRange&&(this._renderedItems=this._data.slice(this._renderedRange.start,this._renderedRange.end),this._differ||(this._differ=this._differs.find(this._renderedItems).create(((t,e)=>this.cdkVirtualForTrackBy?this.cdkVirtualForTrackBy(t,e):e))),this._needsUpdate=!0)}_changeDataSource(t,e){return t&&t.disconnect(this),this._needsUpdate=!0,e?e.connect(this):Z()}_updateContext(){const t=this._data.length;let e=this._viewContainerRef.length;for(;e--;){const n=this._viewContainerRef.get(e);n.context.index=this._renderedRange.start+e,n.context.count=t,this._updateComputedContextProperties(n.context),n.detectChanges()}}_applyChanges(t){this._viewRepeater.applyChanges(t,this._viewContainerRef,((t,e,n)=>this._getEmbeddedViewArgs(t,n)),(t=>t.item)),t.forEachIdentityChange((t=>{this._viewContainerRef.get(t.currentIndex).context.$implicit=t.item}));const e=this._data.length;let n=this._viewContainerRef.length;for(;n--;){const t=this._viewContainerRef.get(n);t.context.index=this._renderedRange.start+n,t.context.count=e,this._updateComputedContextProperties(t.context)}}_updateComputedContextProperties(t){t.first=0===t.index,t.last=t.index===t.count-1,t.even=t.index%2==0,t.odd=!t.even}_getEmbeddedViewArgs(t,e){return{templateRef:this._template,context:{$implicit:t.item,cdkVirtualForOf:this._cdkVirtualForOf,index:-1,count:-1,first:!1,last:!1,odd:!1,even:!1},index:e}}}nF.ɵfac=function t(e){return new(e||nF)(Mu(Xh),Mu(Uh),Mu(Eh),Mu(WH),Mu(tF,4),Mu(tC))},nF.ɵdir=Jo({type:nF,selectors:[["","cdkVirtualFor","","cdkVirtualForOf",""]],inputs:{cdkVirtualForOf:"cdkVirtualForOf",cdkVirtualForTrackBy:"cdkVirtualForTrackBy",cdkVirtualForTemplate:"cdkVirtualForTemplate",cdkVirtualForTemplateCacheSize:"cdkVirtualForTemplateCacheSize"},features:[ih([{provide:WH,useClass:VH}])]}),nF.ctorParameters=()=>[{type:Xh},{type:Uh},{type:Eh},{type:VH,decorators:[{type:ys,args:[WH]}]},{type:tF,decorators:[{type:Ms}]},{type:tC}],nF.propDecorators={cdkVirtualForOf:[{type:y_}],cdkVirtualForTrackBy:[{type:y_}],cdkVirtualForTemplate:[{type:y_}],cdkVirtualForTemplateCacheSize:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(nF,[{type:g_,args:[{selector:"[cdkVirtualFor][cdkVirtualForOf]",providers:[{provide:WH,useClass:VH}]}]}],(function(){return[{type:Xh},{type:Uh},{type:Eh},{type:VH,decorators:[{type:ys,args:[WH]}]},{type:tF,decorators:[{type:Ms}]},{type:tC}]}),{cdkVirtualForOf:[{type:y_}],cdkVirtualForTrackBy:[{type:y_}],cdkVirtualForTemplate:[{type:y_}],cdkVirtualForTemplateCacheSize:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class oF{}oF.ɵfac=function t(e){return new(e||oF)},oF.ɵmod=Zo({type:oF}),oF.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(oF,{declarations:[JH],exports:[JH]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(oF,[{type:k_,args:[{exports:[JH],declarations:[JH]}]}],null,null);class iF{}function aF(){throw Error("Host already has a portal attached")}iF.ɵfac=function t(e){return new(e||iF)},iF.ɵmod=Zo({type:iF}),iF.ɵinj=co({imports:[[xz,gI,oF],xz,oF]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(iF,{declarations:function(){return[XH,nF,tF]},imports:function(){return[xz,gI,oF]},exports:function(){return[xz,oF,XH,nF,tF]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(iF,[{type:k_,args:[{imports:[xz,gI,oF],exports:[xz,oF,XH,nF,tF],declarations:[XH,nF,tF]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class rF{attach(t){return("undefined"==typeof ngDevMode||ngDevMode)&&(null==t&&(function e(){throw Error("Attempting to attach a portal to a null PortalOutlet")})(),t.hasAttached()&&aF()),this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t?(this._attachedHost=null,t.detach()):("undefined"==typeof ngDevMode||ngDevMode)&&(function e(){throw Error("Attempting to detach a portal that is not attached to a host")})()}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class sF extends rF{constructor(t,e,n,o){super(),this.component=t,this.viewContainerRef=e,this.injector=n,this.componentFactoryResolver=o}}class lF extends rF{constructor(t,e,n){super(),this.templateRef=t,this.viewContainerRef=e,this.context=n}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class cF extends rF{constructor(t){super(),this.element=t instanceof ch?t.nativeElement:t}}class dF{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return("undefined"==typeof ngDevMode||ngDevMode)&&(t||(function e(){throw Error("Must provide a portal to attach")})(),this.hasAttached()&&aF(),this._isDisposed&&(function n(){throw Error("This PortalOutlet has already been disposed")})()),t instanceof sF?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof lF?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof cF?(this._attachedPortal=t,this.attachDomPortal(t)):void(("undefined"==typeof ngDevMode||ngDevMode)&&(function o(){throw Error("Attempting to attach an unknown Portal type. BasePortalOutlet accepts either a ComponentPortal or a TemplatePortal.")})())}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class pF extends dF{constructor(t,e,n,o,i){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=n,this._defaultInjector=o,this.attachDomPortal=t=>{if(!this._document&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("Cannot attach DOM portal without _document constructor parameter");const e=t.element;if(!e.parentNode&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("DOM portal content must be attached to a parent node.");const n=this._document.createComment("dom-portal");e.parentNode.insertBefore(n,e),this.outletElement.appendChild(e),this._attachedPortal=t,super.setDisposeFn((()=>{n.parentNode&&n.parentNode.replaceChild(e,n)}))},this._document=i}attachComponentPortal(t){const e=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let n;return t.viewContainerRef?(n=t.viewContainerRef.createComponent(e,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector),this.setDisposeFn((()=>n.destroy()))):(n=e.create(t.injector||this._defaultInjector),this._appRef.attachView(n.hostView),this.setDisposeFn((()=>{this._appRef.detachView(n.hostView),n.destroy()}))),this.outletElement.appendChild(this._getComponentRootNode(n)),this._attachedPortal=t,n}attachTemplatePortal(t){let e=t.viewContainerRef,n=e.createEmbeddedView(t.templateRef,t.context);return n.rootNodes.forEach((t=>this.outletElement.appendChild(t))),n.detectChanges(),this.setDisposeFn((()=>{let t=e.indexOf(n);-1!==t&&e.remove(t)})),this._attachedPortal=t,n}dispose(){super.dispose(),null!=this.outletElement.parentNode&&this.outletElement.parentNode.removeChild(this.outletElement)}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class mF extends lF{constructor(t,e){super(t,e)}}mF.ɵfac=function t(e){return new(e||mF)(Mu(Uh),Mu(Xh))},mF.ɵdir=Jo({type:mF,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[gm]}),mF.ctorParameters=()=>[{type:Uh},{type:Xh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(mF,[{type:g_,args:[{selector:"[cdkPortal]",exportAs:"cdkPortal"}]}],(function(){return[{type:Uh},{type:Xh}]}),null);class uF extends mF{}uF.ɵfac=function t(e){return fF(e||uF)},uF.ɵdir=Jo({type:uF,selectors:[["","cdk-portal",""],["","portal",""]],exportAs:["cdkPortal"],features:[ih([{provide:mF,useExisting:uF}]),gm]});const fF=vr(uF);("undefined"==typeof ngDevMode||ngDevMode)&&db(uF,[{type:g_,args:[{selector:"[cdk-portal], [portal]",exportAs:"cdkPortal",providers:[{provide:mF,useExisting:uF}]}]}],null,null);class gF extends dF{constructor(t,e,n){super(),this._componentFactoryResolver=t,this._viewContainerRef=e,this._isInitialized=!1,this.attached=new Ab,this.attachDomPortal=t=>{if(!this._document&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("Cannot attach DOM portal without _document constructor parameter");const e=t.element;if(!e.parentNode&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("DOM portal content must be attached to a parent node.");const n=this._document.createComment("dom-portal");t.setAttachedHost(this),e.parentNode.insertBefore(n,e),this._getRootNode().appendChild(e),this._attachedPortal=t,super.setDisposeFn((()=>{n.parentNode&&n.parentNode.replaceChild(e,n)}))},this._document=n}get portal(){return this._attachedPortal}set portal(t){(!this.hasAttached()||t||this._isInitialized)&&(this.hasAttached()&&super.detach(),t&&super.attach(t),this._attachedPortal=t)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedPortal=null,this._attachedRef=null}attachComponentPortal(t){t.setAttachedHost(this);const e=null!=t.viewContainerRef?t.viewContainerRef:this._viewContainerRef,n=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component),o=e.createComponent(n,e.length,t.injector||e.injector);return e!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn((()=>o.destroy())),this._attachedPortal=t,this._attachedRef=o,this.attached.emit(o),o}attachTemplatePortal(t){t.setAttachedHost(this);const e=this._viewContainerRef.createEmbeddedView(t.templateRef,t.context);return super.setDisposeFn((()=>this._viewContainerRef.clear())),this._attachedPortal=t,this._attachedRef=e,this.attached.emit(e),e}_getRootNode(){const t=this._viewContainerRef.element.nativeElement;return t.nodeType===t.ELEMENT_NODE?t:t.parentNode}}gF.ɵfac=function t(e){return new(e||gF)(Mu(rh),Mu(Xh),Mu(UC))},gF.ɵdir=Jo({type:gF,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[gm]}),gF.ctorParameters=()=>[{type:rh},{type:Xh},{type:void 0,decorators:[{type:ys,args:[UC]}]}],gF.propDecorators={attached:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(gF,[{type:g_,args:[{selector:"[cdkPortalOutlet]",exportAs:"cdkPortalOutlet",inputs:["portal: cdkPortalOutlet"]}]}],(function(){return[{type:rh},{type:Xh},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),{attached:[{type:__}]});class hF extends gF{}hF.ɵfac=function t(e){return bF(e||hF)},hF.ɵdir=Jo({type:hF,selectors:[["","cdkPortalHost",""],["","portalHost",""]],inputs:{portal:["cdkPortalHost","portal"]},exportAs:["cdkPortalHost"],features:[ih([{provide:gF,useExisting:hF}]),gm]});const bF=vr(hF);("undefined"==typeof ngDevMode||ngDevMode)&&db(hF,[{type:g_,args:[{selector:"[cdkPortalHost], [portalHost]",exportAs:"cdkPortalHost",inputs:["portal: cdkPortalHost"],providers:[{provide:gF,useExisting:hF}]}]}],null,null);class yF{}yF.ɵfac=function t(e){return new(e||yF)},yF.ɵmod=Zo({type:yF}),yF.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(yF,{declarations:[mF,gF,uF,hF],exports:[mF,gF,uF,hF]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(yF,[{type:k_,args:[{exports:[mF,gF,uF,hF],declarations:[mF,gF,uF,hF]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const _F=xI();class CF{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=dI(-this._previousScrollPosition.left),t.style.top=dI(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,e=t.style,n=this._document.body.style,o=e.scrollBehavior||"",i=n.scrollBehavior||"";this._isEnabled=!1,e.left=this._previousHTMLStyles.left,e.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),_F&&(e.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),_F&&(e.scrollBehavior=o,n.scrollBehavior=i)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const t=this._document.body,e=this._viewportRuler.getViewportSize();return t.scrollHeight>e.height||t.scrollWidth>e.width}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function MF(){return Error("Scroll strategy has already been attached.")}class vF{constructor(t,e,n,o){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=n,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run((()=>this._overlayRef.detach()))}}attach(t){if(this._overlayRef&&("undefined"==typeof ngDevMode||ngDevMode))throw MF();this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe((()=>{const t=this._viewportRuler.getViewportScrollPosition().top;Math.abs(t-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()}))):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class xF{enable(){}disable(){}attach(){}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function OF(t,e){return e.some((e=>t.bottom<e.top||t.top>e.bottom||t.right<e.left||t.left>e.right))}function PF(t,e){return e.some((e=>t.top<e.top||t.bottom>e.bottom||t.left<e.left||t.right>e.right))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class wF{constructor(t,e,n,o){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=n,this._config=o,this._scrollSubscription=null}attach(t){if(this._overlayRef&&("undefined"==typeof ngDevMode||ngDevMode))throw MF();this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe((()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const t=this._overlayRef.overlayElement.getBoundingClientRect(),{width:e,height:n}=this._viewportRuler.getViewportSize();OF(t,[{width:e,height:n,bottom:n,right:e,top:0,left:0}])&&(this.disable(),this._ngZone.run((()=>this._overlayRef.detach())))}})))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class kF{constructor(t,e,n,o){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=n,this.noop=()=>new xF,this.close=t=>new vF(this._scrollDispatcher,this._ngZone,this._viewportRuler,t),this.block=()=>new CF(this._viewportRuler,this._document),this.reposition=t=>new wF(this._scrollDispatcher,this._viewportRuler,this._ngZone,t),this._document=o}}kF.ɵfac=function t(e){return new(e||kF)(us(KH),us(QH),us(tC),us(UC))},kF.ɵprov=lo({factory:function t(){return new kF(us(KH),us(QH),us(tC),us(UC))},token:kF,providedIn:"root"}),kF.ctorParameters=()=>[{type:KH},{type:QH},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(kF,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:KH},{type:QH},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class SF{constructor(t){if(this.scrollStrategy=new xF,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const n of e)void 0!==t[n]&&(this[n]=t[n])}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class DF{constructor(t,e,n,o,i){this.offsetX=n,this.offsetY=o,this.panelClass=i,this.originX=t.originX,this.originY=t.originY,this.overlayX=e.overlayX,this.overlayY=e.overlayY}}class EF{}class AF{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}function RF(t,e){if("top"!==e&&"bottom"!==e&&"center"!==e)throw Error(`ConnectedPosition: Invalid ${t} "${e}". Expected "top", "bottom" or "center".`)}function TF(t,e){if("start"!==e&&"end"!==e&&"center"!==e)throw Error(`ConnectedPosition: Invalid ${t} "${e}". Expected "start", "end" or "center".`)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */AF.ctorParameters=()=>[{type:DF},{type:EF,decorators:[{type:_s}]}];class NF{constructor(t){this._attachedOverlays=[],this._document=t}ngOnDestroy(){this.detach()}add(t){this.remove(t),this._attachedOverlays.push(t)}remove(t){const e=this._attachedOverlays.indexOf(t);e>-1&&this._attachedOverlays.splice(e,1),0===this._attachedOverlays.length&&this.detach()}}NF.ɵfac=function t(e){return new(e||NF)(us(UC))},NF.ɵprov=lo({factory:function t(){return new NF(us(UC))},token:NF,providedIn:"root"}),NF.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(NF,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class IF extends NF{constructor(t){super(t),this._keydownListener=t=>{const e=this._attachedOverlays;for(let n=e.length-1;n>-1;n--)if(e[n]._keydownEvents.observers.length>0){e[n]._keydownEvents.next(t);break}}}add(t){super.add(t),this._isAttached||(this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}IF.ɵfac=function t(e){return new(e||IF)(us(UC))},IF.ɵprov=lo({factory:function t(){return new IF(us(UC))},token:IF,providedIn:"root"}),IF.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(IF,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class zF extends NF{constructor(t,e){super(t),this._platform=e,this._cursorStyleIsSet=!1,this._clickListener=t=>{const e=t.composedPath?t.composedPath()[0]:t.target,n=this._attachedOverlays.slice();for(let o=n.length-1;o>-1;o--){const i=n[o];if(!(i._outsidePointerEvents.observers.length<1)&&i.hasAttached()){if(i.overlayElement.contains(e))break;i._outsidePointerEvents.next(t)}}}}add(t){super.add(t),this._isAttached||(this._document.body.addEventListener("click",this._clickListener,!0),this._document.body.addEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=this._document.body.style.cursor,this._document.body.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("click",this._clickListener,!0),this._document.body.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}}zF.ɵfac=function t(e){return new(e||zF)(us(UC),us(fI))},zF.ɵprov=lo({factory:function t(){return new zF(us(UC),us(fI))},token:zF,providedIn:"root"}),zF.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI}],("undefined"==typeof ngDevMode||ngDevMode)&&db(zF,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const HF=!("undefined"==typeof window||!window||!window.__karma__&&!window.jasmine);class FF{constructor(t,e){this._platform=e,this._document=t}ngOnDestroy(){const t=this._containerElement;t&&t.parentNode&&t.parentNode.removeChild(t)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const t="cdk-overlay-container";if(this._platform.isBrowser||HF){const e=this._document.querySelectorAll(`.${t}[platform="server"], .${t}[platform="test"]`);for(let t=0;t<e.length;t++)e[t].parentNode.removeChild(e[t])}const e=this._document.createElement("div");e.classList.add(t),HF?e.setAttribute("platform","test"):this._platform.isBrowser||e.setAttribute("platform","server"),this._document.body.appendChild(e),this._containerElement=e}}FF.ɵfac=function t(e){return new(e||FF)(us(UC),us(fI))},FF.ɵprov=lo({factory:function t(){return new FF(us(UC),us(fI))},token:FF,providedIn:"root"}),FF.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI}],("undefined"==typeof ngDevMode||ngDevMode)&&db(FF,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class LF{constructor(t,e,n,o,i,a,r,s,c){this._portalOutlet=t,this._host=e,this._pane=n,this._config=o,this._ngZone=i,this._keyboardDispatcher=a,this._document=r,this._location=s,this._outsideClickDispatcher=c,this._backdropElement=null,this._backdropClick=new x,this._attachments=new x,this._detachments=new x,this._locationChanges=l.EMPTY,this._backdropClickHandler=t=>this._backdropClick.next(t),this._keydownEvents=new x,this._outsidePointerEvents=new x,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){let e=this._portalOutlet.attach(t);return!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host),this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(Ne(1)).subscribe((()=>{this.hasAttached()&&this.updatePosition()})),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe((()=>this.dispose()))),this._outsideClickDispatcher.add(this),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this.detachBackdrop(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host&&this._host.parentNode&&(this._host.parentNode.removeChild(this._host),this._host=null),this._previousHostParent=this._pane=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config=Object.assign(Object.assign({},this._config),t),this._updateElementSize()}setDirection(t){this._config=Object.assign(Object.assign({},this._config),{direction:t}),this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=dI(this._config.width),t.height=dI(this._config.height),t.minWidth=dI(this._config.minWidth),t.minHeight=dI(this._config.minHeight),t.maxWidth=dI(this._config.maxWidth),t.maxHeight=dI(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),"undefined"!=typeof requestAnimationFrame?this._ngZone.runOutsideAngular((()=>{requestAnimationFrame((()=>{this._backdropElement&&this._backdropElement.classList.add(t)}))})):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){let t,e=this._backdropElement;if(!e)return;let n=()=>{e&&(e.removeEventListener("click",this._backdropClickHandler),e.removeEventListener("transitionend",n),e.parentNode&&e.parentNode.removeChild(e)),this._backdropElement==e&&(this._backdropElement=null),this._config.backdropClass&&this._toggleClasses(e,this._config.backdropClass,!1),clearTimeout(t)};e.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular((()=>{e.addEventListener("transitionend",n)})),e.style.pointerEvents="none",t=this._ngZone.runOutsideAngular((()=>setTimeout(n,500)))}_toggleClasses(t,e,n){const o=t.classList;cI(e).forEach((t=>{t&&(n?o.add(t):o.remove(t))}))}_detachContentWhenStable(){this._ngZone.runOutsideAngular((()=>{const t=this._ngZone.onStable.pipe(un(Wt(this._attachments,this._detachments))).subscribe((()=>{this._pane&&this._host&&0!==this._pane.children.length||(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._previousHostParent.removeChild(this._host)),t.unsubscribe())}))}))}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const BF="cdk-overlay-connected-position-bounding-box",VF=/([A-Za-z%]+)$/;class jF{constructor(t,e,n,o,i){this._viewportRuler=e,this._document=n,this._platform=o,this._overlayContainer=i,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new x,this._resizeSubscription=l.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}get positions(){return this._preferredPositions}attach(t){if(this._overlayRef&&t!==this._overlayRef&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("This position strategy is already attached to an overlay");this._validatePositions(),t.hostElement.classList.add(BF),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe((()=>{this._isInitialRender=!0,this.apply()}))}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect();const t=this._originRect,e=this._overlayRect,n=this._viewportRect,o=[];let i;for(let a of this._preferredPositions){let r=this._getOriginPoint(t,a),s=this._getOverlayPoint(r,e,a),l=this._getOverlayFit(s,e,n,a);if(l.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,r);this._canFitWithFlexibleDimensions(l,s,n)?o.push({position:a,origin:r,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(r,a)}):(!i||i.overlayFit.visibleArea<l.visibleArea)&&(i={overlayFit:l,overlayPoint:s,originPoint:r,position:a,overlayRect:e})}if(o.length){let t=null,e=-1;for(const n of o){const o=n.boundingBoxRect.width*n.boundingBoxRect.height*(n.position.weight||1);o>e&&(e=o,t=n)}return this._isPushed=!1,void this._applyPosition(t.position,t.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(i.position,i.originPoint);this._applyPosition(i.position,i.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&UF(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(BF),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(!this._isDisposed&&(!this._platform||this._platform.isBrowser)){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect();const t=this._lastPosition||this._preferredPositions[0],e=this._getOriginPoint(this._originRect,t);this._applyPosition(t,e)}}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e){let n,o;if("center"==e.originX)n=t.left+t.width/2;else{const o=this._isRtl()?t.right:t.left,i=this._isRtl()?t.left:t.right;n="start"==e.originX?o:i}return o="center"==e.originY?t.top+t.height/2:"top"==e.originY?t.top:t.bottom,{x:n,y:o}}_getOverlayPoint(t,e,n){let o,i;return o="center"==n.overlayX?-e.width/2:"start"===n.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,i="center"==n.overlayY?-e.height/2:"top"==n.overlayY?0:-e.height,{x:t.x+o,y:t.y+i}}_getOverlayFit(t,e,n,o){const i=GF(e);let{x:a,y:r}=t,s=this._getOffset(o,"x"),l=this._getOffset(o,"y");s&&(a+=s),l&&(r+=l);let c=0-r,d=r+i.height-n.height,p=this._subtractOverflows(i.width,0-a,a+i.width-n.width),m=this._subtractOverflows(i.height,c,d),u=p*m;return{visibleArea:u,isCompletelyWithinViewport:i.width*i.height===u,fitsInViewportVertically:m===i.height,fitsInViewportHorizontally:p==i.width}}_canFitWithFlexibleDimensions(t,e,n){if(this._hasFlexibleDimensions){const o=n.bottom-e.y,i=n.right-e.x,a=WF(this._overlayRef.getConfig().minHeight),r=WF(this._overlayRef.getConfig().minWidth),s=t.fitsInViewportHorizontally||null!=r&&r<=i;return(t.fitsInViewportVertically||null!=a&&a<=o)&&s}return!1}_pushOverlayOnScreen(t,e,n){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const o=GF(e),i=this._viewportRect,a=Math.max(t.x+o.width-i.width,0),r=Math.max(t.y+o.height-i.height,0),s=Math.max(i.top-n.top-t.y,0),l=Math.max(i.left-n.left-t.x,0);let c=0,d=0;return c=o.width<=i.width?l||-a:t.x<this._viewportMargin?i.left-n.left-t.x:0,d=o.height<=i.height?s||-r:t.y<this._viewportMargin?i.top-n.top-t.y:0,this._previousPushAmount={x:c,y:d},{x:t.x+c,y:t.y+d}}_applyPosition(t,e){if(this._setTransformOrigin(t),this._setOverlayElementStyles(e,t),this._setBoundingBoxStyles(e,t),t.panelClass&&this._addPanelClasses(t.panelClass),this._lastPosition=t,this._positionChanges.observers.length){const e=this._getScrollVisibility(),n=new AF(t,e);this._positionChanges.next(n)}this._isInitialRender=!1}_setTransformOrigin(t){if(!this._transformOriginSelector)return;const e=this._boundingBox.querySelectorAll(this._transformOriginSelector);let n,o=t.overlayY;n="center"===t.overlayX?"center":this._isRtl()?"start"===t.overlayX?"right":"left":"start"===t.overlayX?"left":"right";for(let t=0;t<e.length;t++)e[t].style.transformOrigin=`${n} ${o}`}_calculateBoundingBoxRect(t,e){const n=this._viewportRect,o=this._isRtl();let i,a,r,s,l,c;if("top"===e.overlayY)a=t.y,i=n.height-a+this._viewportMargin;else if("bottom"===e.overlayY)r=n.height-t.y+2*this._viewportMargin,i=n.height-r+this._viewportMargin;else{const e=Math.min(n.bottom-t.y+n.top,t.y),o=this._lastBoundingBoxSize.height;i=2*e,a=t.y-e,i>o&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-o/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)c=n.width-t.x+this._viewportMargin,s=t.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)l=t.x,s=n.right-t.x;else{const e=Math.min(n.right-t.x+n.left,t.x),o=this._lastBoundingBoxSize.width;s=2*e,l=t.x-e,s>o&&!this._isInitialRender&&!this._growAfterOpen&&(l=t.x-o/2)}return{top:a,left:l,bottom:r,right:c,width:s,height:i}}_setBoundingBoxStyles(t,e){const n=this._calculateBoundingBoxRect(t,e);this._isInitialRender||this._growAfterOpen||(n.height=Math.min(n.height,this._lastBoundingBoxSize.height),n.width=Math.min(n.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const t=this._overlayRef.getConfig().maxHeight,i=this._overlayRef.getConfig().maxWidth;o.height=dI(n.height),o.top=dI(n.top),o.bottom=dI(n.bottom),o.width=dI(n.width),o.left=dI(n.left),o.right=dI(n.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",t&&(o.maxHeight=dI(t)),i&&(o.maxWidth=dI(i))}this._lastBoundingBoxSize=n,UF(this._boundingBox.style,o)}_resetBoundingBoxStyles(){UF(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){UF(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const n={},o=this._hasExactPosition(),i=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const o=this._viewportRuler.getViewportScrollPosition();UF(n,this._getExactOverlayY(e,t,o)),UF(n,this._getExactOverlayX(e,t,o))}else n.position="static";let r="",s=this._getOffset(e,"x"),l=this._getOffset(e,"y");s&&(r+=`translateX(${s}px) `),l&&(r+=`translateY(${l}px)`),n.transform=r.trim(),a.maxHeight&&(o?n.maxHeight=dI(a.maxHeight):i&&(n.maxHeight="")),a.maxWidth&&(o?n.maxWidth=dI(a.maxWidth):i&&(n.maxWidth="")),UF(this._pane.style,n)}_getExactOverlayY(t,e,n){let o={top:"",bottom:""},i=this._getOverlayPoint(e,this._overlayRect,t);this._isPushed&&(i=this._pushOverlayOnScreen(i,this._overlayRect,n));let a=this._overlayContainer.getContainerElement().getBoundingClientRect().top;return i.y-=a,"bottom"===t.overlayY?o.bottom=this._document.documentElement.clientHeight-(i.y+this._overlayRect.height)+"px":o.top=dI(i.y),o}_getExactOverlayX(t,e,n){let o,i={left:"",right:""},a=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(a=this._pushOverlayOnScreen(a,this._overlayRect,n)),o=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===o?i.right=this._document.documentElement.clientWidth-(a.x+this._overlayRect.width)+"px":i.left=dI(a.x),i}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),n=this._scrollables.map((t=>t.getElementRef().nativeElement.getBoundingClientRect()));return{isOriginClipped:PF(t,n),isOriginOutsideView:OF(t,n),isOverlayClipped:PF(e,n),isOverlayOutsideView:OF(e,n)}}_subtractOverflows(t,...e){return e.reduce(((t,e)=>t-Math.max(e,0)),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,n=this._viewportRuler.getViewportScrollPosition();return{top:n.top+this._viewportMargin,left:n.left+this._viewportMargin,right:n.left+t-this._viewportMargin,bottom:n.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?null==t.offsetX?this._offsetX:t.offsetX:null==t.offsetY?this._offsetY:t.offsetY}_validatePositions(){if("undefined"==typeof ngDevMode||ngDevMode){if(!this._preferredPositions.length)throw Error("FlexibleConnectedPositionStrategy: At least one position is required.");this._preferredPositions.forEach((t=>{TF("originX",t.originX),RF("originY",t.originY),TF("overlayX",t.overlayX),RF("overlayY",t.overlayY)}))}}_addPanelClasses(t){this._pane&&cI(t).forEach((t=>{""!==t&&-1===this._appliedPanelClasses.indexOf(t)&&(this._appliedPanelClasses.push(t),this._pane.classList.add(t))}))}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach((t=>{this._pane.classList.remove(t)})),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof ch)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,n=t.height||0;return{top:t.y,bottom:t.y+n,left:t.x,right:t.x+e,height:n,width:e}}}function UF(t,e){for(let n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function WF(t){if("number"!=typeof t&&null!=t){const[e,n]=t.split(VF);return n&&"px"!==n?null:parseFloat(e)}return t||null}function GF(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class YF{constructor(t,e,n,o,i,a,r){this._preferredPositions=[],this._positionStrategy=new jF(n,o,i,a,r).withFlexibleDimensions(!1).withPush(!1).withViewportMargin(0),this.withFallbackPosition(t,e),this.onPositionChange=this._positionStrategy.positionChanges}get positions(){return this._preferredPositions}attach(t){this._overlayRef=t,this._positionStrategy.attach(t),this._direction&&(t.setDirection(this._direction),this._direction=null)}dispose(){this._positionStrategy.dispose()}detach(){this._positionStrategy.detach()}apply(){this._positionStrategy.apply()}recalculateLastPosition(){this._positionStrategy.reapplyLastPosition()}withScrollableContainers(t){this._positionStrategy.withScrollableContainers(t)}withFallbackPosition(t,e,n,o){const i=new DF(t,e,n,o);return this._preferredPositions.push(i),this._positionStrategy.withPositions(this._preferredPositions),this}withDirection(t){return this._overlayRef?this._overlayRef.setDirection(t):this._direction=t,this}withOffsetX(t){return this._positionStrategy.withDefaultOffsetX(t),this}withOffsetY(t){return this._positionStrategy.withDefaultOffsetY(t),this}withLockedPosition(t){return this._positionStrategy.withLockedPosition(t),this}withPositions(t){return this._preferredPositions=t.slice(),this._positionStrategy.withPositions(this._preferredPositions),this}setOrigin(t){return this._positionStrategy.setOrigin(t),this}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const qF="cdk-global-overlay-wrapper";class ZF{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height=""}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(qF),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._rightOffset="",this._leftOffset=t,this._justifyContent="flex-start",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._leftOffset="",this._rightOffset=t,this._justifyContent="flex-end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._justifyContent="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,n=this._overlayRef.getConfig(),{width:o,height:i,maxWidth:a,maxHeight:r}=n,s=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),l=!("100%"!==i&&"100vh"!==i||r&&"100%"!==r&&"100vh"!==r);t.position=this._cssPosition,t.marginLeft=s?"0":this._leftOffset,t.marginTop=l?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=this._rightOffset,s?e.justifyContent="flex-start":"center"===this._justifyContent?e.justifyContent="center":"rtl"===this._overlayRef.getConfig().direction?"flex-start"===this._justifyContent?e.justifyContent="flex-end":"flex-end"===this._justifyContent&&(e.justifyContent="flex-start"):e.justifyContent=this._justifyContent,e.alignItems=l?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,n=e.style;e.classList.remove(qF),n.justifyContent=n.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class XF{constructor(t,e,n,o){this._viewportRuler=t,this._document=e,this._platform=n,this._overlayContainer=o}global(){return new ZF}connectedTo(t,e,n){return new YF(e,n,t,this._viewportRuler,this._document,this._platform,this._overlayContainer)}flexibleConnectedTo(t){return new jF(t,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}XF.ɵfac=function t(e){return new(e||XF)(us(QH),us(UC),us(fI),us(FF))},XF.ɵprov=lo({factory:function t(){return new XF(us(QH),us(UC),us(fI),us(FF))},token:XF,providedIn:"root"}),XF.ctorParameters=()=>[{type:QH},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI},{type:FF}],("undefined"==typeof ngDevMode||ngDevMode)&&db(XF,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:QH},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI},{type:FF}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let KF=0;class JF{constructor(t,e,n,o,i,a,r,s,l,c,d){this.scrollStrategies=t,this._overlayContainer=e,this._componentFactoryResolver=n,this._positionBuilder=o,this._keyboardDispatcher=i,this._injector=a,this._ngZone=r,this._document=s,this._directionality=l,this._location=c,this._outsideClickDispatcher=d}create(t){const e=this._createHostElement(),n=this._createPaneElement(e),o=this._createPortalOutlet(n),i=new SF(t);return i.direction=i.direction||this._directionality.value,new LF(o,e,n,i,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher)}position(){return this._positionBuilder}_createPaneElement(t){const e=this._document.createElement("div");return e.id="cdk-overlay-"+KF++,e.classList.add("cdk-overlay-pane"),t.appendChild(e),e}_createHostElement(){const t=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(t),t}_createPortalOutlet(t){return this._appRef||(this._appRef=this._injector.get(_C)),new pF(t,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}JF.ɵfac=function t(e){return new(e||JF)(us(kF),us(FF),us(rh),us(XF),us(IF),us(Qp),us(tC),us(UC),us(Mz),us(oM),us(zF))},JF.ɵprov=lo({token:JF,factory:JF.ɵfac}),JF.ctorParameters=()=>[{type:kF},{type:FF},{type:rh},{type:XF},{type:IF},{type:Qp},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:Mz},{type:oM},{type:zF}],("undefined"==typeof ngDevMode||ngDevMode)&&db(JF,[{type:Jm}],(function(){return[{type:kF},{type:FF},{type:rh},{type:XF},{type:IF},{type:Qp},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:Mz},{type:oM},{type:zF}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const QF=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],$F=new Nr("cdk-connected-overlay-scroll-strategy");class tL{constructor(t){this.elementRef=t}}tL.ɵfac=function t(e){return new(e||tL)(Mu(ch))},tL.ɵdir=Jo({type:tL,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),tL.ctorParameters=()=>[{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(tL,[{type:g_,args:[{selector:"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]",exportAs:"cdkOverlayOrigin"}]}],(function(){return[{type:ch}]}),null);class eL{constructor(t,e,n,o,i){this._overlay=t,this._dir=i,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=l.EMPTY,this._attachSubscription=l.EMPTY,this._detachSubscription=l.EMPTY,this._positionSubscription=l.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new Ab,this.positionChange=new Ab,this.attach=new Ab,this.detach=new Ab,this.overlayKeydown=new Ab,this.overlayOutsideClick=new Ab,this._templatePortal=new lF(e,n),this._scrollStrategyFactory=o,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(t){this._offsetX=t,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(t){this._offsetY=t,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(t){this._hasBackdrop=rI(t)}get lockPosition(){return this._lockPosition}set lockPosition(t){this._lockPosition=rI(t)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(t){this._flexibleDimensions=rI(t)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(t){this._growAfterOpen=rI(t)}get push(){return this._push}set push(t){this._push=rI(t)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(t){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),t.origin&&this.open&&this._position.apply()),t.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){this.positions&&this.positions.length||(this.positions=QF);const t=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=t.attachments().subscribe((()=>this.attach.emit())),this._detachSubscription=t.detachments().subscribe((()=>this.detach.emit())),t.keydownEvents().subscribe((t=>{this.overlayKeydown.next(t),t.keyCode!==eI||this.disableClose||aI(t)||(t.preventDefault(),this._detachOverlay())})),this._overlayRef.outsidePointerEvents().subscribe((t=>{this.overlayOutsideClick.next(t)}))}_buildConfig(){const t=this._position=this.positionStrategy||this._createPositionStrategy(),e=new SF({direction:this._dir,positionStrategy:t,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(e.width=this.width),(this.height||0===this.height)&&(e.height=this.height),(this.minWidth||0===this.minWidth)&&(e.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(e.minHeight=this.minHeight),this.backdropClass&&(e.backdropClass=this.backdropClass),this.panelClass&&(e.panelClass=this.panelClass),e}_updatePositionStrategy(t){const e=this.positions.map((t=>({originX:t.originX,originY:t.originY,overlayX:t.overlayX,overlayY:t.overlayY,offsetX:t.offsetX||this.offsetX,offsetY:t.offsetY||this.offsetY,panelClass:t.panelClass||void 0})));return t.setOrigin(this.origin.elementRef).withPositions(e).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const t=this._overlay.position().flexibleConnectedTo(this.origin.elementRef);return this._updatePositionStrategy(t),t}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe((t=>{this.backdropClick.emit(t)})):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(hn((()=>this.positionChange.observers.length>0))).subscribe((t=>{this.positionChange.emit(t),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()})))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}eL.ɵfac=function t(e){return new(e||eL)(Mu(JF),Mu(Uh),Mu(Xh),Mu($F),Mu(Mz,8))},eL.ɵdir=Jo({type:eL,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"],positions:["cdkConnectedOverlayPositions","positions"],origin:["cdkConnectedOverlayOrigin","origin"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Si]}),eL.ctorParameters=()=>[{type:JF},{type:Uh},{type:Xh},{type:void 0,decorators:[{type:ys,args:[$F]}]},{type:Mz,decorators:[{type:_s}]}],eL.propDecorators={origin:[{type:y_,args:["cdkConnectedOverlayOrigin"]}],positions:[{type:y_,args:["cdkConnectedOverlayPositions"]}],positionStrategy:[{type:y_,args:["cdkConnectedOverlayPositionStrategy"]}],offsetX:[{type:y_,args:["cdkConnectedOverlayOffsetX"]}],offsetY:[{type:y_,args:["cdkConnectedOverlayOffsetY"]}],width:[{type:y_,args:["cdkConnectedOverlayWidth"]}],height:[{type:y_,args:["cdkConnectedOverlayHeight"]}],minWidth:[{type:y_,args:["cdkConnectedOverlayMinWidth"]}],minHeight:[{type:y_,args:["cdkConnectedOverlayMinHeight"]}],backdropClass:[{type:y_,args:["cdkConnectedOverlayBackdropClass"]}],panelClass:[{type:y_,args:["cdkConnectedOverlayPanelClass"]}],viewportMargin:[{type:y_,args:["cdkConnectedOverlayViewportMargin"]}],scrollStrategy:[{type:y_,args:["cdkConnectedOverlayScrollStrategy"]}],open:[{type:y_,args:["cdkConnectedOverlayOpen"]}],disableClose:[{type:y_,args:["cdkConnectedOverlayDisableClose"]}],transformOriginSelector:[{type:y_,args:["cdkConnectedOverlayTransformOriginOn"]}],hasBackdrop:[{type:y_,args:["cdkConnectedOverlayHasBackdrop"]}],lockPosition:[{type:y_,args:["cdkConnectedOverlayLockPosition"]}],flexibleDimensions:[{type:y_,args:["cdkConnectedOverlayFlexibleDimensions"]}],growAfterOpen:[{type:y_,args:["cdkConnectedOverlayGrowAfterOpen"]}],push:[{type:y_,args:["cdkConnectedOverlayPush"]}],backdropClick:[{type:__}],positionChange:[{type:__}],attach:[{type:__}],detach:[{type:__}],overlayKeydown:[{type:__}],overlayOutsideClick:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(eL,[{type:g_,args:[{selector:"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]",exportAs:"cdkConnectedOverlay"}]}],(function(){return[{type:JF},{type:Uh},{type:Xh},{type:void 0,decorators:[{type:ys,args:[$F]}]},{type:Mz,decorators:[{type:_s}]}]}),{viewportMargin:[{type:y_,args:["cdkConnectedOverlayViewportMargin"]}],open:[{type:y_,args:["cdkConnectedOverlayOpen"]}],disableClose:[{type:y_,args:["cdkConnectedOverlayDisableClose"]}],backdropClick:[{type:__}],positionChange:[{type:__}],attach:[{type:__}],detach:[{type:__}],overlayKeydown:[{type:__}],overlayOutsideClick:[{type:__}],scrollStrategy:[{type:y_,args:["cdkConnectedOverlayScrollStrategy"]}],offsetX:[{type:y_,args:["cdkConnectedOverlayOffsetX"]}],offsetY:[{type:y_,args:["cdkConnectedOverlayOffsetY"]}],hasBackdrop:[{type:y_,args:["cdkConnectedOverlayHasBackdrop"]}],lockPosition:[{type:y_,args:["cdkConnectedOverlayLockPosition"]}],flexibleDimensions:[{type:y_,args:["cdkConnectedOverlayFlexibleDimensions"]}],growAfterOpen:[{type:y_,args:["cdkConnectedOverlayGrowAfterOpen"]}],push:[{type:y_,args:["cdkConnectedOverlayPush"]}],positions:[{type:y_,args:["cdkConnectedOverlayPositions"]}],origin:[{type:y_,args:["cdkConnectedOverlayOrigin"]}],positionStrategy:[{type:y_,args:["cdkConnectedOverlayPositionStrategy"]}],width:[{type:y_,args:["cdkConnectedOverlayWidth"]}],height:[{type:y_,args:["cdkConnectedOverlayHeight"]}],minWidth:[{type:y_,args:["cdkConnectedOverlayMinWidth"]}],minHeight:[{type:y_,args:["cdkConnectedOverlayMinHeight"]}],backdropClass:[{type:y_,args:["cdkConnectedOverlayBackdropClass"]}],panelClass:[{type:y_,args:["cdkConnectedOverlayPanelClass"]}],transformOriginSelector:[{type:y_,args:["cdkConnectedOverlayTransformOriginOn"]}]});const nL={provide:$F,deps:[JF],useFactory:function oL(t){return()=>t.scrollStrategies.reposition()}};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class iL{}iL.ɵfac=function t(e){return new(e||iL)},iL.ɵmod=Zo({type:iL}),iL.ɵinj=co({providers:[JF,nL],imports:[[xz,yF,iF],iF]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(iL,{declarations:function(){return[eL,tL]},imports:function(){return[xz,yF,iF]},exports:function(){return[eL,tL,iF]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(iL,[{type:k_,args:[{imports:[xz,yF,iF],exports:[eL,tL,iF],declarations:[eL,tL],providers:[JF,nL]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class aL extends FF{constructor(t,e){super(t,e)}ngOnDestroy(){super.ngOnDestroy(),this._fullScreenEventName&&this._fullScreenListener&&this._document.removeEventListener(this._fullScreenEventName,this._fullScreenListener)}_createContainer(){super._createContainer(),this._adjustParentForFullscreenChange(),this._addFullscreenChangeListener((()=>this._adjustParentForFullscreenChange()))}_adjustParentForFullscreenChange(){this._containerElement&&(this.getFullscreenElement()||this._document.body).appendChild(this._containerElement)}_addFullscreenChangeListener(t){const e=this._getEventName();e&&(this._fullScreenListener&&this._document.removeEventListener(e,this._fullScreenListener),this._document.addEventListener(e,t),this._fullScreenListener=t)}_getEventName(){if(!this._fullScreenEventName){const t=this._document;t.fullscreenEnabled?this._fullScreenEventName="fullscreenchange":t.webkitFullscreenEnabled?this._fullScreenEventName="webkitfullscreenchange":t.mozFullScreenEnabled?this._fullScreenEventName="mozfullscreenchange":t.msFullscreenEnabled&&(this._fullScreenEventName="MSFullscreenChange")}return this._fullScreenEventName}getFullscreenElement(){const t=this._document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement||t.msFullscreenElement||null}}aL.ɵfac=function t(e){return new(e||aL)(us(UC),us(fI))},aL.ɵprov=lo({factory:function t(){return new aL(us(UC),us(fI))},token:aL,providedIn:"root"}),aL.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI}],("undefined"==typeof ngDevMode||ngDevMode)&&db(aL,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI}]}),null);class rL{}rL.ɵfac=function t(e){return new(e||rL)},rL.ɵmod=Zo({type:rL}),rL.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db(rL,[{type:k_,args:[{}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const sL=new Set;let lL;class cL{constructor(t){this._platform=t,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):dL}matchMedia(t){return this._platform.WEBKIT&&(function e(t){if(!sL.has(t))try{lL||(lL=document.createElement("style"),lL.setAttribute("type","text/css"),document.head.appendChild(lL)),lL.sheet&&(lL.sheet.insertRule(`@media ${t} {.fx-query-test{ }}`,0),sL.add(t))}catch(t){console.error(t)}})(t),this._matchMedia(t)}}function dL(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */cL.ɵfac=function t(e){return new(e||cL)(us(fI))},cL.ɵprov=lo({factory:function t(){return new cL(us(fI))},token:cL,providedIn:"root"}),cL.ctorParameters=()=>[{type:fI}],("undefined"==typeof ngDevMode||ngDevMode)&&db(cL,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:fI}]}),null);class pL{constructor(t,e){this._mediaMatcher=t,this._zone=e,this._queries=new Map,this._destroySubject=new x}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(t){return mL(cI(t)).some((t=>this._registerQuery(t).mql.matches))}observe(t){let e=Dt(mL(cI(t)).map((t=>this._registerQuery(t).observable)));return e=Ht(e.pipe(Ne(1)),e.pipe(rn(1),de(0))),e.pipe(ht((t=>{const e={matches:!1,breakpoints:{}};return t.forEach((({matches:t,query:n})=>{e.matches=e.matches||t,e.breakpoints[n]=t})),e})))}_registerQuery(t){if(this._queries.has(t))return this._queries.get(t);const e=this._mediaMatcher.matchMedia(t),n={observable:new y((t=>{const n=e=>this._zone.run((()=>t.next(e)));return e.addListener(n),()=>{e.removeListener(n)}})).pipe(cn(e),ht((({matches:e})=>({query:t,matches:e}))),un(this._destroySubject)),mql:e};return this._queries.set(t,n),n}}function mL(t){return t.map((t=>t.split(","))).reduce(((t,e)=>t.concat(e))).map((t=>t.trim()))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function uL(t,e){if(1&t){const t=Eu();Ou(0,"div",1),Ou(1,"button",2),Nu("click",(function e(){return ra(t),Lu().action()})),Mf(2),Pu(),Pu()}if(2&t){const t=Lu();Jc(2),vf(t.data.action)}}function fL(t,e){}pL.ɵfac=function t(e){return new(e||pL)(us(cL),us(tC))},pL.ɵprov=lo({factory:function t(){return new pL(us(cL),us(tC))},token:pL,providedIn:"root"}),pL.ctorParameters=()=>[{type:cL},{type:tC}],("undefined"==typeof ngDevMode||ngDevMode)&&db(pL,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:cL},{type:tC}]}),null);const gL=new Nr("MatSnackBarData");class hL{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const bL=Math.pow(2,31)-1;class yL{constructor(t,e){this._overlayRef=e,this._afterDismissed=new x,this._afterOpened=new x,this._onAction=new x,this._dismissedByAction=!1,this.containerInstance=t,this.onAction().subscribe((()=>this.dismiss())),t._onExit.subscribe((()=>this._finishDismiss()))}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(t){this._durationTimeoutId=setTimeout((()=>this.dismiss()),Math.min(t,bL))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class _L{constructor(t,e){this.snackBarRef=t,this.data=e}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}}_L.ɵfac=function t(e){return new(e||_L)(Mu(yL),Mu(gL))},_L.ɵcmp=Uo({type:_L,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-simple-snackbar"],decls:3,vars:2,consts:[["class","mat-simple-snackbar-action",4,"ngIf"],[1,"mat-simple-snackbar-action"],["mat-button","",3,"click"]],template:function t(e,n){1&e&&(Ou(0,"span"),Mf(1),Pu(),Wm(2,uL,3,1,"div",0)),2&e&&(Jc(1),vf(n.data.message),Jc(1),vu("ngIf",n.hasAction))},directives:[av,NH],styles:[".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}\n"],encapsulation:2,changeDetection:0}),_L.ctorParameters=()=>[{type:yL},{type:void 0,decorators:[{type:ys,args:[gL]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(_L,[{type:h_,args:[{selector:"simple-snack-bar",template:'<span>{{data.message}}</span>\n<div class="mat-simple-snackbar-action"  *ngIf="hasAction">\n  <button mat-button (click)="action()">{{data.action}}</button>\n</div>\n',encapsulation:Po.None,changeDetection:xo.OnPush,host:{class:"mat-simple-snackbar"},styles:[".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}\n"]}]}],(function(){return[{type:yL},{type:void 0,decorators:[{type:ys,args:[gL]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const CL={snackBarState:Kx("state",[tO("void, hidden",$x({transform:"scale(0.8)",opacity:0})),tO("visible",$x({transform:"scale(1)",opacity:1})),nO("* => visible",Jx("150ms cubic-bezier(0, 0, 0.2, 1)")),nO("* => void, * => hidden",Jx("75ms cubic-bezier(0.4, 0.0, 1, 1)",$x({opacity:0})))])};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class ML extends dF{constructor(t,e,n,o,i){super(),this._ngZone=t,this._elementRef=e,this._changeDetectorRef=n,this._platform=o,this.snackBarConfig=i,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new x,this._onExit=new x,this._onEnter=new x,this._animationState="void",this.attachDomPortal=t=>(this._assertNotAttached(),this._applySnackBarClasses(),this._portalOutlet.attachDomPortal(t)),this._live="assertive"!==i.politeness||i.announcementMessage?"off"===i.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(t){return this._assertNotAttached(),this._applySnackBarClasses(),this._portalOutlet.attachComponentPortal(t)}attachTemplatePortal(t){return this._assertNotAttached(),this._applySnackBarClasses(),this._portalOutlet.attachTemplatePortal(t)}onAnimationEnd(t){const{fromState:e,toState:n}=t;if(("void"===n&&"void"!==e||"hidden"===n)&&this._completeExit(),"visible"===n){const t=this._onEnter;this._ngZone.run((()=>{t.next(),t.complete()}))}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId),this._onExit}ngOnDestroy(){this._destroyed=!0,this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(Ne(1)).subscribe((()=>{this._onExit.next(),this._onExit.complete()}))}_applySnackBarClasses(){const t=this._elementRef.nativeElement,e=this.snackBarConfig.panelClass;e&&(Array.isArray(e)?e.forEach((e=>t.classList.add(e))):t.classList.add(e)),"center"===this.snackBarConfig.horizontalPosition&&t.classList.add("mat-snack-bar-center"),"top"===this.snackBarConfig.verticalPosition&&t.classList.add("mat-snack-bar-top")}_assertNotAttached(){if(this._portalOutlet.hasAttached()&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("Attempting to attach snack bar content after content is already attached")}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular((()=>{this._announceTimeoutId=setTimeout((()=>{const t=this._elementRef.nativeElement.querySelector("[aria-hidden]"),e=this._elementRef.nativeElement.querySelector("[aria-live]");if(t&&e){let n=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&t.contains(document.activeElement)&&(n=document.activeElement),t.removeAttribute("aria-hidden"),e.appendChild(t),null==n||n.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}}),this._announceDelay)}))}}ML.ɵfac=function t(e){return new(e||ML)(Mu(tC),Mu(ch),Mu(Hh),Mu(fI),Mu(hL))},ML.ɵcmp=Uo({type:ML,selectors:[["snack-bar-container"]],viewQuery:function t(e,n){if(1&e&&Wb(gF,3),2&e){let t;Ub(t=Yb())&&(n._portalOutlet=t.first)}},hostAttrs:[1,"mat-snack-bar-container"],hostVars:1,hostBindings:function t(e,n){1&e&&Iu("@state.done",(function t(e){return n.onAnimationEnd(e)})),2&e&&Sf("@state",n._animationState)},features:[gm],decls:3,vars:2,consts:[["aria-hidden","true"],["cdkPortalOutlet",""]],template:function t(e,n){1&e&&(Ou(0,"div",0),Wm(1,fL,0,0,"ng-template",1),Pu(),wu(2,"div")),2&e&&(Jc(2),Nm("aria-live",n._live)("role",n._role))},directives:[gF],styles:[".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\n"],encapsulation:2,data:{animation:[CL.snackBarState]}}),ML.ctorParameters=()=>[{type:tC},{type:ch},{type:Hh},{type:fI},{type:hL}],ML.propDecorators={_portalOutlet:[{type:Fr,args:[gF,{static:!0}]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(ML,[{type:h_,args:[{selector:"snack-bar-container",template:'\x3c!-- Initially holds the snack bar content, will be empty after announcing to screen readers. --\x3e\n<div aria-hidden="true">\n  <ng-template cdkPortalOutlet></ng-template>\n</div>\n\n\x3c!-- Will receive the snack bar content from the non-live div, move will happen a short delay after opening --\x3e\n<div [attr.aria-live]="_live" [attr.role]="_role"></div>\n',changeDetection:xo.Default,encapsulation:Po.None,animations:[CL.snackBarState],host:{class:"mat-snack-bar-container","[@state]":"_animationState","(@state.done)":"onAnimationEnd($event)"},styles:[".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\n"]}]}],(function(){return[{type:tC},{type:ch},{type:Hh},{type:fI},{type:hL}]}),{_portalOutlet:[{type:Fr,args:[gF,{static:!0}]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class vL{}vL.ɵfac=function t(e){return new(e||vL)},vL.ɵmod=Zo({type:vL}),vL.ɵinj=co({imports:[[iL,yF,Bv,zH,Tz],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(vL,{declarations:function(){return[ML,_L]},imports:function(){return[iL,yF,Bv,zH,Tz]},exports:function(){return[ML,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(vL,[{type:k_,args:[{imports:[iL,yF,Bv,zH,Tz],exports:[ML,Tz],declarations:[ML,_L],entryComponents:[ML,_L]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const xL=new Nr("mat-snack-bar-default-options",{providedIn:"root",factory:function OL(){return new hL}});class PL{constructor(t,e,n,o,i,a){this._overlay=t,this._live=e,this._injector=n,this._breakpointObserver=o,this._parentSnackBar=i,this._defaultConfig=a,this._snackBarRefAtThisLevel=null,this.simpleSnackBarComponent=_L,this.snackBarContainerComponent=ML,this.handsetCssClass="mat-snack-bar-handset"}get _openedSnackBarRef(){const t=this._parentSnackBar;return t?t._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(t){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=t:this._snackBarRefAtThisLevel=t}openFromComponent(t,e){return this._attach(t,e)}openFromTemplate(t,e){return this._attach(t,e)}open(t,e="",n){const o=Object.assign(Object.assign({},this._defaultConfig),n);return o.data={message:t,action:e},o.announcementMessage===t&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(t,e){const n=Qp.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:hL,useValue:e}]}),o=new sF(this.snackBarContainerComponent,e.viewContainerRef,n),i=t.attach(o);return i.instance.snackBarConfig=e,i.instance}_attach(t,e){const n=Object.assign(Object.assign(Object.assign({},new hL),this._defaultConfig),e),o=this._createOverlay(n),i=this._attachSnackBarContainer(o,n),a=new yL(i,o);if(t instanceof Uh){const e=new lF(t,null,{$implicit:n.data,snackBarRef:a});a.instance=i.attachTemplatePortal(e)}else{const e=this._createInjector(n,a),o=new sF(t,void 0,e),r=i.attachComponentPortal(o);a.instance=r.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(un(o.detachments())).subscribe((t=>{const e=o.overlayElement.classList;t.matches?e.add(this.handsetCssClass):e.remove(this.handsetCssClass)})),n.announcementMessage&&i._onAnnounce.subscribe((()=>{this._live.announce(n.announcementMessage,n.politeness)})),this._animateSnackBar(a,n),this._openedSnackBarRef=a,this._openedSnackBarRef}_animateSnackBar(t,e){t.afterDismissed().subscribe((()=>{this._openedSnackBarRef==t&&(this._openedSnackBarRef=null),e.announcementMessage&&this._live.clear()})),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe((()=>{t.containerInstance.enter()})),this._openedSnackBarRef.dismiss()):t.containerInstance.enter(),e.duration&&e.duration>0&&t.afterOpened().subscribe((()=>t._dismissAfter(e.duration)))}_createOverlay(t){const e=new SF;e.direction=t.direction;let n=this._overlay.position().global();const o="rtl"===t.direction,i="left"===t.horizontalPosition||"start"===t.horizontalPosition&&!o||"end"===t.horizontalPosition&&o,a=!i&&"center"!==t.horizontalPosition;return i?n.left("0"):a?n.right("0"):n.centerHorizontally(),"top"===t.verticalPosition?n.top("0"):n.bottom("0"),e.positionStrategy=n,this._overlay.create(e)}_createInjector(t,e){return Qp.create({parent:t&&t.viewContainerRef&&t.viewContainerRef.injector||this._injector,providers:[{provide:yL,useValue:e},{provide:gL,useValue:t.data}]})}}PL.ɵfac=function t(e){return new(e||PL)(us(JF),us(az),us(Qp),us(pL),us(PL,12),us(xL))},PL.ɵprov=lo({factory:function t(){return new PL(us(JF),us(az),us(Ip),us(pL),us(PL,12),us(xL))},token:PL,providedIn:vL}),PL.ctorParameters=()=>[{type:JF},{type:az},{type:Qp},{type:pL},{type:PL,decorators:[{type:_s},{type:Ms}]},{type:hL,decorators:[{type:ys,args:[xL]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(PL,[{type:Jm,args:[{providedIn:vL}]}],(function(){return[{type:JF},{type:az},{type:Qp},{type:pL},{type:PL,decorators:[{type:_s},{type:Ms}]},{type:hL,decorators:[{type:ys,args:[xL]}]}]}),null);const wL=/[\\^$.*+?()[\]{}|]/g,kL="\\u0000-\\u0020\\u007f-\\u009f",SL=new RegExp("(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\\/\\/|data:|www\\.)[^\\s"+kL+'"]{2,}[^\\s'+kL+"\"')}\\],:;.!?]","gu");function DL(t){return(function e(t,n){n.flags.includes("g")||(n=new RegExp(n,n.flags+"g"));const o=[];let i=0;for(const e of t.matchAll(n)){const n=e.index,a=e[0];n>i&&o.push({index:i,text:t.substring(i,n),matchesRegex:!1}),o.push({index:n,text:a,matchesRegex:!0}),i=n+a.length}return t.length>i&&o.push({index:i,text:t.substring(i,t.length),matchesRegex:!1}),o})(t,SL).map((({matchesRegex:t,text:e})=>({isURL:t,text:e})))}function EL(t,e){if(1&t&&(ku(0),Mf(1),Su()),2&t){const t=Lu().$implicit;Jc(1),xf(" ",t.text," ")}}function AL(t,e){if(1&t&&(Ou(0,"a",7),Mf(1),Pu()),2&t){const t=Lu().$implicit;Uu("href",t.text,Ol),Jc(1),vf(t.text)}}function RL(t,e){if(1&t&&(ku(0),Wm(1,EL,2,1,"ng-container",5),Wm(2,AL,2,2,"ng-template",null,6,Kb),Su()),2&t){const t=e.$implicit,n=Gm(3);Jc(1),vu("ngIf",!t.isURL)("ngIfElse",n)}}function TL(t,e){if(1&t){const t=Eu();Ou(0,"button",8),Nu("click",(function e(){return ra(t),Lu().onActionButtonClicked()})),Mf(1),Pu()}if(2&t){const t=Lu();Jc(1),xf(" ",t.alert.followupAction.localizedLabel," ")}}class NL{constructor(t,e,n){this.snackBarRef=t,this.unknownData=e,this.store=n,this.splitByURL=DL,this.alert=e}onActionButtonClicked(){return rR(this,void 0,void 0,(function*(){this.snackBarRef.dismiss();const t=yield this.alert.followupAction.getFollowupAction(this.store);this.store.dispatch(t)}))}onCloseButtonClicked(){this.snackBarRef.dismiss()}}NL.ɵfac=function t(e){return new(e||NL)(Mu(yL),Mu(gL),Mu(Ek))},NL.ɵcmp=Uo({type:NL,selectors:[["alert-display-snackbar"]],decls:6,vars:2,consts:function(){let t;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Dismiss"):$localize`:A button to close the snackbar message␟ea4d9fe61420a3fce81cf54c4c615e3c19c646a6␟1536087519743707362:Dismiss`,[[1,"message"],[4,"ngFor","ngForOf"],[1,"controls"],["mat-button","","class","followup-button",3,"click",4,"ngIf"],["mat-button","","aria-label",t,1,"dismiss-button",3,"click"],[4,"ngIf","ngIfElse"],["linkPiece",""],["rel","noreferrer noopener","target","_blank",3,"href"],["mat-button","",1,"followup-button",3,"click"]]},template:function t(e,n){1&e&&(Ou(0,"div",0),Wm(1,RL,4,2,"ng-container",1),Pu(),Ou(2,"div",2),Wm(3,TL,2,1,"button",3),Ou(4,"button",4),Nu("click",(function t(){return n.onCloseButtonClicked()})),Mf(5," Dismiss "),Pu(),Pu()),2&e&&(Jc(1),vu("ngForOf",n.splitByURL(n.alert.localizedMessage)),Jc(2),vu("ngIf",n.alert.followupAction))},directives:[ov,av,NH],styles:["[_nghost-%COMP%]{display:flex;flex-wrap:wrap}.message[_ngcontent-%COMP%]{font-size:14px;align-self:center;margin:5px 0;word-break:break-word}.message[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:inherit}.controls[_ngcontent-%COMP%]{white-space:nowrap;margin-left:auto}button[_ngcontent-%COMP%]{text-transform:uppercase}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(NL,[{type:h_,args:[{selector:"alert-display-snackbar",templateUrl:"./alert_display_snackbar_container.ng.html",styleUrls:["./alert_display_snackbar_container.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:yL},{type:void 0,decorators:[{type:ys,args:[gL]}]},{type:Ek}]}),null);class IL{constructor(t,e){this.store=t,this.snackBar=e,this.ngUnsubscribe=new x}ngOnInit(){this.store.select(eR).pipe(un(this.ngUnsubscribe),Gt((t=>Boolean(t)))).subscribe((t=>{this.showAlert(t)}))}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}showAlert(t){this.snackBar.openFromComponent(NL,{duration:5e3,horizontalPosition:"start",verticalPosition:"bottom",data:t})}}IL.ɵfac=function t(e){return new(e||IL)(Mu(Ek),Mu(PL))},IL.ɵcmp=Uo({type:IL,selectors:[["alert-snackbar"]],decls:0,vars:0,template:function t(e,n){},encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(IL,[{type:h_,args:[{selector:"alert-snackbar",template:"",changeDetection:xo.OnPush}]}],(function(){return[{type:Ek},{type:PL}]}),null);class zL{}zL.ɵfac=function t(e){return new(e||zL)},zL.ɵmod=Zo({type:zL}),zL.ɵinj=co({imports:[[Bv,zH,vL]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(zL,{declarations:[IL,NL],imports:[Bv,zH,vL],exports:[IL]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(zL,[{type:k_,args:[{declarations:[IL,NL],exports:[IL],imports:[Bv,zH,vL],entryComponents:[NL]}]}],null,null);class HL{}HL.ɵfac=function t(e){return new(e||HL)},HL.ɵmod=Zo({type:HL}),HL.ɵinj=co({imports:[[vA,zL,iS.forFeature(tR,$N),LS.forFeature([JN])]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(HL,{imports:[vA,zL,oS,FS]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(HL,[{type:k_,args:[{imports:[vA,zL,iS.forFeature(tR,$N),LS.forFeature([JN])]}]}],null,null);const FL=["*",[["mat-toolbar-row"]]],LL=Iz(class{constructor(t){this._elementRef=t}});class BL{}BL.ɵfac=function t(e){return new(e||BL)},BL.ɵdir=Jo({type:BL,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(BL,[{type:g_,args:[{selector:"mat-toolbar-row",exportAs:"matToolbarRow",host:{class:"mat-toolbar-row"}}]}],null,null);class VL extends LL{constructor(t,e,n){super(t),this._platform=e,this._document=n}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe((()=>this._checkToolbarMixedModes())))}_checkToolbarMixedModes(){this._toolbarRows.length&&("undefined"==typeof ngDevMode||ngDevMode)&&Array.from(this._elementRef.nativeElement.childNodes).filter((t=>!(t.classList&&t.classList.contains("mat-toolbar-row")))).filter((t=>t.nodeType!==(this._document?this._document.COMMENT_NODE:8))).some((t=>!(!t.textContent||!t.textContent.trim())))&&(function t(){throw Error("MatToolbar: Attempting to combine different toolbar modes. Either specify multiple `<mat-toolbar-row>` elements explicitly or just place content inside of a `<mat-toolbar>` for a single row.")}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)()}}VL.ɵfac=function t(e){return new(e||VL)(Mu(ch),Mu(fI),Mu(UC))},VL.ɵcmp=Uo({type:VL,selectors:[["mat-toolbar"]],contentQueries:function t(e,n,o){if(1&e&&Gb(o,BL,1),2&e){let t;Ub(t=Yb())&&(n._toolbarRows=t)}},hostAttrs:[1,"mat-toolbar"],hostVars:4,hostBindings:function t(e,n){2&e&&af("mat-toolbar-multiple-rows",n._toolbarRows.length>0)("mat-toolbar-single-row",0===n._toolbarRows.length)},inputs:{color:"color"},exportAs:["matToolbar"],features:[gm],ngContentSelectors:["*","mat-toolbar-row"],decls:2,vars:0,template:function t(e,n){1&e&&(Vu(FL),ju(0),ju(1,1))},styles:[".cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%}\n"],encapsulation:2,changeDetection:0}),VL.ctorParameters=()=>[{type:ch},{type:fI},{type:void 0,decorators:[{type:ys,args:[UC]}]}],VL.propDecorators={_toolbarRows:[{type:zr,args:[BL,{descendants:!0}]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(VL,[{type:h_,args:[{selector:"mat-toolbar",exportAs:"matToolbar",template:'<ng-content></ng-content>\n<ng-content select="mat-toolbar-row"></ng-content>\n',inputs:["color"],host:{class:"mat-toolbar","[class.mat-toolbar-multiple-rows]":"_toolbarRows.length > 0","[class.mat-toolbar-single-row]":"_toolbarRows.length === 0"},changeDetection:xo.OnPush,encapsulation:Po.None,styles:[".cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%}\n"]}]}],(function(){return[{type:ch},{type:fI},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),{_toolbarRows:[{type:zr,args:[BL,{descendants:!0}]}]});class jL{}function UL(t,e){1&t&&ju(0)}jL.ɵfac=function t(e){return new(e||jL)},jL.ɵmod=Zo({type:jL}),jL.ɵinj=co({imports:[[Tz],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(jL,{declarations:function(){return[VL,BL]},imports:function(){return[Tz]},exports:function(){return[VL,BL,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jL,[{type:k_,args:[{imports:[Tz],exports:[VL,BL,Tz],declarations:[VL,BL]}]}],null,null);const WL=["*"];function GL(t,e){}const YL=function(t){return{animationDuration:t}},qL=function(t,e){return{value:t,params:e}},ZL=["tabBodyWrapper"],XL=["tabHeader"];function KL(t,e){}function JL(t,e){1&t&&Wm(0,KL,0,0,"ng-template",9),2&t&&vu("cdkPortalOutlet",Lu().$implicit.templateLabel)}function QL(t,e){1&t&&Mf(0),2&t&&vf(Lu().$implicit.textLabel)}function $L(t,e){if(1&t){const t=Eu();Ou(0,"div",6),Nu("click",(function n(){ra(t);const o=e.$implicit,i=e.index,a=Lu(),r=Gm(1);return a._handleClick(o,r,i)}))("cdkFocusChange",(function n(o){ra(t);const i=e.index;return Lu()._tabFocusChanged(o,i)})),Ou(1,"div",7),Wm(2,JL,1,1,"ng-template",8),Wm(3,QL,1,1,"ng-template",8),Pu(),Pu()}if(2&t){const t=e.$implicit,n=e.index,o=Lu();af("mat-tab-label-active",o.selectedIndex==n),vu("id",o._getTabLabelId(n))("disabled",t.disabled)("matRippleDisabled",t.disabled||o.disableRipple),Nm("tabIndex",o._getTabIndex(t,n))("aria-posinset",n+1)("aria-setsize",o._tabs.length)("aria-controls",o._getTabContentId(n))("aria-selected",o.selectedIndex==n)("aria-label",t.ariaLabel||null)("aria-labelledby",!t.ariaLabel&&t.ariaLabelledby?t.ariaLabelledby:null),Jc(2),vu("ngIf",t.templateLabel),Jc(1),vu("ngIf",!t.templateLabel)}}function tB(t,e){if(1&t){const t=Eu();Ou(0,"mat-tab-body",10),Nu("_onCentered",(function e(){return ra(t),Lu()._removeTabBodyWrapperHeight()}))("_onCentering",(function e(n){return ra(t),Lu()._setTabBodyWrapperHeight(n)})),Pu()}if(2&t){const t=e.$implicit,n=e.index,o=Lu();af("mat-tab-body-active",o.selectedIndex==n),vu("id",o._getTabContentId(n))("content",t.content)("position",t.position)("origin",t.origin)("animationDuration",o.animationDuration),Nm("aria-labelledby",o._getTabLabelId(n))}}const eB=["tabListContainer"],nB=["tabList"],oB=["nextPaginator"],iB=["previousPaginator"],aB=new Nr("MatInkBarPositioner",{providedIn:"root",factory:function rB(){return t=>({left:t?(t.offsetLeft||0)+"px":"0",width:t?(t.offsetWidth||0)+"px":"0"})}});class sB{constructor(t,e,n,o){this._elementRef=t,this._ngZone=e,this._inkBarPositioner=n,this._animationMode=o}alignToElement(t){this.show(),"undefined"!=typeof requestAnimationFrame?this._ngZone.runOutsideAngular((()=>{requestAnimationFrame((()=>this._setStyles(t)))})):this._setStyles(t)}show(){this._elementRef.nativeElement.style.visibility="visible"}hide(){this._elementRef.nativeElement.style.visibility="hidden"}_setStyles(t){const e=this._inkBarPositioner(t),n=this._elementRef.nativeElement;n.style.left=e.left,n.style.width=e.width}}sB.ɵfac=function t(e){return new(e||sB)(Mu(ch),Mu(tC),Mu(aB),Mu(Nw,8))},sB.ɵdir=Jo({type:sB,selectors:[["mat-ink-bar"]],hostAttrs:[1,"mat-ink-bar"],hostVars:2,hostBindings:function t(e,n){2&e&&af("_mat-animation-noopable","NoopAnimations"===n._animationMode)}}),sB.ctorParameters=()=>[{type:ch},{type:tC},{type:void 0,decorators:[{type:ys,args:[aB]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(sB,[{type:g_,args:[{selector:"mat-ink-bar",host:{class:"mat-ink-bar","[class._mat-animation-noopable]":"_animationMode === 'NoopAnimations'"}}]}],(function(){return[{type:ch},{type:tC},{type:void 0,decorators:[{type:ys,args:[aB]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const lB=new Nr("MatTabContent");class cB{constructor(t){this.template=t}}cB.ɵfac=function t(e){return new(e||cB)(Mu(Uh))},cB.ɵdir=Jo({type:cB,selectors:[["","matTabContent",""]],features:[ih([{provide:lB,useExisting:cB}])]}),cB.ctorParameters=()=>[{type:Uh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(cB,[{type:g_,args:[{selector:"[matTabContent]",providers:[{provide:lB,useExisting:cB}]}]}],(function(){return[{type:Uh}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const dB=new Nr("MatTabLabel");class pB extends mF{}pB.ɵfac=function t(e){return mB(e||pB)},pB.ɵdir=Jo({type:pB,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ih([{provide:dB,useExisting:pB}]),gm]});const mB=vr(pB);("undefined"==typeof ngDevMode||ngDevMode)&&db(pB,[{type:g_,args:[{selector:"[mat-tab-label], [matTabLabel]",providers:[{provide:dB,useExisting:pB}]}]}],null,null);const uB=Nz(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class{}),fB=new Nr("MAT_TAB_GROUP");class gB extends uB{constructor(t,e){super(),this._viewContainerRef=t,this._closestTabGroup=e,this.textLabel="",this._contentPortal=null,this._stateChanges=new x,this.position=null,this.origin=null,this.isActive=!1}get templateLabel(){return this._templateLabel}set templateLabel(t){this._setTemplateLabelInput(t)}get content(){return this._contentPortal}ngOnChanges(t){(t.hasOwnProperty("textLabel")||t.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new lF(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(t){t&&(this._templateLabel=t)}}gB.ɵfac=function t(e){return new(e||gB)(Mu(Xh),Mu(fB))},gB.ɵcmp=Uo({type:gB,selectors:[["mat-tab"]],contentQueries:function t(e,n,o){if(1&e&&(Gb(o,dB,1),Gb(o,lB,3,Uh)),2&e){let t;Ub(t=Yb())&&(n.templateLabel=t.first),Ub(t=Yb())&&(n._explicitContent=t.first)}},viewQuery:function t(e,n){if(1&e&&Wb(Uh,3),2&e){let t;Ub(t=Yb())&&(n._implicitContent=t.first)}},inputs:{disabled:"disabled",textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"]},exportAs:["matTab"],features:[gm,Si],ngContentSelectors:WL,decls:1,vars:0,template:function t(e,n){1&e&&(Vu(),Wm(0,UL,1,0,"ng-template"))},encapsulation:2}),gB.ctorParameters=()=>[{type:Xh},{type:void 0,decorators:[{type:ys,args:[fB]}]}],gB.propDecorators={templateLabel:[{type:Hr,args:[dB]}],_explicitContent:[{type:Hr,args:[lB,{read:Uh,static:!0}]}],_implicitContent:[{type:Fr,args:[Uh,{static:!0}]}],textLabel:[{type:y_,args:["label"]}],ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(gB,[{type:h_,args:[{selector:"mat-tab",template:"\x3c!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\n    TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n    tab-group. --\x3e\n<ng-template><ng-content></ng-content></ng-template>\n",inputs:["disabled"],changeDetection:xo.Default,encapsulation:Po.None,exportAs:"matTab"}]}],(function(){return[{type:Xh},{type:void 0,decorators:[{type:ys,args:[fB]}]}]}),{textLabel:[{type:y_,args:["label"]}],templateLabel:[{type:Hr,args:[dB]}],_explicitContent:[{type:Hr,args:[lB,{read:Uh,static:!0}]}],_implicitContent:[{type:Fr,args:[Uh,{static:!0}]}],ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const hB={translateTab:Kx("translateTab",[tO("center, void, left-origin-center, right-origin-center",$x({transform:"none"})),tO("left",$x({transform:"translate3d(-100%, 0, 0)",minHeight:"1px"})),tO("right",$x({transform:"translate3d(100%, 0, 0)",minHeight:"1px"})),nO("* => left, * => right, left => center, right => center",Jx("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),nO("void => left-origin-center",[$x({transform:"translate3d(-100%, 0, 0)"}),Jx("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),nO("void => right-origin-center",[$x({transform:"translate3d(100%, 0, 0)"}),Jx("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class bB extends gF{constructor(t,e,n,o){super(t,e,o),this._host=n,this._centeringSub=l.EMPTY,this._leavingSub=l.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(cn(this._host._isCenterPosition(this._host._position))).subscribe((t=>{t&&!this.hasAttached()&&this.attach(this._host._content)})),this._leavingSub=this._host._afterLeavingCenter.subscribe((()=>{this.detach()}))}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}}bB.ɵfac=function t(e){return new(e||bB)(Mu(rh),Mu(Xh),Mu(In((()=>_B))),Mu(UC))},bB.ɵdir=Jo({type:bB,selectors:[["","matTabBodyHost",""]],features:[gm]}),bB.ctorParameters=()=>[{type:rh},{type:Xh},{type:_B,decorators:[{type:ys,args:[In((()=>_B))]}]},{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(bB,[{type:g_,args:[{selector:"[matTabBodyHost]"}]}],(function(){return[{type:rh},{type:Xh},{type:_B,decorators:[{type:ys,args:[In((()=>_B))]}]},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);class yB{constructor(t,e,n){this._elementRef=t,this._dir=e,this._dirChangeSubscription=l.EMPTY,this._translateTabComplete=new x,this._onCentering=new Ab,this._beforeCentering=new Ab,this._afterLeavingCenter=new Ab,this._onCentered=new Ab(!0),this.animationDuration="500ms",e&&(this._dirChangeSubscription=e.change.subscribe((t=>{this._computePositionAnimationState(t),n.markForCheck()}))),this._translateTabComplete.pipe(ke(((t,e)=>t.fromState===e.fromState&&t.toState===e.toState))).subscribe((t=>{this._isCenterPosition(t.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(t.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()}))}set position(t){this._positionIndex=t,this._computePositionAnimationState()}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(t){const e=this._isCenterPosition(t.toState);this._beforeCentering.emit(e),e&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(t){return"center"==t||"left-origin-center"==t||"right-origin-center"==t}_computePositionAnimationState(t=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==t?"left":"right":this._positionIndex>0?"ltr"==t?"right":"left":"center"}_computePositionFromOrigin(t){const e=this._getLayoutDirection();return"ltr"==e&&t<=0||"rtl"==e&&t>0?"left-origin-center":"right-origin-center"}}yB.ɵfac=function t(e){return new(e||yB)(Mu(ch),Mu(Mz,8),Mu(Hh))},yB.ɵdir=Jo({type:yB,inputs:{animationDuration:"animationDuration",position:"position",_content:["content","_content"],origin:"origin"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}}),yB.ctorParameters=()=>[{type:ch},{type:Mz,decorators:[{type:_s}]},{type:Hh}],yB.propDecorators={_onCentering:[{type:__}],_beforeCentering:[{type:__}],_afterLeavingCenter:[{type:__}],_onCentered:[{type:__}],_content:[{type:y_,args:["content"]}],origin:[{type:y_}],animationDuration:[{type:y_}],position:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(yB,[{type:g_}],(function(){return[{type:ch},{type:Mz,decorators:[{type:_s}]},{type:Hh}]}),{_onCentering:[{type:__}],_beforeCentering:[{type:__}],_afterLeavingCenter:[{type:__}],_onCentered:[{type:__}],animationDuration:[{type:y_}],position:[{type:y_}],_content:[{type:y_,args:["content"]}],origin:[{type:y_}]});class _B extends yB{constructor(t,e,n){super(t,e,n)}}_B.ɵfac=function t(e){return new(e||_B)(Mu(ch),Mu(Mz,8),Mu(Hh))},_B.ɵcmp=Uo({type:_B,selectors:[["mat-tab-body"]],viewQuery:function t(e,n){if(1&e&&Wb(gF,1),2&e){let t;Ub(t=Yb())&&(n._portalHost=t.first)}},hostAttrs:[1,"mat-tab-body"],features:[gm],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function t(e,n){1&e&&(Ou(0,"div",0,1),Nu("@translateTab.start",(function t(e){return n._onTranslateTabStarted(e)}))("@translateTab.done",(function t(e){return n._translateTabComplete.next(e)})),Wm(2,GL,0,0,"ng-template",2),Pu()),2&e&&vu("@translateTab",hb(3,qL,n._position,gb(1,YL,n.animationDuration)))},directives:[bB],styles:[".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}\n"],encapsulation:2,data:{animation:[hB.translateTab]}}),_B.ctorParameters=()=>[{type:ch},{type:Mz,decorators:[{type:_s}]},{type:Hh}],_B.propDecorators={_portalHost:[{type:Fr,args:[gF]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(_B,[{type:h_,args:[{selector:"mat-tab-body",template:'<div class="mat-tab-body-content" #content\n     [@translateTab]="{\n        value: _position,\n        params: {animationDuration: animationDuration}\n     }"\n     (@translateTab.start)="_onTranslateTabStarted($event)"\n     (@translateTab.done)="_translateTabComplete.next($event)"\n     cdkScrollable>\n  <ng-template matTabBodyHost></ng-template>\n</div>\n',encapsulation:Po.None,changeDetection:xo.Default,animations:[hB.translateTab],host:{class:"mat-tab-body"},styles:[".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}\n"]}]}],(function(){return[{type:ch},{type:Mz,decorators:[{type:_s}]},{type:Hh}]}),{_portalHost:[{type:Fr,args:[gF]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const CB=new Nr("MAT_TABS_CONFIG");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */let MB=0;class vB{}const xB=Iz(zz(class{constructor(t){this._elementRef=t}}),"primary");class OB extends xB{constructor(t,e,n,o){super(t),this._changeDetectorRef=e,this._animationMode=o,this._tabs=new Tb,this._indexToSelect=0,this._tabBodyWrapperHeight=0,this._tabsSubscription=l.EMPTY,this._tabLabelSubscription=l.EMPTY,this._selectedIndex=null,this.headerPosition="above",this.selectedIndexChange=new Ab,this.focusChange=new Ab,this.animationDone=new Ab,this.selectedTabChange=new Ab(!0),this._groupId=MB++,this.animationDuration=n&&n.animationDuration?n.animationDuration:"500ms",this.disablePagination=!(!n||null==n.disablePagination)&&n.disablePagination,this.dynamicHeight=!(!n||null==n.dynamicHeight)&&n.dynamicHeight}get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(t){this._dynamicHeight=rI(t)}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){this._indexToSelect=sI(t,null)}get animationDuration(){return this._animationDuration}set animationDuration(t){this._animationDuration=/^\d+$/.test(t)?t+"ms":t}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){const e=this._elementRef.nativeElement;e.classList.remove(`mat-background-${this.backgroundColor}`),t&&e.classList.add(`mat-background-${t}`),this._backgroundColor=t}ngAfterContentChecked(){const t=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=t){const e=null==this._selectedIndex;if(!e){this.selectedTabChange.emit(this._createChangeEvent(t));const e=this._tabBodyWrapper.nativeElement;e.style.minHeight=e.clientHeight+"px"}Promise.resolve().then((()=>{this._tabs.forEach(((e,n)=>e.isActive=n===t)),e||(this.selectedIndexChange.emit(t),this._tabBodyWrapper.nativeElement.style.minHeight="")}))}this._tabs.forEach(((e,n)=>{e.position=n-t,null==this._selectedIndex||0!=e.position||e.origin||(e.origin=t-this._selectedIndex)})),this._selectedIndex!==t&&(this._selectedIndex=t,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe((()=>{if(this._clampTabIndex(this._indexToSelect)===this._selectedIndex){const t=this._tabs.toArray();for(let e=0;e<t.length;e++)if(t[e].isActive){this._indexToSelect=this._selectedIndex=e;break}}this._changeDetectorRef.markForCheck()}))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(cn(this._allTabs)).subscribe((t=>{this._tabs.reset(t.filter((t=>t._closestTabGroup===this))),this._tabs.notifyOnChanges()}))}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}_focusChanged(t){this.focusChange.emit(this._createChangeEvent(t))}_createChangeEvent(t){const e=new vB;return e.index=t,this._tabs&&this._tabs.length&&(e.tab=this._tabs.toArray()[t]),e}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Wt(...this._tabs.map((t=>t._stateChanges))).subscribe((()=>this._changeDetectorRef.markForCheck()))}_clampTabIndex(t){return Math.min(this._tabs.length-1,Math.max(t||0,0))}_getTabLabelId(t){return`mat-tab-label-${this._groupId}-${t}`}_getTabContentId(t){return`mat-tab-content-${this._groupId}-${t}`}_setTabBodyWrapperHeight(t){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const e=this._tabBodyWrapper.nativeElement;e.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(e.style.height=t+"px")}_removeTabBodyWrapperHeight(){const t=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=t.clientHeight,t.style.height="",this.animationDone.emit()}_handleClick(t,e,n){t.disabled||(this.selectedIndex=e.focusIndex=n)}_getTabIndex(t,e){return t.disabled?null:this.selectedIndex===e?0:-1}_tabFocusChanged(t,e){t&&(this._tabHeader.focusIndex=e)}}OB.ɵfac=function t(e){return new(e||OB)(Mu(ch),Mu(Hh),Mu(CB,8),Mu(Nw,8))},OB.ɵdir=Jo({type:OB,inputs:{headerPosition:"headerPosition",animationDuration:"animationDuration",disablePagination:"disablePagination",dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[gm]}),OB.ctorParameters=()=>[{type:ch},{type:Hh},{type:void 0,decorators:[{type:ys,args:[CB]},{type:_s}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],OB.propDecorators={dynamicHeight:[{type:y_}],selectedIndex:[{type:y_}],headerPosition:[{type:y_}],animationDuration:[{type:y_}],disablePagination:[{type:y_}],backgroundColor:[{type:y_}],selectedIndexChange:[{type:__}],focusChange:[{type:__}],animationDone:[{type:__}],selectedTabChange:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(OB,[{type:g_}],(function(){return[{type:ch},{type:Hh},{type:void 0,decorators:[{type:ys,args:[CB]},{type:_s}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{headerPosition:[{type:y_}],selectedIndexChange:[{type:__}],focusChange:[{type:__}],animationDone:[{type:__}],selectedTabChange:[{type:__}],animationDuration:[{type:y_}],disablePagination:[{type:y_}],dynamicHeight:[{type:y_}],selectedIndex:[{type:y_}],backgroundColor:[{type:y_}]});class PB extends OB{constructor(t,e,n,o){super(t,e,n,o)}}PB.ɵfac=function t(e){return new(e||PB)(Mu(ch),Mu(Hh),Mu(CB,8),Mu(Nw,8))},PB.ɵcmp=Uo({type:PB,selectors:[["mat-tab-group"]],contentQueries:function t(e,n,o){if(1&e&&Gb(o,gB,1),2&e){let t;Ub(t=Yb())&&(n._allTabs=t)}},viewQuery:function t(e,n){if(1&e&&(Wb(ZL,1),Wb(XL,1)),2&e){let t;Ub(t=Yb())&&(n._tabBodyWrapper=t.first),Ub(t=Yb())&&(n._tabHeader=t.first)}},hostAttrs:[1,"mat-tab-group"],hostVars:4,hostBindings:function t(e,n){2&e&&af("mat-tab-group-dynamic-height",n.dynamicHeight)("mat-tab-group-inverted-header","below"===n.headerPosition)},inputs:{color:"color",disableRipple:"disableRipple"},exportAs:["matTabGroup"],features:[ih([{provide:fB,useExisting:PB}]),gm],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mat-tab-label mat-focus-indicator","role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",3,"id","mat-tab-label-active","disabled","matRippleDisabled","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-tab-body-active","content","position","origin","animationDuration","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",1,"mat-tab-label","mat-focus-indicator",3,"id","disabled","matRippleDisabled","click","cdkFocusChange"],[1,"mat-tab-label-content"],[3,"ngIf"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","content","position","origin","animationDuration","_onCentered","_onCentering"]],template:function t(e,n){1&e&&(Ou(0,"mat-tab-header",0,1),Nu("indexFocused",(function t(e){return n._focusChanged(e)}))("selectFocusedIndex",(function t(e){return n.selectedIndex=e})),Wm(2,$L,4,14,"div",2),Pu(),Ou(3,"div",3,4),Wm(5,tB,1,8,"mat-tab-body",5),Pu()),2&e&&(vu("selectedIndex",n.selectedIndex||0)("disableRipple",n.disableRipple)("disablePagination",n.disablePagination),Jc(2),vu("ngForOf",n._tabs),Jc(1),af("_mat-animation-noopable","NoopAnimations"===n._animationMode),Jc(2),vu("ngForOf",n._tabs))},directives:function(){return[AB,ov,kB,pH,uz,av,gF,_B]},styles:[".mat-tab-group{display:flex;flex-direction:column}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\n"],encapsulation:2}),PB.ctorParameters=()=>[{type:ch},{type:Hh},{type:void 0,decorators:[{type:ys,args:[CB]},{type:_s}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],PB.propDecorators={_allTabs:[{type:zr,args:[gB,{descendants:!0}]}],_tabBodyWrapper:[{type:Fr,args:["tabBodyWrapper"]}],_tabHeader:[{type:Fr,args:["tabHeader"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(PB,[{type:h_,args:[{selector:"mat-tab-group",exportAs:"matTabGroup",template:'<mat-tab-header #tabHeader\n               [selectedIndex]="selectedIndex || 0"\n               [disableRipple]="disableRipple"\n               [disablePagination]="disablePagination"\n               (indexFocused)="_focusChanged($event)"\n               (selectFocusedIndex)="selectedIndex = $event">\n  <div class="mat-tab-label mat-focus-indicator" role="tab" matTabLabelWrapper mat-ripple cdkMonitorElementFocus\n       *ngFor="let tab of _tabs; let i = index"\n       [id]="_getTabLabelId(i)"\n       [attr.tabIndex]="_getTabIndex(tab, i)"\n       [attr.aria-posinset]="i + 1"\n       [attr.aria-setsize]="_tabs.length"\n       [attr.aria-controls]="_getTabContentId(i)"\n       [attr.aria-selected]="selectedIndex == i"\n       [attr.aria-label]="tab.ariaLabel || null"\n       [attr.aria-labelledby]="(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null"\n       [class.mat-tab-label-active]="selectedIndex == i"\n       [disabled]="tab.disabled"\n       [matRippleDisabled]="tab.disabled || disableRipple"\n       (click)="_handleClick(tab, tabHeader, i)"\n       (cdkFocusChange)="_tabFocusChanged($event, i)">\n\n\n    <div class="mat-tab-label-content">\n      \x3c!-- If there is a label template, use it. --\x3e\n      <ng-template [ngIf]="tab.templateLabel">\n        <ng-template [cdkPortalOutlet]="tab.templateLabel"></ng-template>\n      </ng-template>\n\n      \x3c!-- If there is not a label template, fall back to the text label. --\x3e\n      <ng-template [ngIf]="!tab.templateLabel">{{tab.textLabel}}</ng-template>\n    </div>\n  </div>\n</mat-tab-header>\n\n<div\n  class="mat-tab-body-wrapper"\n  [class._mat-animation-noopable]="_animationMode === \'NoopAnimations\'"\n  #tabBodyWrapper>\n  <mat-tab-body role="tabpanel"\n               *ngFor="let tab of _tabs; let i = index"\n               [id]="_getTabContentId(i)"\n               [attr.aria-labelledby]="_getTabLabelId(i)"\n               [class.mat-tab-body-active]="selectedIndex == i"\n               [content]="tab.content!"\n               [position]="tab.position!"\n               [origin]="tab.origin"\n               [animationDuration]="animationDuration"\n               (_onCentered)="_removeTabBodyWrapperHeight()"\n               (_onCentering)="_setTabBodyWrapperHeight($event)">\n  </mat-tab-body>\n</div>\n',encapsulation:Po.None,changeDetection:xo.Default,inputs:["color","disableRipple"],providers:[{provide:fB,useExisting:PB}],host:{class:"mat-tab-group","[class.mat-tab-group-dynamic-height]":"dynamicHeight","[class.mat-tab-group-inverted-header]":'headerPosition === "below"'},styles:[".mat-tab-group{display:flex;flex-direction:column}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\n"]}]}],(function(){return[{type:ch},{type:Hh},{type:void 0,decorators:[{type:ys,args:[CB]},{type:_s}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{_allTabs:[{type:zr,args:[gB,{descendants:!0}]}],_tabBodyWrapper:[{type:Fr,args:["tabBodyWrapper"]}],_tabHeader:[{type:Fr,args:["tabHeader"]}]});const wB=Nz(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class{});class kB extends wB{constructor(t){super(),this.elementRef=t}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}}kB.ɵfac=function t(e){return new(e||kB)(Mu(ch))},kB.ɵdir=Jo({type:kB,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function t(e,n){2&e&&(Nm("aria-disabled",!!n.disabled),af("mat-tab-disabled",n.disabled))},inputs:{disabled:"disabled"},features:[gm]}),kB.ctorParameters=()=>[{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(kB,[{type:g_,args:[{selector:"[matTabLabelWrapper]",inputs:["disabled"],host:{"[class.mat-tab-disabled]":"disabled","[attr.aria-disabled]":"!!disabled"}}]}],(function(){return[{type:ch}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const SB=vI({passive:!0});class DB{constructor(t,e,n,o,i,a,r){this._elementRef=t,this._changeDetectorRef=e,this._viewportRuler=n,this._dir=o,this._ngZone=i,this._platform=a,this._animationMode=r,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new x,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new x,this.disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new Ab,this.indexFocused=new Ab,i.runOutsideAngular((()=>{Vt(t.nativeElement,"mouseleave").pipe(un(this._destroyed)).subscribe((()=>{this._stopInterval()}))}))}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){t=sI(t),this._selectedIndex!=t&&(this._selectedIndexChanged=!0,this._selectedIndex=t,this._keyManager&&this._keyManager.updateActiveItem(t))}ngAfterViewInit(){Vt(this._previousPaginator.nativeElement,"touchstart",SB).pipe(un(this._destroyed)).subscribe((()=>{this._handlePaginatorPress("before")})),Vt(this._nextPaginator.nativeElement,"touchstart",SB).pipe(un(this._destroyed)).subscribe((()=>{this._handlePaginatorPress("after")}))}ngAfterContentInit(){const t=this._dir?this._dir.change:Z(null),e=this._viewportRuler.change(150),n=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new VI(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap(),this._keyManager.updateActiveItem(this._selectedIndex),"undefined"!=typeof requestAnimationFrame?requestAnimationFrame(n):n(),Wt(t,e,this._items.changes).pipe(un(this._destroyed)).subscribe((()=>{this._ngZone.run((()=>Promise.resolve().then(n))),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())})),this._keyManager.change.pipe(un(this._destroyed)).subscribe((t=>{this.indexFocused.emit(t),this._setTabFocus(t)}))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(t){if(!aI(t))switch(t.keyCode){case tI:case nI:this.focusIndex!==this.selectedIndex&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(t));break;default:this._keyManager.onKeydown(t)}}_onContentChanges(){const t=this._elementRef.nativeElement.textContent;t!==this._currentTextContent&&(this._currentTextContent=t||"",this._ngZone.run((()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()})))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(t){this._isValidIndex(t)&&this.focusIndex!==t&&this._keyManager&&this._keyManager.setActiveItem(t)}_isValidIndex(t){if(!this._items)return!0;const e=this._items?this._items.toArray()[t]:null;return!!e&&!e.disabled}_setTabFocus(t){if(this._showPaginationControls&&this._scrollToLabel(t),this._items&&this._items.length){this._items.toArray()[t].focus();const e=this._tabListContainer.nativeElement,n=this._getLayoutDirection();e.scrollLeft="ltr"==n?0:e.scrollWidth-e.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const t=this.scrollDistance,e="ltr"===this._getLayoutDirection()?-t:t;this._tabList.nativeElement.style.transform=`translateX(${Math.round(e)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(t){this._scrollTo(t)}_scrollHeader(t){return this._scrollTo(this._scrollDistance+("before"==t?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(t){this._stopInterval(),this._scrollHeader(t)}_scrollToLabel(t){if(this.disablePagination)return;const e=this._items?this._items.toArray()[t]:null;if(!e)return;const n=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:o,offsetWidth:i}=e.elementRef.nativeElement;let a,r;"ltr"==this._getLayoutDirection()?(a=o,r=a+i):(r=this._tabList.nativeElement.offsetWidth-o,a=r-i);const s=this.scrollDistance,l=this.scrollDistance+n;a<s?this.scrollDistance-=s-a+60:r>l&&(this.scrollDistance+=r-l+60)}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const t=this._tabList.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;t||(this.scrollDistance=0),t!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=t}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabList.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const t=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,e=t?t.elementRef.nativeElement:null;e?this._inkBar.alignToElement(e):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(t,e){e&&null!=e.button&&0!==e.button||(this._stopInterval(),Zt(650,100).pipe(un(Wt(this._stopScrolling,this._destroyed))).subscribe((()=>{const{maxScrollDistance:e,distance:n}=this._scrollHeader(t);(0===n||n>=e)&&this._stopInterval()})))}_scrollTo(t){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const e=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(e,t)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:e,distance:this._scrollDistance}}}DB.ɵfac=function t(e){return new(e||DB)(Mu(ch),Mu(Hh),Mu(QH),Mu(Mz,8),Mu(tC),Mu(fI),Mu(Nw,8))},DB.ɵdir=Jo({type:DB,inputs:{disablePagination:"disablePagination"}}),DB.ctorParameters=()=>[{type:ch},{type:Hh},{type:QH},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],DB.propDecorators={disablePagination:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(DB,[{type:g_}],(function(){return[{type:ch},{type:Hh},{type:QH},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{disablePagination:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class EB extends DB{constructor(t,e,n,o,i,a,r){super(t,e,n,o,i,a,r),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=rI(t)}_itemSelected(t){t.preventDefault()}}EB.ɵfac=function t(e){return new(e||EB)(Mu(ch),Mu(Hh),Mu(QH),Mu(Mz,8),Mu(tC),Mu(fI),Mu(Nw,8))},EB.ɵdir=Jo({type:EB,inputs:{disableRipple:"disableRipple"},features:[gm]}),EB.ctorParameters=()=>[{type:ch},{type:Hh},{type:QH},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],EB.propDecorators={disableRipple:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(EB,[{type:g_}],(function(){return[{type:ch},{type:Hh},{type:QH},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{disableRipple:[{type:y_}]});class AB extends EB{constructor(t,e,n,o,i,a,r){super(t,e,n,o,i,a,r)}}AB.ɵfac=function t(e){return new(e||AB)(Mu(ch),Mu(Hh),Mu(QH),Mu(Mz,8),Mu(tC),Mu(fI),Mu(Nw,8))},AB.ɵcmp=Uo({type:AB,selectors:[["mat-tab-header"]],contentQueries:function t(e,n,o){if(1&e&&Gb(o,kB,0),2&e){let t;Ub(t=Yb())&&(n._items=t)}},viewQuery:function t(e,n){if(1&e&&(Wb(sB,3),Wb(eB,3),Wb(nB,3),Wb(oB,1),Wb(iB,1)),2&e){let t;Ub(t=Yb())&&(n._inkBar=t.first),Ub(t=Yb())&&(n._tabListContainer=t.first),Ub(t=Yb())&&(n._tabList=t.first),Ub(t=Yb())&&(n._nextPaginator=t.first),Ub(t=Yb())&&(n._previousPaginator=t.first)}},hostAttrs:[1,"mat-tab-header"],hostVars:4,hostBindings:function t(e,n){2&e&&af("mat-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-tab-header-rtl","rtl"==n._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[gm],ngContentSelectors:WL,decls:13,vars:8,consts:[["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-before","mat-elevation-z4",3,"matRippleDisabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-tab-header-pagination-chevron"],[1,"mat-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-tab-labels"],["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-after","mat-elevation-z4",3,"matRippleDisabled","mousedown","click","touchend"],["nextPaginator",""]],template:function t(e,n){1&e&&(Vu(),Ou(0,"div",0,1),Nu("click",(function t(){return n._handlePaginatorClick("before")}))("mousedown",(function t(e){return n._handlePaginatorPress("before",e)}))("touchend",(function t(){return n._stopInterval()})),wu(2,"div",2),Pu(),Ou(3,"div",3,4),Nu("keydown",(function t(e){return n._handleKeydown(e)})),Ou(5,"div",5,6),Nu("cdkObserveContent",(function t(){return n._onContentChanges()})),Ou(7,"div",7),ju(8),Pu(),wu(9,"mat-ink-bar"),Pu(),Pu(),Ou(10,"div",8,9),Nu("mousedown",(function t(e){return n._handlePaginatorPress("after",e)}))("click",(function t(){return n._handlePaginatorClick("after")}))("touchend",(function t(){return n._stopInterval()})),wu(12,"div",2),Pu()),2&e&&(af("mat-tab-header-pagination-disabled",n._disableScrollBefore),vu("matRippleDisabled",n._disableScrollBefore||n.disableRipple),Jc(5),af("_mat-animation-noopable","NoopAnimations"===n._animationMode),Jc(5),af("mat-tab-header-pagination-disabled",n._disableScrollAfter),vu("matRippleDisabled",n._disableScrollAfter||n.disableRipple))},directives:[pH,SI,sB],styles:['.mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:"";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\n'],encapsulation:2}),AB.ctorParameters=()=>[{type:ch},{type:Hh},{type:QH},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],AB.propDecorators={_items:[{type:zr,args:[kB,{descendants:!1}]}],_inkBar:[{type:Fr,args:[sB,{static:!0}]}],_tabListContainer:[{type:Fr,args:["tabListContainer",{static:!0}]}],_tabList:[{type:Fr,args:["tabList",{static:!0}]}],_nextPaginator:[{type:Fr,args:["nextPaginator"]}],_previousPaginator:[{type:Fr,args:["previousPaginator"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(AB,[{type:h_,args:[{selector:"mat-tab-header",template:'<div class="mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4"\n     #previousPaginator\n     aria-hidden="true"\n     mat-ripple [matRippleDisabled]="_disableScrollBefore || disableRipple"\n     [class.mat-tab-header-pagination-disabled]="_disableScrollBefore"\n     (click)="_handlePaginatorClick(\'before\')"\n     (mousedown)="_handlePaginatorPress(\'before\', $event)"\n     (touchend)="_stopInterval()">\n  <div class="mat-tab-header-pagination-chevron"></div>\n</div>\n\n<div class="mat-tab-label-container" #tabListContainer (keydown)="_handleKeydown($event)">\n  <div\n    #tabList\n    class="mat-tab-list"\n    [class._mat-animation-noopable]="_animationMode === \'NoopAnimations\'"\n    role="tablist"\n    (cdkObserveContent)="_onContentChanges()">\n    <div class="mat-tab-labels">\n      <ng-content></ng-content>\n    </div>\n    <mat-ink-bar></mat-ink-bar>\n  </div>\n</div>\n\n<div class="mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4"\n     #nextPaginator\n     aria-hidden="true"\n     mat-ripple [matRippleDisabled]="_disableScrollAfter || disableRipple"\n     [class.mat-tab-header-pagination-disabled]="_disableScrollAfter"\n     (mousedown)="_handlePaginatorPress(\'after\', $event)"\n     (click)="_handlePaginatorClick(\'after\')"\n     (touchend)="_stopInterval()">\n  <div class="mat-tab-header-pagination-chevron"></div>\n</div>\n',inputs:["selectedIndex"],outputs:["selectFocusedIndex","indexFocused"],encapsulation:Po.None,changeDetection:xo.Default,host:{class:"mat-tab-header","[class.mat-tab-header-pagination-controls-enabled]":"_showPaginationControls","[class.mat-tab-header-rtl]":"_getLayoutDirection() == 'rtl'"},styles:['.mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:"";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\n']}]}],(function(){return[{type:ch},{type:Hh},{type:QH},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{_items:[{type:zr,args:[kB,{descendants:!1}]}],_inkBar:[{type:Fr,args:[sB,{static:!0}]}],_tabListContainer:[{type:Fr,args:["tabListContainer",{static:!0}]}],_tabList:[{type:Fr,args:["tabList",{static:!0}]}],_nextPaginator:[{type:Fr,args:["nextPaginator"]}],_previousPaginator:[{type:Fr,args:["previousPaginator"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class RB extends DB{constructor(t,e,n,o,i,a,r){super(t,o,i,e,n,a,r),this._disableRipple=!1,this.color="primary"}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){const e=this._elementRef.nativeElement.classList;e.remove(`mat-background-${this.backgroundColor}`),t&&e.add(`mat-background-${t}`),this._backgroundColor=t}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=rI(t)}_itemSelected(){}ngAfterContentInit(){this._items.changes.pipe(cn(null),un(this._destroyed)).subscribe((()=>{this.updateActiveLink()})),super.ngAfterContentInit()}updateActiveLink(){if(!this._items)return;const t=this._items.toArray();for(let e=0;e<t.length;e++)if(t[e].active)return this.selectedIndex=e,void this._changeDetectorRef.markForCheck();this.selectedIndex=-1,this._inkBar.hide()}}RB.ɵfac=function t(e){return new(e||RB)(Mu(ch),Mu(Mz,8),Mu(tC),Mu(Hh),Mu(QH),Mu(fI),Mu(Nw,8))},RB.ɵdir=Jo({type:RB,inputs:{color:"color",backgroundColor:"backgroundColor",disableRipple:"disableRipple"},features:[gm]}),RB.ctorParameters=()=>[{type:ch},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:Hh},{type:QH},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],RB.propDecorators={backgroundColor:[{type:y_}],disableRipple:[{type:y_}],color:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(RB,[{type:g_}],(function(){return[{type:ch},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:Hh},{type:QH},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{color:[{type:y_}],backgroundColor:[{type:y_}],disableRipple:[{type:y_}]});class TB extends RB{constructor(t,e,n,o,i,a,r){super(t,e,n,o,i,a,r)}}TB.ɵfac=function t(e){return new(e||TB)(Mu(ch),Mu(Mz,8),Mu(tC),Mu(Hh),Mu(QH),Mu(fI),Mu(Nw,8))},TB.ɵcmp=Uo({type:TB,selectors:[["","mat-tab-nav-bar",""]],contentQueries:function t(e,n,o){if(1&e&&Gb(o,zB,1),2&e){let t;Ub(t=Yb())&&(n._items=t)}},viewQuery:function t(e,n){if(1&e&&(Wb(sB,3),Wb(eB,3),Wb(nB,3),Wb(oB,1),Wb(iB,1)),2&e){let t;Ub(t=Yb())&&(n._inkBar=t.first),Ub(t=Yb())&&(n._tabListContainer=t.first),Ub(t=Yb())&&(n._tabList=t.first),Ub(t=Yb())&&(n._nextPaginator=t.first),Ub(t=Yb())&&(n._previousPaginator=t.first)}},hostAttrs:[1,"mat-tab-nav-bar","mat-tab-header"],hostVars:10,hostBindings:function t(e,n){2&e&&af("mat-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-tab-header-rtl","rtl"==n._getLayoutDirection())("mat-primary","warn"!==n.color&&"accent"!==n.color)("mat-accent","accent"===n.color)("mat-warn","warn"===n.color)},inputs:{color:"color"},exportAs:["matTabNavBar","matTabNav"],features:[gm],attrs:["mat-tab-nav-bar",""],ngContentSelectors:WL,decls:13,vars:8,consts:[["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-before","mat-elevation-z4",3,"matRippleDisabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-tab-header-pagination-chevron"],[1,"mat-tab-link-container",3,"keydown"],["tabListContainer",""],[1,"mat-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-tab-links"],["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-after","mat-elevation-z4",3,"matRippleDisabled","mousedown","click","touchend"],["nextPaginator",""]],template:function t(e,n){1&e&&(Vu(),Ou(0,"div",0,1),Nu("click",(function t(){return n._handlePaginatorClick("before")}))("mousedown",(function t(e){return n._handlePaginatorPress("before",e)}))("touchend",(function t(){return n._stopInterval()})),wu(2,"div",2),Pu(),Ou(3,"div",3,4),Nu("keydown",(function t(e){return n._handleKeydown(e)})),Ou(5,"div",5,6),Nu("cdkObserveContent",(function t(){return n._onContentChanges()})),Ou(7,"div",7),ju(8),Pu(),wu(9,"mat-ink-bar"),Pu(),Pu(),Ou(10,"div",8,9),Nu("mousedown",(function t(e){return n._handlePaginatorPress("after",e)}))("click",(function t(){return n._handlePaginatorClick("after")}))("touchend",(function t(){return n._stopInterval()})),wu(12,"div",2),Pu()),2&e&&(af("mat-tab-header-pagination-disabled",n._disableScrollBefore),vu("matRippleDisabled",n._disableScrollBefore||n.disableRipple),Jc(5),af("_mat-animation-noopable","NoopAnimations"===n._animationMode),Jc(5),af("mat-tab-header-pagination-disabled",n._disableScrollAfter),vu("matRippleDisabled",n._disableScrollAfter||n.disableRipple))},directives:[pH,SI,sB],styles:['.mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:"";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-link:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media(max-width: 599px){.mat-tab-link{min-width:72px}}\n'],encapsulation:2}),TB.ctorParameters=()=>[{type:ch},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:Hh},{type:QH},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],TB.propDecorators={_items:[{type:zr,args:[In((()=>zB)),{descendants:!0}]}],_inkBar:[{type:Fr,args:[sB,{static:!0}]}],_tabListContainer:[{type:Fr,args:["tabListContainer",{static:!0}]}],_tabList:[{type:Fr,args:["tabList",{static:!0}]}],_nextPaginator:[{type:Fr,args:["nextPaginator"]}],_previousPaginator:[{type:Fr,args:["previousPaginator"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(TB,[{type:h_,args:[{selector:"[mat-tab-nav-bar]",exportAs:"matTabNavBar, matTabNav",inputs:["color"],template:'<div class="mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4"\n     #previousPaginator\n     aria-hidden="true"\n     mat-ripple [matRippleDisabled]="_disableScrollBefore || disableRipple"\n     [class.mat-tab-header-pagination-disabled]="_disableScrollBefore"\n     (click)="_handlePaginatorClick(\'before\')"\n     (mousedown)="_handlePaginatorPress(\'before\', $event)"\n     (touchend)="_stopInterval()">\n  <div class="mat-tab-header-pagination-chevron"></div>\n</div>\n\n<div class="mat-tab-link-container" #tabListContainer (keydown)="_handleKeydown($event)">\n  <div\n    class="mat-tab-list"\n    [class._mat-animation-noopable]="_animationMode === \'NoopAnimations\'"\n    #tabList\n    (cdkObserveContent)="_onContentChanges()">\n    <div class="mat-tab-links">\n      <ng-content></ng-content>\n    </div>\n    <mat-ink-bar></mat-ink-bar>\n  </div>\n</div>\n\n<div class="mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4"\n     #nextPaginator\n     aria-hidden="true"\n     mat-ripple [matRippleDisabled]="_disableScrollAfter || disableRipple"\n     [class.mat-tab-header-pagination-disabled]="_disableScrollAfter"\n     (mousedown)="_handlePaginatorPress(\'after\', $event)"\n     (click)="_handlePaginatorClick(\'after\')"\n     (touchend)="_stopInterval()">\n  <div class="mat-tab-header-pagination-chevron"></div>\n</div>\n',host:{class:"mat-tab-nav-bar mat-tab-header","[class.mat-tab-header-pagination-controls-enabled]":"_showPaginationControls","[class.mat-tab-header-rtl]":"_getLayoutDirection() == 'rtl'","[class.mat-primary]":'color !== "warn" && color !== "accent"',"[class.mat-accent]":'color === "accent"',"[class.mat-warn]":'color === "warn"'},encapsulation:Po.None,changeDetection:xo.Default,styles:['.mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:"";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-link:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media(max-width: 599px){.mat-tab-link{min-width:72px}}\n']}]}],(function(){return[{type:ch},{type:Mz,decorators:[{type:_s}]},{type:tC},{type:Hh},{type:QH},{type:fI},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{_items:[{type:zr,args:[In((()=>zB)),{descendants:!0}]}],_inkBar:[{type:Fr,args:[sB,{static:!0}]}],_tabListContainer:[{type:Fr,args:["tabListContainer",{static:!0}]}],_tabList:[{type:Fr,args:["tabList",{static:!0}]}],_nextPaginator:[{type:Fr,args:["nextPaginator"]}],_previousPaginator:[{type:Fr,args:["previousPaginator"]}]});const NB=Hz(zz(Nz(class{})));class IB extends NB{constructor(t,e,n,o,i,a){super(),this._tabNavBar=t,this.elementRef=e,this._focusMonitor=i,this._isActive=!1,this.rippleConfig=n||{},this.tabIndex=parseInt(o)||0,"NoopAnimations"===a&&(this.rippleConfig.animation={enterDuration:0,exitDuration:0})}get active(){return this._isActive}set active(t){rI(t)!==this._isActive&&(this._isActive=t,this._tabNavBar.updateActiveLink())}get rippleDisabled(){return this.disabled||this.disableRipple||this._tabNavBar.disableRipple||!!this.rippleConfig.disabled}focus(){this.elementRef.nativeElement.focus()}ngAfterViewInit(){this._focusMonitor.monitor(this.elementRef)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this.elementRef)}}IB.ɵfac=function t(e){return new(e||IB)(Mu(RB),Mu(ch),Mu(dH,8),Or("tabindex"),Mu(pz),Mu(Nw,8))},IB.ɵdir=Jo({type:IB,inputs:{active:"active"},features:[gm]}),IB.ctorParameters=()=>[{type:RB},{type:ch},{type:void 0,decorators:[{type:_s},{type:ys,args:[dH]}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:pz},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],IB.propDecorators={active:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(IB,[{type:g_}],(function(){return[{type:RB},{type:ch},{type:void 0,decorators:[{type:_s},{type:ys,args:[dH]}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:pz},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{active:[{type:y_}]});class zB extends IB{constructor(t,e,n,o,i,a,r,s){super(t,e,i,a,r,s),this._tabLinkRipple=new cH(this,n,e,o),this._tabLinkRipple.setupTriggerEvents(e.nativeElement)}ngOnDestroy(){super.ngOnDestroy(),this._tabLinkRipple._removeTriggerEvents()}}zB.ɵfac=function t(e){return new(e||zB)(Mu(TB),Mu(ch),Mu(tC),Mu(fI),Mu(dH,8),Or("tabindex"),Mu(pz),Mu(Nw,8))},zB.ɵdir=Jo({type:zB,selectors:[["","mat-tab-link",""],["","matTabLink",""]],hostAttrs:[1,"mat-tab-link","mat-focus-indicator"],hostVars:7,hostBindings:function t(e,n){2&e&&(Nm("aria-current",n.active?"page":null)("aria-disabled",n.disabled)("tabIndex",n.tabIndex),af("mat-tab-disabled",n.disabled)("mat-tab-label-active",n.active))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matTabLink"],features:[gm]}),zB.ctorParameters=()=>[{type:TB},{type:ch},{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[dH]}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:pz},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(zB,[{type:g_,args:[{selector:"[mat-tab-link], [matTabLink]",exportAs:"matTabLink",inputs:["disabled","disableRipple","tabIndex"],host:{class:"mat-tab-link mat-focus-indicator","[attr.aria-current]":'active ? "page" : null',"[attr.aria-disabled]":"disabled","[attr.tabIndex]":"tabIndex","[class.mat-tab-disabled]":"disabled","[class.mat-tab-label-active]":"active"}}]}],(function(){return[{type:TB},{type:ch},{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[dH]}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:pz},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class HB{}HB.ɵfac=function t(e){return new(e||HB)},HB.ɵmod=Zo({type:HB}),HB.ɵinj=co({imports:[[Bv,Tz,yF,mH,DI,yz],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(HB,{declarations:function(){return[PB,pB,gB,sB,kB,TB,zB,_B,bB,AB,cB]},imports:function(){return[Bv,Tz,yF,mH,DI,yz]},exports:function(){return[Tz,PB,pB,gB,TB,zB,cB]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(HB,[{type:k_,args:[{imports:[Bv,Tz,yF,mH,DI,yz],exports:[Tz,PB,pB,gB,TB,zB,cB],declarations:[PB,pB,gB,sB,kB,TB,zB,_B,bB,AB,cB]}]}],null,null);const FB=["underline"],LB=["connectionContainer"],BB=["inputContainer"],VB=["label"];function jB(t,e){1&t&&(ku(0),Ou(1,"div",14),wu(2,"div",15),wu(3,"div",16),wu(4,"div",17),Pu(),Ou(5,"div",18),wu(6,"div",15),wu(7,"div",16),wu(8,"div",17),Pu(),Su())}function UB(t,e){1&t&&(Ou(0,"div",19),ju(1,1),Pu())}function WB(t,e){if(1&t&&(ku(0),ju(1,2),Ou(2,"span"),Mf(3),Pu(),Su()),2&t){const t=Lu(2);Jc(3),vf(t._control.placeholder)}}function GB(t,e){1&t&&ju(0,3,["*ngSwitchCase","true"])}function YB(t,e){1&t&&(Ou(0,"span",23),Mf(1," *"),Pu())}function qB(t,e){if(1&t){const t=Eu();Ou(0,"label",20,21),Nu("cdkObserveContent",(function e(){return ra(t),Lu().updateOutlineGap()})),Wm(2,WB,4,1,"ng-container",12),Wm(3,GB,1,0,"ng-content",12),Wm(4,YB,2,0,"span",22),Pu()}if(2&t){const t=Lu();af("mat-empty",t._control.empty&&!t._shouldAlwaysFloat())("mat-form-field-empty",t._control.empty&&!t._shouldAlwaysFloat())("mat-accent","accent"==t.color)("mat-warn","warn"==t.color),vu("cdkObserveContentDisabled","outline"!=t.appearance)("id",t._labelId)("ngSwitch",t._hasLabel()),Nm("for",t._control.id)("aria-owns",t._control.id),Jc(2),vu("ngSwitchCase",!1),Jc(1),vu("ngSwitchCase",!0),Jc(1),vu("ngIf",!t.hideRequiredMarker&&t._control.required&&!t._control.disabled)}}function ZB(t,e){1&t&&(Ou(0,"div",24),ju(1,4),Pu())}function XB(t,e){if(1&t&&(Ou(0,"div",25,26),wu(2,"span",27),Pu()),2&t){const t=Lu();Jc(2),af("mat-accent","accent"==t.color)("mat-warn","warn"==t.color)}}function KB(t,e){1&t&&(Ou(0,"div"),ju(1,5),Pu()),2&t&&vu("@transitionMessages",Lu()._subscriptAnimationState)}function JB(t,e){if(1&t&&(Ou(0,"div",31),Mf(1),Pu()),2&t){const t=Lu(2);vu("id",t._hintLabelId),Jc(1),vf(t.hintLabel)}}function QB(t,e){if(1&t&&(Ou(0,"div",28),Wm(1,JB,2,2,"div",29),ju(2,6),wu(3,"div",30),ju(4,7),Pu()),2&t){const t=Lu();vu("@transitionMessages",t._subscriptAnimationState),Jc(1),vu("ngIf",t.hintLabel)}}const $B=["*",[["","matPrefix",""]],[["mat-placeholder"]],[["mat-label"]],[["","matSuffix",""]],[["mat-error"]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]];let tV=0;const eV=new Nr("MatError");class nV{constructor(){this.id="mat-error-"+tV++}}nV.ɵfac=function t(e){return new(e||nV)},nV.ɵdir=Jo({type:nV,selectors:[["mat-error"]],hostAttrs:["role","alert",1,"mat-error"],hostVars:1,hostBindings:function t(e,n){2&e&&Nm("id",n.id)},inputs:{id:"id"},features:[ih([{provide:eV,useExisting:nV}])]}),nV.propDecorators={id:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(nV,[{type:g_,args:[{selector:"mat-error",host:{class:"mat-error",role:"alert","[attr.id]":"id"},providers:[{provide:eV,useExisting:nV}]}]}],(function(){return[]}),{id:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const oV={transitionMessages:Kx("transitionMessages",[tO("enter",$x({opacity:1,transform:"translateY(0%)"})),nO("void => enter",[$x({opacity:0,transform:"translateY(-5px)"}),Jx("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class iV{}function aV(t){return Error(`A hint was already declared for 'align="${t}"'.`)}iV.ɵfac=function t(e){return new(e||iV)},iV.ɵdir=Jo({type:iV}),("undefined"==typeof ngDevMode||ngDevMode)&&db(iV,[{type:g_}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let rV=0;const sV=new Nr("MatHint");class lV{constructor(){this.align="start",this.id="mat-hint-"+rV++}}lV.ɵfac=function t(e){return new(e||lV)},lV.ɵdir=Jo({type:lV,selectors:[["mat-hint"]],hostAttrs:[1,"mat-hint"],hostVars:4,hostBindings:function t(e,n){2&e&&(Nm("id",n.id)("align",null),af("mat-form-field-hint-end","end"===n.align))},inputs:{align:"align",id:"id"},features:[ih([{provide:sV,useExisting:lV}])]}),lV.propDecorators={align:[{type:y_}],id:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(lV,[{type:g_,args:[{selector:"mat-hint",host:{class:"mat-hint","[class.mat-form-field-hint-end]":'align === "end"',"[attr.id]":"id","[attr.align]":"null"},providers:[{provide:sV,useExisting:lV}]}]}],(function(){return[]}),{align:[{type:y_}],id:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class cV{}cV.ɵfac=function t(e){return new(e||cV)},cV.ɵdir=Jo({type:cV,selectors:[["mat-label"]]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(cV,[{type:g_,args:[{selector:"mat-label"}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class dV{}dV.ɵfac=function t(e){return new(e||dV)},dV.ɵdir=Jo({type:dV,selectors:[["mat-placeholder"]]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(dV,[{type:g_,args:[{selector:"mat-placeholder"}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const pV=new Nr("MatPrefix");class mV{}mV.ɵfac=function t(e){return new(e||mV)},mV.ɵdir=Jo({type:mV,selectors:[["","matPrefix",""]],features:[ih([{provide:pV,useExisting:mV}])]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(mV,[{type:g_,args:[{selector:"[matPrefix]",providers:[{provide:pV,useExisting:mV}]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const uV=new Nr("MatSuffix");class fV{}fV.ɵfac=function t(e){return new(e||fV)},fV.ɵdir=Jo({type:fV,selectors:[["","matSuffix",""]],features:[ih([{provide:uV,useExisting:fV}])]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fV,[{type:g_,args:[{selector:"[matSuffix]",providers:[{provide:uV,useExisting:fV}]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let gV=0;const hV=Iz(class{constructor(t){this._elementRef=t}},"primary"),bV=new Nr("MAT_FORM_FIELD_DEFAULT_OPTIONS"),yV=new Nr("MatFormField");class _V extends hV{constructor(t,e,n,o,i,a,r,s){super(t),this._elementRef=t,this._changeDetectorRef=e,this._dir=o,this._defaults=i,this._platform=a,this._ngZone=r,this._outlineGapCalculationNeededImmediately=!1,this._outlineGapCalculationNeededOnStable=!1,this._destroyed=new x,this._showAlwaysAnimate=!1,this._subscriptAnimationState="",this._hintLabel="",this._hintLabelId="mat-hint-"+gV++,this._labelId="mat-form-field-label-"+gV++,this.floatLabel=this._getDefaultFloatLabelState(),this._animationsEnabled="NoopAnimations"!==s,this.appearance=i&&i.appearance?i.appearance:"legacy",this._hideRequiredMarker=!(!i||null==i.hideRequiredMarker)&&i.hideRequiredMarker}get appearance(){return this._appearance}set appearance(t){const e=this._appearance;this._appearance=t||this._defaults&&this._defaults.appearance||"legacy","outline"===this._appearance&&e!==t&&(this._outlineGapCalculationNeededOnStable=!0)}get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(t){this._hideRequiredMarker=rI(t)}_shouldAlwaysFloat(){return"always"===this.floatLabel&&!this._showAlwaysAnimate}_canLabelFloat(){return"never"!==this.floatLabel}get hintLabel(){return this._hintLabel}set hintLabel(t){this._hintLabel=t,this._processHints()}get floatLabel(){return"legacy"!==this.appearance&&"never"===this._floatLabel?"auto":this._floatLabel}set floatLabel(t){t!==this._floatLabel&&(this._floatLabel=t||this._getDefaultFloatLabelState(),this._changeDetectorRef.markForCheck())}get _control(){return this._explicitFormFieldControl||this._controlNonStatic||this._controlStatic}set _control(t){this._explicitFormFieldControl=t}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._connectionContainerRef||this._elementRef}ngAfterContentInit(){this._validateControlChild();const t=this._control;t.controlType&&this._elementRef.nativeElement.classList.add(`mat-form-field-type-${t.controlType}`),t.stateChanges.pipe(cn(null)).subscribe((()=>{this._validatePlaceholders(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()})),t.ngControl&&t.ngControl.valueChanges&&t.ngControl.valueChanges.pipe(un(this._destroyed)).subscribe((()=>this._changeDetectorRef.markForCheck())),this._ngZone.runOutsideAngular((()=>{this._ngZone.onStable.pipe(un(this._destroyed)).subscribe((()=>{this._outlineGapCalculationNeededOnStable&&this.updateOutlineGap()}))})),Wt(this._prefixChildren.changes,this._suffixChildren.changes).subscribe((()=>{this._outlineGapCalculationNeededOnStable=!0,this._changeDetectorRef.markForCheck()})),this._hintChildren.changes.pipe(cn(null)).subscribe((()=>{this._processHints(),this._changeDetectorRef.markForCheck()})),this._errorChildren.changes.pipe(cn(null)).subscribe((()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()})),this._dir&&this._dir.change.pipe(un(this._destroyed)).subscribe((()=>{"function"==typeof requestAnimationFrame?this._ngZone.runOutsideAngular((()=>{requestAnimationFrame((()=>this.updateOutlineGap()))})):this.updateOutlineGap()}))}ngAfterContentChecked(){this._validateControlChild(),this._outlineGapCalculationNeededImmediately&&this.updateOutlineGap()}ngAfterViewInit(){this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_shouldForward(t){const e=this._control?this._control.ngControl:null;return e&&e[t]}_hasPlaceholder(){return!!(this._control&&this._control.placeholder||this._placeholderChild)}_hasLabel(){return!(!this._labelChildNonStatic&&!this._labelChildStatic)}_shouldLabelFloat(){return this._canLabelFloat()&&(this._control&&this._control.shouldLabelFloat||this._shouldAlwaysFloat())}_hideControlPlaceholder(){return"legacy"===this.appearance&&!this._hasLabel()||this._hasLabel()&&!this._shouldLabelFloat()}_hasFloatingLabel(){return this._hasLabel()||"legacy"===this.appearance&&this._hasPlaceholder()}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_animateAndLockLabel(){this._hasFloatingLabel()&&this._canLabelFloat()&&(this._animationsEnabled&&this._label&&(this._showAlwaysAnimate=!0,Vt(this._label.nativeElement,"transitionend").pipe(Ne(1)).subscribe((()=>{this._showAlwaysAnimate=!1}))),this.floatLabel="always",this._changeDetectorRef.markForCheck())}_validatePlaceholders(){if(this._control.placeholder&&this._placeholderChild&&("undefined"==typeof ngDevMode||ngDevMode))
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
throw(function t(){return Error("Placeholder attribute and child element were both specified.")})()}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){if(this._hintChildren&&("undefined"==typeof ngDevMode||ngDevMode)){let t,e;this._hintChildren.forEach((n=>{if("start"===n.align){if(t||this.hintLabel)throw aV("start");t=n}else if("end"===n.align){if(e)throw aV("end");e=n}}))}}_getDefaultFloatLabelState(){return this._defaults&&this._defaults.floatLabel||"auto"}_syncDescribedByIds(){if(this._control){let t=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&t.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const e=this._hintChildren?this._hintChildren.find((t=>"start"===t.align)):null,n=this._hintChildren?this._hintChildren.find((t=>"end"===t.align)):null;e?t.push(e.id):this._hintLabel&&t.push(this._hintLabelId),n&&t.push(n.id)}else this._errorChildren&&t.push(...this._errorChildren.map((t=>t.id)));this._control.setDescribedByIds(t)}}_validateControlChild(){if(!this._control&&("undefined"==typeof ngDevMode||ngDevMode))throw(function t(){return Error("mat-form-field must contain a MatFormFieldControl.")})()}updateOutlineGap(){const t=this._label?this._label.nativeElement:null;if("outline"!==this.appearance||!t||!t.children.length||!t.textContent.trim())return;if(!this._platform.isBrowser)return;if(!this._isAttachedToDOM())return void(this._outlineGapCalculationNeededImmediately=!0);let e=0,n=0;const o=this._connectionContainerRef.nativeElement,i=o.querySelectorAll(".mat-form-field-outline-start"),a=o.querySelectorAll(".mat-form-field-outline-gap");if(this._label&&this._label.nativeElement.children.length){const i=o.getBoundingClientRect();if(0===i.width&&0===i.height)return this._outlineGapCalculationNeededOnStable=!0,void(this._outlineGapCalculationNeededImmediately=!1);const a=this._getStartEnd(i),r=t.children,s=this._getStartEnd(r[0].getBoundingClientRect());let l=0;for(let t=0;t<r.length;t++)l+=r[t].offsetWidth;e=Math.abs(s-a)-5,n=l>0?.75*l+10:0}for(let t=0;t<i.length;t++)i[t].style.width=`${e}px`;for(let t=0;t<a.length;t++)a[t].style.width=`${n}px`;this._outlineGapCalculationNeededOnStable=this._outlineGapCalculationNeededImmediately=!1}_getStartEnd(t){return this._dir&&"rtl"===this._dir.value?t.right:t.left}_isAttachedToDOM(){const t=this._elementRef.nativeElement;if(t.getRootNode){const e=t.getRootNode();return e&&e!==t}return document.documentElement.contains(t)}}_V.ɵfac=function t(e){return new(e||_V)(Mu(ch),Mu(Hh),Mu(ch),Mu(Mz,8),Mu(bV,8),Mu(fI),Mu(tC),Mu(Nw,8))},_V.ɵcmp=Uo({type:_V,selectors:[["mat-form-field"]],contentQueries:function t(e,n,o){if(1&e&&(Gb(o,iV,1),Gb(o,iV,3),Gb(o,cV,1),Gb(o,cV,3),Gb(o,dV,1),Gb(o,eV,1),Gb(o,sV,1),Gb(o,pV,1),Gb(o,uV,1)),2&e){let t;Ub(t=Yb())&&(n._controlNonStatic=t.first),Ub(t=Yb())&&(n._controlStatic=t.first),Ub(t=Yb())&&(n._labelChildNonStatic=t.first),Ub(t=Yb())&&(n._labelChildStatic=t.first),Ub(t=Yb())&&(n._placeholderChild=t.first),Ub(t=Yb())&&(n._errorChildren=t),Ub(t=Yb())&&(n._hintChildren=t),Ub(t=Yb())&&(n._prefixChildren=t),Ub(t=Yb())&&(n._suffixChildren=t)}},viewQuery:function t(e,n){if(1&e&&(Wb(FB,1),Wb(LB,3),Wb(BB,1),Wb(VB,1)),2&e){let t;Ub(t=Yb())&&(n.underlineRef=t.first),Ub(t=Yb())&&(n._connectionContainerRef=t.first),Ub(t=Yb())&&(n._inputContainerRef=t.first),Ub(t=Yb())&&(n._label=t.first)}},hostAttrs:[1,"mat-form-field"],hostVars:40,hostBindings:function t(e,n){2&e&&af("mat-form-field-appearance-standard","standard"==n.appearance)("mat-form-field-appearance-fill","fill"==n.appearance)("mat-form-field-appearance-outline","outline"==n.appearance)("mat-form-field-appearance-legacy","legacy"==n.appearance)("mat-form-field-invalid",n._control.errorState)("mat-form-field-can-float",n._canLabelFloat())("mat-form-field-should-float",n._shouldLabelFloat())("mat-form-field-has-label",n._hasFloatingLabel())("mat-form-field-hide-placeholder",n._hideControlPlaceholder())("mat-form-field-disabled",n._control.disabled)("mat-form-field-autofilled",n._control.autofilled)("mat-focused",n._control.focused)("ng-untouched",n._shouldForward("untouched"))("ng-touched",n._shouldForward("touched"))("ng-pristine",n._shouldForward("pristine"))("ng-dirty",n._shouldForward("dirty"))("ng-valid",n._shouldForward("valid"))("ng-invalid",n._shouldForward("invalid"))("ng-pending",n._shouldForward("pending"))("_mat-animation-noopable",!n._animationsEnabled)},inputs:{color:"color",floatLabel:"floatLabel",appearance:"appearance",hideRequiredMarker:"hideRequiredMarker",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[ih([{provide:yV,useExisting:_V}]),gm],ngContentSelectors:["*","[matPrefix]","mat-placeholder","mat-label","[matSuffix]","mat-error","mat-hint:not([align='end'])","mat-hint[align='end']"],decls:15,vars:8,consts:[[1,"mat-form-field-wrapper"],[1,"mat-form-field-flex",3,"click"],["connectionContainer",""],[4,"ngIf"],["class","mat-form-field-prefix",4,"ngIf"],[1,"mat-form-field-infix"],["inputContainer",""],[1,"mat-form-field-label-wrapper"],["class","mat-form-field-label",3,"cdkObserveContentDisabled","id","mat-empty","mat-form-field-empty","mat-accent","mat-warn","ngSwitch","cdkObserveContent",4,"ngIf"],["class","mat-form-field-suffix",4,"ngIf"],["class","mat-form-field-underline",4,"ngIf"],[1,"mat-form-field-subscript-wrapper",3,"ngSwitch"],[4,"ngSwitchCase"],["class","mat-form-field-hint-wrapper",4,"ngSwitchCase"],[1,"mat-form-field-outline"],[1,"mat-form-field-outline-start"],[1,"mat-form-field-outline-gap"],[1,"mat-form-field-outline-end"],[1,"mat-form-field-outline","mat-form-field-outline-thick"],[1,"mat-form-field-prefix"],[1,"mat-form-field-label",3,"cdkObserveContentDisabled","id","ngSwitch","cdkObserveContent"],["label",""],["class","mat-placeholder-required mat-form-field-required-marker","aria-hidden","true",4,"ngIf"],["aria-hidden","true",1,"mat-placeholder-required","mat-form-field-required-marker"],[1,"mat-form-field-suffix"],[1,"mat-form-field-underline"],["underline",""],[1,"mat-form-field-ripple"],[1,"mat-form-field-hint-wrapper"],["class","mat-hint",3,"id",4,"ngIf"],[1,"mat-form-field-hint-spacer"],[1,"mat-hint",3,"id"]],template:function t(e,n){1&e&&(Vu($B),Ou(0,"div",0),Ou(1,"div",1,2),Nu("click",(function t(e){return n._control.onContainerClick&&n._control.onContainerClick(e)})),Wm(3,jB,9,0,"ng-container",3),Wm(4,UB,2,0,"div",4),Ou(5,"div",5,6),ju(7),Ou(8,"span",7),Wm(9,qB,5,16,"label",8),Pu(),Pu(),Wm(10,ZB,2,0,"div",9),Pu(),Wm(11,XB,3,4,"div",10),Ou(12,"div",11),Wm(13,KB,2,1,"div",12),Wm(14,QB,5,2,"div",13),Pu(),Pu()),2&e&&(Jc(3),vu("ngIf","outline"==n.appearance),Jc(1),vu("ngIf",n._prefixChildren.length),Jc(5),vu("ngIf",n._hasFloatingLabel()),Jc(1),vu("ngIf",n._suffixChildren.length),Jc(1),vu("ngIf","outline"!=n.appearance),Jc(1),vu("ngSwitch",n._getDisplayedMessages()),Jc(1),vu("ngSwitchCase","error"),Jc(1),vu("ngSwitchCase","hint"))},directives:[av,cv,dv,SI],styles:[".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none;position:relative}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}.cdk-high-contrast-active .mat-form-field-infix{border-image:linear-gradient(transparent, transparent)}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}[dir=rtl] .mat-form-field-label-wrapper{left:auto;right:0}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),width 400ms cubic-bezier(0.25, 0.8, 0.25, 1);display:none}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.mat-form-field-empty.mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;width:100%;pointer-events:none;transform:scale3d(1, 1.0001, 1)}.mat-form-field-ripple{position:absolute;left:0;width:100%;transform-origin:50%;transform:scaleX(0.5);opacity:0;transition:background-color 300ms cubic-bezier(0.55, 0, 0.55, 0.2)}.mat-form-field.mat-focused .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple{opacity:1;transform:none;transition:transform 300ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 300ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-subscript-wrapper{position:absolute;box-sizing:border-box;width:100%;overflow:hidden}.mat-form-field-subscript-wrapper .mat-icon,.mat-form-field-label-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block}.mat-form-field-control-wrapper{position:relative}.mat-form-field-hint-end{order:1}.mat-form-field._mat-animation-noopable .mat-form-field-label,.mat-form-field._mat-animation-noopable .mat-form-field-ripple{transition:none}\n",'.mat-form-field-appearance-fill .mat-form-field-flex{border-radius:4px 4px 0 0;padding:.75em .75em 0 .75em}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-flex{outline:solid 1px}.mat-form-field-appearance-fill .mat-form-field-underline::before{content:"";display:block;position:absolute;bottom:0;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-fill:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-fill._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}.mat-form-field-appearance-fill .mat-form-field-subscript-wrapper{padding:0 1em}\n','.mat-input-element{font:inherit;background:transparent;color:currentColor;border:none;outline:none;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom;text-align:inherit;box-sizing:content-box}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::-ms-clear,.mat-input-element::-ms-reveal{display:none}.mat-input-element,.mat-input-element::-webkit-search-cancel-button,.mat-input-element::-webkit-search-decoration,.mat-input-element::-webkit-search-results-button,.mat-input-element::-webkit-search-results-decoration{-webkit-appearance:none}.mat-input-element::-webkit-contacts-auto-fill-button,.mat-input-element::-webkit-caps-lock-indicator,.mat-input-element::-webkit-credentials-auto-fill-button{visibility:hidden}.mat-input-element[type=date],.mat-input-element[type=datetime],.mat-input-element[type=datetime-local],.mat-input-element[type=month],.mat-input-element[type=week],.mat-input-element[type=time]{line-height:1}.mat-input-element[type=date]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=month]::after,.mat-input-element[type=week]::after,.mat-input-element[type=time]::after{content:" ";white-space:pre;width:1px}.mat-input-element::-webkit-inner-spin-button,.mat-input-element::-webkit-calendar-picker-indicator,.mat-input-element::-webkit-clear-button{font-size:.75em}.mat-input-element::placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element::-moz-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-moz-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element::-webkit-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-webkit-input-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element:-ms-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element:-ms-input-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-input-element.cdk-textarea-autosize{resize:none}textarea.mat-input-element{padding:2px 0;margin:-2px 0}select.mat-input-element{-moz-appearance:none;-webkit-appearance:none;position:relative;background-color:transparent;display:inline-flex;box-sizing:border-box;padding-top:1em;top:-1em;margin-bottom:-1em}select.mat-input-element::-ms-expand{display:none}select.mat-input-element::-moz-focus-inner{border:0}select.mat-input-element:not(:disabled){cursor:pointer}select.mat-input-element::-ms-value{color:inherit;background:none}.mat-focused .cdk-high-contrast-active select.mat-input-element::-ms-value{color:inherit}.mat-form-field-type-mat-native-select .mat-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;position:absolute;top:50%;right:0;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-form-field-type-mat-native-select .mat-form-field-infix::after{right:auto;left:0}.mat-form-field-type-mat-native-select .mat-input-element{padding-right:15px}[dir=rtl] .mat-form-field-type-mat-native-select .mat-input-element{padding-right:0;padding-left:15px}.mat-form-field-type-mat-native-select .mat-form-field-label-wrapper{max-width:calc(100% - 10px)}.mat-form-field-type-mat-native-select.mat-form-field-appearance-outline .mat-form-field-infix::after{margin-top:-5px}.mat-form-field-type-mat-native-select.mat-form-field-appearance-fill .mat-form-field-infix::after{margin-top:-10px}\n',".mat-form-field-appearance-legacy .mat-form-field-label{transform:perspective(100px);-ms-transform:none}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-appearance-legacy .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-legacy .mat-form-field-ripple{top:0;height:2px;overflow:hidden}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}.cdk-high-contrast-active .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-legacy.mat-form-field-invalid:not(.mat-focused) .mat-form-field-ripple{height:1px}\n",".mat-form-field-appearance-outline .mat-form-field-wrapper{margin:.25em 0}.mat-form-field-appearance-outline .mat-form-field-flex{padding:0 .75em 0 .75em;margin-top:-0.25em;position:relative}.mat-form-field-appearance-outline .mat-form-field-prefix,.mat-form-field-appearance-outline .mat-form-field-suffix{top:.25em}.mat-form-field-appearance-outline .mat-form-field-outline{display:flex;position:absolute;top:.25em;left:0;right:0;bottom:0;pointer-events:none}.mat-form-field-appearance-outline .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-end{border:1px solid currentColor;min-width:5px}.mat-form-field-appearance-outline .mat-form-field-outline-start{border-radius:5px 0 0 5px;border-right-style:none}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-start{border-right-style:solid;border-left-style:none;border-radius:0 5px 5px 0}.mat-form-field-appearance-outline .mat-form-field-outline-end{border-radius:0 5px 5px 0;border-left-style:none;flex-grow:1}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-end{border-left-style:solid;border-right-style:none;border-radius:5px 0 0 5px}.mat-form-field-appearance-outline .mat-form-field-outline-gap{border-radius:.000001px;border:1px solid currentColor;border-left-style:none;border-right-style:none}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-outline-gap{border-top-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline-thick{opacity:0}.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-gap{border-width:2px}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline{opacity:0;transition:opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline{opacity:0;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:0 1em}.mat-form-field-appearance-outline._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-start,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-end,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-gap{transition:none}\n",".mat-form-field-appearance-standard .mat-form-field-flex{padding-top:.75em}.mat-form-field-appearance-standard .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-standard .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}.cdk-high-contrast-active .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-standard:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-standard._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}\n"],encapsulation:2,data:{animation:[oV.transitionMessages]},changeDetection:0}),_V.ctorParameters=()=>[{type:ch},{type:Hh},{type:void 0,decorators:[{type:ys,args:[ch]}]},{type:Mz,decorators:[{type:_s}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[bV]}]},{type:fI},{type:tC},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],_V.propDecorators={appearance:[{type:y_}],hideRequiredMarker:[{type:y_}],hintLabel:[{type:y_}],floatLabel:[{type:y_}],underlineRef:[{type:Fr,args:["underline"]}],_connectionContainerRef:[{type:Fr,args:["connectionContainer",{static:!0}]}],_inputContainerRef:[{type:Fr,args:["inputContainer"]}],_label:[{type:Fr,args:["label"]}],_controlNonStatic:[{type:Hr,args:[iV]}],_controlStatic:[{type:Hr,args:[iV,{static:!0}]}],_labelChildNonStatic:[{type:Hr,args:[cV]}],_labelChildStatic:[{type:Hr,args:[cV,{static:!0}]}],_placeholderChild:[{type:Hr,args:[dV]}],_errorChildren:[{type:zr,args:[eV,{descendants:!0}]}],_hintChildren:[{type:zr,args:[sV,{descendants:!0}]}],_prefixChildren:[{type:zr,args:[pV,{descendants:!0}]}],_suffixChildren:[{type:zr,args:[uV,{descendants:!0}]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(_V,[{type:h_,args:[{selector:"mat-form-field",exportAs:"matFormField",template:'<div class="mat-form-field-wrapper">\n  <div class="mat-form-field-flex" #connectionContainer\n       (click)="_control.onContainerClick && _control.onContainerClick($event)">\n\n    \x3c!-- Outline used for outline appearance. --\x3e\n    <ng-container *ngIf="appearance == \'outline\'">\n      <div class="mat-form-field-outline">\n        <div class="mat-form-field-outline-start"></div>\n        <div class="mat-form-field-outline-gap"></div>\n        <div class="mat-form-field-outline-end"></div>\n      </div>\n      <div class="mat-form-field-outline mat-form-field-outline-thick">\n        <div class="mat-form-field-outline-start"></div>\n        <div class="mat-form-field-outline-gap"></div>\n        <div class="mat-form-field-outline-end"></div>\n      </div>\n    </ng-container>\n\n    <div class="mat-form-field-prefix" *ngIf="_prefixChildren.length">\n      <ng-content select="[matPrefix]"></ng-content>\n    </div>\n\n    <div class="mat-form-field-infix" #inputContainer>\n      <ng-content></ng-content>\n\n      <span class="mat-form-field-label-wrapper">\n        \x3c!-- We add aria-owns as a workaround for an issue in JAWS & NVDA where the label isn\'t\n             read if it comes before the control in the DOM. --\x3e\n        <label class="mat-form-field-label"\n               (cdkObserveContent)="updateOutlineGap()"\n               [cdkObserveContentDisabled]="appearance != \'outline\'"\n               [id]="_labelId"\n               [attr.for]="_control.id"\n               [attr.aria-owns]="_control.id"\n               [class.mat-empty]="_control.empty && !_shouldAlwaysFloat()"\n               [class.mat-form-field-empty]="_control.empty && !_shouldAlwaysFloat()"\n               [class.mat-accent]="color == \'accent\'"\n               [class.mat-warn]="color == \'warn\'"\n               #label\n               *ngIf="_hasFloatingLabel()"\n               [ngSwitch]="_hasLabel()">\n\n          \x3c!-- @breaking-change 8.0.0 remove in favor of mat-label element an placeholder attr. --\x3e\n          <ng-container *ngSwitchCase="false">\n            <ng-content select="mat-placeholder"></ng-content>\n            <span>{{_control.placeholder}}</span>\n          </ng-container>\n\n          <ng-content select="mat-label" *ngSwitchCase="true"></ng-content>\n\n          \x3c!-- @breaking-change 8.0.0 remove `mat-placeholder-required` class --\x3e\n          <span\n            class="mat-placeholder-required mat-form-field-required-marker"\n            aria-hidden="true"\n            *ngIf="!hideRequiredMarker && _control.required && !_control.disabled">&#32;*</span>\n        </label>\n      </span>\n    </div>\n\n    <div class="mat-form-field-suffix" *ngIf="_suffixChildren.length">\n      <ng-content select="[matSuffix]"></ng-content>\n    </div>\n  </div>\n\n  \x3c!-- Underline used for legacy, standard, and box appearances. --\x3e\n  <div class="mat-form-field-underline" #underline\n       *ngIf="appearance != \'outline\'">\n    <span class="mat-form-field-ripple"\n          [class.mat-accent]="color == \'accent\'"\n          [class.mat-warn]="color == \'warn\'"></span>\n  </div>\n\n  <div class="mat-form-field-subscript-wrapper"\n       [ngSwitch]="_getDisplayedMessages()">\n    <div *ngSwitchCase="\'error\'" [@transitionMessages]="_subscriptAnimationState">\n      <ng-content select="mat-error"></ng-content>\n    </div>\n\n    <div class="mat-form-field-hint-wrapper" *ngSwitchCase="\'hint\'"\n      [@transitionMessages]="_subscriptAnimationState">\n      \x3c!-- TODO(mmalerba): use an actual <mat-hint> once all selectors are switched to mat-* --\x3e\n      <div *ngIf="hintLabel" [id]="_hintLabelId" class="mat-hint">{{hintLabel}}</div>\n      <ng-content select="mat-hint:not([align=\'end\'])"></ng-content>\n      <div class="mat-form-field-hint-spacer"></div>\n      <ng-content select="mat-hint[align=\'end\']"></ng-content>\n    </div>\n  </div>\n</div>\n',animations:[oV.transitionMessages],host:{class:"mat-form-field","[class.mat-form-field-appearance-standard]":'appearance == "standard"',"[class.mat-form-field-appearance-fill]":'appearance == "fill"',"[class.mat-form-field-appearance-outline]":'appearance == "outline"',"[class.mat-form-field-appearance-legacy]":'appearance == "legacy"',"[class.mat-form-field-invalid]":"_control.errorState","[class.mat-form-field-can-float]":"_canLabelFloat()","[class.mat-form-field-should-float]":"_shouldLabelFloat()","[class.mat-form-field-has-label]":"_hasFloatingLabel()","[class.mat-form-field-hide-placeholder]":"_hideControlPlaceholder()","[class.mat-form-field-disabled]":"_control.disabled","[class.mat-form-field-autofilled]":"_control.autofilled","[class.mat-focused]":"_control.focused","[class.ng-untouched]":'_shouldForward("untouched")',"[class.ng-touched]":'_shouldForward("touched")',"[class.ng-pristine]":'_shouldForward("pristine")',"[class.ng-dirty]":'_shouldForward("dirty")',"[class.ng-valid]":'_shouldForward("valid")',"[class.ng-invalid]":'_shouldForward("invalid")',"[class.ng-pending]":'_shouldForward("pending")',"[class._mat-animation-noopable]":"!_animationsEnabled"},inputs:["color"],encapsulation:Po.None,changeDetection:xo.OnPush,providers:[{provide:yV,useExisting:_V}],styles:[".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none;position:relative}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}.cdk-high-contrast-active .mat-form-field-infix{border-image:linear-gradient(transparent, transparent)}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}[dir=rtl] .mat-form-field-label-wrapper{left:auto;right:0}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),width 400ms cubic-bezier(0.25, 0.8, 0.25, 1);display:none}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.mat-form-field-empty.mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;width:100%;pointer-events:none;transform:scale3d(1, 1.0001, 1)}.mat-form-field-ripple{position:absolute;left:0;width:100%;transform-origin:50%;transform:scaleX(0.5);opacity:0;transition:background-color 300ms cubic-bezier(0.55, 0, 0.55, 0.2)}.mat-form-field.mat-focused .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple{opacity:1;transform:none;transition:transform 300ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 300ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-subscript-wrapper{position:absolute;box-sizing:border-box;width:100%;overflow:hidden}.mat-form-field-subscript-wrapper .mat-icon,.mat-form-field-label-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block}.mat-form-field-control-wrapper{position:relative}.mat-form-field-hint-end{order:1}.mat-form-field._mat-animation-noopable .mat-form-field-label,.mat-form-field._mat-animation-noopable .mat-form-field-ripple{transition:none}\n",'.mat-form-field-appearance-fill .mat-form-field-flex{border-radius:4px 4px 0 0;padding:.75em .75em 0 .75em}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-flex{outline:solid 1px}.mat-form-field-appearance-fill .mat-form-field-underline::before{content:"";display:block;position:absolute;bottom:0;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-fill:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-fill._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}.mat-form-field-appearance-fill .mat-form-field-subscript-wrapper{padding:0 1em}\n','.mat-input-element{font:inherit;background:transparent;color:currentColor;border:none;outline:none;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom;text-align:inherit;box-sizing:content-box}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::-ms-clear,.mat-input-element::-ms-reveal{display:none}.mat-input-element,.mat-input-element::-webkit-search-cancel-button,.mat-input-element::-webkit-search-decoration,.mat-input-element::-webkit-search-results-button,.mat-input-element::-webkit-search-results-decoration{-webkit-appearance:none}.mat-input-element::-webkit-contacts-auto-fill-button,.mat-input-element::-webkit-caps-lock-indicator,.mat-input-element::-webkit-credentials-auto-fill-button{visibility:hidden}.mat-input-element[type=date],.mat-input-element[type=datetime],.mat-input-element[type=datetime-local],.mat-input-element[type=month],.mat-input-element[type=week],.mat-input-element[type=time]{line-height:1}.mat-input-element[type=date]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=month]::after,.mat-input-element[type=week]::after,.mat-input-element[type=time]::after{content:" ";white-space:pre;width:1px}.mat-input-element::-webkit-inner-spin-button,.mat-input-element::-webkit-calendar-picker-indicator,.mat-input-element::-webkit-clear-button{font-size:.75em}.mat-input-element::placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element::-moz-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-moz-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element::-webkit-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-webkit-input-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element:-ms-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element:-ms-input-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-input-element.cdk-textarea-autosize{resize:none}textarea.mat-input-element{padding:2px 0;margin:-2px 0}select.mat-input-element{-moz-appearance:none;-webkit-appearance:none;position:relative;background-color:transparent;display:inline-flex;box-sizing:border-box;padding-top:1em;top:-1em;margin-bottom:-1em}select.mat-input-element::-ms-expand{display:none}select.mat-input-element::-moz-focus-inner{border:0}select.mat-input-element:not(:disabled){cursor:pointer}select.mat-input-element::-ms-value{color:inherit;background:none}.mat-focused .cdk-high-contrast-active select.mat-input-element::-ms-value{color:inherit}.mat-form-field-type-mat-native-select .mat-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;position:absolute;top:50%;right:0;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-form-field-type-mat-native-select .mat-form-field-infix::after{right:auto;left:0}.mat-form-field-type-mat-native-select .mat-input-element{padding-right:15px}[dir=rtl] .mat-form-field-type-mat-native-select .mat-input-element{padding-right:0;padding-left:15px}.mat-form-field-type-mat-native-select .mat-form-field-label-wrapper{max-width:calc(100% - 10px)}.mat-form-field-type-mat-native-select.mat-form-field-appearance-outline .mat-form-field-infix::after{margin-top:-5px}.mat-form-field-type-mat-native-select.mat-form-field-appearance-fill .mat-form-field-infix::after{margin-top:-10px}\n',".mat-form-field-appearance-legacy .mat-form-field-label{transform:perspective(100px);-ms-transform:none}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-appearance-legacy .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-legacy .mat-form-field-ripple{top:0;height:2px;overflow:hidden}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}.cdk-high-contrast-active .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-legacy.mat-form-field-invalid:not(.mat-focused) .mat-form-field-ripple{height:1px}\n",".mat-form-field-appearance-outline .mat-form-field-wrapper{margin:.25em 0}.mat-form-field-appearance-outline .mat-form-field-flex{padding:0 .75em 0 .75em;margin-top:-0.25em;position:relative}.mat-form-field-appearance-outline .mat-form-field-prefix,.mat-form-field-appearance-outline .mat-form-field-suffix{top:.25em}.mat-form-field-appearance-outline .mat-form-field-outline{display:flex;position:absolute;top:.25em;left:0;right:0;bottom:0;pointer-events:none}.mat-form-field-appearance-outline .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-end{border:1px solid currentColor;min-width:5px}.mat-form-field-appearance-outline .mat-form-field-outline-start{border-radius:5px 0 0 5px;border-right-style:none}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-start{border-right-style:solid;border-left-style:none;border-radius:0 5px 5px 0}.mat-form-field-appearance-outline .mat-form-field-outline-end{border-radius:0 5px 5px 0;border-left-style:none;flex-grow:1}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-end{border-left-style:solid;border-right-style:none;border-radius:5px 0 0 5px}.mat-form-field-appearance-outline .mat-form-field-outline-gap{border-radius:.000001px;border:1px solid currentColor;border-left-style:none;border-right-style:none}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-outline-gap{border-top-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline-thick{opacity:0}.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-gap{border-width:2px}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline{opacity:0;transition:opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline{opacity:0;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:0 1em}.mat-form-field-appearance-outline._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-start,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-end,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-gap{transition:none}\n",".mat-form-field-appearance-standard .mat-form-field-flex{padding-top:.75em}.mat-form-field-appearance-standard .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-standard .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}.cdk-high-contrast-active .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-standard:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-standard._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}\n"]}]}],(function(){return[{type:ch},{type:Hh},{type:void 0,decorators:[{type:ys,args:[ch]}]},{type:Mz,decorators:[{type:_s}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[bV]}]},{type:fI},{type:tC},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{floatLabel:[{type:y_}],appearance:[{type:y_}],hideRequiredMarker:[{type:y_}],hintLabel:[{type:y_}],underlineRef:[{type:Fr,args:["underline"]}],_connectionContainerRef:[{type:Fr,args:["connectionContainer",{static:!0}]}],_inputContainerRef:[{type:Fr,args:["inputContainer"]}],_label:[{type:Fr,args:["label"]}],_controlNonStatic:[{type:Hr,args:[iV]}],_controlStatic:[{type:Hr,args:[iV,{static:!0}]}],_labelChildNonStatic:[{type:Hr,args:[cV]}],_labelChildStatic:[{type:Hr,args:[cV,{static:!0}]}],_placeholderChild:[{type:Hr,args:[dV]}],_errorChildren:[{type:zr,args:[eV,{descendants:!0}]}],_hintChildren:[{type:zr,args:[sV,{descendants:!0}]}],_prefixChildren:[{type:zr,args:[pV,{descendants:!0}]}],_suffixChildren:[{type:zr,args:[uV,{descendants:!0}]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class CV{}CV.ɵfac=function t(e){return new(e||CV)},CV.ɵmod=Zo({type:CV}),CV.ɵinj=co({imports:[[Bv,Tz,DI],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(CV,{declarations:function(){return[nV,_V,lV,cV,dV,mV,fV]},imports:function(){return[Bv,Tz,DI]},exports:function(){return[Tz,nV,_V,lV,cV,dV,mV,fV]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(CV,[{type:k_,args:[{declarations:[nV,_V,lV,cV,dV,mV,fV],imports:[Bv,Tz,DI],exports:[Tz,nV,_V,lV,cV,dV,mV,fV]}]}],null,null);
/**
     * @license Angular v11.2.14
     * (c) 2010-2021 Google LLC. https://angular.io/
     * License: MIT
     */
class MV{}const vV=new Nr("NgValueAccessor"),xV={provide:vV,useExisting:In((()=>OV)),multi:!0};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class OV extends MV{constructor(t,e){super(),this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"checked",t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}}OV.ɵfac=function t(e){return new(e||OV)(Mu(uh),Mu(ch))},OV.ɵdir=Jo({type:OV,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function t(e,n){1&e&&Nu("change",(function t(e){return n.onChange(e.target.checked)}))("blur",(function t(){return n.onTouched()}))},features:[ih([xV]),gm]}),OV.ctorParameters=()=>[{type:uh},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(OV,[{type:g_,args:[{selector:"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",host:{"(change)":"onChange($event.target.checked)","(blur)":"onTouched()"},providers:[xV]}]}],(function(){return[{type:uh},{type:ch}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const PV={provide:vV,useExisting:In((()=>kV)),multi:!0},wV=new Nr("CompositionEventMode");class kV{constructor(t,e,n){this._renderer=t,this._elementRef=e,this._compositionMode=n,this.onChange=t=>{},this.onTouched=()=>{},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!(function o(){const t=jC()?jC().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())})())}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function SV(t){return null==t||0===t.length}function DV(t){return null!=t&&"number"==typeof t.length}kV.ɵfac=function t(e){return new(e||kV)(Mu(uh),Mu(ch),Mu(wV,8))},kV.ɵdir=Jo({type:kV,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function t(e,n){1&e&&Nu("input",(function t(e){return n._handleInput(e.target.value)}))("blur",(function t(){return n.onTouched()}))("compositionstart",(function t(){return n._compositionStart()}))("compositionend",(function t(e){return n._compositionEnd(e.target.value)}))},features:[ih([PV])]}),kV.ctorParameters=()=>[{type:uh},{type:ch},{type:Boolean,decorators:[{type:_s},{type:ys,args:[wV]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(kV,[{type:g_,args:[{selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]",host:{"(input)":"$any(this)._handleInput($event.target.value)","(blur)":"onTouched()","(compositionstart)":"$any(this)._compositionStart()","(compositionend)":"$any(this)._compositionEnd($event.target.value)"},providers:[PV]}]}],(function(){return[{type:uh},{type:ch},{type:Boolean,decorators:[{type:_s},{type:ys,args:[wV]}]}]}),null);const EV=new Nr("NgValidators"),AV=new Nr("NgAsyncValidators"),RV=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class TV{static min(t){return(function e(t){return e=>{if(SV(e.value)||SV(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n<t?{min:{min:t,actual:e.value}}:null}})(t)}static max(t){return(function e(t){return e=>{if(SV(e.value)||SV(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n>t?{max:{max:t,actual:e.value}}:null}})(t)}static required(t){return NV(t)}static requiredTrue(t){return IV(t)}static email(t){return zV(t)}static minLength(t){return HV(t)}static maxLength(t){return FV(t)}static pattern(t){return LV(t)}static nullValidator(t){return null}static compose(t){return YV(t)}static composeAsync(t){return ZV(t)}}function NV(t){return SV(t.value)?{required:!0}:null}function IV(t){return!0===t.value?null:{required:!0}}function zV(t){return SV(t.value)||RV.test(t.value)?null:{email:!0}}function HV(t){return e=>SV(e.value)||!DV(e.value)?null:e.value.length<t?{minlength:{requiredLength:t,actualLength:e.value.length}}:null}function FV(t){return e=>DV(e.value)&&e.value.length>t?{maxlength:{requiredLength:t,actualLength:e.value.length}}:null}function LV(t){if(!t)return BV;let e,n;return"string"==typeof t?(n="","^"!==t.charAt(0)&&(n+="^"),n+=t,"$"!==t.charAt(t.length-1)&&(n+="$"),e=new RegExp(n)):(n=t.toString(),e=t),t=>{if(SV(t.value))return null;const o=t.value;return e.test(o)?null:{pattern:{requiredPattern:n,actualValue:o}}}}function BV(t){return null}function VV(t){return null!=t}function jV(t){const e=Au(t)?Rt(t):t;if(!Tu(e)&&("undefined"==typeof ngDevMode||ngDevMode))throw new Error("Expected validator to return Promise or Observable.");return e}function UV(t){let e={};return t.forEach((t=>{e=null!=t?Object.assign(Object.assign({},e),t):e})),0===Object.keys(e).length?null:e}function WV(t,e){return e.map((e=>e(t)))}function GV(t){return t.map((t=>(function e(t){return!t.validate})(t)?t:e=>t.validate(e)))}function YV(t){if(!t)return null;const e=t.filter(VV);return 0==e.length?null:function(t){return UV(WV(t,e))}}function qV(t){return null!=t?YV(GV(t)):null}function ZV(t){if(!t)return null;const e=t.filter(VV);return 0==e.length?null:function(t){return Lt(WV(t,e).map(jV)).pipe(ht(UV))}}function XV(t){return null!=t?ZV(GV(t)):null}function KV(t,e){return null===t?[e]:Array.isArray(t)?[...t,e]:[t,e]}function JV(t){return t._rawValidators}function QV(t){return t._rawAsyncValidators}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class $V{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=qV(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=XV(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach((t=>t())),this._onDestroyCallbacks=[]}reset(t){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}$V.ɵfac=function t(e){return new(e||$V)},$V.ɵdir=Jo({type:$V});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class tj extends $V{get formDirective(){return null}get path(){return null}}tj.ɵfac=function t(e){return ej(e||tj)},tj.ɵdir=Jo({type:tj,features:[gm]});const ej=vr(tj);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class nj extends $V{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class oj{constructor(t){this._cd=t}is(t){var e,n;return!!(null===(n=null===(e=this._cd)||void 0===e?void 0:e.control)||void 0===n?void 0:n[t])}}const ij={"[class.ng-untouched]":'is("untouched")',"[class.ng-touched]":'is("touched")',"[class.ng-pristine]":'is("pristine")',"[class.ng-dirty]":'is("dirty")',"[class.ng-valid]":'is("valid")',"[class.ng-invalid]":'is("invalid")',"[class.ng-pending]":'is("pending")'};class aj extends oj{constructor(t){super(t)}}aj.ɵfac=function t(e){return new(e||aj)(Mu(nj,2))},aj.ɵdir=Jo({type:aj,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function t(e,n){2&e&&af("ng-untouched",n.is("untouched"))("ng-touched",n.is("touched"))("ng-pristine",n.is("pristine"))("ng-dirty",n.is("dirty"))("ng-valid",n.is("valid"))("ng-invalid",n.is("invalid"))("ng-pending",n.is("pending"))},features:[gm]}),aj.ctorParameters=()=>[{type:nj,decorators:[{type:Cs}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(aj,[{type:g_,args:[{selector:"[formControlName],[ngModel],[formControl]",host:ij}]}],(function(){return[{type:nj,decorators:[{type:Cs}]}]}),null);class rj extends oj{constructor(t){super(t)}}rj.ɵfac=function t(e){return new(e||rj)(Mu(tj,10))},rj.ɵdir=Jo({type:rj,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:14,hostBindings:function t(e,n){2&e&&af("ng-untouched",n.is("untouched"))("ng-touched",n.is("touched"))("ng-pristine",n.is("pristine"))("ng-dirty",n.is("dirty"))("ng-valid",n.is("valid"))("ng-invalid",n.is("invalid"))("ng-pending",n.is("pending"))},features:[gm]}),rj.ctorParameters=()=>[{type:tj,decorators:[{type:_s},{type:Cs}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(rj,[{type:g_,args:[{selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]",host:ij}]}],(function(){return[{type:tj,decorators:[{type:_s},{type:Cs}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const sj='\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',lj='\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',cj='\n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>';
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class dj{static controlParentException(){throw new Error(`formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      ${sj}`)}static ngModelGroupException(){throw new Error(`formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        ${lj}\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        ${cj}`)}static missingFormException(){throw new Error(`formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       ${sj}`)}static groupParentException(){throw new Error(`formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      ${lj}`)}static arrayParentException(){throw new Error('formArrayName must be used with a parent formGroup directive.  You\'ll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        \n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; index as i">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });')}static disabledAttrWarning(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n\n      Example:\n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")}static ngModelWarning(t){console.warn(`\n    It looks like you're using ngModel on the same form field as ${t}.\n    Support for using the ngModel input property and ngModelChange event with\n    reactive form directives has been deprecated in Angular v6 and will be removed\n    in a future version of Angular.\n\n    For more information on this, see our API docs here:\n    https://angular.io/api/forms/${"formControl"===t?"FormControlDirective":"FormControlName"}#use-with-ngmodel\n    `)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function pj(t,e){return[...e.path,t]}function mj(t,e){("undefined"==typeof ngDevMode||ngDevMode)&&(t||_j(e,"Cannot find control with"),e.valueAccessor||_j(e,"No value accessor for form control with")),gj(t,e,!0),e.valueAccessor.writeValue(t.value),(function n(t,e){e.valueAccessor.registerOnChange((n=>{t._pendingValue=n,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&bj(t,e)}))})(t,e),(function o(t,e){const n=(t,n)=>{e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)};t.registerOnChange(n),e._registerOnDestroy((()=>{t._unregisterOnChange(n)}))})(t,e),(function i(t,e){e.valueAccessor.registerOnTouched((()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&bj(t,e),"submit"!==t.updateOn&&t.markAsTouched()}))})(t,e),(function a(t,e){if(e.valueAccessor.setDisabledState){const n=t=>{e.valueAccessor.setDisabledState(t)};t.registerOnDisabledChange(n),e._registerOnDestroy((()=>{t._unregisterOnDisabledChange(n)}))}})(t,e)}function uj(t,e,n=!0){const o=()=>{n&&("undefined"==typeof ngDevMode||ngDevMode)&&(function t(e){_j(e,"There is no FormControl instance attached to form control element with")})(e)};e.valueAccessor&&(e.valueAccessor.registerOnChange(o),e.valueAccessor.registerOnTouched(o)),hj(t,e,!0),t&&(e._invokeOnDestroyCallbacks(),t._registerOnCollectionChange((()=>{})))}function fj(t,e){t.forEach((t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(e)}))}function gj(t,e,n){const o=JV(t);null!==e.validator?t.setValidators(KV(o,e.validator)):"function"==typeof o&&t.setValidators([o]);const i=QV(t);if(null!==e.asyncValidator?t.setAsyncValidators(KV(i,e.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]),n){const n=()=>t.updateValueAndValidity();fj(e._rawValidators,n),fj(e._rawAsyncValidators,n)}}function hj(t,e,n){let o=!1;if(null!==t){if(null!==e.validator){const n=JV(t);if(Array.isArray(n)&&n.length>0){const i=n.filter((t=>t!==e.validator));i.length!==n.length&&(o=!0,t.setValidators(i))}}if(null!==e.asyncValidator){const n=QV(t);if(Array.isArray(n)&&n.length>0){const i=n.filter((t=>t!==e.asyncValidator));i.length!==n.length&&(o=!0,t.setAsyncValidators(i))}}}if(n){const t=()=>{};fj(e._rawValidators,t),fj(e._rawAsyncValidators,t)}return o}function bj(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function yj(t,e){null!=t||"undefined"!=typeof ngDevMode&&!ngDevMode||_j(e,"Cannot find control with"),gj(t,e,!1)}function _j(t,e){let n;throw n=t.path.length>1?`path: '${t.path.join(" -> ")}'`:t.path[0]?`name: '${t.path}'`:"unspecified name attribute",new Error(`${e} ${n}`)}function Cj(t,e){if(!t.hasOwnProperty("model"))return!1;const n=t.model;return!!n.isFirstChange()||!Object.is(e,n.currentValue)}function Mj(t,e){t._syncPendingControls(),e.forEach((t=>{const e=t.control;"submit"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)}))}function vj(t,e){if(!e)return null;let n,o,i;return Array.isArray(e)||"undefined"!=typeof ngDevMode&&!ngDevMode||_j(t,"Value accessor was not provided as an array for form control with"),e.forEach((e=>{e.constructor===kV?n=e:(function a(t){return Object.getPrototypeOf(t.constructor)===MV})(e)?(o&&("undefined"==typeof ngDevMode||ngDevMode)&&_j(t,"More than one built-in value accessor matches form control with"),o=e):(i&&("undefined"==typeof ngDevMode||ngDevMode)&&_j(t,"More than one custom value accessor matches form control with"),i=e)})),i||o||n||(("undefined"==typeof ngDevMode||ngDevMode)&&_j(t,"No valid value accessor for form control with"),null)}function xj(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}function Oj(t,e,n,o){"never"!==o&&((null!==o&&"once"!==o||e._ngModelWarningSentOnce)&&("always"!==o||n._ngModelWarningSent)||(dj.ngModelWarning(t),e._ngModelWarningSentOnce=!0,n._ngModelWarningSent=!0))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Pj="VALID",wj="INVALID",kj="PENDING",Sj="DISABLED";function Dj(t){return(Tj(t)?t.validators:t)||null}function Ej(t){return Array.isArray(t)?qV(t):t||null}function Aj(t,e){return(Tj(e)?e.asyncValidators:t)||null}function Rj(t){return Array.isArray(t)?XV(t):t||null}function Tj(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}class Nj{constructor(t,e){this._hasOwnPendingAsyncValidator=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=t,this._rawAsyncValidators=e,this._composedValidatorFn=Ej(this._rawValidators),this._composedAsyncValidatorFn=Rj(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===Pj}get invalid(){return this.status===wj}get pending(){return this.status==kj}get disabled(){return this.status===Sj}get enabled(){return this.status!==Sj}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._rawValidators=t,this._composedValidatorFn=Ej(t)}setAsyncValidators(t){this._rawAsyncValidators=t,this._composedAsyncValidatorFn=Rj(t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild((t=>t.markAllAsTouched()))}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild((t=>{t.markAsUntouched({onlySelf:!0})})),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild((t=>{t.markAsPristine({onlySelf:!0})})),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=kj,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=Sj,this.errors=null,this._forEachChild((e=>{e.disable(Object.assign(Object.assign({},t),{onlySelf:!0}))})),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach((t=>t(!0)))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=Pj,this._forEachChild((e=>{e.enable(Object.assign(Object.assign({},t),{onlySelf:!0}))})),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach((t=>t(!1)))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),this.status!==Pj&&this.status!==kj||this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild((e=>e._updateTreeValidity(t))),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Sj:Pj}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=kj,this._hasOwnPendingAsyncValidator=!0;const e=jV(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe((e=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(e,{emitEvent:t})}))}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){return(function e(t,n,o){if(null==n)return null;if(Array.isArray(n)||(n=n.split(o)),Array.isArray(n)&&0===n.length)return null;let i=t;return n.forEach((t=>{i=i instanceof zj?i.controls.hasOwnProperty(t)?i.controls[t]:null:i instanceof Hj&&i.at(t)||null})),i})(this,t,".")}getError(t,e){const n=e?this.get(e):this;return n&&n.errors?n.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new Ab,this.statusChanges=new Ab}_calculateStatus(){return this._allControlsDisabled()?Sj:this.errors?wj:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(kj)?kj:this._anyControlsHaveStatus(wj)?wj:Pj}_anyControlsHaveStatus(t){return this._anyControls((e=>e.status===t))}_anyControlsDirty(){return this._anyControls((t=>t.dirty))}_anyControlsTouched(){return this._anyControls((t=>t.touched))}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_isBoxedValue(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){Tj(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class Ij extends Nj{constructor(t=null,e,n){super(Dj(e),Aj(n,e)),this._onChange=[],this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!n})}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach((t=>t(this.value,!1!==e.emitViewToModelChange))),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=null,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){xj(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){xj(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}}class zj extends Nj{constructor(t,e,n){super(Dj(e),Aj(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!n})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}removeControl(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange((()=>{})),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange((()=>{})),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){this._checkAllValuesPresent(t),Object.keys(t).forEach((n=>{this._throwIfControlMissing(n),this.controls[n].setValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})})),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach((n=>{this.controls[n]&&this.controls[n].patchValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})})),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild(((n,o)=>{n.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})})),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},((t,e,n)=>(t[n]=e instanceof Ij?e.value:e.getRawValue(),t)))}_syncPendingControls(){let t=this._reduceChildren(!1,((t,e)=>!!e._syncPendingControls()||t));return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet. If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[t])throw new Error(`Cannot find form control with name: ${t}.`)}_forEachChild(t){Object.keys(this.controls).forEach((e=>{const n=this.controls[e];n&&t(n,e)}))}_setUpControls(){this._forEachChild((t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}))}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const e of Object.keys(this.controls)){const n=this.controls[e];if(this.contains(e)&&t(n))return!0}return!1}_reduceValue(){return this._reduceChildren({},((t,e,n)=>((e.enabled||this.disabled)&&(t[n]=e.value),t)))}_reduceChildren(t,e){let n=t;return this._forEachChild(((t,o)=>{n=e(n,t,o)})),n}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_checkAllValuesPresent(t){this._forEachChild(((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control with name: '${n}'.`)}))}}class Hj extends Nj{constructor(t,e,n){super(Dj(e),Aj(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!n})}at(t){return this.controls[t]}push(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()}insert(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity()}removeAt(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange((()=>{})),this.controls.splice(t,1),this.updateValueAndValidity()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange((()=>{})),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){this._checkAllValuesPresent(t),t.forEach(((t,n)=>{this._throwIfControlMissing(n),this.at(n).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})})),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(t.forEach(((t,n)=>{this.at(n)&&this.at(n).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})})),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild(((n,o)=>{n.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})})),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map((t=>t instanceof Ij?t.value:t.getRawValue()))}clear(){this.controls.length<1||(this._forEachChild((t=>t._registerOnCollectionChange((()=>{})))),this.controls.splice(0),this.updateValueAndValidity())}_syncPendingControls(){let t=this.controls.reduce(((t,e)=>!!e._syncPendingControls()||t),!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet. If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(t))throw new Error(`Cannot find form control at index ${t}`)}_forEachChild(t){this.controls.forEach(((e,n)=>{t(e,n)}))}_updateValue(){this.value=this.controls.filter((t=>t.enabled||this.disabled)).map((t=>t.value))}_anyControls(t){return this.controls.some((e=>e.enabled&&t(e)))}_setUpControls(){this._forEachChild((t=>this._registerControl(t)))}_checkAllValuesPresent(t){this._forEachChild(((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control at index: ${n}.`)}))}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Fj={provide:tj,useExisting:In((()=>Bj))},Lj=Promise.resolve(null);class Bj extends tj{constructor(t,e){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new Ab,this.form=new zj({},qV(t),XV(e))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){Lj.then((()=>{const e=this._findContainer(t.path);t.control=e.registerControl(t.name,t.control),mj(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(t)}))}getControl(t){return this.form.get(t.path)}removeControl(t){Lj.then((()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name),xj(this._directives,t)}))}addFormGroup(t){Lj.then((()=>{const e=this._findContainer(t.path),n=new zj({});yj(n,t),e.registerControl(t.name,n),n.updateValueAndValidity({emitEvent:!1})}))}removeFormGroup(t){Lj.then((()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name)}))}getFormGroup(t){return this.form.get(t.path)}updateModel(t,e){Lj.then((()=>{this.form.get(t.path).setValue(e)}))}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,Mj(this.form,this._directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}}Bj.ɵfac=function t(e){return new(e||Bj)(Mu(EV,10),Mu(AV,10))},Bj.ɵdir=Jo({type:Bj,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function t(e,n){1&e&&Nu("submit",(function t(e){return n.onSubmit(e)}))("reset",(function t(){return n.onReset()}))},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ih([Fj]),gm]}),Bj.ctorParameters=()=>[{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}],Bj.propDecorators={options:[{type:y_,args:["ngFormOptions"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(Bj,[{type:g_,args:[{selector:"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]",providers:[Fj],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},outputs:["ngSubmit"],exportAs:"ngForm"}]}],(function(){return[{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}]}),{options:[{type:y_,args:["ngFormOptions"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Vj extends tj{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return pj(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}}Vj.ɵfac=function t(e){return jj(e||Vj)},Vj.ɵdir=Jo({type:Vj,features:[gm]});const jj=vr(Vj);("undefined"==typeof ngDevMode||ngDevMode)&&db(Vj,[{type:g_}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Uj{static modelParentException(){throw new Error(`\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\n      formGroup's partner directive "formControlName" instead.  Example:\n\n      ${sj}\n\n      Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n      Example:\n\n      \n    <div [formGroup]="myGroup">\n       <input formControlName="firstName">\n       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n    </div>\n  `)}static formGroupNameException(){throw new Error(`\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n      ${lj}\n\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n      ${cj}`)}static missingNameException(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n      control must be defined as \'standalone\' in ngModelOptions.\n\n      Example 1: <input [(ngModel)]="person.firstName" name="first">\n      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')}static modelGroupParentException(){throw new Error(`\n      ngModelGroup cannot be used with a parent formGroup directive.\n\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n      ${lj}\n\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n      ${cj}`)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const Wj={provide:tj,useExisting:In((()=>Gj))};class Gj extends Vj{constructor(t,e,n){super(),this._parent=t,this._setValidators(e),this._setAsyncValidators(n)}_checkParentType(){this._parent instanceof Gj||this._parent instanceof Bj||"undefined"!=typeof ngDevMode&&!ngDevMode||Uj.modelGroupParentException()}}Gj.ɵfac=function t(e){return new(e||Gj)(Mu(tj,5),Mu(EV,10),Mu(AV,10))},Gj.ɵdir=Jo({type:Gj,selectors:[["","ngModelGroup",""]],inputs:{name:["ngModelGroup","name"]},exportAs:["ngModelGroup"],features:[ih([Wj]),gm]}),Gj.ctorParameters=()=>[{type:tj,decorators:[{type:vs},{type:Ms}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}],Gj.propDecorators={name:[{type:y_,args:["ngModelGroup"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(Gj,[{type:g_,args:[{selector:"[ngModelGroup]",providers:[Wj],exportAs:"ngModelGroup"}]}],(function(){return[{type:tj,decorators:[{type:vs},{type:Ms}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}]}),{name:[{type:y_,args:["ngModelGroup"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Yj={provide:nj,useExisting:In((()=>Zj))},qj=Promise.resolve(null);class Zj extends nj{constructor(t,e,n,o){super(),this.control=new Ij,this._registered=!1,this.update=new Ab,this._parent=t,this._setValidators(e),this._setAsyncValidators(n),this.valueAccessor=vj(this,o)}ngOnChanges(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),Cj(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?pj(this.name,this._parent):[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){mj(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){("undefined"==typeof ngDevMode||ngDevMode)&&(!(this._parent instanceof Gj)&&this._parent instanceof Vj?Uj.formGroupNameException():this._parent instanceof Gj||this._parent instanceof Bj||Uj.modelParentException())}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||"undefined"!=typeof ngDevMode&&!ngDevMode||Uj.missingNameException()}_updateValue(t){qj.then((()=>{this.control.setValue(t,{emitViewToModelChange:!1})}))}_updateDisabled(t){const e=t.isDisabled.currentValue,n=""===e||e&&"false"!==e;qj.then((()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable()}))}}Zj.ɵfac=function t(e){return new(e||Zj)(Mu(tj,9),Mu(EV,10),Mu(AV,10),Mu(vV,10))},Zj.ɵdir=Jo({type:Zj,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[ih([Yj]),gm,Si]}),Zj.ctorParameters=()=>[{type:tj,decorators:[{type:_s},{type:vs}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[vV]}]}],Zj.propDecorators={name:[{type:y_}],isDisabled:[{type:y_,args:["disabled"]}],model:[{type:y_,args:["ngModel"]}],options:[{type:y_,args:["ngModelOptions"]}],update:[{type:__,args:["ngModelChange"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(Zj,[{type:g_,args:[{selector:"[ngModel]:not([formControlName]):not([formControl])",providers:[Yj],exportAs:"ngModel"}]}],(function(){return[{type:tj,decorators:[{type:_s},{type:vs}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[vV]}]}]}),{update:[{type:__,args:["ngModelChange"]}],name:[{type:y_}],isDisabled:[{type:y_,args:["disabled"]}],model:[{type:y_,args:["ngModel"]}],options:[{type:y_,args:["ngModelOptions"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Xj{}Xj.ɵfac=function t(e){return new(e||Xj)},Xj.ɵdir=Jo({type:Xj,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Xj,[{type:g_,args:[{selector:"form:not([ngNoForm]):not([ngNativeValidate])",host:{novalidate:""}}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Kj={provide:vV,useExisting:In((()=>Jj)),multi:!0};class Jj extends MV{constructor(t,e){super(),this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)}registerOnChange(t){this.onChange=e=>{t(""==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}}Jj.ɵfac=function t(e){return new(e||Jj)(Mu(uh),Mu(ch))},Jj.ɵdir=Jo({type:Jj,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function t(e,n){1&e&&Nu("input",(function t(e){return n.onChange(e.target.value)}))("blur",(function t(){return n.onTouched()}))},features:[ih([Kj]),gm]}),Jj.ctorParameters=()=>[{type:uh},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Jj,[{type:g_,args:[{selector:"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]",host:{"(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[Kj]}]}],(function(){return[{type:uh},{type:ch}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Qj={provide:vV,useExisting:In((()=>eU)),multi:!0};class $j{}$j.ɵfac=function t(e){return new(e||$j)},$j.ɵmod=Zo({type:$j}),$j.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db($j,[{type:k_}],null,null);class tU{constructor(){this._accessors=[]}add(t,e){this._accessors.push([t,e])}remove(t){for(let e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)}select(t){this._accessors.forEach((e=>{this._isSameGroup(e,t)&&e[1]!==t&&e[1].fireUncheck(t.value)}))}_isSameGroup(t,e){return!!t[0].control&&t[0]._parent===e._control._parent&&t[1].name===e.name}}tU.ɵfac=function t(e){return new(e||tU)},tU.ɵprov=lo({factory:function t(){return new tU},token:tU,providedIn:$j}),("undefined"==typeof ngDevMode||ngDevMode)&&db(tU,[{type:Jm,args:[{providedIn:$j}]}],(function(){return[]}),null);class eU extends MV{constructor(t,e,n,o){super(),this._renderer=t,this._elementRef=e,this._registry=n,this._injector=o,this.onChange=()=>{},this.onTouched=()=>{}}ngOnInit(){this._control=this._injector.get(nj),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(t){this._state=t===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)}registerOnChange(t){this._fn=t,this.onChange=()=>{t(this.value),this._registry.select(this)}}fireUncheck(t){this.writeValue(t)}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_checkName(){this.name&&this.formControlName&&this.name!==this.formControlName&&("undefined"==typeof ngDevMode||ngDevMode)&&(function t(){throw new Error('\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <input type="radio" formControlName="food" name="food">\n    ')})(),!this.name&&this.formControlName&&(this.name=this.formControlName)}}eU.ɵfac=function t(e){return new(e||eU)(Mu(uh),Mu(ch),Mu(tU),Mu(Qp))},eU.ɵdir=Jo({type:eU,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function t(e,n){1&e&&Nu("change",(function t(){return n.onChange()}))("blur",(function t(){return n.onTouched()}))},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[ih([Qj]),gm]}),eU.ctorParameters=()=>[{type:uh},{type:ch},{type:tU},{type:Qp}],eU.propDecorators={name:[{type:y_}],formControlName:[{type:y_}],value:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(eU,[{type:g_,args:[{selector:"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]",host:{"(change)":"onChange()","(blur)":"onTouched()"},providers:[Qj]}]}],(function(){return[{type:uh},{type:ch},{type:tU},{type:Qp}]}),{name:[{type:y_}],formControlName:[{type:y_}],value:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const nU={provide:vV,useExisting:In((()=>oU)),multi:!0};class oU extends MV{constructor(t,e){super(),this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(t))}registerOnChange(t){this.onChange=e=>{t(""==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}}oU.ɵfac=function t(e){return new(e||oU)(Mu(uh),Mu(ch))},oU.ɵdir=Jo({type:oU,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function t(e,n){1&e&&Nu("change",(function t(e){return n.onChange(e.target.value)}))("input",(function t(e){return n.onChange(e.target.value)}))("blur",(function t(){return n.onTouched()}))},features:[ih([nU]),gm]}),oU.ctorParameters=()=>[{type:uh},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(oU,[{type:g_,args:[{selector:"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[nU]}]}],(function(){return[{type:uh},{type:ch}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const iU=new Nr("NgModelWithFormControlWarning"),aU={provide:nj,useExisting:In((()=>rU))};class rU extends nj{constructor(t,e,n,o){super(),this._ngModelWarningConfig=o,this.update=new Ab,this._ngModelWarningSent=!1,this._setValidators(t),this._setAsyncValidators(e),this.valueAccessor=vj(this,n)}set isDisabled(t){("undefined"==typeof ngDevMode||ngDevMode)&&dj.disabledAttrWarning()}ngOnChanges(t){if(this._isControlChanged(t)){const e=t.form.previousValue;e&&uj(e,this,!1),mj(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})}Cj(t,this.viewModel)&&(("undefined"==typeof ngDevMode||ngDevMode)&&Oj("formControl",rU,this,this._ngModelWarningConfig),this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&uj(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_isControlChanged(t){return t.hasOwnProperty("form")}}rU.ɵfac=function t(e){return new(e||rU)(Mu(EV,10),Mu(AV,10),Mu(vV,10),Mu(iU,8))},rU.ɵdir=Jo({type:rU,selectors:[["","formControl",""]],inputs:{isDisabled:["disabled","isDisabled"],form:["formControl","form"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[ih([aU]),gm,Si]}),rU._ngModelWarningSentOnce=!1,rU.ctorParameters=()=>[{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[vV]}]},{type:String,decorators:[{type:_s},{type:ys,args:[iU]}]}],rU.propDecorators={form:[{type:y_,args:["formControl"]}],isDisabled:[{type:y_,args:["disabled"]}],model:[{type:y_,args:["ngModel"]}],update:[{type:__,args:["ngModelChange"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(rU,[{type:g_,args:[{selector:"[formControl]",providers:[aU],exportAs:"ngForm"}]}],(function(){return[{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[vV]}]},{type:String,decorators:[{type:_s},{type:ys,args:[iU]}]}]}),{update:[{type:__,args:["ngModelChange"]}],isDisabled:[{type:y_,args:["disabled"]}],form:[{type:y_,args:["formControl"]}],model:[{type:y_,args:["ngModel"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const sU={provide:tj,useExisting:In((()=>lU))};class lU extends tj{constructor(t,e){super(),this.validators=t,this.asyncValidators=e,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Ab,this._setValidators(t),this._setAsyncValidators(e)}ngOnChanges(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(hj(this.form,this,!1),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange((()=>{})))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(t){const e=this.form.get(t.path);return mj(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e}getControl(t){return this.form.get(t.path)}removeControl(t){uj(t.control||null,t,!1),xj(this.directives,t)}addFormGroup(t){this._setUpFormContainer(t)}removeFormGroup(t){this._cleanUpFormContainer(t)}getFormGroup(t){return this.form.get(t.path)}addFormArray(t){this._setUpFormContainer(t)}removeFormArray(t){this._cleanUpFormContainer(t)}getFormArray(t){return this.form.get(t.path)}updateModel(t,e){this.form.get(t.path).setValue(e)}onSubmit(t){return this.submitted=!0,Mj(this.form,this.directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_updateDomValue(){this.directives.forEach((t=>{const e=t.control,n=this.form.get(t.path);e!==n&&(uj(e||null,t),n instanceof Ij&&(mj(n,t),t.control=n))})),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(t){const e=this.form.get(t.path);yj(e,t),e.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(t){if(this.form){const e=this.form.get(t.path);e&&(function e(t,n){return hj(t,n,!1)})(e,t)&&e.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange((()=>{}))}_updateValidators(){gj(this.form,this,!1),this._oldForm&&hj(this._oldForm,this,!1)}_checkFormPresent(){this.form||"undefined"!=typeof ngDevMode&&!ngDevMode||dj.missingFormException()}}lU.ɵfac=function t(e){return new(e||lU)(Mu(EV,10),Mu(AV,10))},lU.ɵdir=Jo({type:lU,selectors:[["","formGroup",""]],hostBindings:function t(e,n){1&e&&Nu("submit",(function t(e){return n.onSubmit(e)}))("reset",(function t(){return n.onReset()}))},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ih([sU]),gm,Si]}),lU.ctorParameters=()=>[{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}],lU.propDecorators={form:[{type:y_,args:["formGroup"]}],ngSubmit:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(lU,[{type:g_,args:[{selector:"[formGroup]",providers:[sU],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},exportAs:"ngForm"}]}],(function(){return[{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}]}),{form:[{type:y_,args:["formGroup"]}],ngSubmit:[{type:__}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const cU={provide:tj,useExisting:In((()=>dU))};class dU extends Vj{constructor(t,e,n){super(),this._parent=t,this._setValidators(e),this._setAsyncValidators(n)}_checkParentType(){uU(this._parent)&&("undefined"==typeof ngDevMode||ngDevMode)&&dj.groupParentException()}}dU.ɵfac=function t(e){return new(e||dU)(Mu(tj,13),Mu(EV,10),Mu(AV,10))},dU.ɵdir=Jo({type:dU,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[ih([cU]),gm]}),dU.ctorParameters=()=>[{type:tj,decorators:[{type:_s},{type:vs},{type:Ms}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}],dU.propDecorators={name:[{type:y_,args:["formGroupName"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(dU,[{type:g_,args:[{selector:"[formGroupName]",providers:[cU]}]}],(function(){return[{type:tj,decorators:[{type:_s},{type:vs},{type:Ms}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}]}),{name:[{type:y_,args:["formGroupName"]}]});const pU={provide:tj,useExisting:In((()=>mU))};class mU extends tj{constructor(t,e,n){super(),this._parent=t,this._setValidators(e),this._setAsyncValidators(n)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return pj(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){uU(this._parent)&&("undefined"==typeof ngDevMode||ngDevMode)&&dj.arrayParentException()}}function uU(t){return!(t instanceof dU||t instanceof lU||t instanceof mU)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */mU.ɵfac=function t(e){return new(e||mU)(Mu(tj,13),Mu(EV,10),Mu(AV,10))},mU.ɵdir=Jo({type:mU,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[ih([pU]),gm]}),mU.ctorParameters=()=>[{type:tj,decorators:[{type:_s},{type:vs},{type:Ms}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}],mU.propDecorators={name:[{type:y_,args:["formArrayName"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(mU,[{type:g_,args:[{selector:"[formArrayName]",providers:[pU]}]}],(function(){return[{type:tj,decorators:[{type:_s},{type:vs},{type:Ms}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]}]}),{name:[{type:y_,args:["formArrayName"]}]});const fU={provide:nj,useExisting:In((()=>gU))};class gU extends nj{constructor(t,e,n,o,i){super(),this._ngModelWarningConfig=i,this._added=!1,this.update=new Ab,this._ngModelWarningSent=!1,this._parent=t,this._setValidators(e),this._setAsyncValidators(n),this.valueAccessor=vj(this,o)}set isDisabled(t){("undefined"==typeof ngDevMode||ngDevMode)&&dj.disabledAttrWarning()}ngOnChanges(t){this._added||this._setUpControl(),Cj(t,this.viewModel)&&(("undefined"==typeof ngDevMode||ngDevMode)&&Oj("formControlName",gU,this,this._ngModelWarningConfig),this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}get path(){return pj(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){("undefined"==typeof ngDevMode||ngDevMode)&&(!(this._parent instanceof dU)&&this._parent instanceof Vj?dj.ngModelGroupException():this._parent instanceof dU||this._parent instanceof lU||this._parent instanceof mU||dj.controlParentException())}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0}}gU.ɵfac=function t(e){return new(e||gU)(Mu(tj,13),Mu(EV,10),Mu(AV,10),Mu(vV,10),Mu(iU,8))},gU.ɵdir=Jo({type:gU,selectors:[["","formControlName",""]],inputs:{isDisabled:["disabled","isDisabled"],name:["formControlName","name"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[ih([fU]),gm,Si]}),gU._ngModelWarningSentOnce=!1,gU.ctorParameters=()=>[{type:tj,decorators:[{type:_s},{type:vs},{type:Ms}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[vV]}]},{type:String,decorators:[{type:_s},{type:ys,args:[iU]}]}],gU.propDecorators={name:[{type:y_,args:["formControlName"]}],isDisabled:[{type:y_,args:["disabled"]}],model:[{type:y_,args:["ngModel"]}],update:[{type:__,args:["ngModelChange"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(gU,[{type:g_,args:[{selector:"[formControlName]",providers:[fU]}]}],(function(){return[{type:tj,decorators:[{type:_s},{type:vs},{type:Ms}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[EV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[AV]}]},{type:Array,decorators:[{type:_s},{type:Cs},{type:ys,args:[vV]}]},{type:String,decorators:[{type:_s},{type:ys,args:[iU]}]}]}),{update:[{type:__,args:["ngModelChange"]}],isDisabled:[{type:y_,args:["disabled"]}],name:[{type:y_,args:["formControlName"]}],model:[{type:y_,args:["ngModel"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const hU={provide:vV,useExisting:In((()=>yU)),multi:!0};function bU(t,e){return null==t?`${e}`:(e&&"object"==typeof e&&(e="Object"),`${t}: ${e}`.slice(0,50))}class yU extends MV{constructor(t,e){super(),this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=Object.is}set compareWith(t){if("function"!=typeof t&&("undefined"==typeof ngDevMode||ngDevMode))throw new Error(`compareWith must be a function, but received ${JSON.stringify(t)}`);this._compareWith=t}writeValue(t){this.value=t;const e=this._getOptionId(t);null==e&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);const n=bU(e,t);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)}registerOnChange(t){this.onChange=e=>{this.value=this._getOptionValue(e),t(this.value)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e),t))return e;return null}_getOptionValue(t){const e=(function n(t){return t.split(":")[0]})(t);return this._optionMap.has(e)?this._optionMap.get(e):t}}yU.ɵfac=function t(e){return new(e||yU)(Mu(uh),Mu(ch))},yU.ɵdir=Jo({type:yU,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function t(e,n){1&e&&Nu("change",(function t(e){return n.onChange(e.target.value)}))("blur",(function t(){return n.onTouched()}))},inputs:{compareWith:"compareWith"},features:[ih([hU]),gm]}),yU.ctorParameters=()=>[{type:uh},{type:ch}],yU.propDecorators={compareWith:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(yU,[{type:g_,args:[{selector:"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]",host:{"(change)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[hU]}]}],(function(){return[{type:uh},{type:ch}]}),{compareWith:[{type:y_}]});class _U{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(bU(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}_U.ɵfac=function t(e){return new(e||_U)(Mu(ch),Mu(uh),Mu(yU,9))},_U.ɵdir=Jo({type:_U,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),_U.ctorParameters=()=>[{type:ch},{type:uh},{type:yU,decorators:[{type:_s},{type:vs}]}],_U.propDecorators={ngValue:[{type:y_,args:["ngValue"]}],value:[{type:y_,args:["value"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(_U,[{type:g_,args:[{selector:"option"}]}],(function(){return[{type:ch},{type:uh},{type:yU,decorators:[{type:_s},{type:vs}]}]}),{ngValue:[{type:y_,args:["ngValue"]}],value:[{type:y_,args:["value"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const CU={provide:vV,useExisting:In((()=>vU)),multi:!0};function MU(t,e){return null==t?`${e}`:("string"==typeof e&&(e=`'${e}'`),e&&"object"==typeof e&&(e="Object"),`${t}: ${e}`.slice(0,50))}class vU extends MV{constructor(t,e){super(),this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=Object.is}set compareWith(t){if("function"!=typeof t&&("undefined"==typeof ngDevMode||ngDevMode))throw new Error(`compareWith must be a function, but received ${JSON.stringify(t)}`);this._compareWith=t}writeValue(t){let e;if(this.value=t,Array.isArray(t)){const n=t.map((t=>this._getOptionId(t)));e=(t,e)=>{t._setSelected(n.indexOf(e.toString())>-1)}}else e=(t,e)=>{t._setSelected(!1)};this._optionMap.forEach(e)}registerOnChange(t){this.onChange=e=>{const n=[];if(void 0!==e.selectedOptions){const t=e.selectedOptions;for(let e=0;e<t.length;e++){const o=t.item(e),i=this._getOptionValue(o.value);n.push(i)}}else{const t=e.options;for(let e=0;e<t.length;e++){const o=t.item(e);if(o.selected){const t=this._getOptionValue(o.value);n.push(t)}}}this.value=n,t(n)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_registerOption(t){const e=(this._idCounter++).toString();return this._optionMap.set(e,t),e}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e)._value,t))return e;return null}_getOptionValue(t){const e=(function n(t){return t.split(":")[0]})(t);return this._optionMap.has(e)?this._optionMap.get(e)._value:t}}vU.ɵfac=function t(e){return new(e||vU)(Mu(uh),Mu(ch))},vU.ɵdir=Jo({type:vU,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function t(e,n){1&e&&Nu("change",(function t(e){return n.onChange(e.target)}))("blur",(function t(){return n.onTouched()}))},inputs:{compareWith:"compareWith"},features:[ih([CU]),gm]}),vU.ctorParameters=()=>[{type:uh},{type:ch}],vU.propDecorators={compareWith:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(vU,[{type:g_,args:[{selector:"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]",host:{"(change)":"onChange($event.target)","(blur)":"onTouched()"},providers:[CU]}]}],(function(){return[{type:uh},{type:ch}]}),{compareWith:[{type:y_}]});class xU{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(MU(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(MU(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}xU.ɵfac=function t(e){return new(e||xU)(Mu(ch),Mu(uh),Mu(vU,9))},xU.ɵdir=Jo({type:xU,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),xU.ctorParameters=()=>[{type:ch},{type:uh},{type:vU,decorators:[{type:_s},{type:vs}]}],xU.propDecorators={ngValue:[{type:y_,args:["ngValue"]}],value:[{type:y_,args:["value"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(xU,[{type:g_,args:[{selector:"option"}]}],(function(){return[{type:ch},{type:uh},{type:vU,decorators:[{type:_s},{type:vs}]}]}),{ngValue:[{type:y_,args:["ngValue"]}],value:[{type:y_,args:["value"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const OU={provide:EV,useExisting:In((()=>wU)),multi:!0},PU={provide:EV,useExisting:In((()=>kU)),multi:!0};class wU{constructor(){this._required=!1}get required(){return this._required}set required(t){this._required=null!=t&&!1!==t&&"false"!=`${t}`,this._onChange&&this._onChange()}validate(t){return this.required?NV(t):null}registerOnValidatorChange(t){this._onChange=t}}wU.ɵfac=function t(e){return new(e||wU)},wU.ɵdir=Jo({type:wU,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function t(e,n){2&e&&Nm("required",n.required?"":null)},inputs:{required:"required"},features:[ih([OU])]}),wU.propDecorators={required:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(wU,[{type:g_,args:[{selector:":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",providers:[OU],host:{"[attr.required]":'required ? "" : null'}}]}],(function(){return[]}),{required:[{type:y_}]});class kU extends wU{validate(t){return this.required?IV(t):null}}kU.ɵfac=function t(e){return SU(e||kU)},kU.ɵdir=Jo({type:kU,selectors:[["input","type","checkbox","required","","formControlName",""],["input","type","checkbox","required","","formControl",""],["input","type","checkbox","required","","ngModel",""]],hostVars:1,hostBindings:function t(e,n){2&e&&Nm("required",n.required?"":null)},features:[ih([PU]),gm]});const SU=vr(kU);("undefined"==typeof ngDevMode||ngDevMode)&&db(kU,[{type:g_,args:[{selector:"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]",providers:[PU],host:{"[attr.required]":'required ? "" : null'}}]}],null,null);const DU={provide:EV,useExisting:In((()=>EU)),multi:!0};class EU{constructor(){this._enabled=!1}set email(t){this._enabled=""===t||!0===t||"true"===t,this._onChange&&this._onChange()}validate(t){return this._enabled?zV(t):null}registerOnValidatorChange(t){this._onChange=t}}EU.ɵfac=function t(e){return new(e||EU)},EU.ɵdir=Jo({type:EU,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[ih([DU])]}),EU.propDecorators={email:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(EU,[{type:g_,args:[{selector:"[email][formControlName],[email][formControl],[email][ngModel]",providers:[DU]}]}],(function(){return[]}),{email:[{type:y_}]});const AU={provide:EV,useExisting:In((()=>RU)),multi:!0};class RU{constructor(){this._validator=BV}ngOnChanges(t){"minlength"in t&&(this._createValidator(),this._onChange&&this._onChange())}validate(t){return null==this.minlength?null:this._validator(t)}registerOnValidatorChange(t){this._onChange=t}_createValidator(){this._validator=HV("number"==typeof this.minlength?this.minlength:parseInt(this.minlength,10))}}RU.ɵfac=function t(e){return new(e||RU)},RU.ɵdir=Jo({type:RU,selectors:[["","minlength","","formControlName",""],["","minlength","","formControl",""],["","minlength","","ngModel",""]],hostVars:1,hostBindings:function t(e,n){2&e&&Nm("minlength",n.minlength?n.minlength:null)},inputs:{minlength:"minlength"},features:[ih([AU]),Si]}),RU.propDecorators={minlength:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(RU,[{type:g_,args:[{selector:"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]",providers:[AU],host:{"[attr.minlength]":"minlength ? minlength : null"}}]}],(function(){return[]}),{minlength:[{type:y_}]});const TU={provide:EV,useExisting:In((()=>NU)),multi:!0};class NU{constructor(){this._validator=BV}ngOnChanges(t){"maxlength"in t&&(this._createValidator(),this._onChange&&this._onChange())}validate(t){return null!=this.maxlength?this._validator(t):null}registerOnValidatorChange(t){this._onChange=t}_createValidator(){this._validator=FV("number"==typeof this.maxlength?this.maxlength:parseInt(this.maxlength,10))}}NU.ɵfac=function t(e){return new(e||NU)},NU.ɵdir=Jo({type:NU,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function t(e,n){2&e&&Nm("maxlength",n.maxlength?n.maxlength:null)},inputs:{maxlength:"maxlength"},features:[ih([TU]),Si]}),NU.propDecorators={maxlength:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(NU,[{type:g_,args:[{selector:"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",providers:[TU],host:{"[attr.maxlength]":"maxlength ? maxlength : null"}}]}],(function(){return[]}),{maxlength:[{type:y_}]});const IU={provide:EV,useExisting:In((()=>zU)),multi:!0};class zU{constructor(){this._validator=BV}ngOnChanges(t){"pattern"in t&&(this._createValidator(),this._onChange&&this._onChange())}validate(t){return this._validator(t)}registerOnValidatorChange(t){this._onChange=t}_createValidator(){this._validator=LV(this.pattern)}}zU.ɵfac=function t(e){return new(e||zU)},zU.ɵdir=Jo({type:zU,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function t(e,n){2&e&&Nm("pattern",n.pattern?n.pattern:null)},inputs:{pattern:"pattern"},features:[ih([IU]),Si]}),zU.propDecorators={pattern:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(zU,[{type:g_,args:[{selector:"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",providers:[IU],host:{"[attr.pattern]":"pattern ? pattern : null"}}]}],(function(){return[]}),{pattern:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const HU=[Xj,_U,xU,kV,Jj,oU,OV,yU,vU,eU,aj,rj,wU,RU,NU,zU,kU,EU],FU=[Zj,Gj,Bj],LU=[rU,lU,gU,dU,mU];class BU{}BU.ɵfac=function t(e){return new(e||BU)},BU.ɵmod=Zo({type:BU}),BU.ɵinj=co({imports:[[$j]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(BU,{declarations:[Xj,_U,xU,kV,Jj,oU,OV,yU,vU,eU,aj,rj,wU,RU,NU,zU,kU,EU],imports:[$j],exports:[Xj,_U,xU,kV,Jj,oU,OV,yU,vU,eU,aj,rj,wU,RU,NU,zU,kU,EU]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(BU,[{type:k_,args:[{declarations:HU,imports:[$j],exports:HU}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class VU{}VU.ɵfac=function t(e){return new(e||VU)},VU.ɵmod=Zo({type:VU}),VU.ɵinj=co({imports:[BU]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(VU,{declarations:[Zj,Gj,Bj],exports:[BU,Zj,Gj,Bj]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(VU,[{type:k_,args:[{declarations:FU,exports:[BU,FU]}]}],null,null);class jU{static withConfig(t){return{ngModule:jU,providers:[{provide:iU,useValue:t.warnOnNgModelWithFormControl}]}}}jU.ɵfac=function t(e){return new(e||jU)},jU.ɵmod=Zo({type:jU}),jU.ɵinj=co({imports:[BU]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(jU,{declarations:[rU,lU,gU,dU,mU],exports:[BU,rU,lU,gU,dU,mU]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jU,[{type:k_,args:[{declarations:[LU],exports:[BU,LU]}]}],null,null);class UU{group(t,e=null){const n=this._reduceControls(t);let o,i=null,a=null;return null!=e&&((
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function r(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn})(e)?(i=null!=e.validators?e.validators:null,a=null!=e.asyncValidators?e.asyncValidators:null,o=null!=e.updateOn?e.updateOn:void 0):(i=null!=e.validator?e.validator:null,a=null!=e.asyncValidator?e.asyncValidator:null)),new zj(n,{asyncValidators:a,updateOn:o,validators:i})}control(t,e,n){return new Ij(t,e,n)}array(t,e,n){const o=t.map((t=>this._createControl(t)));return new Hj(o,e,n)}_reduceControls(t){const e={};return Object.keys(t).forEach((n=>{e[n]=this._createControl(t[n])})),e}_createControl(t){return t instanceof Ij||t instanceof zj||t instanceof Hj?t:Array.isArray(t)?this.control(t[0],t.length>1?t[1]:null,t.length>2?t[2]:null):this.control(t)}}UU.ɵfac=function t(e){return new(e||UU)},UU.ɵprov=lo({factory:function t(){return new UU},token:UU,providedIn:jU}),("undefined"==typeof ngDevMode||ngDevMode)&&db(UU,[{type:Jm,args:[{providedIn:jU}]}],null,null),
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
new bh("11.2.14");const WU=["trigger"],GU=["panel"];function YU(t,e){if(1&t&&(Ou(0,"span",8),Mf(1),Pu()),2&t){const t=Lu();Jc(1),vf(t.placeholder)}}function qU(t,e){if(1&t&&(Ou(0,"span",12),Mf(1),Pu()),2&t){const t=Lu(2);Jc(1),vf(t.triggerValue)}}function ZU(t,e){1&t&&ju(0,0,["*ngSwitchCase","true"])}function XU(t,e){1&t&&(Ou(0,"span",9),Wm(1,qU,2,1,"span",10),Wm(2,ZU,1,0,"ng-content",11),Pu()),2&t&&(vu("ngSwitch",!!Lu().customTrigger),Jc(2),vu("ngSwitchCase",!0))}function KU(t,e){if(1&t){const t=Eu();Ou(0,"div",13),Ou(1,"div",14,15),Nu("@transformPanel.done",(function e(n){return ra(t),Lu()._panelDoneAnimatingStream.next(n.toState)}))("keydown",(function e(n){return ra(t),Lu()._handleKeydown(n)})),ju(3,1),Pu(),Pu()}if(2&t){const t=Lu();vu("@transformPanelWrap",void 0),Jc(1),wf("mat-select-panel ",t._getPanelTheme(),""),of("transform-origin",t._transformOrigin)("font-size",t._triggerFontSize,"px"),vu("ngClass",t.panelClass)("@transformPanel",t.multiple?"showing-multiple":"showing"),Nm("id",t.id+"-panel")("aria-multiselectable",t.multiple)("aria-label",t.ariaLabel||null)("aria-labelledby",t._getPanelAriaLabelledby())}}const JU=[[["mat-select-trigger"]],"*"],QU={transformPanelWrap:Kx("transformPanelWrap",[nO("* => void",iO("@transformPanel",[oO()],{optional:!0}))]),transformPanel:Kx("transformPanel",[tO("void",$x({transform:"scaleY(0.8)",minWidth:"100%",opacity:0})),tO("showing",$x({opacity:1,minWidth:"calc(100% + 32px)",transform:"scaleY(1)"})),tO("showing-multiple",$x({opacity:1,minWidth:"calc(100% + 64px)",transform:"scaleY(1)"})),nO("void => *",Jx("120ms cubic-bezier(0, 0, 0.2, 1)")),nO("* => void",Jx("100ms 25ms linear",$x({opacity:0})))])};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let $U=0;const tW=256,eW=new Nr("mat-select-scroll-strategy"),nW=new Nr("MAT_SELECT_CONFIG"),oW={provide:eW,deps:[JF],useFactory:function iW(t){return()=>t.scrollStrategies.reposition()}};class aW{constructor(t,e){this.source=t,this.value=e}}const rW=zz(Hz(Nz(Fz(class{constructor(t,e,n,o,i){this._elementRef=t,this._defaultErrorStateMatcher=e,this._parentForm=n,this._parentFormGroup=o,this.ngControl=i}})))),sW=new Nr("MatSelectTrigger");class lW{}lW.ɵfac=function t(e){return new(e||lW)},lW.ɵdir=Jo({type:lW,selectors:[["mat-select-trigger"]],features:[ih([{provide:sW,useExisting:lW}])]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(lW,[{type:g_,args:[{selector:"mat-select-trigger",providers:[{provide:sW,useExisting:lW}]}]}],null,null);class cW extends rW{constructor(t,e,n,o,i,a,r,s,l,c,d,p,m,u){var f,g,h;super(i,o,r,s,c),this._viewportRuler=t,this._changeDetectorRef=e,this._ngZone=n,this._dir=a,this._parentFormField=l,this.ngControl=c,this._liveAnnouncer=m,this._defaultOptions=u,this._panelOpen=!1,this._compareWith=(t,e)=>t===e,this._uid="mat-select-"+$U++,this._triggerAriaLabelledBy=null,this._destroy=new x,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+$U++,this._panelDoneAnimatingStream=new x,this._overlayPanelClass=(null===(f=this._defaultOptions)||void 0===f?void 0:f.overlayPanelClass)||"",this._focused=!1,this.controlType="mat-select",this._required=!1,this._multiple=!1,this._disableOptionCentering=null!==(h=null===(g=this._defaultOptions)||void 0===g?void 0:g.disableOptionCentering)&&void 0!==h&&h,this.ariaLabel="",this.optionSelectionChanges=Ft((()=>{const t=this.options;return t?t.changes.pipe(cn(t),dn((()=>Wt(...t.map((t=>t.onSelectionChange)))))):this._ngZone.onStable.pipe(Ne(1),dn((()=>this.optionSelectionChanges)))})),this.openedChange=new Ab,this._openedStream=this.openedChange.pipe(Gt((t=>t)),ht((()=>{}))),this._closedStream=this.openedChange.pipe(Gt((t=>!t)),ht((()=>{}))),this.selectionChange=new Ab,this.valueChange=new Ab,this.ngControl&&(this.ngControl.valueAccessor=this),null!=(null==u?void 0:u.typeaheadDebounceInterval)&&(this._typeaheadDebounceInterval=u.typeaheadDebounceInterval),this._scrollStrategyFactory=p,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(d)||0,this.id=this.id}get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(t){this._placeholder=t,this.stateChanges.next()}get required(){return this._required}set required(t){this._required=rI(t),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(t){if(this._selectionModel&&("undefined"==typeof ngDevMode||ngDevMode))
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
throw(function e(){return Error("Cannot change `multiple` mode of select after initialization.")})();this._multiple=rI(t)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(t){this._disableOptionCentering=rI(t)}get compareWith(){return this._compareWith}set compareWith(t){if("function"!=typeof t&&("undefined"==typeof ngDevMode||ngDevMode))throw(function e(){return Error("`compareWith` must be a function.")})();this._compareWith=t,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(t){(t!==this._value||this._multiple&&Array.isArray(t))&&(this.options&&this._setSelectionByValue(t),this._value=t)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(t){this._typeaheadDebounceInterval=sI(t)}get id(){return this._id}set id(t){this._id=t||this._uid,this.stateChanges.next()}ngOnInit(){this._selectionModel=new jH(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(ke(),un(this._destroy)).subscribe((()=>this._panelDoneAnimating(this.panelOpen)))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(un(this._destroy)).subscribe((t=>{t.added.forEach((t=>t.select())),t.removed.forEach((t=>t.deselect()))})),this.options.changes.pipe(cn(null),un(this._destroy)).subscribe((()=>{this._resetOptions(),this._initializeSelection()}))}ngDoCheck(){const t=this._getTriggerAriaLabelledby();if(t!==this._triggerAriaLabelledBy){const e=this._elementRef.nativeElement;this._triggerAriaLabelledBy=t,t?e.setAttribute("aria-labelledby",t):e.removeAttribute("aria-labelledby")}this.ngControl&&this.updateErrorState()}ngOnChanges(t){t.disabled&&this.stateChanges.next(),t.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._destroy.next(),this._destroy.complete(),this.stateChanges.complete()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(t){this.value=t}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel.selected:this._selectionModel.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const t=this._selectionModel.selected.map((t=>t.viewValue));return this._isRtl()&&t.reverse(),t.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(t){this.disabled||(this.panelOpen?this._handleOpenKeydown(t):this._handleClosedKeydown(t))}_handleClosedKeydown(t){const e=t.keyCode,n=e===iI||e===oI||37===e||39===e,o=e===tI||e===nI,i=this._keyManager;if(!i.isTyping()&&o&&!aI(t)||(this.multiple||t.altKey)&&n)t.preventDefault(),this.open();else if(!this.multiple){const e=this.selected;i.onKeydown(t);const n=this.selected;n&&e!==n&&this._liveAnnouncer.announce(n.viewValue,1e4)}}_handleOpenKeydown(t){const e=this._keyManager,n=t.keyCode,o=n===iI||n===oI,i=e.isTyping();if(o&&t.altKey)t.preventDefault(),this.close();else if(i||n!==tI&&n!==nI||!e.activeItem||aI(t))if(!i&&this._multiple&&65===n&&t.ctrlKey){t.preventDefault();const e=this.options.some((t=>!t.disabled&&!t.selected));this.options.forEach((t=>{t.disabled||(e?t.select():t.deselect())}))}else{const n=e.activeItemIndex;e.onKeydown(t),this._multiple&&o&&t.shiftKey&&e.activeItem&&e.activeItemIndex!==n&&e.activeItem._selectViaInteraction()}else t.preventDefault(),e.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this.disabled||this.panelOpen||(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this.overlayDir.positionChange.pipe(Ne(1)).subscribe((()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()}))}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then((()=>{this._setSelectionByValue(this.ngControl?this.ngControl.value:this._value),this.stateChanges.next()}))}_setSelectionByValue(t){if(this._selectionModel.selected.forEach((t=>t.setInactiveStyles())),this._selectionModel.clear(),this.multiple&&t){if(!Array.isArray(t)&&("undefined"==typeof ngDevMode||ngDevMode))throw(function e(){return Error("Value must be an array in multiple-selection mode.")})();t.forEach((t=>this._selectValue(t))),this._sortValues()}else{const e=this._selectValue(t);e?this._keyManager.updateActiveItem(e):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectValue(t){const e=this.options.find((e=>{if(this._selectionModel.isSelected(e))return!1;try{return null!=e.value&&this._compareWith(e.value,t)}catch(t){return("undefined"==typeof ngDevMode||ngDevMode)&&console.warn(t),!1}}));return e&&this._selectionModel.select(e),e}_initKeyManager(){this._keyManager=new BI(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withAllowedModifierKeys(["shiftKey"]),this._keyManager.tabOut.pipe(un(this._destroy)).subscribe((()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())})),this._keyManager.change.pipe(un(this._destroy)).subscribe((()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):this._panelOpen||this.multiple||!this._keyManager.activeItem||this._keyManager.activeItem._selectViaInteraction()}))}_resetOptions(){const t=Wt(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(un(t)).subscribe((t=>{this._onSelect(t.source,t.isUserInput),t.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())})),Wt(...this.options.map((t=>t._stateChanges))).pipe(un(t)).subscribe((()=>{this._changeDetectorRef.markForCheck(),this.stateChanges.next()}))}_onSelect(t,e){const n=this._selectionModel.isSelected(t);null!=t.value||this._multiple?(n!==t.selected&&(t.selected?this._selectionModel.select(t):this._selectionModel.deselect(t)),e&&this._keyManager.setActiveItem(t),this.multiple&&(this._sortValues(),e&&this.focus())):(t.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(t.value)),n!==this._selectionModel.isSelected(t)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const t=this.options.toArray();this._selectionModel.sort(((e,n)=>this.sortComparator?this.sortComparator(e,n,t):t.indexOf(e)-t.indexOf(n))),this.stateChanges.next()}}_propagateChanges(t){let e=null;e=this.multiple?this.selected.map((t=>t.value)):this.selected?this.selected.value:t,this._value=e,this.valueChange.emit(e),this._onChange(e),this.selectionChange.emit(this._getChangeEvent(e)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){this._keyManager&&(this.empty?this._keyManager.setFirstItemActive():this._keyManager.setActiveItem(this._selectionModel.selected[0]))}_canOpen(){var t;return!this._panelOpen&&!this.disabled&&(null===(t=this.options)||void 0===t?void 0:t.length)>0}focus(t){this._elementRef.nativeElement.focus(t)}_getPanelAriaLabelledby(){var t;if(this.ariaLabel)return null;const e=null===(t=this._parentFormField)||void 0===t?void 0:t.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){var t;if(this.ariaLabel)return null;const e=null===(t=this._parentFormField)||void 0===t?void 0:t.getLabelId();let n=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(n+=" "+this.ariaLabelledby),n}_panelDoneAnimating(t){this.openedChange.emit(t)}setDescribedByIds(t){this._ariaDescribedby=t.join(" ")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}}cW.ɵfac=function t(e){return new(e||cW)(Mu(QH),Mu(Hh),Mu(tC),Mu(eH),Mu(ch),Mu(Mz,8),Mu(Bj,8),Mu(lU,8),Mu(yV,8),Mu(nj,10),Or("tabindex"),Mu(eW),Mu(az),Mu(nW,8))},cW.ɵdir=Jo({type:cW,viewQuery:function t(e,n){if(1&e&&(Wb(WU,1),Wb(GU,1),Wb(eL,1)),2&e){let t;Ub(t=Yb())&&(n.trigger=t.first),Ub(t=Yb())&&(n.panel=t.first),Ub(t=Yb())&&(n.overlayDir=t.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],id:"id",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",typeaheadDebounceInterval:"typeaheadDebounceInterval",panelClass:"panelClass",ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",sortComparator:"sortComparator"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[gm,Si]}),cW.ctorParameters=()=>[{type:QH},{type:Hh},{type:tC},{type:eH},{type:ch},{type:Mz,decorators:[{type:_s}]},{type:Bj,decorators:[{type:_s}]},{type:lU,decorators:[{type:_s}]},{type:_V,decorators:[{type:_s},{type:ys,args:[yV]}]},{type:nj,decorators:[{type:Cs},{type:_s}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:void 0,decorators:[{type:ys,args:[eW]}]},{type:az},{type:void 0,decorators:[{type:_s},{type:ys,args:[nW]}]}],cW.propDecorators={trigger:[{type:Fr,args:["trigger"]}],panel:[{type:Fr,args:["panel"]}],overlayDir:[{type:Fr,args:[eL]}],panelClass:[{type:y_}],placeholder:[{type:y_}],required:[{type:y_}],multiple:[{type:y_}],disableOptionCentering:[{type:y_}],compareWith:[{type:y_}],value:[{type:y_}],ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],errorStateMatcher:[{type:y_}],typeaheadDebounceInterval:[{type:y_}],sortComparator:[{type:y_}],id:[{type:y_}],openedChange:[{type:__}],_openedStream:[{type:__,args:["opened"]}],_closedStream:[{type:__,args:["closed"]}],selectionChange:[{type:__}],valueChange:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(cW,[{type:g_}],(function(){return[{type:QH},{type:Hh},{type:tC},{type:eH},{type:ch},{type:Mz,decorators:[{type:_s}]},{type:Bj,decorators:[{type:_s}]},{type:lU,decorators:[{type:_s}]},{type:_V,decorators:[{type:_s},{type:ys,args:[yV]}]},{type:nj,decorators:[{type:Cs},{type:_s}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:void 0,decorators:[{type:ys,args:[eW]}]},{type:az},{type:void 0,decorators:[{type:_s},{type:ys,args:[nW]}]}]}),{ariaLabel:[{type:y_,args:["aria-label"]}],openedChange:[{type:__}],_openedStream:[{type:__,args:["opened"]}],_closedStream:[{type:__,args:["closed"]}],selectionChange:[{type:__}],valueChange:[{type:__}],id:[{type:y_}],placeholder:[{type:y_}],required:[{type:y_}],multiple:[{type:y_}],disableOptionCentering:[{type:y_}],compareWith:[{type:y_}],value:[{type:y_}],typeaheadDebounceInterval:[{type:y_}],trigger:[{type:Fr,args:["trigger"]}],panel:[{type:Fr,args:["panel"]}],overlayDir:[{type:Fr,args:[eL]}],panelClass:[{type:y_}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],errorStateMatcher:[{type:y_}],sortComparator:[{type:y_}]});class dW extends cW{constructor(){super(...arguments),this._scrollTop=0,this._triggerFontSize=0,this._transformOrigin="top",this._offsetY=0,this._positions=[{originX:"start",originY:"top",overlayX:"start",overlayY:"top"},{originX:"start",originY:"bottom",overlayX:"start",overlayY:"bottom"}]}_calculateOverlayScroll(t,e,n){const o=this._getItemHeight();return Math.min(Math.max(0,o*t-e+o/2),n)}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(un(this._destroy)).subscribe((()=>{this.panelOpen&&(this._triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this._changeDetectorRef.markForCheck())}))}open(){super._canOpen()&&(super.open(),this._triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this._triggerFontSize=parseInt(getComputedStyle(this.trigger.nativeElement).fontSize||"0"),this._calculateOverlayPosition(),this._ngZone.onStable.pipe(Ne(1)).subscribe((()=>{this._triggerFontSize&&this.overlayDir.overlayRef&&this.overlayDir.overlayRef.overlayElement&&(this.overlayDir.overlayRef.overlayElement.style.fontSize=`${this._triggerFontSize}px`)})))}_scrollOptionIntoView(t){const e=wH(t,this.options,this.optionGroups),n=this._getItemHeight();this.panel.nativeElement.scrollTop=kH((t+e)*n,n,this.panel.nativeElement.scrollTop,tW)}_positioningSettled(){this._calculateOverlayOffsetX(),this.panel.nativeElement.scrollTop=this._scrollTop}_panelDoneAnimating(t){this.panelOpen?this._scrollTop=0:(this.overlayDir.offsetX=0,this._changeDetectorRef.markForCheck()),super._panelDoneAnimating(t)}_getChangeEvent(t){return new aW(this,t)}_calculateOverlayOffsetX(){const t=this.overlayDir.overlayRef.overlayElement.getBoundingClientRect(),e=this._viewportRuler.getViewportSize(),n=this._isRtl(),o=this.multiple?56:32;let i;if(this.multiple)i=40;else if(this.disableOptionCentering)i=16;else{let t=this._selectionModel.selected[0]||this.options.first;i=t&&t.group?32:16}n||(i*=-1);const a=0-(t.left+i-(n?o:0)),r=t.right+i-e.width+(n?0:o);a>0?i+=a+8:r>0&&(i-=r+8),this.overlayDir.offsetX=Math.round(i),this.overlayDir.overlayRef.updatePosition()}_calculateOverlayOffsetY(t,e,n){const o=this._getItemHeight(),i=(o-this._triggerRect.height)/2,a=Math.floor(tW/o);let r;return this.disableOptionCentering?0:(r=0===this._scrollTop?t*o:this._scrollTop===n?(t-(this._getItemCount()-a))*o+(o-(this._getItemCount()*o-tW)%o):e-o/2,Math.round(-1*r-i))}_checkOverlayWithinViewport(t){const e=this._getItemHeight(),n=this._viewportRuler.getViewportSize(),o=this._triggerRect.top-8,i=n.height-this._triggerRect.bottom-8,a=Math.abs(this._offsetY),r=Math.min(this._getItemCount()*e,tW)-a-this._triggerRect.height;r>i?this._adjustPanelUp(r,i):a>o?this._adjustPanelDown(a,o,t):this._transformOrigin=this._getOriginBasedOnOption()}_adjustPanelUp(t,e){const n=Math.round(t-e);this._scrollTop-=n,this._offsetY-=n,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop<=0&&(this._scrollTop=0,this._offsetY=0,this._transformOrigin="50% bottom 0px")}_adjustPanelDown(t,e,n){const o=Math.round(t-e);if(this._scrollTop+=o,this._offsetY+=o,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop>=n)return this._scrollTop=n,this._offsetY=0,void(this._transformOrigin="50% top 0px")}_calculateOverlayPosition(){const t=this._getItemHeight(),e=this._getItemCount(),n=Math.min(e*t,tW),o=e*t-n;let i;i=this.empty?0:Math.max(this.options.toArray().indexOf(this._selectionModel.selected[0]),0),i+=wH(i,this.options,this.optionGroups);const a=n/2;this._scrollTop=this._calculateOverlayScroll(i,a,o),this._offsetY=this._calculateOverlayOffsetY(i,a,o),this._checkOverlayWithinViewport(o)}_getOriginBasedOnOption(){const t=this._getItemHeight(),e=(t-this._triggerRect.height)/2;return`50% ${Math.abs(this._offsetY)-e+t/2}px 0px`}_getItemHeight(){return 3*this._triggerFontSize}_getItemCount(){return this.options.length+this.optionGroups.length}}dW.ɵfac=function t(e){return pW(e||dW)},dW.ɵcmp=Uo({type:dW,selectors:[["mat-select"]],contentQueries:function t(e,n,o){if(1&e&&(Gb(o,sW,1),Gb(o,PH,1),Gb(o,_H,1)),2&e){let t;Ub(t=Yb())&&(n.customTrigger=t.first),Ub(t=Yb())&&(n.options=t),Ub(t=Yb())&&(n.optionGroups=t)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","true",1,"mat-select"],hostVars:20,hostBindings:function t(e,n){1&e&&Nu("keydown",(function t(e){return n._handleKeydown(e)}))("focus",(function t(){return n._onFocus()}))("blur",(function t(){return n._onBlur()})),2&e&&(Nm("id",n.id)("tabindex",n.tabIndex)("aria-controls",n.panelOpen?n.id+"-panel":null)("aria-expanded",n.panelOpen)("aria-label",n.ariaLabel||null)("aria-required",n.required.toString())("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-describedby",n._ariaDescribedby||null)("aria-activedescendant",n._getAriaActiveDescendant()),af("mat-select-disabled",n.disabled)("mat-select-invalid",n.errorState)("mat-select-required",n.required)("mat-select-empty",n.empty)("mat-select-multiple",n.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matSelect"],features:[ih([{provide:iV,useExisting:dW},{provide:gH,useExisting:dW}]),gm],ngContentSelectors:["mat-select-trigger","*"],decls:9,vars:12,consts:[["cdk-overlay-origin","",1,"mat-select-trigger",3,"click"],["origin","cdkOverlayOrigin","trigger",""],[1,"mat-select-value",3,"ngSwitch"],["class","mat-select-placeholder mat-select-min-line",4,"ngSwitchCase"],["class","mat-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-select-arrow-wrapper"],[1,"mat-select-arrow"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayMinWidth","cdkConnectedOverlayOffsetY","backdropClick","attach","detach"],[1,"mat-select-placeholder","mat-select-min-line"],[1,"mat-select-value-text",3,"ngSwitch"],["class","mat-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-select-min-line"],[1,"mat-select-panel-wrap"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function t(e,n){if(1&e&&(Vu(JU),Ou(0,"div",0,1),Nu("click",(function t(){return n.toggle()})),Ou(3,"div",2),Wm(4,YU,2,1,"span",3),Wm(5,XU,3,2,"span",4),Pu(),Ou(6,"div",5),wu(7,"div",6),Pu(),Pu(),Wm(8,KU,4,14,"ng-template",7),Nu("backdropClick",(function t(){return n.close()}))("attach",(function t(){return n._onAttached()}))("detach",(function t(){return n.close()}))),2&e){const t=Gm(1);Nm("aria-owns",n.panelOpen?n.id+"-panel":null),Jc(3),vu("ngSwitch",n.empty),Nm("id",n._valueId),Jc(1),vu("ngSwitchCase",!0),Jc(1),vu("ngSwitchCase",!1),Jc(3),vu("cdkConnectedOverlayPanelClass",n._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",n._scrollStrategy)("cdkConnectedOverlayOrigin",t)("cdkConnectedOverlayOpen",n.panelOpen)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayMinWidth",null==n._triggerRect?null:n._triggerRect.width)("cdkConnectedOverlayOffsetY",n._offsetY)}},directives:[tL,cv,dv,eL,pv,tv],styles:['.mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-table;cursor:pointer;position:relative;box-sizing:border-box}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-select-value{display:table-cell;max-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{display:table-cell;vertical-align:middle}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:transparent;-webkit-text-fill-color:transparent;transition:none;display:block}.mat-select-min-line:empty::before{content:" ";white-space:pre;width:1px}\n'],encapsulation:2,data:{animation:[QU.transformPanelWrap,QU.transformPanel]},changeDetection:0}),dW.propDecorators={options:[{type:zr,args:[PH,{descendants:!0}]}],optionGroups:[{type:zr,args:[_H,{descendants:!0}]}],customTrigger:[{type:Hr,args:[sW]}]};const pW=vr(dW);("undefined"==typeof ngDevMode||ngDevMode)&&db(dW,[{type:h_,args:[{selector:"mat-select",exportAs:"matSelect",template:'\x3c!--\n Note that the select trigger element specifies `aria-owns` pointing to the listbox overlay.\n While aria-owns is not required for the ARIA 1.2 `role="combobox"` interaction pattern,\n it fixes an issue with VoiceOver when the select appears inside of an `aria-model="true"`\n element (e.g. a dialog). Without this `aria-owns`, the `aria-modal` on a dialog prevents\n VoiceOver from "seeing" the select\'s listbox overlay for aria-activedescendant.\n Using `aria-owns` re-parents the select overlay so that it works again.\n See https://github.com/angular/components/issues/20694\n--\x3e\n<div cdk-overlay-origin\n     [attr.aria-owns]="panelOpen ? id + \'-panel\' : null"\n     class="mat-select-trigger"\n     (click)="toggle()"\n     #origin="cdkOverlayOrigin"\n     #trigger>\n  <div class="mat-select-value" [ngSwitch]="empty" [attr.id]="_valueId">\n    <span class="mat-select-placeholder mat-select-min-line" *ngSwitchCase="true">{{placeholder}}</span>\n    <span class="mat-select-value-text" *ngSwitchCase="false" [ngSwitch]="!!customTrigger">\n      <span class="mat-select-min-line" *ngSwitchDefault>{{triggerValue}}</span>\n      <ng-content select="mat-select-trigger" *ngSwitchCase="true"></ng-content>\n    </span>\n  </div>\n\n  <div class="mat-select-arrow-wrapper"><div class="mat-select-arrow"></div></div>\n</div>\n\n<ng-template\n  cdk-connected-overlay\n  cdkConnectedOverlayLockPosition\n  cdkConnectedOverlayHasBackdrop\n  cdkConnectedOverlayBackdropClass="cdk-overlay-transparent-backdrop"\n  [cdkConnectedOverlayPanelClass]="_overlayPanelClass"\n  [cdkConnectedOverlayScrollStrategy]="_scrollStrategy"\n  [cdkConnectedOverlayOrigin]="origin"\n  [cdkConnectedOverlayOpen]="panelOpen"\n  [cdkConnectedOverlayPositions]="_positions"\n  [cdkConnectedOverlayMinWidth]="_triggerRect?.width!"\n  [cdkConnectedOverlayOffsetY]="_offsetY"\n  (backdropClick)="close()"\n  (attach)="_onAttached()"\n  (detach)="close()">\n  <div class="mat-select-panel-wrap" [@transformPanelWrap]>\n    <div\n      #panel\n      role="listbox"\n      tabindex="-1"\n      class="mat-select-panel {{ _getPanelTheme() }}"\n      [attr.id]="id + \'-panel\'"\n      [attr.aria-multiselectable]="multiple"\n      [attr.aria-label]="ariaLabel || null"\n      [attr.aria-labelledby]="_getPanelAriaLabelledby()"\n      [ngClass]="panelClass"\n      [@transformPanel]="multiple ? \'showing-multiple\' : \'showing\'"\n      (@transformPanel.done)="_panelDoneAnimatingStream.next($event.toState)"\n      [style.transformOrigin]="_transformOrigin"\n      [style.font-size.px]="_triggerFontSize"\n      (keydown)="_handleKeydown($event)">\n      <ng-content></ng-content>\n    </div>\n  </div>\n</ng-template>\n',inputs:["disabled","disableRipple","tabIndex"],encapsulation:Po.None,changeDetection:xo.OnPush,host:{role:"combobox","aria-autocomplete":"none","aria-haspopup":"true",class:"mat-select","[attr.id]":"id","[attr.tabindex]":"tabIndex","[attr.aria-controls]":'panelOpen ? id + "-panel" : null',"[attr.aria-expanded]":"panelOpen","[attr.aria-label]":"ariaLabel || null","[attr.aria-required]":"required.toString()","[attr.aria-disabled]":"disabled.toString()","[attr.aria-invalid]":"errorState","[attr.aria-describedby]":"_ariaDescribedby || null","[attr.aria-activedescendant]":"_getAriaActiveDescendant()","[class.mat-select-disabled]":"disabled","[class.mat-select-invalid]":"errorState","[class.mat-select-required]":"required","[class.mat-select-empty]":"empty","[class.mat-select-multiple]":"multiple","(keydown)":"_handleKeydown($event)","(focus)":"_onFocus()","(blur)":"_onBlur()"},animations:[QU.transformPanelWrap,QU.transformPanel],providers:[{provide:iV,useExisting:dW},{provide:gH,useExisting:dW}],styles:['.mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-table;cursor:pointer;position:relative;box-sizing:border-box}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-select-value{display:table-cell;max-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{display:table-cell;vertical-align:middle}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:transparent;-webkit-text-fill-color:transparent;transition:none;display:block}.mat-select-min-line:empty::before{content:" ";white-space:pre;width:1px}\n']}]}],null,{options:[{type:zr,args:[PH,{descendants:!0}]}],optionGroups:[{type:zr,args:[_H,{descendants:!0}]}],customTrigger:[{type:Hr,args:[sW]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class mW{}function uW(t,e){if(1&t){const t=Eu();Ou(0,"span",5),Nu("click",(function e(n){ra(t);const o=Lu().$implicit;return Lu().onActivePluginSelection(n,o.id)})),Mf(1),Pu()}if(2&t){const t=Lu().$implicit;Nm("data-plugin-id",t.id),Jc(1),xf(" ",t.tab_name," ")}}function fW(t,e){1&t&&(Ou(0,"mat-tab",3),Wm(1,uW,2,2,"ng-template",4),Pu()),2&t&&vu("disabled",!e.$implicit.enabled)}function gW(t,e){if(1&t&&(Ou(0,"mat-option",9),Mf(1),Pu()),2&t){const t=e.$implicit;vu("value",t.id),Nm("data-plugin-id",t.id),Jc(1),xf(" ",t.tab_name," ")}}function hW(t,e){if(1&t){const t=Eu();Ou(0,"mat-form-field",6),Ou(1,"mat-label"),Mf(2,"Inactive"),Pu(),Ou(3,"mat-select",7),Nu("selectionChange",(function e(n){return ra(t),Lu().onDisabledPluginSelectionChanged(n)})),Wm(4,gW,2,3,"mat-option",8),Pu(),Pu()}if(2&t){const t=Lu();Jc(3),vu("value",t.selectedPlugin),Jc(1),vu("ngForOf",t.disabledPlugins)}}mW.ɵfac=function t(e){return new(e||mW)},mW.ɵmod=Zo({type:mW}),mW.ɵinj=co({providers:[oW],imports:[[Bv,iL,SH,Tz],oF,CV,SH,Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(mW,{declarations:function(){return[dW,lW]},imports:function(){return[Bv,iL,SH,Tz]},exports:function(){return[oF,CV,dW,lW,SH,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(mW,[{type:k_,args:[{imports:[Bv,iL,SH,Tz],exports:[oF,CV,dW,lW,SH,Tz],declarations:[dW,lW],providers:[oW]}]}],null,null);class bW{constructor(){this.onPluginSelectionChanged=new Ab}getActivePluginIndex(){return this.activePlugins.findIndex((({id:t})=>t===this.selectedPlugin))}onActivePluginSelection(t,e){t.stopPropagation(),this.onPluginSelectionChanged.emit(e)}onDisabledPluginSelectionChanged(t){this.onPluginSelectionChanged.emit(t.value)}}bW.ɵfac=function t(e){return new(e||bW)},bW.ɵcmp=Uo({type:bW,selectors:[["plugin-selector-component"]],inputs:{activePlugins:"activePlugins",disabledPlugins:"disabledPlugins",selectedPlugin:"selectedPlugin"},outputs:{onPluginSelectionChanged:"onPluginSelectionChanged"},decls:3,vars:3,consts:[["animationDuration","100ms",1,"active-plugin-list",3,"selectedIndex"],[3,"disabled",4,"ngFor","ngForOf"],["floatLabel","never",4,"ngIf"],[3,"disabled"],["mat-tab-label",""],[1,"plugin-name",3,"click"],["floatLabel","never"],[3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function t(e,n){1&e&&(Ou(0,"mat-tab-group",0),Wm(1,fW,2,1,"mat-tab",1),Pu(),Wm(2,hW,5,2,"mat-form-field",2)),2&e&&(vu("selectedIndex",n.getActivePluginIndex()),Jc(1),vu("ngForOf",n.activePlugins),Jc(1),vu("ngIf",n.disabledPlugins.length>0))},directives:[PB,ov,av,gB,pB,_V,cV,dW,PH],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{align-items:center;display:flex;flex:1 1 auto;font-size:14px;height:100%;overflow:hidden}mat-form-field[_ngcontent-%COMP%]{flex:0 0;margin-top:5px;width:130px}mat-label[_ngcontent-%COMP%], mat-select[_ngcontent-%COMP%], mat-option[_ngcontent-%COMP%]{font-weight:500;text-transform:uppercase}.active-plugin-list[_ngcontent-%COMP%]{align-self:stretch;flex:1 1 auto;overflow:hidden}.plugin-name[_ngcontent-%COMP%]{align-items:center;display:inline-flex;height:100%;justify-content:center;padding:0 12px;width:100%}[_nghost-%COMP%]     .active-plugin-list.mat-primary .mat-tab-list .mat-ink-bar{background-color:currentColor}[_nghost-%COMP%]     .active-plugin-list .mat-tab-label, [_nghost-%COMP%]     .active-plugin-list .mat-tab-link{color:inherit;opacity:.7}[_nghost-%COMP%]     .active-plugin-list .mat-tab-label.mat-tab-label-active, [_nghost-%COMP%]     .active-plugin-list .mat-tab-link.mat-tab-label-active{opacity:1}[_nghost-%COMP%]     .active-plugin-list .mat-tab-header-pagination-chevron{border-color:currentColor}[_nghost-%COMP%]     .active-plugin-list .mat-tab-header-pagination-disabled{visibility:hidden}[_nghost-%COMP%]     .active-plugin-list .mat-tab-disabled{display:none}[_nghost-%COMP%]     .active-plugin-list .mat-tab-header, [_nghost-%COMP%]     .active-plugin-list .mat-tab-labels, [_nghost-%COMP%]     .active-plugin-list .mat-tab-label{height:100%}[_nghost-%COMP%]     .active-plugin-list .mat-tab-label{min-width:48px;padding:0;text-transform:uppercase}[_nghost-%COMP%]     .active-plugin-list .mat-tab-label-content{height:100%}[_nghost-%COMP%]     .active-plugin-list mat-tab-header .mat-tab-list{padding:0 36px}[_nghost-%COMP%]     .active-plugin-list mat-tab-header>:first-child, [_nghost-%COMP%]     .active-plugin-list mat-tab-header>.mat-tab-label-container, [_nghost-%COMP%]     .active-plugin-list mat-tab-header>:last-child{bottom:0;position:absolute;top:0}[_nghost-%COMP%]     .active-plugin-list mat-tab-header>:first-child, [_nghost-%COMP%]     .active-plugin-list mat-tab-header>.mat-tab-label-container{left:0}[_nghost-%COMP%]     .active-plugin-list mat-tab-header>:last-child, [_nghost-%COMP%]     .active-plugin-list mat-tab-header>.mat-tab-label-container{right:0}[_nghost-%COMP%]     .active-plugin-list mat-tab-header>.mat-tab-header-pagination{background-color:#f57c00}body.dark-mode   [_nghost-%COMP%]     .active-plugin-list mat-tab-header>.mat-tab-header-pagination{background-color:#ef6c00}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(bW,[{type:h_,args:[{selector:"plugin-selector-component",templateUrl:"./plugin_selector_component.ng.html",styleUrls:["./plugin_selector_component.css"]}]}],null,{activePlugins:[{type:y_}],disabledPlugins:[{type:y_}],selectedPlugin:[{type:y_}],onPluginSelectionChanged:[{type:__}]});const yW=zk(pA,(t=>Object.keys(t).map((e=>Object.assign({},{id:e},t[e]))))),_W=zk(yW,(t=>t.filter((t=>!t.enabled))));class CW{constructor(t){this.store=t,this.activePlugin$=this.store.pipe(Rk(dA)),this.plugins$=this.store.pipe(Rk(yW)),this.disabledPlugins$=this.store.pipe(Rk(_W))}onPluginSelectionChange(t){this.store.dispatch(VE({plugin:t}))}}function MW(t,e){}CW.ɵfac=function t(e){return new(e||CW)(Mu(Ek))},CW.ɵcmp=Uo({type:CW,selectors:[["plugin-selector"]],decls:4,vars:9,consts:[[3,"activePlugins","disabledPlugins","selectedPlugin","onPluginSelectionChanged"]],template:function t(e,n){1&e&&(Ou(0,"plugin-selector-component",0),Nu("onPluginSelectionChanged",(function t(e){return n.onPluginSelectionChange(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("activePlugins",Pb(1,3,n.plugins$))("disabledPlugins",Pb(2,5,n.disabledPlugins$))("selectedPlugin",Pb(3,7,n.activePlugin$))},directives:[bW],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(CW,[{type:h_,args:[{selector:"plugin-selector",template:'\n    <plugin-selector-component\n      [activePlugins]="plugins$ | async"\n      [disabledPlugins]="disabledPlugins$ | async"\n      [selectedPlugin]="activePlugin$ | async"\n      (onPluginSelectionChanged)="onPluginSelectionChange($event)"\n    ></plugin-selector-component>\n  '}]}],(function(){return[{type:Ek}]}),null);class vW{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.autoFocus=!0,this.restoreFocus=!0,this.closeOnNavigation=!0}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const xW={dialogContainer:Kx("dialogContainer",[tO("void, exit",$x({opacity:0,transform:"scale(0.7)"})),tO("enter",$x({transform:"none"})),nO("* => enter",Jx("150ms cubic-bezier(0, 0, 0.2, 1)",$x({transform:"none",opacity:1}))),nO("* => void, * => exit",Jx("75ms cubic-bezier(0.4, 0.0, 0.2, 1)",$x({opacity:0})))])};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function OW(){throw Error("Attempting to attach dialog content after content is already attached")}class PW extends dF{constructor(t,e,n,o,i,a){super(),this._elementRef=t,this._focusTrapFactory=e,this._changeDetectorRef=n,this._config=i,this._focusMonitor=a,this._animationStateChanged=new Ab,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this.attachDomPortal=t=>(this._portalOutlet.hasAttached()&&("undefined"==typeof ngDevMode||ngDevMode)&&OW(),this._portalOutlet.attachDomPortal(t)),this._ariaLabelledBy=i.ariaLabelledBy||null,this._document=o}_initializeWithAttachedContent(){this._setupFocusTrap(),this._capturePreviouslyFocusedElement(),this._focusDialogContainer()}attachComponentPortal(t){return this._portalOutlet.hasAttached()&&("undefined"==typeof ngDevMode||ngDevMode)&&OW(),this._portalOutlet.attachComponentPortal(t)}attachTemplatePortal(t){return this._portalOutlet.hasAttached()&&("undefined"==typeof ngDevMode||ngDevMode)&&OW(),this._portalOutlet.attachTemplatePortal(t)}_recaptureFocus(){this._containsFocus()||(!this._config.autoFocus||!this._focusTrap.focusInitialElement())&&this._elementRef.nativeElement.focus()}_trapFocus(){this._config.autoFocus?this._focusTrap.focusInitialElementWhenReady():this._containsFocus()||this._elementRef.nativeElement.focus()}_restoreFocus(){const t=this._elementFocusedBeforeDialogWasOpened;if(this._config.restoreFocus&&t&&"function"==typeof t.focus){const e=this._getActiveElement(),n=this._elementRef.nativeElement;e&&e!==this._document.body&&e!==n&&!n.contains(e)||(this._focusMonitor?(this._focusMonitor.focusVia(t,this._closeInteractionType),this._closeInteractionType=null):t.focus())}this._focusTrap&&this._focusTrap.destroy()}_setupFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement)}_capturePreviouslyFocusedElement(){this._document&&(this._elementFocusedBeforeDialogWasOpened=this._getActiveElement())}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const t=this._elementRef.nativeElement,e=this._getActiveElement();return t===e||t.contains(e)}_getActiveElement(){var t;const e=this._document.activeElement;return(null===(t=null==e?void 0:e.shadowRoot)||void 0===t?void 0:t.activeElement)||e}}PW.ɵfac=function t(e){return new(e||PW)(Mu(ch),Mu(YI),Mu(Hh),Mu(UC,8),Mu(vW),Mu(pz))},PW.ɵdir=Jo({type:PW,viewQuery:function t(e,n){if(1&e&&Wb(gF,3),2&e){let t;Ub(t=Yb())&&(n._portalOutlet=t.first)}},features:[gm]}),PW.ctorParameters=()=>[{type:ch},{type:YI},{type:Hh},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:vW},{type:pz}],PW.propDecorators={_portalOutlet:[{type:Fr,args:[gF,{static:!0}]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(PW,[{type:g_}],(function(){return[{type:ch},{type:YI},{type:Hh},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:vW},{type:pz}]}),{_portalOutlet:[{type:Fr,args:[gF,{static:!0}]}]});class wW extends PW{constructor(){super(...arguments),this._state="enter"}_onAnimationDone({toState:t,totalTime:e}){"enter"===t?(this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})):"exit"===t&&(this._restoreFocus(),this._animationStateChanged.next({state:"closed",totalTime:e}))}_onAnimationStart({toState:t,totalTime:e}){"enter"===t?this._animationStateChanged.next({state:"opening",totalTime:e}):"exit"!==t&&"void"!==t||this._animationStateChanged.next({state:"closing",totalTime:e})}_startExitAnimation(){this._state="exit",this._changeDetectorRef.markForCheck()}}wW.ɵfac=function t(e){return kW(e||wW)},wW.ɵcmp=Uo({type:wW,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1","aria-modal","true",1,"mat-dialog-container"],hostVars:6,hostBindings:function t(e,n){1&e&&Iu("@dialogContainer.start",(function t(e){return n._onAnimationStart(e)}))("@dialogContainer.done",(function t(e){return n._onAnimationDone(e)})),2&e&&(kf("id",n._id),Nm("role",n._config.role)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledBy)("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null),Sf("@dialogContainer",n._state))},features:[gm],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function t(e,n){1&e&&Wm(0,MW,0,0,"ng-template",0)},directives:[gF],styles:[".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"],encapsulation:2,data:{animation:[xW.dialogContainer]}});const kW=vr(wW);("undefined"==typeof ngDevMode||ngDevMode)&&db(wW,[{type:h_,args:[{selector:"mat-dialog-container",template:"<ng-template cdkPortalOutlet></ng-template>\n",encapsulation:Po.None,changeDetection:xo.Default,animations:[xW.dialogContainer],host:{class:"mat-dialog-container",tabindex:"-1","aria-modal":"true","[id]":"_id","[attr.role]":"_config.role","[attr.aria-labelledby]":"_config.ariaLabel ? null : _ariaLabelledBy","[attr.aria-label]":"_config.ariaLabel","[attr.aria-describedby]":"_config.ariaDescribedBy || null","[@dialogContainer]":"_state","(@dialogContainer.start)":"_onAnimationStart($event)","(@dialogContainer.done)":"_onAnimationDone($event)"},styles:[".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let SW=0;class DW{constructor(t,e,n="mat-dialog-"+SW++){this._overlayRef=t,this._containerInstance=e,this.id=n,this.disableClose=this._containerInstance._config.disableClose,this._afterOpened=new x,this._afterClosed=new x,this._beforeClosed=new x,this._state=0,e._id=n,e._animationStateChanged.pipe(Gt((t=>"opened"===t.state)),Ne(1)).subscribe((()=>{this._afterOpened.next(),this._afterOpened.complete()})),e._animationStateChanged.pipe(Gt((t=>"closed"===t.state)),Ne(1)).subscribe((()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()})),t.detachments().subscribe((()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._afterClosed.next(this._result),this._afterClosed.complete(),this.componentInstance=null,this._overlayRef.dispose()})),t.keydownEvents().pipe(Gt((t=>t.keyCode===eI&&!this.disableClose&&!aI(t)))).subscribe((t=>{t.preventDefault(),EW(this,"keyboard")})),t.backdropClick().subscribe((()=>{this.disableClose?this._containerInstance._recaptureFocus():EW(this,"mouse")}))}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(Gt((t=>"closing"===t.state)),Ne(1)).subscribe((e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout((()=>this._finishDialogClose()),e.totalTime+100)})),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._afterClosed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._overlayRef.backdropClick()}keydownEvents(){return this._overlayRef.keydownEvents()}updatePosition(t){let e=this._getPositionStrategy();return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._overlayRef.updatePosition(),this}updateSize(t="",e=""){return this._overlayRef.updateSize({width:t,height:e}),this._overlayRef.updatePosition(),this}addPanelClass(t){return this._overlayRef.addPanelClass(t),this}removePanelClass(t){return this._overlayRef.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._overlayRef.dispose()}_getPositionStrategy(){return this._overlayRef.getConfig().positionStrategy}}function EW(t,e,n){return void 0!==t._containerInstance&&(t._containerInstance._closeInteractionType=e),t.close(n)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const AW=new Nr("MatDialogData"),RW=new Nr("mat-dialog-default-options"),TW=new Nr("mat-dialog-scroll-strategy"),NW={provide:TW,deps:[JF],useFactory:function IW(t){return()=>t.scrollStrategies.block()}};class zW{constructor(t,e,n,o,i,a,r,s,l){this._overlay=t,this._injector=e,this._defaultOptions=n,this._parentDialog=o,this._overlayContainer=i,this._dialogRefConstructor=r,this._dialogContainerType=s,this._dialogDataToken=l,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new x,this._afterOpenedAtThisLevel=new x,this._ariaHiddenElements=new Map,this.afterAllClosed=Ft((()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(cn(void 0)))),this._scrollStrategy=a}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const t=this._parentDialog;return t?t._getAfterAllClosed():this._afterAllClosedAtThisLevel}open(t,e){if((e=(function n(t,e){return Object.assign(Object.assign({},e),t)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(e,this._defaultOptions||new vW)).id&&this.getDialogById(e.id)&&("undefined"==typeof ngDevMode||ngDevMode))throw Error(`Dialog with id "${e.id}" exists already. The dialog id must be unique.`);const o=this._createOverlay(e),i=this._attachDialogContainer(o,e),a=this._attachDialogContent(t,i,o,e);return this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(a),a.afterClosed().subscribe((()=>this._removeOpenDialog(a))),this.afterOpened.next(a),i._initializeWithAttachedContent(),a}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(t){return this.openDialogs.find((e=>e.id===t))}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_createOverlay(t){const e=this._getOverlayConfig(t);return this._overlay.create(e)}_getOverlayConfig(t){const e=new SF({positionStrategy:this._overlay.position().global(),scrollStrategy:t.scrollStrategy||this._scrollStrategy(),panelClass:t.panelClass,hasBackdrop:t.hasBackdrop,direction:t.direction,minWidth:t.minWidth,minHeight:t.minHeight,maxWidth:t.maxWidth,maxHeight:t.maxHeight,disposeOnNavigation:t.closeOnNavigation});return t.backdropClass&&(e.backdropClass=t.backdropClass),e}_attachDialogContainer(t,e){const n=Qp.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:vW,useValue:e}]}),o=new sF(this._dialogContainerType,e.viewContainerRef,n,e.componentFactoryResolver);return t.attach(o).instance}_attachDialogContent(t,e,n,o){const i=new this._dialogRefConstructor(n,e,o.id);if(t instanceof Uh)e.attachTemplatePortal(new lF(t,null,{$implicit:o.data,dialogRef:i}));else{const n=this._createInjector(o,i,e),a=e.attachComponentPortal(new sF(t,o.viewContainerRef,n));i.componentInstance=a.instance}return i.updateSize(o.width,o.height).updatePosition(o.position),i}_createInjector(t,e,n){const o=t&&t.viewContainerRef&&t.viewContainerRef.injector,i=[{provide:this._dialogContainerType,useValue:n},{provide:this._dialogDataToken,useValue:t.data},{provide:this._dialogRefConstructor,useValue:e}];return!t.direction||o&&o.get(Mz,null)||i.push({provide:Mz,useValue:{value:t.direction,change:Z()}}),Qp.create({parent:o||this._injector,providers:i})}_removeOpenDialog(t){const e=this.openDialogs.indexOf(t);e>-1&&(this.openDialogs.splice(e,1),this.openDialogs.length||(this._ariaHiddenElements.forEach(((t,e)=>{t?e.setAttribute("aria-hidden",t):e.removeAttribute("aria-hidden")})),this._ariaHiddenElements.clear(),this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const t=this._overlayContainer.getContainerElement();if(t.parentElement){const e=t.parentElement.children;for(let n=e.length-1;n>-1;n--){let o=e[n];o===t||"SCRIPT"===o.nodeName||"STYLE"===o.nodeName||o.hasAttribute("aria-live")||(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_closeDialogs(t){let e=t.length;for(;e--;)t[e].close()}}zW.ɵfac=function t(e){return new(e||zW)(Mu(JF),Mu(Qp),Mu(void 0),Mu(void 0),Mu(FF),Mu(void 0),Mu(Ur),Mu(Ur),Mu(Nr))},zW.ɵdir=Jo({type:zW}),zW.ctorParameters=()=>[{type:JF},{type:Qp},{type:void 0},{type:void 0},{type:FF},{type:void 0},{type:Ur},{type:Ur},{type:Nr}],("undefined"==typeof ngDevMode||ngDevMode)&&db(zW,[{type:g_}],(function(){return[{type:JF},{type:Qp},{type:void 0},{type:void 0},{type:FF},{type:void 0},{type:Ur},{type:Ur},{type:Nr}]}),null);class HW extends zW{constructor(t,e,n,o,i,a,r){super(t,e,o,a,r,i,DW,wW,AW)}}HW.ɵfac=function t(e){return new(e||HW)(us(JF),us(Qp),us(oM,8),us(RW,8),us(TW),us(HW,12),us(FF))},HW.ɵprov=lo({token:HW,factory:HW.ɵfac}),HW.ctorParameters=()=>[{type:JF},{type:Qp},{type:oM,decorators:[{type:_s}]},{type:vW,decorators:[{type:_s},{type:ys,args:[RW]}]},{type:void 0,decorators:[{type:ys,args:[TW]}]},{type:HW,decorators:[{type:_s},{type:Ms}]},{type:FF}],("undefined"==typeof ngDevMode||ngDevMode)&&db(HW,[{type:Jm}],(function(){return[{type:JF},{type:Qp},{type:oM,decorators:[{type:_s}]},{type:vW,decorators:[{type:_s},{type:ys,args:[RW]}]},{type:void 0,decorators:[{type:ys,args:[TW]}]},{type:HW,decorators:[{type:_s},{type:Ms}]},{type:FF}]}),null);let FW=0;class LW{constructor(t,e,n){this.dialogRef=t,this._elementRef=e,this._dialog=n,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=UW(this._elementRef,this._dialog.openDialogs))}ngOnChanges(t){const e=t._matDialogClose||t._matDialogCloseResult;e&&(this.dialogResult=e.currentValue)}_onButtonClick(t){EW(this.dialogRef,0===t.screenX&&0===t.screenY?"keyboard":"mouse",this.dialogResult)}}LW.ɵfac=function t(e){return new(e||LW)(Mu(DW,8),Mu(ch),Mu(HW))},LW.ɵdir=Jo({type:LW,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function t(e,n){1&e&&Nu("click",(function t(e){return n._onButtonClick(e)})),2&e&&Nm("aria-label",n.ariaLabel||null)("type",n.type)},inputs:{type:"type",dialogResult:["mat-dialog-close","dialogResult"],ariaLabel:["aria-label","ariaLabel"],_matDialogClose:["matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[Si]}),LW.ctorParameters=()=>[{type:DW,decorators:[{type:_s}]},{type:ch},{type:HW}],LW.propDecorators={ariaLabel:[{type:y_,args:["aria-label"]}],type:[{type:y_}],dialogResult:[{type:y_,args:["mat-dialog-close"]}],_matDialogClose:[{type:y_,args:["matDialogClose"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(LW,[{type:g_,args:[{selector:"[mat-dialog-close], [matDialogClose]",exportAs:"matDialogClose",host:{"(click)":"_onButtonClick($event)","[attr.aria-label]":"ariaLabel || null","[attr.type]":"type"}}]}],(function(){return[{type:DW,decorators:[{type:_s}]},{type:ch},{type:HW}]}),{type:[{type:y_}],dialogResult:[{type:y_,args:["mat-dialog-close"]}],ariaLabel:[{type:y_,args:["aria-label"]}],_matDialogClose:[{type:y_,args:["matDialogClose"]}]});class BW{constructor(t,e,n){this._dialogRef=t,this._elementRef=e,this._dialog=n,this.id="mat-dialog-title-"+FW++}ngOnInit(){this._dialogRef||(this._dialogRef=UW(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then((()=>{const t=this._dialogRef._containerInstance;t&&!t._ariaLabelledBy&&(t._ariaLabelledBy=this.id)}))}}BW.ɵfac=function t(e){return new(e||BW)(Mu(DW,8),Mu(ch),Mu(HW))},BW.ɵdir=Jo({type:BW,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-dialog-title"],hostVars:1,hostBindings:function t(e,n){2&e&&kf("id",n.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]}),BW.ctorParameters=()=>[{type:DW,decorators:[{type:_s}]},{type:ch},{type:HW}],BW.propDecorators={id:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(BW,[{type:g_,args:[{selector:"[mat-dialog-title], [matDialogTitle]",exportAs:"matDialogTitle",host:{class:"mat-dialog-title","[id]":"id"}}]}],(function(){return[{type:DW,decorators:[{type:_s}]},{type:ch},{type:HW}]}),{id:[{type:y_}]});class VW{}VW.ɵfac=function t(e){return new(e||VW)},VW.ɵdir=Jo({type:VW,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-dialog-content"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(VW,[{type:g_,args:[{selector:"[mat-dialog-content], mat-dialog-content, [matDialogContent]",host:{class:"mat-dialog-content"}}]}],null,null);class jW{}function UW(t,e){let n=t.nativeElement.parentElement;for(;n&&!n.classList.contains("mat-dialog-container");)n=n.parentElement;return n?e.find((t=>t.id===n.id)):null}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */jW.ɵfac=function t(e){return new(e||jW)},jW.ɵdir=Jo({type:jW,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-dialog-actions"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jW,[{type:g_,args:[{selector:"[mat-dialog-actions], mat-dialog-actions, [matDialogActions]",host:{class:"mat-dialog-actions"}}]}],null,null);class WW{}WW.ɵfac=function t(e){return new(e||WW)},WW.ɵmod=Zo({type:WW}),WW.ɵinj=co({providers:[HW,NW],imports:[[iL,yF,Tz],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(WW,{declarations:function(){return[wW,LW,BW,jW,VW]},imports:function(){return[iL,yF,Tz]},exports:function(){return[wW,LW,BW,VW,jW,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(WW,[{type:k_,args:[{imports:[iL,yF,Tz],exports:[wW,LW,BW,VW,jW,Tz],declarations:[wW,LW,BW,jW,VW],providers:[HW,NW],entryComponents:[wW]}]}],null,null);class GW{constructor(t,e){this._document=e;const n=this._textarea=this._document.createElement("textarea"),o=n.style;o.position="fixed",o.top=o.opacity="0",o.left="-999em",n.setAttribute("aria-hidden","true"),n.value=t,this._document.body.appendChild(n)}copy(){const t=this._textarea;let e=!1;try{if(t){const n=this._document.activeElement;t.select(),t.setSelectionRange(0,t.value.length),e=this._document.execCommand("copy"),n&&n.focus()}}catch(t){}return e}destroy(){const t=this._textarea;t&&(t.parentNode&&t.parentNode.removeChild(t),this._textarea=void 0)}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class YW{constructor(t){this._document=t}copy(t){const e=this.beginCopy(t),n=e.copy();return e.destroy(),n}beginCopy(t){return new GW(t,this._document)}}YW.ɵfac=function t(e){return new(e||YW)(us(UC))},YW.ɵprov=lo({factory:function t(){return new YW(us(UC))},token:YW,providedIn:"root"}),YW.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[UC]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(YW,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const qW=new Nr("CDK_COPY_TO_CLIPBOARD_CONFIG");class ZW{constructor(t,e,n){this._clipboard=t,this._ngZone=e,this.text="",this.attempts=1,this.copied=new Ab,this._pending=new Set,n&&null!=n.attempts&&(this.attempts=n.attempts)}copy(t=this.attempts){if(t>1){let e=t;const n=this._clipboard.beginCopy(this.text);this._pending.add(n);const o=()=>{const t=n.copy();t||!--e||this._destroyed?(this._currentTimeout=null,this._pending.delete(n),n.destroy(),this.copied.emit(t)):this._currentTimeout=this._ngZone.runOutsideAngular((()=>setTimeout(o,1)))};o()}else this.copied.emit(this._clipboard.copy(this.text))}ngOnDestroy(){this._currentTimeout&&clearTimeout(this._currentTimeout),this._pending.forEach((t=>t.destroy())),this._pending.clear(),this._destroyed=!0}}ZW.ɵfac=function t(e){return new(e||ZW)(Mu(YW),Mu(tC),Mu(qW,8))},ZW.ɵdir=Jo({type:ZW,selectors:[["","cdkCopyToClipboard",""]],hostBindings:function t(e,n){1&e&&Nu("click",(function t(){return n.copy()}))},inputs:{text:["cdkCopyToClipboard","text"],attempts:["cdkCopyToClipboardAttempts","attempts"]},outputs:{copied:"cdkCopyToClipboardCopied"}}),ZW.ctorParameters=()=>[{type:YW},{type:tC},{type:void 0,decorators:[{type:_s},{type:ys,args:[qW]}]}],ZW.propDecorators={text:[{type:y_,args:["cdkCopyToClipboard"]}],attempts:[{type:y_,args:["cdkCopyToClipboardAttempts"]}],copied:[{type:__,args:["cdkCopyToClipboardCopied"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(ZW,[{type:g_,args:[{selector:"[cdkCopyToClipboard]",host:{"(click)":"copy()"}}]}],(function(){return[{type:YW},{type:tC},{type:void 0,decorators:[{type:_s},{type:ys,args:[qW]}]}]}),{text:[{type:y_,args:["cdkCopyToClipboard"]}],attempts:[{type:y_,args:["cdkCopyToClipboardAttempts"]}],copied:[{type:__,args:["cdkCopyToClipboardCopied"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class XW{}function KW(t){return Error(`Unable to find icon with the name "${t}"`)}function JW(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function QW(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}XW.ɵfac=function t(e){return new(e||XW)},XW.ɵmod=Zo({type:XW}),XW.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(XW,{declarations:[ZW],exports:[ZW]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(XW,[{type:k_,args:[{declarations:[ZW],exports:[ZW]}]}],null,null);class $W{constructor(t,e,n){this.url=t,this.svgText=e,this.options=n}}class tG{constructor(t,e,n,o){this._httpClient=t,this._sanitizer=e,this._errorHandler=o,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass="material-icons",this._document=n}addSvgIcon(t,e,n){return this.addSvgIconInNamespace("",t,e,n)}addSvgIconLiteral(t,e,n){return this.addSvgIconLiteralInNamespace("",t,e,n)}addSvgIconInNamespace(t,e,n,o){return this._addSvgIconConfig(t,e,new $W(n,null,o))}addSvgIconResolver(t){return this._resolvers.push(t),this}addSvgIconLiteralInNamespace(t,e,n,o){const i=this._sanitizer.sanitize(xl.HTML,n);if(!i)throw QW(n);return this._addSvgIconConfig(t,e,new $W("",i,o))}addSvgIconSet(t,e){return this.addSvgIconSetInNamespace("",t,e)}addSvgIconSetLiteral(t,e){return this.addSvgIconSetLiteralInNamespace("",t,e)}addSvgIconSetInNamespace(t,e,n){return this._addSvgIconSetConfig(t,new $W(e,null,n))}addSvgIconSetLiteralInNamespace(t,e,n){const o=this._sanitizer.sanitize(xl.HTML,e);if(!o)throw QW(e);return this._addSvgIconSetConfig(t,new $W("",o,n))}registerFontClassAlias(t,e=t){return this._fontCssClassesByAlias.set(t,e),this}classNameForFontAlias(t){return this._fontCssClassesByAlias.get(t)||t}setDefaultFontSetClass(t){return this._defaultFontSetClass=t,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(t){const e=this._sanitizer.sanitize(xl.RESOURCE_URL,t);if(!e)throw JW(t);const n=this._cachedIconsByUrl.get(e);return n?Z(eG(n)):this._loadSvgIconFromConfig(new $W(t,null)).pipe(_n((t=>this._cachedIconsByUrl.set(e,t))),ht((t=>eG(t))))}getNamedSvgIcon(t,e=""){const n=nG(e,t);let o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(e,t),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);const i=this._iconSetConfigs.get(e);return i?this._getSvgFromIconSetConfigs(t,i):X(KW(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(t){return t.svgText?Z(eG(this._svgElementFromConfig(t))):this._loadSvgIconFromConfig(t).pipe(ht((t=>eG(t))))}_getSvgFromIconSetConfigs(t,e){const n=this._extractIconWithNameFromAnySet(t,e);return n?Z(n):Lt(e.filter((t=>!t.svgText)).map((t=>this._loadSvgIconSetFromConfig(t).pipe(re((e=>{const n=this._sanitizer.sanitize(xl.RESOURCE_URL,t.url);return this._errorHandler.handleError(new Error(`Loading icon set URL: ${n} failed: ${e.message}`)),Z(null)})))))).pipe(ht((()=>{const n=this._extractIconWithNameFromAnySet(t,e);if(!n)throw KW(t);return n})))}_extractIconWithNameFromAnySet(t,e){for(let n=e.length-1;n>=0;n--){const o=e[n];if(o.svgText&&o.svgText.indexOf(t)>-1){const e=this._svgElementFromConfig(o),n=this._extractSvgIconFromSet(e,t,o.options);if(n)return n}}return null}_loadSvgIconFromConfig(t){return this._fetchIcon(t).pipe(_n((e=>t.svgText=e)),ht((()=>this._svgElementFromConfig(t))))}_loadSvgIconSetFromConfig(t){return t.svgText?Z(null):this._fetchIcon(t).pipe(_n((e=>t.svgText=e)))}_extractSvgIconFromSet(t,e,n){const o=t.querySelector(`[id="${e}"]`);if(!o)return null;const i=o.cloneNode(!0);if(i.removeAttribute("id"),"svg"===i.nodeName.toLowerCase())return this._setSvgAttributes(i,n);if("symbol"===i.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(i),n);const a=this._svgElementFromString("<svg></svg>");return a.appendChild(i),this._setSvgAttributes(a,n)}_svgElementFromString(t){const e=this._document.createElement("DIV");e.innerHTML=t;const n=e.querySelector("svg");if(!n)throw Error("<svg> tag not found");return n}_toSvgElement(t){const e=this._svgElementFromString("<svg></svg>"),n=t.attributes;for(let t=0;t<n.length;t++){const{name:o,value:i}=n[t];"id"!==o&&e.setAttribute(o,i)}for(let n=0;n<t.childNodes.length;n++)t.childNodes[n].nodeType===this._document.ELEMENT_NODE&&e.appendChild(t.childNodes[n].cloneNode(!0));return e}_setSvgAttributes(t,e){return t.setAttribute("fit",""),t.setAttribute("height","100%"),t.setAttribute("width","100%"),t.setAttribute("preserveAspectRatio","xMidYMid meet"),t.setAttribute("focusable","false"),e&&e.viewBox&&t.setAttribute("viewBox",e.viewBox),t}_fetchIcon(t){var e;const{url:n,options:o}=t,i=null!==(e=null==o?void 0:o.withCredentials)&&void 0!==e&&e;if(!this._httpClient)throw(function a(){return Error("Could not find HttpClient provider for use with Angular Material icons. Please include the HttpClientModule from @angular/common/http in your app imports.")})();if(null==n)throw Error(`Cannot fetch icon from URL "${n}".`);const r=this._sanitizer.sanitize(xl.RESOURCE_URL,n);if(!r)throw JW(n);const s=this._inProgressUrlFetches.get(r);if(s)return s;const l=this._httpClient.get(r,{responseType:"text",withCredentials:i}).pipe((function c(t){return e=>e.lift(new Be(t))})((()=>this._inProgressUrlFetches.delete(r))),on());return this._inProgressUrlFetches.set(r,l),l}_addSvgIconConfig(t,e,n){return this._svgIconConfigs.set(nG(t,e),n),this}_addSvgIconSetConfig(t,e){const n=this._iconSetConfigs.get(t);return n?n.push(e):this._iconSetConfigs.set(t,[e]),this}_svgElementFromConfig(t){if(!t.svgElement){const e=this._svgElementFromString(t.svgText);this._setSvgAttributes(e,t.options),t.svgElement=e}return t.svgElement}_getIconConfigFromResolvers(t,e){for(let o=0;o<this._resolvers.length;o++){const i=this._resolvers[o](e,t);if(i)return(n=i).url&&n.options?new $W(i.url,null,i.options):new $W(i,null)}var n;
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */}}function eG(t){return t.cloneNode(!0)}function nG(t,e){return t+":"+e}tG.ɵfac=function t(e){return new(e||tG)(us(qD,8),us(Sx),us(UC,8),us(El))},tG.ɵprov=lo({factory:function t(){return new tG(us(qD,8),us(Sx),us(UC,8),us(El))},token:tG,providedIn:"root"}),tG.ctorParameters=()=>[{type:qD,decorators:[{type:_s}]},{type:Sx},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:El}],("undefined"==typeof ngDevMode||ngDevMode)&&db(tG,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:qD,decorators:[{type:_s}]},{type:Sx},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:El}]}),null),new _s,new Ms,new _s,new _s;const oG=Iz(class{constructor(t){this._elementRef=t}}),iG=new Nr("mat-icon-location",{providedIn:"root",factory:function aG(){const t=gs(UC),e=t?t.location:null;return{getPathname:()=>e?e.pathname+e.search:""}}}),rG=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],sG=rG.map((t=>`[${t}]`)).join(", "),lG=/^url\(['"]?#(.*?)['"]?\)$/;class cG extends oG{constructor(t,e,n,o,i){super(t),this._iconRegistry=e,this._location=o,this._errorHandler=i,this._inline=!1,this._currentIconFetch=l.EMPTY,n||t.nativeElement.setAttribute("aria-hidden","true")}get inline(){return this._inline}set inline(t){this._inline=rI(t)}get svgIcon(){return this._svgIcon}set svgIcon(t){t!==this._svgIcon&&(t?this._updateSvgIcon(t):this._svgIcon&&this._clearSvgElement(),this._svgIcon=t)}get fontSet(){return this._fontSet}set fontSet(t){const e=this._cleanupFontValue(t);e!==this._fontSet&&(this._fontSet=e,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(t){const e=this._cleanupFontValue(t);e!==this._fontIcon&&(this._fontIcon=e,this._updateFontIconClasses())}_splitIconName(t){if(!t)return["",""];const e=t.split(":");switch(e.length){case 1:return["",e[0]];case 2:return e;default:throw Error(`Invalid icon name: "${t}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const t=this._elementsWithExternalReferences;if(t&&t.size){const t=this._location.getPathname();t!==this._previousPath&&(this._previousPath=t,this._prependPathToReferences(t))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(t){this._clearSvgElement();const e=t.querySelectorAll("style");for(let t=0;t<e.length;t++)e[t].textContent+=" ";const n=this._location.getPathname();this._previousPath=n,this._cacheChildrenWithExternalReferences(t),this._prependPathToReferences(n),this._elementRef.nativeElement.appendChild(t)}_clearSvgElement(){const t=this._elementRef.nativeElement;let e=t.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();e--;){const n=t.childNodes[e];1===n.nodeType&&"svg"!==n.nodeName.toLowerCase()||t.removeChild(n)}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const t=this._elementRef.nativeElement,e=this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet):this._iconRegistry.getDefaultFontSetClass();e!=this._previousFontSetClass&&(this._previousFontSetClass&&t.classList.remove(this._previousFontSetClass),e&&t.classList.add(e),this._previousFontSetClass=e),this.fontIcon!=this._previousFontIconClass&&(this._previousFontIconClass&&t.classList.remove(this._previousFontIconClass),this.fontIcon&&t.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(t){return"string"==typeof t?t.trim().split(" ")[0]:t}_prependPathToReferences(t){const e=this._elementsWithExternalReferences;e&&e.forEach(((e,n)=>{e.forEach((e=>{n.setAttribute(e.name,`url('${t}#${e.value}')`)}))}))}_cacheChildrenWithExternalReferences(t){const e=t.querySelectorAll(sG),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let t=0;t<e.length;t++)rG.forEach((o=>{const i=e[t],a=i.getAttribute(o),r=a?a.match(lG):null;if(r){let t=n.get(i);t||(t=[],n.set(i,t)),t.push({name:o,value:r[1]})}}))}_updateSvgIcon(t){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),t){const[e,n]=this._splitIconName(t);e&&(this._svgNamespace=e),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,e).pipe(Ne(1)).subscribe((t=>this._setSvgElement(t)),(t=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${e}:${n}! ${t.message}`))}))}}}cG.ɵfac=function t(e){return new(e||cG)(Mu(ch),Mu(tG),Or("aria-hidden"),Mu(iG),Mu(El))},cG.ɵcmp=Uo({type:cG,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:7,hostBindings:function t(e,n){2&e&&(Nm("data-mat-icon-type",n._usingFontIcon()?"font":"svg")("data-mat-icon-name",n._svgName||n.fontIcon)("data-mat-icon-namespace",n._svgNamespace||n.fontSet),af("mat-icon-inline",n.inline)("mat-icon-no-color","primary"!==n.color&&"accent"!==n.color&&"warn"!==n.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[gm],ngContentSelectors:["*"],decls:1,vars:0,template:function t(e,n){1&e&&(Vu(),ju(0))},styles:[".mat-icon{background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\n"],encapsulation:2,changeDetection:0}),cG.ctorParameters=()=>[{type:ch},{type:tG},{type:String,decorators:[{type:Rr,args:["aria-hidden"]}]},{type:void 0,decorators:[{type:ys,args:[iG]}]},{type:El}],cG.propDecorators={inline:[{type:y_}],svgIcon:[{type:y_}],fontSet:[{type:y_}],fontIcon:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(cG,[{type:h_,args:[{template:"<ng-content></ng-content>",selector:"mat-icon",exportAs:"matIcon",inputs:["color"],host:{role:"img",class:"mat-icon notranslate","[attr.data-mat-icon-type]":'_usingFontIcon() ? "font" : "svg"',"[attr.data-mat-icon-name]":"_svgName || fontIcon","[attr.data-mat-icon-namespace]":"_svgNamespace || fontSet","[class.mat-icon-inline]":"inline","[class.mat-icon-no-color]":'color !== "primary" && color !== "accent" && color !== "warn"'},encapsulation:Po.None,changeDetection:xo.OnPush,styles:[".mat-icon{background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\n"]}]}],(function(){return[{type:ch},{type:tG},{type:String,decorators:[{type:Rr,args:["aria-hidden"]}]},{type:void 0,decorators:[{type:ys,args:[iG]}]},{type:El}]}),{inline:[{type:y_}],svgIcon:[{type:y_}],fontSet:[{type:y_}],fontIcon:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class dG{}dG.ɵfac=function t(e){return new(e||dG)},dG.ɵmod=Zo({type:dG}),dG.ɵinj=co({imports:[[Tz],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(dG,{declarations:function(){return[cG]},imports:function(){return[Tz]},exports:function(){return[cG,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(dG,[{type:k_,args:[{imports:[Tz],exports:[cG,Tz],declarations:[cG]}]}],null,null);class pG{constructor(t){this.dialogRef=t,this.tensorboardDotDevUrl="https://tensorboard.dev/?utm_source=tensorboard"}onClose(){this.dialogRef.close()}getCommandText(){return this.logdir?"tensorboard dev upload --logdir \\\n    '"+this.logdir.replace(/'/g,"'\\''")+"'":"tensorboard dev upload --logdir {logdir}"}}pG.ɵfac=function t(e){return new(e||pG)(Mu(DW))},pG.ɵcmp=Uo({type:pG,selectors:[["tbdev-upload-dialog-component"]],inputs:{logdir:"logdir"},decls:21,vars:4,consts:[["target","_blank","rel","noreferrer noopener",1,"anchor-text",3,"href"],[1,"command"],["mat-icon-button","","title","Click to copy the command",1,"command-copy",3,"cdkCopyToClipboard"],["svgIcon","content_copy_24px"],[1,"bottom-buttons"],["mat-flat-button","",1,"close-button",3,"click"],["mat-flat-button","","target","_blank","rel","noreferrer noopener",1,"learn-more-button",3,"href"]],template:function t(e,n){1&e&&(Ou(0,"h3"),Mf(1,"Upload to TensorBoard.dev"),Pu(),Ou(2,"p"),Ou(3,"a",0),Mf(4," TensorBoard.dev"),Pu(),Mf(5," enables you to easily host, track, and share your ML experiments with everyone. You can share a link to the uploaded TensorBoard in papers, blog posts, and social media. This can showcase the results more effectively and helps reproducibility.\n"),Pu(),Ou(6,"p"),Mf(7,"To upload a logdir to TensorBoard.dev, run the command:"),Pu(),Ou(8,"div",1),Ou(9,"pre"),Ou(10,"code"),Mf(11),Pu(),Pu(),Ou(12,"button",2),wu(13,"mat-icon",3),Pu(),Pu(),Ou(14,"p"),Mf(15," Only certain plugins are currently supported. Uploaded TensorBoards are public and visible to everyone; do not upload sensitive data.\n"),Pu(),Ou(16,"div",4),Ou(17,"button",5),Nu("click",(function t(){return n.onClose()})),Mf(18," Close "),Pu(),Ou(19,"a",6),Mf(20," Learn more "),Pu(),Pu()),2&e&&(Jc(3),Uu("href",n.tensorboardDotDevUrl,Ol),Jc(8),vf(n.getCommandText()),Jc(1),vu("cdkCopyToClipboard",n.getCommandText()),Jc(7),Uu("href",n.tensorboardDotDevUrl,Ol))},directives:[NH,ZW,cG,IH],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}div[_ngcontent-%COMP%], p[_ngcontent-%COMP%]{margin:16px 0}[_nghost-%COMP%] > [_ngcontent-%COMP%]:first-child{margin-top:0}[_nghost-%COMP%] > [_ngcontent-%COMP%]:last-child{margin-bottom:0}h3[_ngcontent-%COMP%]{font-size:14px;font-weight:500;line-height:1.5}p[_ngcontent-%COMP%]{color:#212121;font-size:12px;line-height:1.5}body.dark-mode[_nghost-%COMP%]   p[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   p[_ngcontent-%COMP%]{color:#fff}.anchor-text[_ngcontent-%COMP%]{text-decoration:none}.command[_ngcontent-%COMP%]{align-items:center;background:#f5f6f7;border-radius:4px;display:flex;justify-content:space-between;padding:2px 12px}body.dark-mode[_nghost-%COMP%]   .command[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .command[_ngcontent-%COMP%]{background-color:#616161}pre[_ngcontent-%COMP%]{overflow-x:auto}code[_ngcontent-%COMP%]{font-size:14px;line-height:1.5}.bottom-buttons[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:flex-end}.close-button[_ngcontent-%COMP%]{color:#616161;text-transform:uppercase;margin-right:8px}body.dark-mode[_nghost-%COMP%]   .close-button[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .close-button[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}[_nghost-%COMP%]   .learn-more-button[_ngcontent-%COMP%]{color:#1976d2;text-transform:uppercase}body.dark-mode   [_nghost-%COMP%]   .learn-more-button[_ngcontent-%COMP%]{color:#42a5f5}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(pG,[{type:h_,args:[{selector:"tbdev-upload-dialog-component",templateUrl:"./tbdev_upload_dialog_component.ng.html",styleUrls:["./tbdev_upload_dialog_component.css"]}]}],(function(){return[{type:DW}]}),{logdir:[{type:y_}]});const mG=zk(mA,(t=>t.data_location));class uG{constructor(t){this.store=t,this.logdir$=this.store.pipe(Rk(mG))}}function fG(t,e){if(1&t){const t=Eu();Ou(0,"button",1),Nu("click",(function e(){return ra(t),Lu().openDialog()})),Ou(1,"span",2),wu(2,"mat-icon",3),Mf(3," Upload "),Pu(),Pu()}}uG.ɵfac=function t(e){return new(e||uG)(Mu(Ek))},uG.ɵcmp=Uo({type:uG,selectors:[["tbdev-upload-dialog"]],decls:2,vars:3,consts:[[3,"logdir"]],template:function t(e,n){1&e&&(wu(0,"tbdev-upload-dialog-component",0),Ob(1,"async")),2&e&&vu("logdir",Pb(1,1,n.logdir$))},directives:[pG],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(uG,[{type:h_,args:[{selector:"tbdev-upload-dialog",template:'\n    <tbdev-upload-dialog-component\n      [logdir]="logdir$ | async"\n    ></tbdev-upload-dialog-component>\n  '}]}],(function(){return[{type:Ek}]}),null);const gG=["localhost","127.0.0.1"];class hG{constructor(t,e){this.window=t,this.dialog=e,this.shown=gG.includes(t.location.hostname)}openDialog(){this.dialog.open(uG,{width:"560px"})}}hG.ɵfac=function t(e){return new(e||hG)(Mu("window"),Mu(HW))},hG.ɵcmp=Uo({type:hG,selectors:[["tbdev-upload-button"]],hostVars:2,hostBindings:function t(e,n){2&e&&af("shown",n.shown)},decls:1,vars:1,consts:[["mat-stroked-button","",3,"click",4,"ngIf"],["mat-stroked-button","",3,"click"],[1,"button-contents"],["svgIcon","info_outline_24px"]],template:function t(e,n){1&e&&Wm(0,fG,4,0,"button",0),2&e&&vu("ngIf",n.shown)},directives:[av,NH,cG],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]   button.mat-stroked-button[_ngcontent-%COMP%]{background-color:#ff9800;border:1px solid #ebebeb}body.dark-mode   [_nghost-%COMP%]   button.mat-stroked-button[_ngcontent-%COMP%]{background-color:#ef6c00}.button-contents[_ngcontent-%COMP%]{align-items:center;display:flex;text-transform:uppercase}mat-icon[_ngcontent-%COMP%]{margin-right:6px}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(hG,[{type:h_,args:[{selector:"tbdev-upload-button",templateUrl:"./tbdev_upload_button_component.ng.html",styleUrls:["./tbdev_upload_button_component.css"]}]}],(function(){return[{type:Window,decorators:[{type:ys,args:["window"]}]},{type:HW}]}),{shown:[{type:C_,args:["class.shown"]}]});const bG=["*"];function yG(t,e){if(1&t){const t=Eu();Ou(0,"div",0),Nu("keydown",(function e(n){return ra(t),Lu()._handleKeydown(n)}))("click",(function e(){return ra(t),Lu().closed.emit("click")}))("@transformMenu.start",(function e(n){return ra(t),Lu()._onAnimationStart(n)}))("@transformMenu.done",(function e(n){return ra(t),Lu()._onAnimationDone(n)})),Ou(1,"div",1),ju(2),Pu(),Pu()}if(2&t){const t=Lu();vu("id",t.panelId)("ngClass",t._classList)("@transformMenu",t._panelAnimationState),Nm("aria-label",t.ariaLabel||null)("aria-labelledby",t.ariaLabelledby||null)("aria-describedby",t.ariaDescribedby||null)}}const _G={transformMenu:Kx("transformMenu",[tO("void",$x({opacity:0,transform:"scale(0.8)"})),nO("void => enter",Jx("120ms cubic-bezier(0, 0, 0.2, 1)",$x({opacity:1,transform:"scale(1)"}))),nO("* => void",Jx("100ms 25ms linear",$x({opacity:0})))]),fadeInItems:Kx("fadeInItems",[tO("showing",$x({opacity:1})),nO("void => *",[$x({opacity:0}),Jx("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},CG=new Nr("MatMenuContent");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class MG{constructor(t,e,n,o,i,a,r){this._template=t,this._componentFactoryResolver=e,this._appRef=n,this._injector=o,this._viewContainerRef=i,this._document=a,this._changeDetectorRef=r,this._attached=new x}attach(t={}){this._portal||(this._portal=new lF(this._template,this._viewContainerRef)),this.detach(),this._outlet||(this._outlet=new pF(this._document.createElement("div"),this._componentFactoryResolver,this._appRef,this._injector));const e=this._template.elementRef.nativeElement;e.parentNode.insertBefore(this._outlet.outletElement,e),this._changeDetectorRef&&this._changeDetectorRef.markForCheck(),this._portal.attach(this._outlet,t),this._attached.next()}detach(){this._portal.isAttached&&this._portal.detach()}ngOnDestroy(){this._outlet&&this._outlet.dispose()}}MG.ɵfac=function t(e){return new(e||MG)(Mu(Uh),Mu(rh),Mu(_C),Mu(Qp),Mu(Xh),Mu(UC),Mu(Hh))},MG.ɵdir=Jo({type:MG,selectors:[["ng-template","matMenuContent",""]],features:[ih([{provide:CG,useExisting:MG}])]}),MG.ctorParameters=()=>[{type:Uh},{type:rh},{type:_C},{type:Qp},{type:Xh},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:Hh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(MG,[{type:g_,args:[{selector:"ng-template[matMenuContent]",providers:[{provide:CG,useExisting:MG}]}]}],(function(){return[{type:Uh},{type:rh},{type:_C},{type:Qp},{type:Xh},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:Hh}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const vG=new Nr("MAT_MENU_PANEL"),xG=zz(Nz(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class{}));class OG extends xG{constructor(t,e,n,o){super(),this._elementRef=t,this._focusMonitor=n,this._parentMenu=o,this.role="menuitem",this._hovered=new x,this._focused=new x,this._highlighted=!1,this._triggersSubmenu=!1,o&&o.addItem&&o.addItem(this)}focus(t,e){this._focusMonitor&&t?this._focusMonitor.focusVia(this._getHostElement(),t,e):this._getHostElement().focus(e),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(t){this.disabled&&(t.preventDefault(),t.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){var t,e;const n=this._elementRef.nativeElement.cloneNode(!0),o=n.querySelectorAll("mat-icon, .material-icons");for(let e=0;e<o.length;e++){const n=o[e];null===(t=n.parentNode)||void 0===t||t.removeChild(n)}return(null===(e=n.textContent)||void 0===e?void 0:e.trim())||""}}OG.ɵfac=function t(e){return new(e||OG)(Mu(ch),Mu(UC),Mu(pz),Mu(vG,8))},OG.ɵcmp=Uo({type:OG,selectors:[["","mat-menu-item",""]],hostAttrs:[1,"mat-focus-indicator"],hostVars:10,hostBindings:function t(e,n){1&e&&Nu("click",(function t(e){return n._checkDisabled(e)}))("mouseenter",(function t(){return n._handleMouseEnter()})),2&e&&(Nm("role",n.role)("tabindex",n._getTabIndex())("aria-disabled",n.disabled.toString())("disabled",n.disabled||null),af("mat-menu-item",!0)("mat-menu-item-highlighted",n._highlighted)("mat-menu-item-submenu-trigger",n._triggersSubmenu))},inputs:{disabled:"disabled",disableRipple:"disableRipple",role:"role"},exportAs:["matMenuItem"],features:[gm],attrs:["mat-menu-item",""],ngContentSelectors:bG,decls:2,vars:2,consts:[["matRipple","",1,"mat-menu-ripple",3,"matRippleDisabled","matRippleTrigger"]],template:function t(e,n){1&e&&(Vu(),ju(0),wu(1,"div",0)),2&e&&(Jc(1),vu("matRippleDisabled",n.disableRipple||n.disabled)("matRippleTrigger",n._getHostElement()))},directives:[pH],encapsulation:2,changeDetection:0}),OG.ctorParameters=()=>[{type:ch},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:pz},{type:void 0,decorators:[{type:ys,args:[vG]},{type:_s}]}],OG.propDecorators={role:[{type:y_}],_checkDisabled:[{type:M_,args:["click",["$event"]]}],_handleMouseEnter:[{type:M_,args:["mouseenter"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(OG,[{type:h_,args:[{selector:"[mat-menu-item]",exportAs:"matMenuItem",inputs:["disabled","disableRipple"],host:{"[attr.role]":"role","[class.mat-menu-item]":"true","[class.mat-menu-item-highlighted]":"_highlighted","[class.mat-menu-item-submenu-trigger]":"_triggersSubmenu","[attr.tabindex]":"_getTabIndex()","[attr.aria-disabled]":"disabled.toString()","[attr.disabled]":"disabled || null",class:"mat-focus-indicator"},changeDetection:xo.OnPush,encapsulation:Po.None,template:'<ng-content></ng-content>\n<div class="mat-menu-ripple" matRipple\n     [matRippleDisabled]="disableRipple || disabled"\n     [matRippleTrigger]="_getHostElement()">\n</div>\n'}]}],(function(){return[{type:ch},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:pz},{type:void 0,decorators:[{type:ys,args:[vG]},{type:_s}]}]}),{role:[{type:y_}],_checkDisabled:[{type:M_,args:["click",["$event"]]}],_handleMouseEnter:[{type:M_,args:["mouseenter"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const PG=new Nr("mat-menu-default-options",{providedIn:"root",factory:function wG(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let kG=0;class SG{constructor(t,e,n){this._elementRef=t,this._ngZone=e,this._defaultOptions=n,this._xPosition=this._defaultOptions.xPosition,this._yPosition=this._defaultOptions.yPosition,this._directDescendantItems=new Tb,this._tabSubscription=l.EMPTY,this._classList={},this._panelAnimationState="void",this._animationDone=new x,this.overlayPanelClass=this._defaultOptions.overlayPanelClass||"",this.backdropClass=this._defaultOptions.backdropClass,this._overlapTrigger=this._defaultOptions.overlapTrigger,this._hasBackdrop=this._defaultOptions.hasBackdrop,this.closed=new Ab,this.close=this.closed,this.panelId="mat-menu-panel-"+kG++}get xPosition(){return this._xPosition}set xPosition(t){"before"===t||"after"===t||"undefined"!=typeof ngDevMode&&!ngDevMode||(function e(){throw Error('xPosition value must be either \'before\' or after\'.\n      Example: <mat-menu xPosition="before" #menu="matMenu"></mat-menu>')})(),this._xPosition=t,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(t){"above"===t||"below"===t||"undefined"!=typeof ngDevMode&&!ngDevMode||(function e(){throw Error('yPosition value must be either \'above\' or below\'.\n      Example: <mat-menu yPosition="above" #menu="matMenu"></mat-menu>')})(),this._yPosition=t,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(t){this._overlapTrigger=rI(t)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(t){this._hasBackdrop=rI(t)}set panelClass(t){const e=this._previousPanelClass;e&&e.length&&e.split(" ").forEach((t=>{this._classList[t]=!1})),this._previousPanelClass=t,t&&t.length&&(t.split(" ").forEach((t=>{this._classList[t]=!0})),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(t){this.panelClass=t}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new VI(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._tabSubscription=this._keyManager.tabOut.subscribe((()=>this.closed.emit("tab"))),this._directDescendantItems.changes.pipe(cn(this._directDescendantItems),dn((t=>Wt(...t.map((t=>t._focused)))))).subscribe((t=>this._keyManager.updateActiveItem(t)))}ngOnDestroy(){this._directDescendantItems.destroy(),this._tabSubscription.unsubscribe(),this.closed.complete()}_hovered(){return this._directDescendantItems.changes.pipe(cn(this._directDescendantItems),dn((t=>Wt(...t.map((t=>t._hovered))))))}addItem(t){}removeItem(t){}_handleKeydown(t){const e=t.keyCode,n=this._keyManager;switch(e){case eI:aI(t)||(t.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:e!==oI&&e!==iI||n.setFocusOrigin("keyboard"),n.onKeydown(t)}}focusFirstItem(t="program"){this.lazyContent?this._ngZone.onStable.pipe(Ne(1)).subscribe((()=>this._focusFirstItem(t))):this._focusFirstItem(t)}_focusFirstItem(t){const e=this._keyManager;if(e.setFocusOrigin(t).setFirstItemActive(),!e.activeItem&&this._directDescendantItems.length){let t=this._directDescendantItems.first._getHostElement().parentElement;for(;t;){if("menu"===t.getAttribute("role")){t.focus();break}t=t.parentElement}}}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(t){const e=`mat-elevation-z${Math.min(4+t,24)}`,n=Object.keys(this._classList).find((t=>t.startsWith("mat-elevation-z")));n&&n!==this._previousElevation||(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[e]=!0,this._previousElevation=e)}setPositionClasses(t=this.xPosition,e=this.yPosition){const n=this._classList;n["mat-menu-before"]="before"===t,n["mat-menu-after"]="after"===t,n["mat-menu-above"]="above"===e,n["mat-menu-below"]="below"===e}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(t){this._animationDone.next(t),this._isAnimating=!1}_onAnimationStart(t){this._isAnimating=!0,"enter"===t.toState&&0===this._keyManager.activeItemIndex&&(t.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(cn(this._allItems)).subscribe((t=>{this._directDescendantItems.reset(t.filter((t=>t._parentMenu===this))),this._directDescendantItems.notifyOnChanges()}))}}SG.ɵfac=function t(e){return new(e||SG)(Mu(ch),Mu(tC),Mu(PG))},SG.ɵdir=Jo({type:SG,contentQueries:function t(e,n,o){if(1&e&&(Gb(o,CG,1),Gb(o,OG,1),Gb(o,OG,0)),2&e){let t;Ub(t=Yb())&&(n.lazyContent=t.first),Ub(t=Yb())&&(n._allItems=t),Ub(t=Yb())&&(n.items=t)}},viewQuery:function t(e,n){if(1&e&&Wb(Uh,1),2&e){let t;Ub(t=Yb())&&(n.templateRef=t.first)}},inputs:{backdropClass:"backdropClass",xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"]},outputs:{closed:"closed",close:"close"}}),SG.ctorParameters=()=>[{type:ch},{type:tC},{type:void 0,decorators:[{type:ys,args:[PG]}]}],SG.propDecorators={_allItems:[{type:zr,args:[OG,{descendants:!0}]}],backdropClass:[{type:y_}],ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],ariaDescribedby:[{type:y_,args:["aria-describedby"]}],xPosition:[{type:y_}],yPosition:[{type:y_}],templateRef:[{type:Fr,args:[Uh]}],items:[{type:zr,args:[OG,{descendants:!1}]}],lazyContent:[{type:Hr,args:[CG]}],overlapTrigger:[{type:y_}],hasBackdrop:[{type:y_}],panelClass:[{type:y_,args:["class"]}],classList:[{type:y_}],closed:[{type:__}],close:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(SG,[{type:g_}],(function(){return[{type:ch},{type:tC},{type:void 0,decorators:[{type:ys,args:[PG]}]}]}),{backdropClass:[{type:y_}],closed:[{type:__}],close:[{type:__}],xPosition:[{type:y_}],yPosition:[{type:y_}],overlapTrigger:[{type:y_}],hasBackdrop:[{type:y_}],panelClass:[{type:y_,args:["class"]}],classList:[{type:y_}],_allItems:[{type:zr,args:[OG,{descendants:!0}]}],ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],ariaDescribedby:[{type:y_,args:["aria-describedby"]}],templateRef:[{type:Fr,args:[Uh]}],items:[{type:zr,args:[OG,{descendants:!1}]}],lazyContent:[{type:Hr,args:[CG]}]});class DG extends SG{constructor(t,e,n){super(t,e,n)}}DG.ɵfac=function t(e){return new(e||DG)(Mu(ch),Mu(tC),Mu(PG))},DG.ɵcmp=Uo({type:DG,selectors:[["mat-menu"]],hostVars:3,hostBindings:function t(e,n){2&e&&Nm("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[ih([{provide:vG,useExisting:DG}]),gm],ngContentSelectors:bG,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-menu-panel",3,"id","ngClass","keydown","click"],[1,"mat-menu-content"]],template:function t(e,n){1&e&&(Vu(),Wm(0,yG,3,6,"ng-template"))},directives:[tv],styles:['mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]{pointer-events:none}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}.mat-menu-item-submenu-trigger::after{width:0;height:0;border-style:solid;border-width:5px 0 5px 5px;border-color:transparent transparent transparent currentColor;content:"";display:inline-block;position:absolute;top:50%;right:16px;transform:translateY(-50%)}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}[dir=rtl] .mat-menu-item-submenu-trigger::after{right:auto;left:16px;transform:rotateY(180deg) translateY(-50%)}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n'],encapsulation:2,data:{animation:[_G.transformMenu,_G.fadeInItems]},changeDetection:0}),DG.ctorParameters=()=>[{type:ch},{type:tC},{type:void 0,decorators:[{type:ys,args:[PG]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(DG,[{type:h_,args:[{selector:"mat-menu",template:'<ng-template>\n  <div\n    class="mat-menu-panel"\n    [id]="panelId"\n    [ngClass]="_classList"\n    (keydown)="_handleKeydown($event)"\n    (click)="closed.emit(\'click\')"\n    [@transformMenu]="_panelAnimationState"\n    (@transformMenu.start)="_onAnimationStart($event)"\n    (@transformMenu.done)="_onAnimationDone($event)"\n    tabindex="-1"\n    role="menu"\n    [attr.aria-label]="ariaLabel || null"\n    [attr.aria-labelledby]="ariaLabelledby || null"\n    [attr.aria-describedby]="ariaDescribedby || null">\n    <div class="mat-menu-content">\n      <ng-content></ng-content>\n    </div>\n  </div>\n</ng-template>\n',changeDetection:xo.OnPush,encapsulation:Po.None,exportAs:"matMenu",host:{"[attr.aria-label]":"null","[attr.aria-labelledby]":"null","[attr.aria-describedby]":"null"},animations:[_G.transformMenu,_G.fadeInItems],providers:[{provide:vG,useExisting:DG}],styles:['mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]{pointer-events:none}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}.mat-menu-item-submenu-trigger::after{width:0;height:0;border-style:solid;border-width:5px 0 5px 5px;border-color:transparent transparent transparent currentColor;content:"";display:inline-block;position:absolute;top:50%;right:16px;transform:translateY(-50%)}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}[dir=rtl] .mat-menu-item-submenu-trigger::after{right:auto;left:16px;transform:rotateY(180deg) translateY(-50%)}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n']}]}],(function(){return[{type:ch},{type:tC},{type:void 0,decorators:[{type:ys,args:[PG]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const EG=new Nr("mat-menu-scroll-strategy"),AG={provide:EG,deps:[JF],useFactory:function RG(t){return()=>t.scrollStrategies.reposition()}},TG=vI({passive:!0});class NG{constructor(t,e,n,o,i,a,r,s){this._overlay=t,this._element=e,this._viewContainerRef=n,this._menuItemInstance=a,this._dir=r,this._focusMonitor=s,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=l.EMPTY,this._hoverSubscription=l.EMPTY,this._menuCloseSubscription=l.EMPTY,this._handleTouchStart=t=>{lz(t)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Ab,this.onMenuOpen=this.menuOpened,this.menuClosed=new Ab,this.onMenuClose=this.menuClosed,this._scrollStrategy=o,this._parentMaterialMenu=i instanceof SG?i:void 0,e.nativeElement.addEventListener("touchstart",this._handleTouchStart,TG),a&&(a._triggersSubmenu=this.triggersSubmenu())}get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(t){this.menu=t}get menu(){return this._menu}set menu(t){t!==this._menu&&(this._menu=t,this._menuCloseSubscription.unsubscribe(),t&&(t!==this._parentMaterialMenu||"undefined"!=typeof ngDevMode&&!ngDevMode||(function e(){throw Error("matMenuTriggerFor: menu cannot contain its own trigger. Assign a menu that is not a parent of the trigger or move the trigger outside of the menu.")})(),this._menuCloseSubscription=t.close.subscribe((t=>{this._destroyMenu(t),"click"!==t&&"tab"!==t||!this._parentMaterialMenu||this._parentMaterialMenu.closed.emit(t)}))))}ngAfterContentInit(){this._checkMenu(),this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,TG),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!(!this._menuItemInstance||!this._parentMaterialMenu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){if(this._menuOpen)return;this._checkMenu();const t=this._createOverlay(),e=t.getConfig();this._setPosition(e.positionStrategy),e.hasBackdrop=null==this.menu.hasBackdrop?!this.triggersSubmenu():this.menu.hasBackdrop,t.attach(this._getPortal()),this.menu.lazyContent&&this.menu.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe((()=>this.closeMenu())),this._initMenu(),this.menu instanceof SG&&this.menu._startAnimation()}closeMenu(){this.menu.close.emit()}focus(t,e){this._focusMonitor&&t?this._focusMonitor.focusVia(this._element,t,e):this._element.nativeElement.focus(e)}_destroyMenu(t){if(!this._overlayRef||!this.menuOpen)return;const e=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),!this.restoreFocus||"keydown"!==t&&this._openedBy&&this.triggersSubmenu()||this.focus(this._openedBy),this._openedBy=void 0,e instanceof SG?(e._resetAnimation(),e.lazyContent?e._animationDone.pipe(Gt((t=>"void"===t.toState)),Ne(1),un(e.lazyContent._attached)).subscribe({next:()=>e.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),e.lazyContent&&e.lazyContent.detach())}_initMenu(){this.menu.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,this.menu.direction=this.dir,this._setMenuElevation(),this.menu.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(){if(this.menu.setElevation){let t=0,e=this.menu.parentMenu;for(;e;)t++,e=e.parentMenu;this.menu.setElevation(t)}}_setIsMenuOpen(t){this._menuOpen=t,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&(this._menuItemInstance._highlighted=t)}_checkMenu(){this.menu||"undefined"!=typeof ngDevMode&&!ngDevMode||(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function t(){throw Error('matMenuTriggerFor: must pass in an mat-menu instance.\n\n    Example:\n      <mat-menu #menu="matMenu"></mat-menu>\n      <button [matMenuTriggerFor]="menu"></button>')})()}_createOverlay(){if(!this._overlayRef){const t=this._getOverlayConfig();this._subscribeToPositions(t.positionStrategy),this._overlayRef=this._overlay.create(t),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(){return new SF({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:this.menu.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:this.menu.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(t){this.menu.setPositionClasses&&t.positionChanges.subscribe((t=>{this.menu.setPositionClasses("start"===t.connectionPair.overlayX?"after":"before","top"===t.connectionPair.overlayY?"below":"above")}))}_setPosition(t){let[e,n]="before"===this.menu.xPosition?["end","start"]:["start","end"],[o,i]="above"===this.menu.yPosition?["bottom","top"]:["top","bottom"],[a,r]=[o,i],[s,l]=[e,n],c=0;this.triggersSubmenu()?(l=e="before"===this.menu.xPosition?"start":"end",n=s="end"===e?"start":"end",c="bottom"===o?8:-8):this.menu.overlapTrigger||(a="top"===o?"bottom":"top",r="top"===i?"bottom":"top"),t.withPositions([{originX:e,originY:a,overlayX:s,overlayY:o,offsetY:c},{originX:n,originY:a,overlayX:l,overlayY:o,offsetY:c},{originX:e,originY:r,overlayX:s,overlayY:i,offsetY:-c},{originX:n,originY:r,overlayX:l,overlayY:i,offsetY:-c}])}_menuClosingActions(){const t=this._overlayRef.backdropClick(),e=this._overlayRef.detachments();return Wt(t,this._parentMaterialMenu?this._parentMaterialMenu.closed:Z(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Gt((t=>t!==this._menuItemInstance)),Gt((()=>this._menuOpen))):Z(),e)}_handleMousedown(t){sz(t)||(this._openedBy=0===t.button?"mouse":void 0,this.triggersSubmenu()&&t.preventDefault())}_handleKeydown(t){const e=t.keyCode;e!==tI&&e!==nI||(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===e&&"ltr"===this.dir||37===e&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(t){this.triggersSubmenu()?(t.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(Gt((t=>t===this._menuItemInstance&&!t.disabled)),be(0,ct)).subscribe((()=>{this._openedBy="mouse",this.menu instanceof SG&&this.menu._isAnimating?this.menu._animationDone.pipe(Ne(1),be(0,ct),un(this._parentMaterialMenu._hovered())).subscribe((()=>this.openMenu())):this.openMenu()})))}_getPortal(){return this._portal&&this._portal.templateRef===this.menu.templateRef||(this._portal=new lF(this.menu.templateRef,this._viewContainerRef)),this._portal}}NG.ɵfac=function t(e){return new(e||NG)(Mu(JF),Mu(ch),Mu(Xh),Mu(EG),Mu(vG,8),Mu(OG,10),Mu(Mz,8),Mu(pz))},NG.ɵdir=Jo({type:NG,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:["aria-haspopup","true",1,"mat-menu-trigger"],hostVars:2,hostBindings:function t(e,n){1&e&&Nu("mousedown",(function t(e){return n._handleMousedown(e)}))("keydown",(function t(e){return n._handleKeydown(e)}))("click",(function t(e){return n._handleClick(e)})),2&e&&Nm("aria-expanded",n.menuOpen||null)("aria-controls",n.menuOpen?n.menu.panelId:null)},inputs:{restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"],_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"]}),NG.ctorParameters=()=>[{type:JF},{type:ch},{type:Xh},{type:void 0,decorators:[{type:ys,args:[EG]}]},{type:void 0,decorators:[{type:ys,args:[vG]},{type:_s}]},{type:OG,decorators:[{type:_s},{type:Cs}]},{type:Mz,decorators:[{type:_s}]},{type:pz}],NG.propDecorators={_deprecatedMatMenuTriggerFor:[{type:y_,args:["mat-menu-trigger-for"]}],menu:[{type:y_,args:["matMenuTriggerFor"]}],menuData:[{type:y_,args:["matMenuTriggerData"]}],restoreFocus:[{type:y_,args:["matMenuTriggerRestoreFocus"]}],menuOpened:[{type:__}],onMenuOpen:[{type:__}],menuClosed:[{type:__}],onMenuClose:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(NG,[{type:g_,args:[{selector:"[mat-menu-trigger-for], [matMenuTriggerFor]",host:{class:"mat-menu-trigger","aria-haspopup":"true","[attr.aria-expanded]":"menuOpen || null","[attr.aria-controls]":"menuOpen ? menu.panelId : null","(mousedown)":"_handleMousedown($event)","(keydown)":"_handleKeydown($event)","(click)":"_handleClick($event)"},exportAs:"matMenuTrigger"}]}],(function(){return[{type:JF},{type:ch},{type:Xh},{type:void 0,decorators:[{type:ys,args:[EG]}]},{type:void 0,decorators:[{type:ys,args:[vG]},{type:_s}]},{type:OG,decorators:[{type:_s},{type:Cs}]},{type:Mz,decorators:[{type:_s}]},{type:pz}]}),{restoreFocus:[{type:y_,args:["matMenuTriggerRestoreFocus"]}],menuOpened:[{type:__}],onMenuOpen:[{type:__}],menuClosed:[{type:__}],onMenuClose:[{type:__}],_deprecatedMatMenuTriggerFor:[{type:y_,args:["mat-menu-trigger-for"]}],menu:[{type:y_,args:["matMenuTriggerFor"]}],menuData:[{type:y_,args:["matMenuTriggerData"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class IG{}IG.ɵfac=function t(e){return new(e||IG)},IG.ɵmod=Zo({type:IG}),IG.ɵinj=co({providers:[AG],imports:[Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(IG,{declarations:function(){return[NG,MG]},exports:function(){return[NG,MG,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(IG,[{type:k_,args:[{exports:[NG,MG,Tz],declarations:[NG,MG],providers:[AG]}]}],null,null);class zG{}function HG(t,e){1&t&&wu(0,"mat-icon",8)}function FG(t,e){1&t&&wu(0,"mat-icon",9)}function LG(t,e){1&t&&wu(0,"mat-icon",10)}var BG;zG.ɵfac=function t(e){return new(e||zG)},zG.ɵmod=Zo({type:zG}),zG.ɵinj=co({providers:[AG],imports:[[Bv,Tz,mH,iL,IG],oF,Tz,IG]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(zG,{declarations:function(){return[DG,OG]},imports:function(){return[Bv,Tz,mH,iL,IG]},exports:function(){return[oF,Tz,DG,OG,IG]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(zG,[{type:k_,args:[{imports:[Bv,Tz,mH,iL,IG],exports:[oF,Tz,DG,OG,IG],declarations:[DG,OG],providers:[AG]}]}],null,null),(function(t){t[t.DEFAULT=0]="DEFAULT",t[t.DARK_MODE_ON=1]="DARK_MODE_ON",t[t.DARK_MODE_OFF=2]="DARK_MODE_OFF"})(BG||(BG={}));class VG{constructor(){this.DarkModeOverride=BG,this.onOverrideChanged=new Ab}getButtonTitle(){let t;switch(this.darkModeOverride){case BG.DEFAULT:t="Browser default";break;case BG.DARK_MODE_ON:t="Dark mode";break;case BG.DARK_MODE_OFF:t="Light mode"}return`Current mode: [${t}]. Switch between browser default, light, or dark theme.`}}VG.ɵfac=function t(e){return new(e||VG)},VG.ɵcmp=Uo({type:VG,selectors:[["app-header-dark-mode-toggle-component"]],inputs:{darkModeOverride:"darkModeOverride"},outputs:{onOverrideChanged:"onOverrideChanged"},decls:15,vars:6,consts:[["mat-icon-button","","aria-label","Menu for changing light or dark theme",3,"matMenuTriggerFor","ngSwitch","title"],["svgIcon","brightness_6_24px",4,"ngSwitchCase"],["svgIcon","light_mode_24px",4,"ngSwitchCase"],["svgIcon","dark_mode_24px",4,"ngSwitchCase"],["menu","matMenu"],["mat-menu-item","","title","Set the theme to match the default mode in the browser.",3,"click"],["mat-menu-item","","title","Force light TensorBoard theme.",3,"click"],["mat-menu-item","","title","Force dark TensorBoard theme.",3,"click"],["svgIcon","brightness_6_24px"],["svgIcon","light_mode_24px"],["svgIcon","dark_mode_24px"]],template:function t(e,n){1&e&&(Ou(0,"button",0),Wm(1,HG,1,0,"mat-icon",1),Wm(2,FG,1,0,"mat-icon",2),Wm(3,LG,1,0,"mat-icon",3),Pu(),Ou(4,"mat-menu",null,4),Ou(6,"button",5),Nu("click",(function t(){return n.onOverrideChanged.emit(n.DarkModeOverride.DEFAULT)})),Ou(7,"label"),Mf(8,"Browser default"),Pu(),Pu(),Ou(9,"button",6),Nu("click",(function t(){return n.onOverrideChanged.emit(n.DarkModeOverride.DARK_MODE_OFF)})),Ou(10,"label"),Mf(11,"Light"),Pu(),Pu(),Ou(12,"button",7),Nu("click",(function t(){return n.onOverrideChanged.emit(n.DarkModeOverride.DARK_MODE_ON)})),Ou(13,"label"),Mf(14,"Dark"),Pu(),Pu(),Pu()),2&e&&(vu("matMenuTriggerFor",Gm(5))("ngSwitch",n.darkModeOverride)("title",n.getButtonTitle()),Jc(1),vu("ngSwitchCase",n.DarkModeOverride.DEFAULT),Jc(1),vu("ngSwitchCase",n.DarkModeOverride.DARK_MODE_OFF),Jc(1),vu("ngSwitchCase",n.DarkModeOverride.DARK_MODE_ON))},directives:[NH,NG,cv,dv,DG,OG,cG],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(VG,[{type:h_,args:[{selector:"app-header-dark-mode-toggle-component",template:'\n    <button\n      mat-icon-button\n      [matMenuTriggerFor]="menu"\n      aria-label="Menu for changing light or dark theme"\n      [ngSwitch]="darkModeOverride"\n      [title]="getButtonTitle()"\n    >\n      <mat-icon\n        *ngSwitchCase="DarkModeOverride.DEFAULT"\n        svgIcon="brightness_6_24px"\n      ></mat-icon>\n      <mat-icon\n        *ngSwitchCase="DarkModeOverride.DARK_MODE_OFF"\n        svgIcon="light_mode_24px"\n      ></mat-icon>\n      <mat-icon\n        *ngSwitchCase="DarkModeOverride.DARK_MODE_ON"\n        svgIcon="dark_mode_24px"\n      ></mat-icon>\n    </button>\n    <mat-menu #menu="matMenu">\n      <button\n        mat-menu-item\n        title="Set the theme to match the default mode in the browser."\n        (click)="onOverrideChanged.emit(DarkModeOverride.DEFAULT)"\n      >\n        <label>Browser default</label>\n      </button>\n      <button\n        mat-menu-item\n        title="Force light TensorBoard theme."\n        (click)="onOverrideChanged.emit(DarkModeOverride.DARK_MODE_OFF)"\n      >\n        <label>Light</label>\n      </button>\n      <button\n        mat-menu-item\n        title="Force dark TensorBoard theme."\n        (click)="onOverrideChanged.emit(DarkModeOverride.DARK_MODE_ON)"\n      >\n        <label>Dark</label>\n      </button>\n    </mat-menu>\n  '}]}],null,{darkModeOverride:[{type:y_}],onOverrideChanged:[{type:__}]});class jG{constructor(t){this.store=t,this.darkModeOverride$=this.store.select(vE).pipe(ht((t=>null===t?BG.DEFAULT:t?BG.DARK_MODE_ON:BG.DARK_MODE_OFF)))}changeDarkMode(t){let e=null;switch(t){case BG.DEFAULT:e=null;break;case BG.DARK_MODE_OFF:e=!1;break;case BG.DARK_MODE_ON:e=!0}this.store.dispatch(tT({enableDarkMode:e}))}}jG.ɵfac=function t(e){return new(e||jG)(Mu(Ek))},jG.ɵcmp=Uo({type:jG,selectors:[["app-header-dark-mode-toggle"]],decls:2,vars:3,consts:[[3,"darkModeOverride","onOverrideChanged"]],template:function t(e,n){1&e&&(Ou(0,"app-header-dark-mode-toggle-component",0),Nu("onOverrideChanged",(function t(e){return n.changeDarkMode(e)})),Ob(1,"async"),Pu()),2&e&&vu("darkModeOverride",Pb(1,1,n.darkModeOverride$))},directives:[VG],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jG,[{type:h_,args:[{selector:"app-header-dark-mode-toggle",template:'\n    <app-header-dark-mode-toggle-component\n      [darkModeOverride]="darkModeOverride$ | async"\n      (onOverrideChanged)="changeDarkMode($event)"\n    >\n    </app-header-dark-mode-toggle-component>\n  '}]}],(function(){return[{type:Ek}]}),null);const UG=zk(pA,dA,((t,e)=>!(!e||!t[e])&&t[e].disable_reload));class WG{constructor(t){this.store=t,this.reloadDisabled$=this.store.select(UG),this.isReloading$=this.store.select(lA).pipe(ce(this.reloadDisabled$),ht((([t,e])=>!e&&t===BE.LOADING))),this.lastLoadedTimeInMs$=this.store.select(cA)}triggerReload(){this.store.dispatch(WE())}getReloadTitle(t){return t?`Last Updated: ${t}`:"Loading..."}}WG.ɵfac=function t(e){return new(e||WG)(Mu(Ek))},WG.ɵcmp=Uo({type:WG,selectors:[["app-header-reload"]],decls:6,vars:13,consts:[["mat-icon-button","",1,"reload-button",3,"title","disabled","click"],["svgIcon","refresh_24px",1,"refresh-icon"]],template:function t(e,n){1&e&&(Ou(0,"button",0),Nu("click",(function t(){return n.triggerReload()})),Ob(1,"async"),Ob(2,"date"),Ob(3,"async"),Ob(4,"async"),wu(5,"mat-icon",1),Pu()),2&e&&(af("loading",Pb(1,4,n.isReloading$)),vu("title",n.getReloadTitle(wb(2,6,Pb(3,9,n.lastLoadedTimeInMs$),"medium")))("disabled",Pb(4,11,n.reloadDisabled$)))},directives:[NH,cG],pipes:[Mv,wv],styles:[".reload-button[_ngcontent-%COMP%], .refresh-icon[_ngcontent-%COMP%] {\n        align-items: center;\n        display: flex;\n        justify-content: center;\n      }\n\n      .reload-button.loading[_ngcontent-%COMP%] {\n        animation: rotate 2s linear infinite;\n      }\n\n      @keyframes rotate {\n        0% {\n          transform: rotate(0deg);\n        }\n        50% {\n          transform: rotate(180deg);\n        }\n        100% {\n          transform: rotate(360deg);\n        }\n      }"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(WG,[{type:h_,args:[{selector:"app-header-reload",template:'\n    <button\n      class="reload-button"\n      [class.loading]="isReloading$ | async"\n      mat-icon-button\n      (click)="triggerReload()"\n      [title]="getReloadTitle(lastLoadedTimeInMs$ | async | date: \'medium\')"\n      [disabled]="reloadDisabled$ | async"\n    >\n      <mat-icon class="refresh-icon" svgIcon="refresh_24px"></mat-icon>\n    </button>\n  ',styles:["\n      .reload-button,\n      .refresh-icon {\n        align-items: center;\n        display: flex;\n        justify-content: center;\n      }\n\n      .reload-button.loading {\n        animation: rotate 2s linear infinite;\n      }\n\n      @keyframes rotate {\n        0% {\n          transform: rotate(0deg);\n        }\n        50% {\n          transform: rotate(180deg);\n        }\n        100% {\n          transform: rotate(360deg);\n        }\n      }\n    "]}]}],(function(){return[{type:Ek}]}),null);const GG="settings",YG={state:BE.LOADED,lastLoadedTimeInMs:Date.now(),settings:{reloadPeriodInMs:3e4,reloadEnabled:!1,pageSize:12}},qG=Fk(GG),ZG=zk(qG,(t=>t.state)),XG=zk(qG,(t=>t.settings.reloadEnabled)),KG=zk(qG,(t=>t.settings.reloadPeriodInMs)),JG=zk(qG,(t=>t.settings.pageSize)),QG=Ww("[Settings] Reload Enable Toggled"),$G=Ww("[Settings] Reload Period Change",{_as:"props",_p:void 0}),tY=Ww("[Settings] Page Size Change",{_as:"props",_p:void 0});function eY(t){return t.state!==BE.NOT_LOADED&&t.state!==BE.LOADING}const nY=mS(YG,pS(QG,(t=>eY(t)?Object.assign(Object.assign({},t),{settings:Object.assign(Object.assign({},t.settings),{reloadEnabled:!t.settings.reloadEnabled})}):t)),pS($G,((t,{periodInMs:e})=>{if(!eY(t))return t;const n=e>=3e4?e:t.settings.reloadPeriodInMs;return Object.assign(Object.assign({},t),{settings:Object.assign(Object.assign({},t.settings),{reloadPeriodInMs:n})})})),pS(tY,((t,{size:e})=>{if(!eY(t))return t;const n=e>0?e:t.settings.pageSize;return Object.assign(Object.assign({},t),{settings:Object.assign(Object.assign({},t.settings),{pageSize:n})})})),pS(PR,((t,{partialSettings:e})=>{const n={};return Number.isFinite(e.pageSize)&&e.pageSize>0&&(n.pageSize=e.pageSize),"boolean"==typeof e.autoReload&&(n.reloadEnabled=e.autoReload),Number.isFinite(e.autoReloadPeriodInMs)&&e.autoReloadPeriodInMs>3e4&&(n.reloadPeriodInMs=e.autoReloadPeriodInMs),Object.assign(Object.assign({},t),{settings:Object.assign(Object.assign({},t.settings),n)})})));function oY(t,e){return nY(t,e)}const iY=["input"],aY=function(){return{enterDuration:150}},rY=new Nr("mat-checkbox-default-options",{providedIn:"root",factory:function sY(){return{color:"accent",clickAction:"check-indeterminate"}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */});let lY=0;const cY={color:"accent",clickAction:"check-indeterminate"},dY={provide:vV,useExisting:In((()=>uY)),multi:!0};class pY{}const mY=Hz(Iz(zz(Nz(class{constructor(t){this._elementRef=t}}))));class uY extends mY{constructor(t,e,n,o,i,a,r){super(t),this._changeDetectorRef=e,this._focusMonitor=n,this._ngZone=o,this._animationMode=a,this._options=r,this.ariaLabel="",this.ariaLabelledby=null,this._uniqueId="mat-checkbox-"+ ++lY,this.id=this._uniqueId,this.labelPosition="after",this.name=null,this.change=new Ab,this.indeterminateChange=new Ab,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||cY,this.color=this.defaultColor=this._options.color||cY.color,this.tabIndex=parseInt(i)||0}get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(t){this._required=rI(t)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe((t=>{t||Promise.resolve().then((()=>{this._onTouched(),this._changeDetectorRef.markForCheck()}))})),this._syncIndeterminate(this._indeterminate)}ngAfterViewChecked(){}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}get checked(){return this._checked}set checked(t){t!=this.checked&&(this._checked=t,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(t){const e=rI(t);e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(t){const e=t!=this._indeterminate;this._indeterminate=rI(t),e&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(t){this.checked=!!t}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}_getAriaChecked(){return this.checked?"true":this.indeterminate?"mixed":"false"}_transitionCheckState(t){let e=this._currentCheckState,n=this._elementRef.nativeElement;if(e!==t&&(this._currentAnimationClass.length>0&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(e,t),this._currentCheckState=t,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);const t=this._currentAnimationClass;this._ngZone.runOutsideAngular((()=>{setTimeout((()=>{n.classList.remove(t)}),1e3)}))}}_emitChangeEvent(){const t=new pY;t.source=this,t.checked=this.checked,this._controlValueAccessorChangeFn(this.checked),this.change.emit(t),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked}_onInputClick(t){var e;const n=null===(e=this._options)||void 0===e?void 0:e.clickAction;t.stopPropagation(),this.disabled||"noop"===n?this.disabled||"noop"!==n||(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==n&&Promise.resolve().then((()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)})),this.toggle(),this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}focus(t,e){t?this._focusMonitor.focusVia(this._inputElement,t,e):this._inputElement.nativeElement.focus(e)}_onInteractionEvent(t){t.stopPropagation()}_getAnimationClassForCheckStateTransition(t,e){if("NoopAnimations"===this._animationMode)return"";let n="";switch(t){case 0:if(1===e)n="unchecked-checked";else{if(3!=e)return"";n="unchecked-indeterminate"}break;case 2:n=1===e?"unchecked-checked":"unchecked-indeterminate";break;case 1:n=2===e?"checked-unchecked":"checked-indeterminate";break;case 3:n=1===e?"indeterminate-checked":"indeterminate-unchecked"}return`mat-checkbox-anim-${n}`}_syncIndeterminate(t){const e=this._inputElement;e&&(e.nativeElement.indeterminate=t)}}uY.ɵfac=function t(e){return new(e||uY)(Mu(ch),Mu(Hh),Mu(pz),Mu(tC),Or("tabindex"),Mu(Nw,8),Mu(rY,8))},uY.ɵcmp=Uo({type:uY,selectors:[["mat-checkbox"]],viewQuery:function t(e,n){if(1&e&&(Wb(iY,1),Wb(pH,1)),2&e){let t;Ub(t=Yb())&&(n._inputElement=t.first),Ub(t=Yb())&&(n.ripple=t.first)}},hostAttrs:[1,"mat-checkbox"],hostVars:12,hostBindings:function t(e,n){2&e&&(kf("id",n.id),Nm("tabindex",null),af("mat-checkbox-indeterminate",n.indeterminate)("mat-checkbox-checked",n.checked)("mat-checkbox-disabled",n.disabled)("mat-checkbox-label-before","before"==n.labelPosition)("_mat-animation-noopable","NoopAnimations"===n._animationMode))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],id:"id",labelPosition:"labelPosition",name:"name",required:"required",checked:"checked",disabled:"disabled",indeterminate:"indeterminate",ariaDescribedby:["aria-describedby","ariaDescribedby"],value:"value"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[ih([dY]),gm],ngContentSelectors:["*"],decls:17,vars:20,consts:[[1,"mat-checkbox-layout"],["label",""],[1,"mat-checkbox-inner-container"],["type","checkbox",1,"mat-checkbox-input","cdk-visually-hidden",3,"id","required","checked","disabled","tabIndex","change","click"],["input",""],["matRipple","",1,"mat-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleRadius","matRippleCentered","matRippleAnimation"],[1,"mat-ripple-element","mat-checkbox-persistent-ripple"],[1,"mat-checkbox-frame"],[1,"mat-checkbox-background"],["version","1.1","focusable","false","viewBox","0 0 24 24",0,"xml","space","preserve",1,"mat-checkbox-checkmark"],["fill","none","stroke","white","d","M4.1,12.7 9,17.6 20.3,6.3",1,"mat-checkbox-checkmark-path"],[1,"mat-checkbox-mixedmark"],[1,"mat-checkbox-label",3,"cdkObserveContent"],["checkboxLabel",""],[2,"display","none"]],template:function t(e,n){if(1&e&&(Vu(),Ou(0,"label",0,1),Ou(2,"span",2),Ou(3,"input",3,4),Nu("change",(function t(e){return n._onInteractionEvent(e)}))("click",(function t(e){return n._onInputClick(e)})),Pu(),Ou(5,"span",5),wu(6,"span",6),Pu(),wu(7,"span",7),Ou(8,"span",8),Ha(),Ou(9,"svg",9),wu(10,"path",10),Pu(),Fa(),wu(11,"span",11),Pu(),Pu(),Ou(12,"span",12,13),Nu("cdkObserveContent",(function t(){return n._onLabelTextChange()})),Ou(14,"span",14),Mf(15," "),Pu(),ju(16),Pu(),Pu()),2&e){const t=Gm(1),e=Gm(13);Nm("for",n.inputId),Jc(2),af("mat-checkbox-inner-container-no-side-margin",!e.textContent||!e.textContent.trim()),Jc(1),vu("id",n.inputId)("required",n.required)("checked",n.checked)("disabled",n.disabled)("tabIndex",n.tabIndex),Nm("value",n.value)("name",n.name)("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby)("aria-checked",n._getAriaChecked())("aria-describedby",n.ariaDescribedby),Jc(2),vu("matRippleTrigger",t)("matRippleDisabled",n._isRippleDisabled())("matRippleRadius",20)("matRippleCentered",!0)("matRippleAnimation",fb(19,aY))}},directives:[pH,SI],styles:["@keyframes mat-checkbox-fade-in-background{0%{opacity:0}50%{opacity:1}}@keyframes mat-checkbox-fade-out-background{0%,50%{opacity:1}100%{opacity:0}}@keyframes mat-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:22.910259}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1)}100%{stroke-dashoffset:0}}@keyframes mat-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mat-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);stroke-dashoffset:0}to{stroke-dashoffset:-22.910259}}@keyframes mat-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(45deg)}}@keyframes mat-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:0;transform:rotate(45deg)}to{opacity:1;transform:rotate(360deg)}}@keyframes mat-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:rotate(0deg)}}@keyframes mat-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(315deg)}}@keyframes mat-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;opacity:1;transform:scaleX(1)}32.8%,100%{opacity:0;transform:scaleX(0)}}.mat-checkbox-background,.mat-checkbox-frame{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:2px;box-sizing:border-box;pointer-events:none}.mat-checkbox{display:inline-block;transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);cursor:pointer;-webkit-tap-highlight-color:transparent}._mat-animation-noopable.mat-checkbox{transition:none;animation:none}.mat-checkbox .mat-ripple-element:not(.mat-checkbox-persistent-ripple){opacity:.16}.mat-checkbox-layout{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mat-checkbox-label{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.mat-checkbox-inner-container{display:inline-block;height:16px;line-height:0;margin:auto;margin-right:8px;order:0;position:relative;vertical-align:middle;white-space:nowrap;width:16px;flex-shrink:0}[dir=rtl] .mat-checkbox-inner-container{margin-left:8px;margin-right:auto}.mat-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mat-checkbox-frame{background-color:transparent;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1);border-width:2px;border-style:solid}._mat-animation-noopable .mat-checkbox-frame{transition:none}.cdk-high-contrast-active .mat-checkbox.cdk-keyboard-focused .mat-checkbox-frame{border-style:dotted}.mat-checkbox-background{align-items:center;display:inline-flex;justify-content:center;transition:background-color 90ms cubic-bezier(0, 0, 0.2, 0.1),opacity 90ms cubic-bezier(0, 0, 0.2, 0.1);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-checkbox-background{transition:none}.cdk-high-contrast-active .mat-checkbox .mat-checkbox-background{background:none}.mat-checkbox-persistent-ripple{display:block;width:100%;height:100%;transform:none}.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:.04}.mat-checkbox.cdk-keyboard-focused .mat-checkbox-persistent-ripple{opacity:.12}.mat-checkbox-persistent-ripple,.mat-checkbox.mat-checkbox-disabled .mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:0}@media(hover: none){.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{display:none}}.mat-checkbox-checkmark{top:0;left:0;right:0;bottom:0;position:absolute;width:100%}.mat-checkbox-checkmark-path{stroke-dashoffset:22.910259;stroke-dasharray:22.910259;stroke-width:2.1333333333px}.cdk-high-contrast-black-on-white .mat-checkbox-checkmark-path{stroke:#000 !important}.mat-checkbox-mixedmark{width:calc(100% - 6px);height:2px;opacity:0;transform:scaleX(0) rotate(0deg);border-radius:2px}.cdk-high-contrast-active .mat-checkbox-mixedmark{height:0;border-top:solid 2px;margin-top:2px}.mat-checkbox-label-before .mat-checkbox-inner-container{order:1;margin-left:8px;margin-right:auto}[dir=rtl] .mat-checkbox-label-before .mat-checkbox-inner-container{margin-left:auto;margin-right:8px}.mat-checkbox-checked .mat-checkbox-checkmark{opacity:1}.mat-checkbox-checked .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-checked .mat-checkbox-mixedmark{transform:scaleX(1) rotate(-45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark{opacity:0;transform:rotate(45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-indeterminate .mat-checkbox-mixedmark{opacity:1;transform:scaleX(1) rotate(0deg)}.mat-checkbox-unchecked .mat-checkbox-background{background-color:transparent}.mat-checkbox-disabled{cursor:default}.cdk-high-contrast-active .mat-checkbox-disabled{opacity:.5}.mat-checkbox-anim-unchecked-checked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-checked .mat-checkbox-checkmark-path{animation:180ms linear 0ms mat-checkbox-unchecked-checked-checkmark-path}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-unchecked-indeterminate-mixedmark}.mat-checkbox-anim-checked-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-checked-unchecked .mat-checkbox-checkmark-path{animation:90ms linear 0ms mat-checkbox-checked-unchecked-checkmark-path}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-checkmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-checkmark}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-mixedmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-checkmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-checkmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-mixedmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-mixedmark}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-mixedmark{animation:300ms linear 0ms mat-checkbox-indeterminate-unchecked-mixedmark}.mat-checkbox-input{bottom:0;left:50%}.mat-checkbox .mat-checkbox-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}\n"],encapsulation:2,changeDetection:0}),uY.ctorParameters=()=>[{type:ch},{type:Hh},{type:pz},{type:tC},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[rY]}]}],uY.propDecorators={ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],ariaDescribedby:[{type:y_,args:["aria-describedby"]}],id:[{type:y_}],required:[{type:y_}],labelPosition:[{type:y_}],name:[{type:y_}],change:[{type:__}],indeterminateChange:[{type:__}],value:[{type:y_}],_inputElement:[{type:Fr,args:["input"]}],ripple:[{type:Fr,args:[pH]}],checked:[{type:y_}],disabled:[{type:y_}],indeterminate:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(uY,[{type:h_,args:[{selector:"mat-checkbox",template:'<label [attr.for]="inputId" class="mat-checkbox-layout" #label>\n  <span class="mat-checkbox-inner-container"\n       [class.mat-checkbox-inner-container-no-side-margin]="!checkboxLabel.textContent || !checkboxLabel.textContent.trim()">\n    <input #input\n           class="mat-checkbox-input cdk-visually-hidden" type="checkbox"\n           [id]="inputId"\n           [required]="required"\n           [checked]="checked"\n           [attr.value]="value"\n           [disabled]="disabled"\n           [attr.name]="name"\n           [tabIndex]="tabIndex"\n           [attr.aria-label]="ariaLabel || null"\n           [attr.aria-labelledby]="ariaLabelledby"\n           [attr.aria-checked]="_getAriaChecked()"\n           [attr.aria-describedby]="ariaDescribedby"\n           (change)="_onInteractionEvent($event)"\n           (click)="_onInputClick($event)">\n    <span matRipple class="mat-checkbox-ripple mat-focus-indicator"\n         [matRippleTrigger]="label"\n         [matRippleDisabled]="_isRippleDisabled()"\n         [matRippleRadius]="20"\n         [matRippleCentered]="true"\n         [matRippleAnimation]="{enterDuration: 150}">\n      <span class="mat-ripple-element mat-checkbox-persistent-ripple"></span>\n    </span>\n    <span class="mat-checkbox-frame"></span>\n    <span class="mat-checkbox-background">\n      <svg version="1.1"\n           focusable="false"\n           class="mat-checkbox-checkmark"\n           viewBox="0 0 24 24"\n           xml:space="preserve">\n        <path class="mat-checkbox-checkmark-path"\n              fill="none"\n              stroke="white"\n              d="M4.1,12.7 9,17.6 20.3,6.3"/>\n      </svg>\n      \x3c!-- Element for rendering the indeterminate state checkbox. --\x3e\n      <span class="mat-checkbox-mixedmark"></span>\n    </span>\n  </span>\n  <span class="mat-checkbox-label" #checkboxLabel (cdkObserveContent)="_onLabelTextChange()">\n    \x3c!-- Add an invisible span so JAWS can read the label --\x3e\n    <span style="display:none">&nbsp;</span>\n    <ng-content></ng-content>\n  </span>\n</label>\n',exportAs:"matCheckbox",host:{class:"mat-checkbox","[id]":"id","[attr.tabindex]":"null","[class.mat-checkbox-indeterminate]":"indeterminate","[class.mat-checkbox-checked]":"checked","[class.mat-checkbox-disabled]":"disabled","[class.mat-checkbox-label-before]":'labelPosition == "before"',"[class._mat-animation-noopable]":"_animationMode === 'NoopAnimations'"},providers:[dY],inputs:["disableRipple","color","tabIndex"],encapsulation:Po.None,changeDetection:xo.OnPush,styles:["@keyframes mat-checkbox-fade-in-background{0%{opacity:0}50%{opacity:1}}@keyframes mat-checkbox-fade-out-background{0%,50%{opacity:1}100%{opacity:0}}@keyframes mat-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:22.910259}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1)}100%{stroke-dashoffset:0}}@keyframes mat-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mat-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);stroke-dashoffset:0}to{stroke-dashoffset:-22.910259}}@keyframes mat-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(45deg)}}@keyframes mat-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:0;transform:rotate(45deg)}to{opacity:1;transform:rotate(360deg)}}@keyframes mat-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:rotate(0deg)}}@keyframes mat-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(315deg)}}@keyframes mat-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;opacity:1;transform:scaleX(1)}32.8%,100%{opacity:0;transform:scaleX(0)}}.mat-checkbox-background,.mat-checkbox-frame{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:2px;box-sizing:border-box;pointer-events:none}.mat-checkbox{display:inline-block;transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);cursor:pointer;-webkit-tap-highlight-color:transparent}._mat-animation-noopable.mat-checkbox{transition:none;animation:none}.mat-checkbox .mat-ripple-element:not(.mat-checkbox-persistent-ripple){opacity:.16}.mat-checkbox-layout{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mat-checkbox-label{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.mat-checkbox-inner-container{display:inline-block;height:16px;line-height:0;margin:auto;margin-right:8px;order:0;position:relative;vertical-align:middle;white-space:nowrap;width:16px;flex-shrink:0}[dir=rtl] .mat-checkbox-inner-container{margin-left:8px;margin-right:auto}.mat-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mat-checkbox-frame{background-color:transparent;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1);border-width:2px;border-style:solid}._mat-animation-noopable .mat-checkbox-frame{transition:none}.cdk-high-contrast-active .mat-checkbox.cdk-keyboard-focused .mat-checkbox-frame{border-style:dotted}.mat-checkbox-background{align-items:center;display:inline-flex;justify-content:center;transition:background-color 90ms cubic-bezier(0, 0, 0.2, 0.1),opacity 90ms cubic-bezier(0, 0, 0.2, 0.1);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-checkbox-background{transition:none}.cdk-high-contrast-active .mat-checkbox .mat-checkbox-background{background:none}.mat-checkbox-persistent-ripple{display:block;width:100%;height:100%;transform:none}.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:.04}.mat-checkbox.cdk-keyboard-focused .mat-checkbox-persistent-ripple{opacity:.12}.mat-checkbox-persistent-ripple,.mat-checkbox.mat-checkbox-disabled .mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:0}@media(hover: none){.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{display:none}}.mat-checkbox-checkmark{top:0;left:0;right:0;bottom:0;position:absolute;width:100%}.mat-checkbox-checkmark-path{stroke-dashoffset:22.910259;stroke-dasharray:22.910259;stroke-width:2.1333333333px}.cdk-high-contrast-black-on-white .mat-checkbox-checkmark-path{stroke:#000 !important}.mat-checkbox-mixedmark{width:calc(100% - 6px);height:2px;opacity:0;transform:scaleX(0) rotate(0deg);border-radius:2px}.cdk-high-contrast-active .mat-checkbox-mixedmark{height:0;border-top:solid 2px;margin-top:2px}.mat-checkbox-label-before .mat-checkbox-inner-container{order:1;margin-left:8px;margin-right:auto}[dir=rtl] .mat-checkbox-label-before .mat-checkbox-inner-container{margin-left:auto;margin-right:8px}.mat-checkbox-checked .mat-checkbox-checkmark{opacity:1}.mat-checkbox-checked .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-checked .mat-checkbox-mixedmark{transform:scaleX(1) rotate(-45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark{opacity:0;transform:rotate(45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-indeterminate .mat-checkbox-mixedmark{opacity:1;transform:scaleX(1) rotate(0deg)}.mat-checkbox-unchecked .mat-checkbox-background{background-color:transparent}.mat-checkbox-disabled{cursor:default}.cdk-high-contrast-active .mat-checkbox-disabled{opacity:.5}.mat-checkbox-anim-unchecked-checked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-checked .mat-checkbox-checkmark-path{animation:180ms linear 0ms mat-checkbox-unchecked-checked-checkmark-path}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-unchecked-indeterminate-mixedmark}.mat-checkbox-anim-checked-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-checked-unchecked .mat-checkbox-checkmark-path{animation:90ms linear 0ms mat-checkbox-checked-unchecked-checkmark-path}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-checkmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-checkmark}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-mixedmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-checkmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-checkmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-mixedmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-mixedmark}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-mixedmark{animation:300ms linear 0ms mat-checkbox-indeterminate-unchecked-mixedmark}.mat-checkbox-input{bottom:0;left:50%}.mat-checkbox .mat-checkbox-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}\n"]}]}],(function(){return[{type:ch},{type:Hh},{type:pz},{type:tC},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[rY]}]}]}),{ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],id:[{type:y_}],labelPosition:[{type:y_}],name:[{type:y_}],change:[{type:__}],indeterminateChange:[{type:__}],required:[{type:y_}],checked:[{type:y_}],disabled:[{type:y_}],indeterminate:[{type:y_}],ariaDescribedby:[{type:y_,args:["aria-describedby"]}],value:[{type:y_}],_inputElement:[{type:Fr,args:["input"]}],ripple:[{type:Fr,args:[pH]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const fY={provide:EV,useExisting:In((()=>gY)),multi:!0};class gY extends kU{}gY.ɵfac=function t(e){return hY(e||gY)},gY.ɵdir=Jo({type:gY,selectors:[["mat-checkbox","required","","formControlName",""],["mat-checkbox","required","","formControl",""],["mat-checkbox","required","","ngModel",""]],features:[ih([fY]),gm]});const hY=vr(gY);("undefined"==typeof ngDevMode||ngDevMode)&&db(gY,[{type:g_,args:[{selector:"mat-checkbox[required][formControlName],\n             mat-checkbox[required][formControl], mat-checkbox[required][ngModel]",providers:[fY]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class bY{}bY.ɵfac=function t(e){return new(e||bY)},bY.ɵmod=Zo({type:bY}),bY.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(bY,{declarations:[gY],exports:[gY]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(bY,[{type:k_,args:[{exports:[gY],declarations:[gY]}]}],null,null);class yY{}yY.ɵfac=function t(e){return new(e||yY)},yY.ɵmod=Zo({type:yY}),yY.ɵinj=co({imports:[[mH,Tz,DI,bY],Tz,bY]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(yY,{declarations:function(){return[uY]},imports:function(){return[mH,Tz,DI,bY]},exports:function(){return[uY,Tz,bY]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(yY,[{type:k_,args:[{imports:[mH,Tz,DI,bY],exports:[uY,Tz,bY],declarations:[uY]}]}],null,null);const _Y=vI({passive:!0});class CY{constructor(t,e){this._platform=t,this._ngZone=e,this._monitoredElements=new Map}monitor(t){if(!this._platform.isBrowser)return U;const e=pI(t),n=this._monitoredElements.get(e);if(n)return n.subject;const o=new x,i="cdk-text-field-autofilled",a=t=>{"cdk-text-field-autofill-start"!==t.animationName||e.classList.contains(i)?"cdk-text-field-autofill-end"===t.animationName&&e.classList.contains(i)&&(e.classList.remove(i),this._ngZone.run((()=>o.next({target:t.target,isAutofilled:!1})))):(e.classList.add(i),this._ngZone.run((()=>o.next({target:t.target,isAutofilled:!0}))))};return this._ngZone.runOutsideAngular((()=>{e.addEventListener("animationstart",a,_Y),e.classList.add("cdk-text-field-autofill-monitored")})),this._monitoredElements.set(e,{subject:o,unlisten:()=>{e.removeEventListener("animationstart",a,_Y)}}),o}stopMonitoring(t){const e=pI(t),n=this._monitoredElements.get(e);n&&(n.unlisten(),n.subject.complete(),e.classList.remove("cdk-text-field-autofill-monitored"),e.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(e))}ngOnDestroy(){this._monitoredElements.forEach(((t,e)=>this.stopMonitoring(e)))}}CY.ɵfac=function t(e){return new(e||CY)(us(fI),us(tC))},CY.ɵprov=lo({factory:function t(){return new CY(us(fI),us(tC))},token:CY,providedIn:"root"}),CY.ctorParameters=()=>[{type:fI},{type:tC}],("undefined"==typeof ngDevMode||ngDevMode)&&db(CY,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[{type:fI},{type:tC}]}),null);class MY{constructor(t,e){this._elementRef=t,this._autofillMonitor=e,this.cdkAutofill=new Ab}ngOnInit(){this._autofillMonitor.monitor(this._elementRef).subscribe((t=>this.cdkAutofill.emit(t)))}ngOnDestroy(){this._autofillMonitor.stopMonitoring(this._elementRef)}}MY.ɵfac=function t(e){return new(e||MY)(Mu(ch),Mu(CY))},MY.ɵdir=Jo({type:MY,selectors:[["","cdkAutofill",""]],outputs:{cdkAutofill:"cdkAutofill"}}),MY.ctorParameters=()=>[{type:ch},{type:CY}],MY.propDecorators={cdkAutofill:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(MY,[{type:g_,args:[{selector:"[cdkAutofill]"}]}],(function(){return[{type:ch},{type:CY}]}),{cdkAutofill:[{type:__}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class vY{constructor(t,e,n,o){this._elementRef=t,this._platform=e,this._ngZone=n,this._destroyed=new x,this._enabled=!0,this._previousMinRows=-1,this._document=o,this._textareaElement=this._elementRef.nativeElement,this._measuringClass=e.FIREFOX?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring"}get minRows(){return this._minRows}set minRows(t){this._minRows=sI(t),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(t){this._maxRows=sI(t),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(t){t=rI(t),this._enabled!==t&&((this._enabled=t)?this.resizeToFitContent(!0):this.reset())}_setMinHeight(){const t=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;t&&(this._textareaElement.style.minHeight=t)}_setMaxHeight(){const t=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;t&&(this._textareaElement.style.maxHeight=t)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular((()=>{Vt(this._getWindow(),"resize").pipe(oe(16),un(this._destroyed)).subscribe((()=>this.resizeToFitContent(!0)))})))}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let t=this._textareaElement.cloneNode(!1);t.rows=1,t.style.position="absolute",t.style.visibility="hidden",t.style.border="none",t.style.padding="0",t.style.height="",t.style.minHeight="",t.style.maxHeight="",t.style.overflow="hidden",this._textareaElement.parentNode.appendChild(t),this._cachedLineHeight=t.clientHeight,this._textareaElement.parentNode.removeChild(t),this._setMinHeight(),this._setMaxHeight()}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(t=!1){if(!this._enabled)return;if(this._cacheTextareaLineHeight(),!this._cachedLineHeight)return;const e=this._elementRef.nativeElement,n=e.value;if(!t&&this._minRows===this._previousMinRows&&n===this._previousValue)return;const o=e.placeholder;e.classList.add(this._measuringClass),e.placeholder="",e.style.height=e.scrollHeight-4+"px",e.classList.remove(this._measuringClass),e.placeholder=o,this._ngZone.runOutsideAngular((()=>{"undefined"!=typeof requestAnimationFrame?requestAnimationFrame((()=>this._scrollToCaretPosition(e))):setTimeout((()=>this._scrollToCaretPosition(e)))})),this._previousValue=n,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(t){const{selectionStart:e,selectionEnd:n}=t,o=this._getDocument();this._destroyed.isStopped||o.activeElement!==t||t.setSelectionRange(e,n)}}vY.ɵfac=function t(e){return new(e||vY)(Mu(ch),Mu(fI),Mu(tC),Mu(UC,8))},vY.ɵdir=Jo({type:vY,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function t(e,n){1&e&&Nu("input",(function t(){return n._noopInputHandler()}))},inputs:{minRows:["cdkAutosizeMinRows","minRows"],maxRows:["cdkAutosizeMaxRows","maxRows"],enabled:["cdkTextareaAutosize","enabled"]},exportAs:["cdkTextareaAutosize"]}),vY.ctorParameters=()=>[{type:ch},{type:fI},{type:tC},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]}],vY.propDecorators={minRows:[{type:y_,args:["cdkAutosizeMinRows"]}],maxRows:[{type:y_,args:["cdkAutosizeMaxRows"]}],enabled:[{type:y_,args:["cdkTextareaAutosize"]}],_noopInputHandler:[{type:M_,args:["input"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(vY,[{type:g_,args:[{selector:"textarea[cdkTextareaAutosize]",exportAs:"cdkTextareaAutosize",host:{class:"cdk-textarea-autosize",rows:"1"}}]}],(function(){return[{type:ch},{type:fI},{type:tC},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]}]}),{minRows:[{type:y_,args:["cdkAutosizeMinRows"]}],maxRows:[{type:y_,args:["cdkAutosizeMaxRows"]}],enabled:[{type:y_,args:["cdkTextareaAutosize"]}],_noopInputHandler:[{type:M_,args:["input"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class xY{}xY.ɵfac=function t(e){return new(e||xY)},xY.ɵmod=Zo({type:xY}),xY.ɵinj=co({imports:[[gI]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(xY,{declarations:function(){return[MY,vY]},imports:function(){return[gI]},exports:function(){return[MY,vY]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(xY,[{type:k_,args:[{declarations:[MY,vY],imports:[gI],exports:[MY,vY]}]}],null,null);class OY extends vY{get matAutosizeMinRows(){return this.minRows}set matAutosizeMinRows(t){this.minRows=t}get matAutosizeMaxRows(){return this.maxRows}set matAutosizeMaxRows(t){this.maxRows=t}get matAutosize(){return this.enabled}set matAutosize(t){this.enabled=t}get matTextareaAutosize(){return this.enabled}set matTextareaAutosize(t){this.enabled=t}}OY.ɵfac=function t(e){return PY(e||OY)},OY.ɵdir=Jo({type:OY,selectors:[["textarea","mat-autosize",""],["textarea","matTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize","mat-autosize"],inputs:{cdkAutosizeMinRows:"cdkAutosizeMinRows",cdkAutosizeMaxRows:"cdkAutosizeMaxRows",matAutosizeMinRows:"matAutosizeMinRows",matAutosizeMaxRows:"matAutosizeMaxRows",matAutosize:["mat-autosize","matAutosize"],matTextareaAutosize:"matTextareaAutosize"},exportAs:["matTextareaAutosize"],features:[gm]}),OY.propDecorators={matAutosizeMinRows:[{type:y_}],matAutosizeMaxRows:[{type:y_}],matAutosize:[{type:y_,args:["mat-autosize"]}],matTextareaAutosize:[{type:y_}]};const PY=vr(OY);("undefined"==typeof ngDevMode||ngDevMode)&&db(OY,[{type:g_,args:[{selector:"textarea[mat-autosize], textarea[matTextareaAutosize]",exportAs:"matTextareaAutosize",inputs:["cdkAutosizeMinRows","cdkAutosizeMaxRows"],host:{class:"cdk-textarea-autosize mat-autosize",rows:"1"}}]}],null,{matAutosizeMinRows:[{type:y_}],matAutosizeMaxRows:[{type:y_}],matAutosize:[{type:y_,args:["mat-autosize"]}],matTextareaAutosize:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const wY=new Nr("MAT_INPUT_VALUE_ACCESSOR"),kY=["button","checkbox","file","hidden","image","radio","range","reset","submit"];
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */let SY=0;const DY=Fz(class{constructor(t,e,n,o){this._defaultErrorStateMatcher=t,this._parentForm=e,this._parentFormGroup=n,this.ngControl=o}});class EY extends DY{constructor(t,e,n,o,i,a,r,s,l,c){super(a,o,i,n),this._elementRef=t,this._platform=e,this.ngControl=n,this._autofillMonitor=s,this._formField=c,this._uid="mat-input-"+SY++,this.focused=!1,this.stateChanges=new x,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._required=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter((t=>bI().has(t)));const d=this._elementRef.nativeElement,p=d.nodeName.toLowerCase();this._inputValueAccessor=r||d,this._previousNativeValue=this.value,this.id=this.id,e.IOS&&l.runOutsideAngular((()=>{t.nativeElement.addEventListener("keyup",(t=>{let e=t.target;e.value||e.selectionStart||e.selectionEnd||(e.setSelectionRange(1,1),e.setSelectionRange(0,0))}))})),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===p,this._isTextarea="textarea"===p,this._isNativeSelect&&(this.controlType=d.multiple?"mat-native-select-multiple":"mat-native-select")}get disabled(){return this.ngControl&&null!==this.ngControl.disabled?this.ngControl.disabled:this._disabled}set disabled(t){this._disabled=rI(t),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(t){this._id=t||this._uid}get required(){return this._required}set required(t){this._required=rI(t)}get type(){return this._type}set type(t){this._type=t||"text",this._validateType(),!this._isTextarea&&bI().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(t){t!==this.value&&(this._inputValueAccessor.value=t,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(t){this._readonly=rI(t)}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe((t=>{this.autofilled=t.isAutofilled,this.stateChanges.next()}))}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement)}ngDoCheck(){this.ngControl&&this.updateErrorState(),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(t){this._elementRef.nativeElement.focus(t)}_focusChanged(t){t===this.focused||this.readonly&&t||(this.focused=t,this.stateChanges.next())}_onInput(){}_dirtyCheckPlaceholder(){var t,e;const n=(null===(e=null===(t=this._formField)||void 0===t?void 0:t._hideControlPlaceholder)||void 0===e?void 0:e.call(t))?null:this.placeholder;if(n!==this._previousPlaceholder){const t=this._elementRef.nativeElement;this._previousPlaceholder=n,n?t.setAttribute("placeholder",n):t.removeAttribute("placeholder")}}_dirtyCheckNativeValue(){const t=this._elementRef.nativeElement.value;this._previousNativeValue!==t&&(this._previousNativeValue=t,this.stateChanges.next())}_validateType(){if(kY.indexOf(this._type)>-1&&("undefined"==typeof ngDevMode||ngDevMode))
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
throw(function t(e){return Error(`Input type "${e}" isn't supported by matInput.`)})(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let t=this._elementRef.nativeElement.validity;return t&&t.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const t=this._elementRef.nativeElement,e=t.options[0];return this.focused||t.multiple||!this.empty||!!(t.selectedIndex>-1&&e&&e.label)}return this.focused||!this.empty}setDescribedByIds(t){t.length?this._elementRef.nativeElement.setAttribute("aria-describedby",t.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}}EY.ɵfac=function t(e){return new(e||EY)(Mu(ch),Mu(fI),Mu(nj,10),Mu(Bj,8),Mu(lU,8),Mu(eH),Mu(wY,10),Mu(CY),Mu(tC),Mu(yV,8))},EY.ɵdir=Jo({type:EY,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-input-element","mat-form-field-autofill-control"],hostVars:9,hostBindings:function t(e,n){1&e&&Nu("focus",(function t(){return n._focusChanged(!0)}))("blur",(function t(){return n._focusChanged(!1)}))("input",(function t(){return n._onInput()})),2&e&&(kf("disabled",n.disabled)("required",n.required),Nm("id",n.id)("data-placeholder",n.placeholder)("readonly",n.readonly&&!n._isNativeSelect||null)("aria-invalid",n.errorState&&!n.empty)("aria-required",n.required),af("mat-input-server",n._isServer))},inputs:{id:"id",disabled:"disabled",required:"required",type:"type",value:"value",readonly:"readonly",placeholder:"placeholder",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"]},exportAs:["matInput"],features:[ih([{provide:iV,useExisting:EY}]),gm,Si]}),EY.ctorParameters=()=>[{type:ch},{type:fI},{type:nj,decorators:[{type:_s},{type:Cs}]},{type:Bj,decorators:[{type:_s}]},{type:lU,decorators:[{type:_s}]},{type:eH},{type:void 0,decorators:[{type:_s},{type:Cs},{type:ys,args:[wY]}]},{type:CY},{type:tC},{type:_V,decorators:[{type:_s},{type:ys,args:[yV]}]}],EY.propDecorators={disabled:[{type:y_}],id:[{type:y_}],placeholder:[{type:y_}],required:[{type:y_}],type:[{type:y_}],errorStateMatcher:[{type:y_}],userAriaDescribedBy:[{type:y_,args:["aria-describedby"]}],value:[{type:y_}],readonly:[{type:y_}],_focusChanged:[{type:M_,args:["focus",["true"]]},{type:M_,args:["blur",["false"]]}],_onInput:[{type:M_,args:["input"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(EY,[{type:g_,args:[{selector:"input[matInput], textarea[matInput], select[matNativeControl],\n      input[matNativeControl], textarea[matNativeControl]",exportAs:"matInput",host:{class:"mat-input-element mat-form-field-autofill-control","[class.mat-input-server]":"_isServer","[attr.id]":"id","[attr.data-placeholder]":"placeholder","[disabled]":"disabled","[required]":"required","[attr.readonly]":"readonly && !_isNativeSelect || null","[attr.aria-invalid]":"errorState && !empty","[attr.aria-required]":"required"},providers:[{provide:iV,useExisting:EY}]}]}],(function(){return[{type:ch},{type:fI},{type:nj,decorators:[{type:_s},{type:Cs}]},{type:Bj,decorators:[{type:_s}]},{type:lU,decorators:[{type:_s}]},{type:eH},{type:void 0,decorators:[{type:_s},{type:Cs},{type:ys,args:[wY]}]},{type:CY},{type:tC},{type:_V,decorators:[{type:_s},{type:ys,args:[yV]}]}]}),{id:[{type:y_}],disabled:[{type:y_}],required:[{type:y_}],type:[{type:y_}],value:[{type:y_}],readonly:[{type:y_}],_focusChanged:[{type:M_,args:["focus",["true"]]},{type:M_,args:["blur",["false"]]}],_onInput:[{type:M_,args:["input"]}],placeholder:[{type:y_}],errorStateMatcher:[{type:y_}],userAriaDescribedBy:[{type:y_,args:["aria-describedby"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class AY{}function RY(t,e){if(1&t&&(Ou(0,"mat-error"),Mf(1),Pu()),2&t){const t=Lu();Jc(1),xf(" Reload period has to be minimum of ",t.MIN_RELOAD_PERIOD_IN_S," seconds. ")}}function TY(t,e){1&t&&(Ou(0,"mat-error"),Mf(1," Page size has to be a positive integer. "),Pu())}AY.ɵfac=function t(e){return new(e||AY)},AY.ɵmod=Zo({type:AY}),AY.ɵinj=co({providers:[eH],imports:[[xY,CV,Tz],xY,CV]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(AY,{declarations:function(){return[EY,OY]},imports:function(){return[xY,CV,Tz]},exports:function(){return[xY,CV,EY,OY]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(AY,[{type:k_,args:[{declarations:[EY,OY],imports:[xY,CV,Tz],exports:[xY,CV,EY,OY],providers:[eH]}]}],null,null);class NY{constructor(){this.reloadToggled=new Ab,this.reloadPeriodInMsChanged=new Ab,this.pageSizeChanged=new Ab,this.MIN_RELOAD_PERIOD_IN_S=30,this.reloadPeriodControl=new Ij(this.MIN_RELOAD_PERIOD_IN_S,[TV.required,TV.min(this.MIN_RELOAD_PERIOD_IN_S)]),this.paginationControl=new Ij(1,[TV.required,TV.min(1),t=>{const e=Number(t.value);return Math.round(e)===t.value?null:{integer:{value:t.value}}}]),this.ngUnsubscribe=new x}ngOnInit(){this.reloadPeriodControl.valueChanges.pipe(un(this.ngUnsubscribe),de(500),Gt((()=>this.reloadPeriodControl.valid))).subscribe((()=>{this.reloadPeriodControl.valid&&this.reloadPeriodInMsChanged.emit(1e3*this.reloadPeriodControl.value)})),this.paginationControl.valueChanges.pipe(un(this.ngUnsubscribe),de(500),Gt((()=>this.paginationControl.valid))).subscribe((()=>{this.pageSizeChanged.emit(this.paginationControl.value)}))}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}ngOnChanges(t){if(t.reloadPeriodInMs){const e=t.reloadPeriodInMs;e.previousValue!==e.currentValue&&this.reloadPeriodControl.setValue(e.currentValue/1e3)}if(t.reloadEnabled&&(t.reloadEnabled.currentValue?this.reloadPeriodControl.enable():this.reloadPeriodControl.disable()),t.pageSize){const e=t.pageSize;e.previousValue!==e.currentValue&&this.paginationControl.setValue(e.currentValue)}}onReloadToggle(){this.reloadToggled.emit()}}NY.ɵfac=function t(e){return new(e||NY)},NY.ɵcmp=Uo({type:NY,selectors:[["settings-dialog-component"]],inputs:{reloadEnabled:"reloadEnabled",reloadPeriodInMs:"reloadPeriodInMs",pageSize:"pageSize"},outputs:{reloadToggled:"reloadToggled",reloadPeriodInMsChanged:"reloadPeriodInMsChanged",pageSizeChanged:"pageSizeChanged"},features:[Si],decls:14,vars:5,consts:[[1,"reload-toggle"],[3,"checked","change"],["matInput","","type","number","placeholder","Reload Period",1,"reload-period",3,"formControl"],[4,"ngIf"],["matInput","","type","number","placeholder","Pagination Limit",1,"page-size",3,"formControl"]],template:function t(e,n){1&e&&(Ou(0,"h3"),Mf(1,"Settings"),Pu(),Ou(2,"div"),Ou(3,"div",0),Ou(4,"mat-checkbox",1),Nu("change",(function t(){return n.onReloadToggle()})),Mf(5,"Reload data"),Pu(),Pu(),Ou(6,"div"),Ou(7,"mat-form-field"),wu(8,"input",2),Pu(),Wm(9,RY,2,1,"mat-error",3),Pu(),Pu(),Ou(10,"div"),Ou(11,"mat-form-field"),wu(12,"input",4),Pu(),Wm(13,TY,2,0,"mat-error",3),Pu()),2&e&&(Jc(4),vu("checked",n.reloadEnabled),Jc(4),vu("formControl",n.reloadPeriodControl),Jc(1),vu("ngIf",n.reloadPeriodControl.hasError("min")||n.reloadPeriodControl.hasError("required")),Jc(3),vu("formControl",n.paginationControl),Jc(1),vu("ngIf",n.paginationControl.invalid))},directives:[uY,_V,EY,Jj,kV,aj,rU,av,nV],styles:["[_nghost-%COMP%] {\n  font-size: 15px;\n}\n\n[_nghost-%COMP%]    > div[_ngcontent-%COMP%] {\n  margin: 10px 0;\n}\n\n[_nghost-%COMP%]    > [_ngcontent-%COMP%]:first-child {\n  margin-top: 0;\n}\n\n[_nghost-%COMP%]    > [_ngcontent-%COMP%]:last-child {\n  margin-bottom: 0;\n}\n\nh3[_ngcontent-%COMP%] {\n  font-size: 20px;\n}\n\n.reload-toggle[_ngcontent-%COMP%] {\n  margin-bottom: 10px;\n}"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(NY,[{type:h_,args:[{selector:"settings-dialog-component",template:'\n    <h3>Settings</h3>\n    <div>\n      <div class="reload-toggle">\n        <mat-checkbox [checked]="reloadEnabled" (change)="onReloadToggle()"\n          >Reload data</mat-checkbox\n        >\n      </div>\n      <div>\n        <mat-form-field>\n          <input\n            class="reload-period"\n            matInput\n            type="number"\n            placeholder="Reload Period"\n            [formControl]="reloadPeriodControl"\n          />\n        </mat-form-field>\n        <mat-error\n          *ngIf="\n            reloadPeriodControl.hasError(\'min\') ||\n            reloadPeriodControl.hasError(\'required\')\n          "\n        >\n          Reload period has to be minimum of\n          {{ MIN_RELOAD_PERIOD_IN_S }} seconds.\n        </mat-error>\n      </div>\n    </div>\n    <div>\n      <mat-form-field>\n        <input\n          class="page-size"\n          matInput\n          type="number"\n          placeholder="Pagination Limit"\n          [formControl]="paginationControl"\n        />\n      </mat-form-field>\n      <mat-error *ngIf="paginationControl.invalid">\n        Page size has to be a positive integer.\n      </mat-error>\n    </div>\n  ',styleUrls:["./settings_dialog_component.css"]}]}],null,{reloadEnabled:[{type:y_}],reloadPeriodInMs:[{type:y_}],pageSize:[{type:y_}],reloadToggled:[{type:__}],reloadPeriodInMsChanged:[{type:__}],pageSizeChanged:[{type:__}]});class IY{constructor(t){this.store=t,this.reloadEnabled$=this.store.select(XG),this.reloadPeriodInMs$=this.store.select(KG),this.pageSize$=this.store.select(JG)}onReloadToggled(){this.store.dispatch(QG())}onReloadPeriodInMsChanged(t){this.store.dispatch($G({periodInMs:t}))}onPageSizeChanged(t){this.store.dispatch(tY({size:t}))}}IY.ɵfac=function t(e){return new(e||IY)(Mu(Ek))},IY.ɵcmp=Uo({type:IY,selectors:[["settings-dialog"]],decls:4,vars:9,consts:[[3,"reloadEnabled","reloadPeriodInMs","pageSize","reloadToggled","reloadPeriodInMsChanged","pageSizeChanged"]],template:function t(e,n){1&e&&(Ou(0,"settings-dialog-component",0),Nu("reloadToggled",(function t(){return n.onReloadToggled()}))("reloadPeriodInMsChanged",(function t(e){return n.onReloadPeriodInMsChanged(e)}))("pageSizeChanged",(function t(e){return n.onPageSizeChanged(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("reloadEnabled",Pb(1,3,n.reloadEnabled$))("reloadPeriodInMs",Pb(2,5,n.reloadPeriodInMs$))("pageSize",Pb(3,7,n.pageSize$))},directives:[NY],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(IY,[{type:h_,args:[{selector:"settings-dialog",template:'\n    <settings-dialog-component\n      [reloadEnabled]="reloadEnabled$ | async"\n      [reloadPeriodInMs]="reloadPeriodInMs$ | async"\n      [pageSize]="pageSize$ | async"\n      (reloadToggled)="onReloadToggled()"\n      (reloadPeriodInMsChanged)="onReloadPeriodInMsChanged($event)"\n      (pageSizeChanged)="onPageSizeChanged($event)"\n    ></settings-dialog-component>\n  '}]}],(function(){return[{type:Ek}]}),null);class zY{constructor(t){this.dialog=t}isButtonDisabled(){return this.settingsLoadState===BE.NOT_LOADED||this.settingsLoadState===BE.LOADING}openDialog(){this.dialog.open(IY,{width:"400px"})}}zY.ɵfac=function t(e){return new(e||zY)(Mu(HW))},zY.ɵcmp=Uo({type:zY,selectors:[["settings-button-component"]],inputs:{settingsLoadState:"settingsLoadState"},decls:2,vars:1,consts:[["mat-icon-button","",3,"disabled","click"],["svgIcon","settings_24px"]],template:function t(e,n){1&e&&(Ou(0,"button",0),Nu("click",(function t(){return n.openDialog()})),wu(1,"mat-icon",1),Pu()),2&e&&vu("disabled",n.isButtonDisabled())},directives:[NH,cG],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(zY,[{type:h_,args:[{selector:"settings-button-component",template:'\n    <button\n      mat-icon-button\n      [disabled]="isButtonDisabled()"\n      (click)="openDialog()"\n    >\n      <mat-icon svgIcon="settings_24px"></mat-icon>\n    </button>\n  '}]}],(function(){return[{type:HW}]}),{settingsLoadState:[{type:y_}]});class HY{constructor(t){this.store=t,this.settingsLoadState$=this.store.select(ZG)}}HY.ɵfac=function t(e){return new(e||HY)(Mu(Ek))},HY.ɵcmp=Uo({type:HY,selectors:[["settings-button"]],decls:2,vars:3,consts:[[3,"settingsLoadState"]],template:function t(e,n){1&e&&(wu(0,"settings-button-component",0),Ob(1,"async")),2&e&&vu("settingsLoadState",Pb(1,1,n.settingsLoadState$))},directives:[zY],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(HY,[{type:h_,args:[{selector:"settings-button",template:'\n    <settings-button-component\n      [settingsLoadState]="settingsLoadState$ | async"\n    ></settings-button-component>\n  '}]}],(function(){return[{type:Ek}]}),null);class FY{}FY.ɵfac=function t(e){return new(e||FY)},FY.ɵcmp=Uo({type:FY,selectors:[["app-header"]],decls:10,vars:0,consts:[[1,"brand"],[1,"plugins"],["mat-icon-button","","href","https://github.com/tensorflow/tensorboard/blob/master/README.md","rel","noopener noreferrer","target","_blank","aria-label","Help",1,"readme"],["svgIcon","help_outline_24px"]],template:function t(e,n){1&e&&(Ou(0,"mat-toolbar"),Ou(1,"span",0),Mf(2,"TensorBoard"),Pu(),wu(3,"plugin-selector",1),wu(4,"tbdev-upload-button"),wu(5,"app-header-dark-mode-toggle"),wu(6,"app-header-reload"),wu(7,"settings-button"),Ou(8,"a",2),wu(9,"mat-icon",3),Pu(),Pu())},directives:[VL,CW,hG,jG,WG,HY,IH,cG],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}mat-toolbar[_ngcontent-%COMP%]{align-items:center;color:#fff;display:flex;height:64px;overflow:hidden;width:100%}tbdev-upload-button.shown[_ngcontent-%COMP%]{margin:0 8px 0 16px}.brand[_ngcontent-%COMP%], .readme[_ngcontent-%COMP%], app-header-reload[_ngcontent-%COMP%], settings-button[_ngcontent-%COMP%]{flex:0 0 auto}.brand[_ngcontent-%COMP%]{letter-spacing:-0.025em;margin-left:10px;text-rendering:optimizeLegibility}.plugins[_ngcontent-%COMP%]{align-items:center;display:flex;flex:1 1 auto;font-size:14px;height:100%;overflow:hidden}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(FY,[{type:h_,args:[{selector:"app-header",template:'\n    <mat-toolbar>\n      <span class="brand">TensorBoard</span>\n      <plugin-selector class="plugins"></plugin-selector>\n      <tbdev-upload-button></tbdev-upload-button>\n      <app-header-dark-mode-toggle></app-header-dark-mode-toggle>\n      <app-header-reload></app-header-reload>\n      <settings-button></settings-button>\n      <a\n        class="readme"\n        mat-icon-button\n        href="https://github.com/tensorflow/tensorboard/blob/master/README.md"\n        rel="noopener noreferrer"\n        target="_blank"\n        aria-label="Help"\n      >\n        <mat-icon svgIcon="help_outline_24px"></mat-icon>\n      </a>\n    </mat-toolbar>\n  ',styleUrls:["header_component.css"]}]}],null,null);const LY=["routeContainer"];class BY{constructor(t){this.componentFactoryResolver=t}ngOnChanges(t){const e=t.activeNgComponent;if(e&&(this.routeContainer.clear(),e.currentValue)){const t=this.componentFactoryResolver.resolveComponentFactory(e.currentValue);this.routeContainer.createComponent(t)}}}BY.ɵfac=function t(e){return new(e||BY)(Mu(rh))},BY.ɵcmp=Uo({type:BY,selectors:[["router-outlet-component"]],viewQuery:function t(e,n){if(1&e&&Wb(LY,3,Xh),2&e){let t;Ub(t=Yb())&&(n.routeContainer=t.first)}},inputs:{activeNgComponent:"activeNgComponent"},features:[Si],decls:2,vars:0,consts:[["routeContainer",""]],template:function t(e,n){1&e&&Du(0,null,0)},encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(BY,[{type:h_,args:[{selector:"router-outlet-component",template:" <ng-container #routeContainer></ng-container> ",changeDetection:xo.OnPush}]}],(function(){return[{type:rh}]}),{routeContainer:[{type:Fr,args:["routeContainer",{static:!0,read:Xh}]}],activeNgComponent:[{type:y_}]});class VY{constructor(t,e){this.store=t,this.registry=e,this.activeNgComponent$=Dt([this.store.select(_D),this.store.select(CD)]).pipe(ht((([t,e])=>t?null!==e&&YS(e.routeKind,e.params)!==YS(t.routeKind,t.params)?null:this.registry.getNgComponentByRouteKind(t.routeKind):null)))}}var jY;VY.ɵfac=function t(e){return new(e||VY)(Mu(Ek),Mu(hD))},VY.ɵcmp=Uo({type:VY,selectors:[["router-outlet"]],decls:2,vars:3,consts:[[3,"activeNgComponent"]],template:function t(e,n){1&e&&(wu(0,"router-outlet-component",0),Ob(1,"async")),2&e&&vu("activeNgComponent",Pb(1,1,n.activeNgComponent$))},directives:[BY],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(VY,[{type:h_,args:[{selector:"router-outlet",template:'\n    <router-outlet-component\n      [activeNgComponent]="activeNgComponent$ | async"\n    ></router-outlet-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek},{type:hD}]}),null),(function(t){t[t.ACTIVE_PLUGIN=0]="ACTIVE_PLUGIN"})(jY||(jY={}));class UY{constructor(t){this.deepLinker=t,this.onHashChange=this.onHashChangedImpl.bind(this),this.onValueChange=new Ab}onHashChangedImpl(){const t=this.deepLinker.getPluginId();t!==this.activePluginId&&this.onValueChange.emit({prop:jY.ACTIVE_PLUGIN,value:t})}ngOnInit(){window.addEventListener("hashchange",this.onHashChange)}ngOnDestroy(){window.removeEventListener("hashchange",this.onHashChange)}ngOnChanges(t){if(t.activePluginId){const e=t.activePluginId;this.deepLinker.setPluginId(null===e.currentValue?"":e.currentValue,{defaultValue:"",useLocationReplace:null===e.previousValue||e.firstChange})}}}UY.ɵfac=function t(e){return new(e||UY)(Mu(bA))},UY.ɵcmp=Uo({type:UY,selectors:[["hash-storage-component"]],inputs:{activePluginId:"activePluginId"},outputs:{onValueChange:"onValueChange"},features:[Si],decls:0,vars:0,template:function t(e,n){},encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(UY,[{type:h_,args:[{selector:"hash-storage-component",template:"",changeDetection:xo.OnPush}]}],(function(){return[{type:bA}]}),{activePluginId:[{type:y_}],onValueChange:[{type:__}]});class WY{constructor(t){this.store=t,this.activePluginId$=this.store.pipe(Rk(dA))}onValueChanged(t){switch(t.prop){case jY.ACTIVE_PLUGIN:this.store.dispatch(jE({plugin:t.value}))}}}WY.ɵfac=function t(e){return new(e||WY)(Mu(Ek))},WY.ɵcmp=Uo({type:WY,selectors:[["hash-storage"]],decls:2,vars:3,consts:[[3,"activePluginId","onValueChange"]],template:function t(e,n){1&e&&(Ou(0,"hash-storage-component",0),Nu("onValueChange",(function t(e){return n.onValueChanged(e)})),Ob(1,"async"),Pu()),2&e&&vu("activePluginId",Pb(1,1,n.activePluginId$))},directives:[UY],pipes:[Mv],styles:["[_nghost-%COMP%] {\n        display: none;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(WY,[{type:h_,args:[{selector:"hash-storage",template:'\n    <hash-storage-component\n      [activePluginId]="activePluginId$ | async"\n      (onValueChange)="onValueChanged($event)"\n    >\n    </hash-storage-component>\n  ',styles:["\n      :host {\n        display: none;\n      }\n    "],changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class GY{ngOnChanges(t){t.title&&(function e(t){document.title=t})(t.title.currentValue)}}GY.ɵfac=function t(e){return new(e||GY)},GY.ɵcmp=Uo({type:GY,selectors:[["page-title-component"]],inputs:{title:"title"},features:[Si],decls:0,vars:0,template:function t(e,n){},encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(GY,[{type:h_,args:[{selector:"page-title-component",template:"",changeDetection:xo.OnPush}]}],null,{title:[{type:y_}]});const YY="TensorBoard";class qY{constructor(t,e){this.store=t,this.customBrandName=e,this.getExperimentId$=this.store.select(xD).pipe(ht((t=>null==t?void 0:t[0]))),this.experimentName$=this.getExperimentId$.pipe(Gt(Boolean),Tt((t=>this.store.select(iR,{experimentId:t}))),ht((t=>t?t.name:null))),this.title$=this.store.select(mA).pipe(ce(this.store.select(MD),this.experimentName$),ht((([t,e,n])=>{const o=this.customBrandName||YY;return t.window_title?t.window_title:e===jS.EXPERIMENT&&n?`${n} - ${o}`:o})),cn(this.customBrandName||YY),ke())}}qY.ɵfac=function t(e){return new(e||qY)(Mu(Ek),Mu(IE,8))},qY.ɵcmp=Uo({type:qY,selectors:[["page-title"]],decls:2,vars:3,consts:[[3,"title"]],template:function t(e,n){1&e&&(wu(0,"page-title-component",0),Ob(1,"async")),2&e&&vu("title",Pb(1,1,n.title$))},directives:[GY],pipes:[Mv],styles:["[_nghost-%COMP%] {\n        display: none;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(qY,[{type:h_,args:[{selector:"page-title",template:'\n    <page-title-component [title]="title$ | async"></page-title-component>\n  ',styles:["\n      :host {\n        display: none;\n      }\n    "],changeDetection:xo.OnPush}]}],(function(){return[{type:Ek},{type:void 0,decorators:[{type:_s},{type:ys,args:[IE]}]}]}),null);class ZY{constructor(t){this.store=t,this.ngUnsubscribe=new x,this.getPageSize$=this.store.pipe(Rk(JG)),this.paginatedViewStore=document.createElement("tf-paginated-view-store").tf_paginated_view}ngOnInit(){this.getPageSize$.pipe(un(this.ngUnsubscribe),ke()).subscribe((t=>{this.paginatedViewStore.setLimit(t)}))}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}ZY.ɵfac=function t(e){return new(e||ZY)(Mu(Ek))},ZY.ɵcmp=Uo({type:ZY,selectors:[["settings-polymer-interop"]],decls:0,vars:0,template:function t(e,n){},encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(ZY,[{type:h_,args:[{selector:"settings-polymer-interop",template:"",changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class XY{constructor(t){t.select(ME).subscribe((t=>{document.body.classList.toggle("dark-mode",t)}))}}XY.ɵfac=function t(e){return new(e||XY)(Mu(Ek))},XY.ɵcmp=Uo({type:XY,selectors:[["dark-mode-supporter"]],decls:0,vars:0,template:function t(e,n){},styles:["[_nghost-%COMP%] {\n        display: none;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(XY,[{type:h_,args:[{selector:"dark-mode-supporter",template:"",styles:["\n      :host {\n        display: none;\n      }\n    "],changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class KY{constructor(t){this.vcRef=t}}KY.ɵfac=function t(e){return new(e||KY)(Mu(Xh))},KY.ɵcmp=Uo({type:KY,selectors:[["tb-webapp"]],decls:8,vars:0,template:function t(e,n){1&e&&(wu(0,"app-header"),Ou(1,"main"),wu(2,"router-outlet"),Pu(),wu(3,"alert-snackbar"),wu(4,"hash-storage"),wu(5,"page-title"),wu(6,"settings-polymer-interop"),wu(7,"dark-mode-supporter"))},directives:[FY,VY,IL,WY,qY,ZY,XY],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}html[_ngcontent-%COMP%], body[_ngcontent-%COMP%]{font-family:Roboto,sans-serif;height:100%;margin:0;padding:0}[_nghost-%COMP%]{background:#f5f5f5;display:flex;flex-direction:column;height:100%}app-header[_ngcontent-%COMP%]{box-shadow:0 1px 3px 3px rgba(0,0,0,.25);flex:0 0;z-index:1}body.dark-mode[_nghost-%COMP%]   app-header[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   app-header[_ngcontent-%COMP%]{box-shadow:0 1px 3px 3px rgba(255,255,255,.1)}main[_ngcontent-%COMP%]{flex-grow:1;overflow:auto}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(KY,[{type:h_,args:[{selector:"tb-webapp",templateUrl:"./app_container.ng.html",styleUrls:["./app_container.css"]}]}],(function(){return[{type:Xh}]}),null);class JY{constructor(t,e,n){this.store=t,this.location=e,this.appRootProvider=n,this.pathname=null}handleClick(t){!this.pathname||t.ctrlKey||t.metaKey||(t.preventDefault(),t.stopPropagation(),this.store.dispatch(eD({pathname:this.pathname})))}get href(){return this.pathname?this.appRootProvider.getAbsPathnameWithAppRoot(this.location.getFullPathFromRouteOrNav({pathname:this.pathname})):null}set routerLink(t){if("string"==typeof t&&(t=[t]),0===t.length)throw new RangeError("routeLink should have proper path. Got nothing.");const e=[...t].join("/");this.pathname=e.endsWith("/")?e:e+"/"}}JY.ɵfac=function t(e){return new(e||JY)(Mu(Ek),Mu(ZS),Mu(XS))},JY.ɵdir=Jo({type:JY,selectors:[["a","routerLink",""]],hostVars:1,hostBindings:function t(e,n){1&e&&Nu("click",(function t(e){return n.handleClick(e)})),2&e&&Nm("href",n.href,Ol)},inputs:{routerLink:"routerLink"}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(JY,[{type:g_,args:[{selector:"a[routerLink]"}]}],(function(){return[{type:Ek},{type:ZS},{type:XS}]}),{handleClick:[{type:M_,args:["click",["$event"]]}],href:[{type:C_,args:["attr.href"]}],routerLink:[{type:y_}]});class QY{}QY.ɵfac=function t(e){return new(e||QY)},QY.ɵmod=Zo({type:QY}),QY.ɵinj=co({imports:[[Bv,$S,QS,hD]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(QY,{declarations:[VY,BY,JY],imports:[Bv,$S,QS,hD],exports:[VY,JY]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(QY,[{type:k_,args:[{imports:[Bv,$S,QS,hD],exports:[VY,JY],declarations:[VY,BY,JY]}]}],null,null);class $Y{}$Y.ɵfac=function t(e){return new(e||$Y)},$Y.ɵmod=Zo({type:$Y}),$Y.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo($Y,{declarations:[XY],exports:[XY]}),("undefined"==typeof ngDevMode||ngDevMode)&&db($Y,[{type:k_,args:[{declarations:[XY],exports:[XY]}]}],null,null);class tq{}tq.ɵfac=function t(e){return new(e||tq)},tq.ɵmod=Zo({type:tq}),tq.ɵinj=co({providers:[{provide:bA,useClass:_A}]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(tq,[{type:k_,args:[{providers:[{provide:bA,useClass:_A}]}]}],null,null);class eq{}eq.ɵfac=function t(e){return new(e||eq)},eq.ɵmod=Zo({type:eq}),eq.ɵinj=co({imports:[[Bv,tq]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(eq,{declarations:[WY,UY],imports:[Bv,tq],exports:[WY]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(eq,[{type:k_,args:[{declarations:[WY,UY],exports:[WY],imports:[Bv,tq]}]}],null,null);class nq{}nq.ɵfac=function t(e){return new(e||nq)},nq.ɵmod=Zo({type:nq}),nq.ɵinj=co({imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(nq,{declarations:[qY,GY],imports:[Bv],exports:[qY]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(nq,[{type:k_,args:[{declarations:[qY,GY],exports:[qY],imports:[Bv]}]}],null,null);const oq={id:US,name:"",start_time:0},iq=mS({experimentMap:{[oq.id]:oq}});function aq(t,e){return hk({data:iq})(t,e)}class rq{}rq.ɵfac=function t(e){return new(e||rq)},rq.ɵmod=Zo({type:rq}),rq.ɵinj=co({imports:[[iS.forFeature(nR,aq)]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(rq,{imports:[oS]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(rq,[{type:k_,args:[{imports:[iS.forFeature(nR,aq)]}]}],null,null);class sq{}function lq(){return zk(XG,(t=>({autoReload:t})))}function cq(){return zk(KG,(t=>({autoReloadPeriodInMs:t})))}function dq(){return zk(JG,(t=>({pageSize:t})))}sq.ɵfac=function t(e){return new(e||sq)},sq.ɵmod=Zo({type:sq}),sq.ɵinj=co({imports:[[Bv,VU,jU,zH,yY,WW,dG,AY]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(sq,{declarations:[zY,HY,NY,IY,ZY],imports:[Bv,VU,jU,zH,yY,WW,dG,AY],exports:[zY,HY,IY,ZY]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(sq,[{type:k_,args:[{declarations:[zY,HY,NY,IY,ZY],exports:[zY,HY,IY,ZY],entryComponents:[IY],imports:[Bv,VU,jU,zH,yY,WW,dG,AY]}]}],null,null);class pq{}pq.ɵfac=function t(e){return new(e||pq)},pq.ɵmod=Zo({type:pq}),pq.ɵinj=co({imports:[[iS.forFeature(GG,oY),kR.defineGlobalSetting(lq),kR.defineGlobalSetting(cq),kR.defineGlobalSetting(dq)],sq]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(pq,{imports:[oS,kR,kR,kR],exports:[sq]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(pq,[{type:k_,args:[{exports:[sq],imports:[iS.forFeature(GG,oY),kR.defineGlobalSetting(lq),kR.defineGlobalSetting(cq),kR.defineGlobalSetting(dq)]}]}],null,null);class mq{}mq.ɵfac=function t(e){return new(e||mq)},mq.ɵmod=Zo({type:mq}),mq.ɵinj=co({providers:[{provide:"window",useValue:window}],imports:[[XW,Bv,zH,WW,dG]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(mq,{declarations:[hG,pG,uG],imports:[XW,Bv,zH,WW,dG],exports:[hG]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(mq,[{type:k_,args:[{declarations:[hG,pG,uG],exports:[hG],entryComponents:[uG],imports:[XW,Bv,zH,WW,dG],providers:[{provide:"window",useValue:window}]}]}],null,null);class uq{}uq.ɵfac=function t(e){return new(e||uq)},uq.ɵmod=Zo({type:uq}),uq.ɵinj=co({providers:[],imports:[[zH,dG,HB,jL,mW,zG,Bv,CA,pq,mq]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(uq,{declarations:[VG,jG,FY,bW,CW,WG],imports:[zH,dG,HB,jL,mW,zG,Bv,CA,pq,mq],exports:[jG,FY,CW,WG]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(uq,[{type:k_,args:[{declarations:[VG,jG,FY,bW,CW,WG],exports:[jG,FY,CW,WG],providers:[],imports:[zH,dG,HB,jL,mW,zG,Bv,CA,pq,mq]}]}],null,null);class fq{constructor(t,e){const n=t.bypassSecurityTrustResourceUrl("./icon_bundle.svg");e.addSvgIconSet(n)}}fq.ɵfac=function t(e){return new(e||fq)(us(Sx),us(tG))},fq.ɵmod=Zo({type:fq}),fq.ɵinj=co({imports:[[dG]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(fq,{imports:[dG]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fq,[{type:k_,args:[{imports:[dG]}]}],(function(){return[{type:Sx},{type:tG}]}),null);const gq=new Nr("[plugins] Plugin registry config"),hq=new Map;class bq{constructor(t){if(!t)return;const e=new Set(t.map((t=>t.pluginName)));console.assert(e.size===t.length,"Cannot register the same plugin multiple times.");for(const e of t){const{pluginName:t,componentClass:n}=e;hq.set(t,n)}}static forPlugin(t,e){return{ngModule:bq,providers:[{provide:gq,multi:!0,useValue:{pluginName:t,componentClass:e}}]}}getComponent(t){return hq.get(t)||null}}bq.ɵfac=function t(e){return new(e||bq)(us(gq,8))},bq.ɵmod=Zo({type:bq}),bq.ɵinj=co({}),("undefined"==typeof ngDevMode||ngDevMode)&&db(bq,[{type:k_,args:[{}]}],(function(){return[{type:void 0,decorators:[{type:_s},{type:ys,args:[gq]}]}]}),null);class yq{constructor(t){this.http=t,this.httpPathPrefix="data/plugin/debugger-v2"}fetchRuns(){return this.http.get(this.httpPathPrefix+"/runs")}fetchExecutionDigests(t,e,n){return this.http.get(this.httpPathPrefix+"/execution/digests",{params:{run:t,begin:String(e),end:String(n)}})}fetchExecutionData(t,e,n){return this.http.get(this.httpPathPrefix+"/execution/data",{params:{run:t,begin:String(e),end:String(n)}})}fetchGraphExecutionDigests(t,e,n,o){if(void 0!==o)throw new Error("trace_id is not implemented for fetchGraphExecutionDigests() yet");return this.http.get(this.httpPathPrefix+"/graph_execution/digests",{params:{run:t,begin:String(e),end:String(n)}})}fetchGraphExecutionData(t,e,n,o){if(void 0!==o)throw new Error("trace_id is not implemented for fetchGraphExecutionData() yet");return this.http.get(this.httpPathPrefix+"/graph_execution/data",{params:{run:t,begin:String(e),end:String(n)}})}fetchGraphOpInfo(t,e,n){return this.http.get(this.httpPathPrefix+"/graphs/op_info",{params:{run:t,graph_id:e,op_name:n}})}fetchSourceFileList(t){return this.http.get(this.httpPathPrefix+"/source_files/list",{params:{run:t}})}fetchSourceFile(t,e){return this.http.get(this.httpPathPrefix+"/source_files/file",{params:{run:t,index:String(e)}})}fetchStackFrames(t,e){return this.http.get(this.httpPathPrefix+"/stack_frames/stack_frames",{params:{run:t,stack_frame_ids:e.join(",")}}).pipe(ht((t=>({stack_frames:t.stack_frames.map((t=>(function e(t){return{host_name:t[0],file_path:t[1],lineno:t[2],function_name:t[3]}})(t)))}))))}fetchAlerts(t,e,n,o){const i={run:t,begin:String(e),end:String(n)};return void 0!==o&&(i.alert_type=o),this.http.get(this.httpPathPrefix+"/alerts",{params:i})}}yq.ɵfac=function t(e){return new(e||yq)(us(EE))},yq.ɵprov=lo({token:yq,factory:yq.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(yq,[{type:Jm}],(function(){return[{type:EE}]}),null);class _q{}_q.ɵfac=function t(e){return new(e||_q)},_q.ɵmod=Zo({type:_q}),_q.ɵinj=co({providers:[yq],imports:[[AE]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(_q,{imports:[AE]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(_q,[{type:k_,args:[{imports:[AE],providers:[yq]}]}],null,null);class Cq{}Cq.ɵfac=function t(e){return new(e||Cq)},Cq.ɵcmp=Uo({type:Cq,selectors:[["inactive-component"]],decls:54,vars:0,consts:[[1,"container"],[1,"title"],[1,"code"],[1,"arg"],[1,"exhibits-container"],[1,"exhibit"],[1,"screenshot"],["src","data:image/png;base64, "],[1,"description"],["src","data:image/png;base64, "],["src","data:image/png;base64, "],[1,"details-container"],[1,"details"],["href","https://www.tensorflow.org/api_docs/python/tf/debugging/experimental/enable_dump_debug_info","target","blank","rel","noreferrer noopener"],["href","https://www.tensorflow.org/api_docs/python/tf/debugging","target","blank","rel","noreferrer noopener"]],template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"div",1),Mf(2,"Debugger V2 is inactive because no data is available."),Pu(),Ou(3,"div"),Mf(4,"To use the debugger,"),Pu(),Ou(5,"div"),Ou(6,"ol"),Ou(7,"li"),Mf(8," Add the following line to the beginning of your program: "),Ou(9,"div",2),Ou(10,"span"),Mf(11,"tf.debugging.experimental.enable_dump_debug_info("),Pu(),Ou(12,"span",3),Mf(13,"logdir"),Pu(),Mf(14,", "),Ou(15,"span",3),Mf(16,'tensor_debug_mode="FULL_HEALTH"'),Pu(),Mf(17,", "),Ou(18,"span",3),Mf(19,"circular_buffer_size=-1"),Pu(),Ou(20,"span"),Mf(21,")"),Pu(),Pu(),Pu(),Ou(22,"li"),Mf(23,"Re-run the program."),Pu(),Pu(),Pu(),Ou(24,"div",4),Ou(25,"div",5),Ou(26,"div",6),wu(27,"img",7),Pu(),Ou(28,"div",8),Mf(29,"Auto-alerts for problems found"),Pu(),Pu(),Ou(30,"div",5),Ou(31,"div",6),wu(32,"img",9),Pu(),Ou(33,"div",8),Mf(34," Integrated debugging to trace problems to their causes "),Pu(),Pu(),Ou(35,"div",5),Ou(36,"div",6),wu(37,"img",10),Pu(),Ou(38,"div",8),Mf(39,"Link log to code"),Pu(),Pu(),Pu(),Ou(40,"div",11),Ou(41,"div",12),Mf(42," The log directory must contain TensorFlow Debugger (V2) data. tf.debugging.experimental.enable_dump_debug_info() will collect tensor data, graph structures, the associated stack traces, and source code to the specificed directory logdir as the instrumented TensorFlow program executes. "),Pu(),Ou(43,"div",12),Ou(44,"div"),Mf(45," See "),Ou(46,"a",13),Mf(47," documentation "),Pu(),Mf(48," of the Python API of Debugger V2. "),Pu(),Ou(49,"div"),Mf(50," See "),Ou(51,"a",14),Mf(52," here "),Pu(),Mf(53," for other TensorFlow debugging APIs. "),Pu(),Pu(),Pu(),Pu())},styles:[".arg[_ngcontent-%COMP%] {\n  color: lightblue;\n  font-style: italic;\n  margin: 2px;\n}\n\n.code[_ngcontent-%COMP%] {\n  font-family: 'Roboto Mono', monospace;\n  margin: 10px;\n}\n\n.container[_ngcontent-%COMP%] {\n  height: 100%;\n  font-family: Roboto;\n  font-size: 15px;\n  overflow-y: auto;\n  padding: 50px;\n}\n\n.details-container[_ngcontent-%COMP%] {\n  display: inline-flex;\n  vertical-align: middle;\n  width: 100%;\n}\n\n.details[_ngcontent-%COMP%] {\n  display: inline-block;\n  margin: 10px 60px;\n  width: 50%;\n}\n\n.exhibit-container[_ngcontent-%COMP%] {\n  white-space: nowrap;\n  width: 100%;\n}\n\n.exhibit[_ngcontent-%COMP%] {\n  align-content: center;\n  display: inline-block;\n  margin: 10px 60px;\n  vertical-align: top;\n  width: 310px;\n}\n\n.exhibit[_ngcontent-%COMP%]   .description[_ngcontent-%COMP%] {\n  font-weight: bold;\n  text-align: center;\n  width: 310px;\n}\n\n.exhibit[_ngcontent-%COMP%]   .screenshot[_ngcontent-%COMP%]   canvas[_ngcontent-%COMP%] {\n  height: 200px;\n  width: 100%;\n}\n\n.title[_ngcontent-%COMP%] {\n  font-size: 135%;\n  font-weight: bold;\n  margin-bottom: 25px;\n}"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Cq,[{type:h_,args:[{selector:"inactive-component",templateUrl:"./inactive_component.ng.html",styleUrls:["./inactive_component.css"]}]}],null,null);class Mq{constructor(t){this.store=t}}Mq.ɵfac=function t(e){return new(e||Mq)(Mu(Ek))},Mq.ɵcmp=Uo({type:Mq,selectors:[["tf-debugger-v2-inactive"]],decls:1,vars:0,template:function t(e,n){1&e&&wu(0,"inactive-component")},directives:[Cq],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Mq,[{type:h_,args:[{selector:"tf-debugger-v2-inactive",template:" <inactive-component></inactive-component> "}]}],(function(){return[{type:Ek}]}),null);const vq=Ww("[Debugger] Debugger Loaded"),xq=Ww("[Debugger] Debugger Unloaded"),Oq=Ww("[Debugger] A New Debugger Data Polling Event Begins"),Pq=Ww("[Debugger] Debugger Runs Requested"),wq=Ww("[Debugger] Debugger Runs Loaded",{_as:"props",_p:void 0}),kq=Ww("[Debugger] Debugger Runs Request Failed"),Sq=Ww("[Debugger] Number and Breakdown of Alerts Requested"),Dq=Ww("[Debugger] Number and Breakdown of Alerts Loaded",{_as:"props",_p:void 0}),Eq=Ww("[Debugger] Alerts Data of an AlertType Is Loaded",{_as:"props",_p:void 0}),Aq=Ww("[Debugger] Alert Type Focus Toggled",{_as:"props",_p:void 0}),Rq=Ww("[Debugger] Number of Top-Level Executions Requested"),Tq=Ww("[Debugger] Number of Top-Level Executions Loaded",{_as:"props",_p:void 0}),Nq=Ww("[Debugger] ExecutionDigests Requested",{_as:"props",_p:void 0}),Iq=Ww("[Debugger] ExecutionDigests Loaded",{_as:"props",_p:void 0}),zq=Ww("[Debugger] Scroll Leftward on the Execution Timeline"),Hq=Ww("[Debugger] Scroll Rightward on the Execution Timeline"),Fq=Ww("[Debugger] Scroll the Execution Timeline to Given Index",{_as:"props",_p:void 0}),Lq=Ww("[Debugger] Execution Data Objects Being Focused On",{_as:"props",_p:void 0}),Bq=Ww("[Debugger] Execution Data Objects Loaded",{_as:"props",_p:void 0}),Vq=Ww("[Debugger] Number of Intra-Graph Executions Requested"),jq=Ww("[Debugger] Number of Intra-Graph Executions Loaded",{_as:"props",_p:void 0}),Uq=Ww("[Debugger] Intra-Graph Execution Data Requested",{_as:"props",_p:void 0}),Wq=Ww("[Debugger] Intra-Graph Execution Data Loaded",{_as:"props",_p:void 0}),Gq=Ww("[Debugger] Scroll Intra-Graph Execution List to Given Index",{_as:"props",_p:void 0}),Yq=Ww("[Debugger] Graph Execution is Focused On",{_as:"props",_p:void 0}),qq=Ww("[Debugger] Graph Op Is Focused On",{_as:"props",_p:void 0}),Zq=Ww("[Debugger] Graph Op Info Requested",{_as:"props",_p:void 0}),Xq=Ww("[Debugger] Graph Op Info Loaded",{_as:"props",_p:void 0}),Kq=Ww("[Debugger] Source File List Requested."),Jq=Ww("[Debugger] Source File List Loaded",{_as:"props",_p:void 0}),Qq=Ww("[Debugger] Source File Line Is Focused on",{_as:"props",_p:void 0}),$q=Ww("[Debugger] Source File Requested",{_as:"props",_p:void 0}),tZ=Ww("[Debugger] Source File Loaded",{_as:"props",_p:void 0}),eZ=Ww("[Debugger] A Set of Stack Frames Have Been Loaded",{_as:"props",_p:void 0}),nZ="debugger";var oZ,iZ,aZ;function rZ(t){if(null===t.codeLocationFocusType)return null;let e=[];if(t.codeLocationFocusType===aZ.EXECUTION){const{focusIndex:n,executionData:o}=t.executions;if(null===n||void 0===o[n])return null;e=o[n].stack_frame_ids}else{if(null===t.graphs.focusedOp)return null;const{graphId:n,opName:o}=t.graphs.focusedOp;if(void 0===t.graphs.ops[n]||!t.graphs.ops[n].has(o))return null;e=t.graphs.ops[n].get(o).stack_frame_ids}const n=[];for(const o of e){if(null==t.stackFrames[o])return null;n.push(t.stackFrames[o])}return n}function sZ(t,e){return t.findIndex((t=>t.host_name===e.host_name&&t.file_path===e.file_path))}function lZ(t,e,n){if(e>=n)throw new Error(`Expected begin to be less than end, but got begin=${e}, end=${n}`);return t.findIndex((t=>t.begin===e&&t.end===n))}function cZ(t){const e=t.sourceCode.focusLineSpec;if(!t.stickToBottommostFrameInFocusedFile)return e;const n=rZ(t);if(null===n)return e;const o=(function i(t,e){if(null===e)return null;for(let n=t.length-1;n>=0;--n){const o=t[n],{host_name:i,file_path:a}=o;if(i===e.host_name&&a===e.file_path)return o}return null})(n,e);return null===o?e:o}!(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.NO_TENSOR=1]="NO_TENSOR",t[t.CURT_HEALTH=2]="CURT_HEALTH",t[t.CONCISE_HEALTH=3]="CONCISE_HEALTH",t[t.FULL_HEALTH=4]="FULL_HEALTH",t[t.SHAPE=5]="SHAPE",t[t.FULL_NUMERICS=6]="FULL_NUMERICS",t[t.FULL_TENSOR=7]="FULL_TENSOR",t[t.REDUCE_INF_NAN_THREE_SLOTS=8]="REDUCE_INF_NAN_THREE_SLOTS"})(oZ||(oZ={})),(function(t){t.FUNCTION_RECOMPILE_ALERT="FunctionRecompilesAlert",t.INF_NAN_ALERT="InfNanAlert",t.TENSOR_SHAPE_ALERT="TensorShapeAlert"})(iZ||(iZ={})),(function(t){t[t.EXECUTION=0]="EXECUTION",t[t.GRAPH_OP_CREATION=1]="GRAPH_OP_CREATION"})(aZ||(aZ={}));const dZ=mS({runs:{},runsLoaded:{state:BE.NOT_LOADED,lastLoadedTimeInMs:null},activeRunId:null,lastDataPollOnsetTimeMs:-1,lastNonEmptyPollDataTimeMs:1,alerts:{alertsLoaded:{state:BE.NOT_LOADED,lastLoadedTimeInMs:null},numAlerts:0,alertsBreakdown:{},alerts:{},executionIndices:{},graphExecutionIndices:{},focusType:null},executions:(function pZ(){return{numExecutionsLoaded:{state:BE.NOT_LOADED,lastLoadedTimeInMs:null},executionDigestsLoaded:{loadingRanges:[],numExecutions:0,pageLoadedSizes:{}},displayCount:50,pageSize:100,scrollBeginIndex:0,focusIndex:null,executionDigests:{},executionData:{}}})(),graphExecutions:(function mZ(){return{numExecutionsLoaded:{state:BE.NOT_LOADED,lastLoadedTimeInMs:null},executionDigestsLoaded:{loadingRanges:[],numExecutions:0,pageLoadedSizes:{}},displayCount:100,pageSize:200,scrollBeginIndex:0,focusIndex:null,graphExecutionDigests:{},graphExecutionDataLoadingPages:[],graphExecutionDataPageLoadedSizes:{},graphExecutionData:{}}})(),graphs:{ops:{},loadingOps:{},focusedOp:null},stackFrames:{},codeLocationFocusType:null,stickToBottommostFrameInFocusedFile:!1,sourceCode:{sourceFileListLoaded:{state:BE.NOT_LOADED,lastLoadedTimeInMs:null},sourceFileList:[],fileContents:[],focusLineSpec:null}},pS(Pq,(t=>Object.assign(Object.assign({},t),{runsLoaded:Object.assign(Object.assign({},t.runsLoaded),{state:BE.LOADING})}))),pS(kq,(t=>Object.assign(Object.assign({},t),{runsLoaded:Object.assign(Object.assign({},t.runsLoaded),{state:BE.FAILED})}))),pS(wq,((t,{runs:e})=>{const n=Object.keys(e),o=n.length>0&&null===t.activeRunId;return Object.assign(Object.assign({},t),{lastNonEmptyPollDataTimeMs:o?Date.now():t.lastNonEmptyPollDataTimeMs,runs:e,runsLoaded:{state:BE.LOADED,lastLoadedTimeInMs:Date.now()},activeRunId:n.length>0?n[0]:null})})),pS(Oq,(t=>Object.assign(Object.assign({},t),{lastDataPollOnsetTimeMs:Date.now()}))),pS(Sq,(t=>null===t.activeRunId?t:Object.assign(Object.assign({},t),{alerts:Object.assign(Object.assign({},t.alerts),{alertsLoaded:Object.assign(Object.assign({},t.alerts.alertsLoaded),{state:BE.LOADING})})}))),pS(Dq,((t,{numAlerts:e,alertsBreakdown:n})=>{if(null===t.activeRunId)return t;const o=e>t.alerts.numAlerts;return Object.assign(Object.assign({},t),{lastNonEmptyPollDataTimeMs:o?Date.now():t.lastNonEmptyPollDataTimeMs,alerts:Object.assign(Object.assign({},t.alerts),{alertsLoaded:Object.assign(Object.assign({},t.alerts.alertsLoaded),{state:BE.LOADED,lastLoadedTimeInMs:Date.now()}),numAlerts:e,alertsBreakdown:n})})})),pS(Eq,((t,{numAlerts:e,alertsBreakdown:n,alertType:o,begin:i,alerts:a})=>{if(null===t.activeRunId)return t;const r={},s=t.alerts.executionIndices[o]?t.alerts.executionIndices[o].slice():[],l=t.alerts.graphExecutionIndices[o]?t.alerts.graphExecutionIndices[o].slice():[];for(let t=0;t<a.length;++t){const e=i+t,n=a[t];if(r[e]=n,n.alert_type===iZ.INF_NAN_ALERT){const t=n;s[e]=t.execution_index,null!==t.graph_execution_trace_index&&(l[e]=t.graph_execution_trace_index)}}void 0!==t.alerts.alerts[o]&&Object.assign(r,t.alerts.alerts[o]);let c=t.executions.scrollBeginIndex,d=t.graphExecutions.focusIndex;if(o===iZ.INF_NAN_ALERT&&0===i){const e=a[0];c=Math.max(0,e.execution_index-Math.floor(t.executions.displayCount/2)),null!==e.graph_execution_trace_index&&(d=e.graph_execution_trace_index)}return Object.assign(Object.assign({},t),{executions:Object.assign(Object.assign({},t.executions),{scrollBeginIndex:c}),graphExecutions:Object.assign(Object.assign({},t.graphExecutions),{focusIndex:d}),alerts:Object.assign(Object.assign({},t.alerts),{alertsLoaded:Object.assign(Object.assign({},t.alerts.alertsLoaded),{state:BE.LOADED,lastLoadedTimeInMs:Date.now()}),numAlerts:e,alertsBreakdown:n,alerts:Object.assign(Object.assign({},t.alerts.alerts),{[o]:r}),executionIndices:Object.assign(Object.assign({},t.alerts.executionIndices),{[o]:s}),graphExecutionIndices:Object.assign(Object.assign({},t.alerts.graphExecutionIndices),{[o]:l})})})})),pS(Aq,((t,{alertType:e})=>{const n=Object.assign(Object.assign({},t),{alerts:Object.assign(Object.assign({},t.alerts),{focusType:t.alerts.focusType===e?null:e})}),o=n.alerts.focusType;if(null!==o){const t=n.alerts.executionIndices[o]||[];void 0!==t[0]&&(n.executions=Object.assign(Object.assign({},n.executions),{scrollBeginIndex:Math.max(0,Number(t[0])-Math.floor(n.executions.displayCount/2))}))}return n})),pS(Rq,(t=>null===t.activeRunId?t:Object.assign(Object.assign({},t),{executions:Object.assign(Object.assign({},t.executions),{numExecutionsLoaded:Object.assign(Object.assign({},t.executions.numExecutionsLoaded),{state:BE.LOADING})})}))),pS(Tq,((t,{numExecutions:e})=>{if(null===t.activeRunId)return t;const n=e>t.executions.executionDigestsLoaded.numExecutions,o=Object.assign(Object.assign({},t),{lastNonEmptyPollDataTimeMs:n?Date.now():t.lastNonEmptyPollDataTimeMs,executions:Object.assign(Object.assign({},t.executions),{numExecutionsLoaded:Object.assign(Object.assign({},t.executions.numExecutionsLoaded),{state:BE.LOADED,lastLoadedTimeInMs:Date.now()}),executionDigestsLoaded:Object.assign(Object.assign({},t.executions.executionDigestsLoaded),{numExecutions:e})})});return e>0&&null===t.executions.focusIndex&&(o.executions.focusIndex=0),o})),pS(Nq,((t,e)=>{if(null===t.activeRunId)return t;const n=[...t.executions.executionDigestsLoaded.loadingRanges];return-1===lZ(n,e.begin,e.end)&&n.push({begin:e.begin,end:e.end}),Object.assign(Object.assign({},t),{executions:Object.assign(Object.assign({},t.executions),{executionDigestsLoaded:Object.assign(Object.assign({},t.executions.executionDigestsLoaded),{loadingRanges:n})})})})),pS(Iq,((t,e)=>{if(null===t.activeRunId)return t;const n=[...t.executions.executionDigestsLoaded.loadingRanges],o=lZ(n,e.begin,e.end);-1!==o&&n.splice(o,1);const i=Object.assign(Object.assign({},t),{executions:Object.assign(Object.assign({},t.executions),{executionDigestsLoaded:Object.assign(Object.assign({},t.executions.executionDigestsLoaded),{numExecutions:e.num_digests,loadingRanges:n}),executionDigests:Object.assign({},t.executions.executionDigests)})});for(let t=e.begin;t<e.end;++t)i.executions.executionDigests[t]=e.execution_digests[t-e.begin];if(e.end>e.begin){const n=e.begin/t.executions.pageSize;i.executions.executionDigestsLoaded.pageLoadedSizes=Object.assign(Object.assign({},i.executions.executionDigestsLoaded.pageLoadedSizes),{[n]:e.end-e.begin})}return i})),pS(zq,(t=>{if(null===t.activeRunId)return t;let e=t.executions.scrollBeginIndex;return e>0&&e--,Object.assign(Object.assign({},t),{executions:Object.assign(Object.assign({},t.executions),{scrollBeginIndex:e})})})),pS(Hq,(t=>{if(null===t.activeRunId)return t;let e=t.executions.scrollBeginIndex;return e+t.executions.displayCount+1<=t.executions.executionDigestsLoaded.numExecutions&&e++,Object.assign(Object.assign({},t),{executions:Object.assign(Object.assign({},t.executions),{scrollBeginIndex:e})})})),pS(Fq,((t,e)=>{if(e.index<0||!Number.isInteger(e.index))throw new Error(`Attempt to scroll to negative or non-integer execution index (${e.index})`);const{displayCount:n}=t.executions,{numExecutions:o}=t.executions.executionDigestsLoaded;if(e.index>Math.max(0,o-n))throw new Error(`Attempt to scroll to execution index (${e.index}), which exceeds maximum allowed index (numExecutions=${o}; displayCount=${n})`);return Object.assign(Object.assign({},t),{executions:Object.assign(Object.assign({},t.executions),{scrollBeginIndex:e.index})})})),pS(Lq,((t,e)=>{const n=Object.assign(Object.assign({},t),{executions:Object.assign(Object.assign({},t.executions),{focusIndex:t.executions.scrollBeginIndex+e.displayIndex}),codeLocationFocusType:aZ.EXECUTION,sourceCode:Object.assign({},t.sourceCode)});return n.sourceCode.focusLineSpec=cZ(n),n})),pS(Bq,((t,e)=>{if(null===t.activeRunId)return t;const n=Object.assign(Object.assign({},t),{executions:Object.assign(Object.assign({},t.executions),{executionData:Object.assign({},t.executions.executionData)})});for(let t=e.begin;t<e.end;++t)n.executions.executionData[t]=e.executions[t-e.begin];return n})),pS(Vq,(t=>null===t.activeRunId?t:Object.assign(Object.assign({},t),{graphExecutions:Object.assign(Object.assign({},t.graphExecutions),{numExecutionsLoaded:Object.assign(Object.assign({},t.graphExecutions.numExecutionsLoaded),{state:BE.LOADING})})}))),pS(jq,((t,{numGraphExecutions:e})=>{if(null===t.activeRunId)return t;const n=e>t.graphExecutions.executionDigestsLoaded.numExecutions,o=Object.assign(Object.assign({},t),{lastNonEmptyPollDataTimeMs:n?Date.now():t.lastNonEmptyPollDataTimeMs,graphExecutions:Object.assign(Object.assign({},t.graphExecutions),{numExecutionsLoaded:Object.assign(Object.assign({},t.graphExecutions.numExecutionsLoaded),{state:BE.LOADED,lastLoadedTimeInMs:Date.now()}),executionDigestsLoaded:Object.assign(Object.assign({},t.graphExecutions.executionDigestsLoaded),{numExecutions:e})})});return e>0&&null===t.graphExecutions.focusIndex&&(o.graphExecutions.focusIndex=0),o})),pS(Uq,((t,{pageIndex:e})=>{if(null===t.activeRunId)return t;const n=t.graphExecutions.graphExecutionDataLoadingPages.slice();return-1===n.indexOf(e)&&n.push(e),Object.assign(Object.assign({},t),{graphExecutions:Object.assign(Object.assign({},t.graphExecutions),{graphExecutionDataLoadingPages:n})})})),pS(Wq,((t,e)=>{if(null===t.activeRunId)return t;const{pageSize:n}=t.graphExecutions,o=t.graphExecutions.graphExecutionDataLoadingPages.slice(),i=Object.assign({},t.graphExecutions.graphExecutionDataPageLoadedSizes),a=Object.assign({},t.graphExecutions.graphExecutionData);for(let t=e.begin;t<e.end;++t){const r=Math.floor(t/n);-1!==o.indexOf(r)&&o.splice(o.indexOf(r),1),void 0===i[r]&&(i[r]=0),void 0===a[t]&&i[r]++,a[t]=e.graph_executions[t-e.begin]}return Object.assign(Object.assign({},t),{graphExecutions:Object.assign(Object.assign({},t.graphExecutions),{graphExecutionDataLoadingPages:o,graphExecutionDataPageLoadedSizes:i,graphExecutionData:a})})})),pS(Gq,((t,e)=>{if(e.index<0||!Number.isInteger(e.index))throw new Error(`Attempt to scroll to negative or non-integer graph-execution index (${e.index})`);return Object.assign(Object.assign({},t),{graphExecutions:Object.assign(Object.assign({},t.graphExecutions),{scrollBeginIndex:e.index})})})),pS(Yq,((t,e)=>uZ(t,e.graph_id,e.op_name,e.index))),pS(qq,((t,e)=>uZ(t,e.graph_id,e.op_name))),pS(Zq,((t,e)=>{const{graph_id:n,op_name:o}=e,i=Object.assign(Object.assign({},t),{graphs:Object.assign(Object.assign({},t.graphs),{loadingOps:Object.assign({},t.graphs.loadingOps)})});return void 0===i.graphs.loadingOps[n]&&(i.graphs.loadingOps[n]=new Map),i.graphs.loadingOps[n].has(o)||i.graphs.loadingOps[n].set(o,BE.LOADING),i})),pS(Xq,((t,e)=>{const{graphOpInfoResponse:n}=e,{graph_ids:o}=n,i=o[o.length-1],a=Object.assign(Object.assign({},t),{graphs:Object.assign(Object.assign({},t.graphs),{ops:Object.assign(Object.assign({},t.graphs.ops),{[i]:new Map(t.graphs.ops[i])}),loadingOps:Object.assign(Object.assign({},t.graphs.loadingOps),{[i]:new Map(t.graphs.loadingOps[i])})})});for(const t of n.inputs)t.data&&a.graphs.ops[i].set(t.op_name,t.data);for(let t=0;t<n.consumers.length;++t)for(const e of n.consumers[t])e.data&&a.graphs.ops[i].set(e.op_name,e.data);return a.graphs.ops[i].set(n.op_name,Object.assign(Object.assign({},n),{inputs:n.inputs.map((t=>({op_name:t.op_name,output_slot:t.output_slot}))),consumers:n.consumers.map((t=>t.map((t=>({op_name:t.op_name,input_slot:t.input_slot})))))})),a.graphs.loadingOps[i].set(n.op_name,BE.LOADED),a})),pS(Kq,(t=>Object.assign(Object.assign({},t),{sourceCode:Object.assign(Object.assign({},t.sourceCode),{sourceFileListLoaded:Object.assign(Object.assign({},t.sourceCode.sourceFileListLoaded),{state:BE.LOADING})})}))),pS(Jq,((t,e)=>{var n;const o=Object.assign(Object.assign({},t),{sourceCode:Object.assign(Object.assign({},t.sourceCode),{sourceFileListLoaded:Object.assign(Object.assign({},t.sourceCode.sourceFileListLoaded),{state:BE.LOADED,lastLoadedTimeInMs:Date.now()}),sourceFileList:e.sourceFiles,fileContents:t.sourceCode.fileContents.slice()})}),i=e.sourceFiles.length,{fileContents:a}=o.sourceCode;for(let e=0;e<i;++e)a[e]=null!==(n=t.sourceCode.fileContents[e])&&void 0!==n?n:{loadState:BE.NOT_LOADED,lines:null};return o})),pS(Qq,((t,e)=>{const n=rZ(t),o=Object.assign(Object.assign({},t),{sourceCode:Object.assign(Object.assign({},t.sourceCode),{focusLineSpec:e.stackFrame})});return null!==n&&(o.stickToBottommostFrameInFocusedFile=(function i(t,e){let n=-1,o=-1;if(t.forEach((({file_path:t,lineno:i},a)=>{t===e.file_path&&(o=a,i===e.lineno&&(n=a))})),-1===n)throw new Error(`Stack frame ${JSON.stringify(e)} is not found.`);return n===o})(n,e.stackFrame)),o})),pS($q,((t,e)=>{const n=Object.assign(Object.assign({},t),{sourceCode:Object.assign(Object.assign({},t.sourceCode),{fileContents:t.sourceCode.fileContents.slice()})}),o=sZ(n.sourceCode.sourceFileList,e);if(!(o>=0))throw new Error(`Cannot find the following file in file list: host_name="${e.host_name}", file_path="${e.file_path}"`);return n.sourceCode.fileContents.splice(o,1,Object.assign(Object.assign({},n.sourceCode.fileContents[o]),{loadState:BE.LOADING})),n})),pS(tZ,((t,e)=>{const n=Object.assign(Object.assign({},t),{sourceCode:Object.assign(Object.assign({},t.sourceCode),{fileContents:t.sourceCode.fileContents.slice()})}),o=sZ(n.sourceCode.sourceFileList,e);if(!(o>=0))throw new Error(`Cannot find the following file in file list: host_name="${e.host_name}", file_path="${e.file_path}"`);return n.sourceCode.fileContents.splice(o,1,{loadState:BE.LOADED,lines:e.lines}),n})),pS(eZ,((t,e)=>{if(null===t.activeRunId)return t;const n=Object.assign(Object.assign({},t),{stackFrames:Object.assign(Object.assign({},t.stackFrames),e.stackFrames),sourceCode:Object.assign({},t.sourceCode)});return n.sourceCode.focusLineSpec=cZ(n),n})));function uZ(t,e,n,o){const i=Object.assign(Object.assign({},t),{graphs:Object.assign(Object.assign({},t.graphs),{focusedOp:{graphId:e,opName:n}}),codeLocationFocusType:aZ.GRAPH_OP_CREATION,sourceCode:Object.assign({},t.sourceCode)});return i.sourceCode.focusLineSpec=cZ(i),void 0!==o&&(i.graphExecutions=Object.assign(Object.assign({},t.graphExecutions),{focusIndex:o})),i}function fZ(t,e){return dZ(t,e)}const gZ=Fk(nZ),hZ=zk(gZ,(t=>t.runs)),bZ=zk(gZ,(t=>t.runsLoaded)),yZ=zk(gZ,(t=>t.activeRunId)),_Z=zk(gZ,(t=>t.lastDataPollOnsetTimeMs-t.lastNonEmptyPollDataTimeMs)),CZ=zk(gZ,(t=>t.alerts)),MZ=zk(CZ,(t=>t.alertsLoaded)),vZ=zk(CZ,(t=>t.numAlerts)),xZ=zk(CZ,(t=>t.focusType)),OZ=zk(CZ,(t=>null===t.focusType?0:t.alertsBreakdown[t.focusType]||0)),PZ=zk(CZ,(t=>null===t.focusType||void 0===t.alerts[t.focusType]?null:t.alerts[t.focusType])),wZ=zk(CZ,(t=>t.alertsBreakdown)),kZ=zk(gZ,(t=>t.executions)),SZ=zk(kZ,(t=>t.numExecutionsLoaded)),DZ=zk(kZ,(t=>t.executionDigestsLoaded)),EZ=zk(kZ,(t=>t.executionDigestsLoaded.numExecutions)),AZ=zk(kZ,(t=>t.scrollBeginIndex)),RZ=zk(kZ,(t=>t.pageSize)),TZ=zk(kZ,(t=>t.displayCount)),NZ=zk(kZ,(t=>{const e=[];for(let n=t.scrollBeginIndex;n<t.scrollBeginIndex+t.displayCount;++n)e.push(n in t.executionDigests?t.executionDigests[n]:null);return e})),IZ=zk(gZ,(t=>t.graphExecutions)),zZ=zk(IZ,(t=>t.numExecutionsLoaded)),HZ=zk(gZ,(t=>t.graphExecutions.executionDigestsLoaded.numExecutions)),FZ=zk(IZ,(t=>t.scrollBeginIndex)),LZ=zk(IZ,(t=>t.displayCount)),BZ=zk(IZ,(t=>t.pageSize)),VZ=zk(IZ,(t=>t.graphExecutionDataLoadingPages)),jZ=zk(IZ,(t=>t.graphExecutionDataPageLoadedSizes)),UZ=zk(IZ,(t=>t.graphExecutionData)),WZ=zk(IZ,(t=>t.focusIndex)),GZ=zk(gZ,(t=>t.graphs)),YZ=zk(GZ,(t=>{const{focusedOp:e,ops:n}=t;return null===e||void 0===n[e.graphId]?null:n[e.graphId].get(e.opName)||null})),qZ=zk(GZ,(t=>{const{focusedOp:e,ops:n}=t;if(null!==e&&void 0!==n[e.graphId]&&n[e.graphId].has(e.opName)){const t=n[e.graphId],{inputs:o}=t.get(e.opName);return o.map((e=>{const n=Object.assign({},e);return t.has(e.op_name)&&(n.data=t.get(e.op_name)),n}))}return null})),ZZ=zk(WZ,UZ,qZ,((t,e,n)=>{if(null===t||null===n)return null;const o=n.map((t=>!1)),i=[];if(0===n.length)return i;const a=e[t].graph_id,r=Math.max(0,t-200);for(let s=t-1;s>=r;--s)if(void 0!==e[s])for(let t=0;t<n.length&&(o[t]||e[s].graph_id!==a||e[s].op_name!==n[t].op_name||e[s].output_slot!==n[t].output_slot||(i.push(s),o[t]=!0,i.length!==n.length));++t);return i})),XZ=zk(GZ,(t=>{const{focusedOp:e,ops:n}=t;if(null!==e&&void 0!==n[e.graphId]&&n[e.graphId].has(e.opName)){const t=n[e.graphId],{consumers:o}=t.get(e.opName);return o.map((e=>e.map((e=>{const n=Object.assign({},e);return t.has(e.op_name)&&(n.data=t.get(e.op_name)),n}))))}return null})),KZ=zk(gZ,(t=>{const e=t.executions.scrollBeginIndex,n=t.executions.scrollBeginIndex+t.executions.displayCount,o=new Array(n-e).fill(null),i=t.alerts.focusType;if(null===i)return o;const a=t.alerts.executionIndices[i];if(void 0===a)return o;for(let i=e;i<n;++i)a.includes(i)&&(o[i-e]=t.alerts.focusType);return o})),JZ=zk(gZ,(t=>t.executions)),QZ=zk(JZ,(t=>t.focusIndex)),$Z=zk(JZ,(t=>{if(null===t.focusIndex)return null;const{focusIndex:e,scrollBeginIndex:n,displayCount:o}=t;return e<n||e>=n+o?null:e-n})),tX=zk(JZ,(t=>t.executionData)),eX=zk(gZ,(t=>t.graphs.loadingOps)),nX=zk(gZ,(t=>t.stackFrames)),oX=zk(JZ,(t=>{const{focusIndex:e,executionData:n}=t;return null===e||void 0===n[e]?null:n[e]})),iX=zk(gZ,QZ,oX,YZ,((t,e,n,o)=>{const{codeLocationFocusType:i}=t;return null===i?null:i===aZ.EXECUTION?null===e||null===n?null:{codeLocationType:aZ.EXECUTION,opType:n.op_type,executionIndex:e}:null===o?null:{codeLocationType:aZ.GRAPH_OP_CREATION,opType:o.op_type,opName:o.op_name}})),aX=zk(gZ,rZ),rX=zk(gZ,(t=>t.sourceCode)),sX=zk(rX,(t=>t.sourceFileListLoaded));zk(rX,(t=>t.sourceFileList));const lX=zk(rX,(t=>{const{sourceFileList:e,focusLineSpec:n}=t;return null===n?-1:sZ(e,n)})),cX=zk(rX,lX,((t,e)=>-1===e?null:t.fileContents[e]||null)),dX=zk(gZ,(t=>t.sourceCode.focusLineSpec)),pX=zk(gZ,(t=>t.stickToBottommostFrameInFocusedFile)),mX=function(t){return[t]};function uX(t,e){if(1&t){const t=Eu();Ou(0,"div",7),Nu("click",(function n(){ra(t);const o=e.$implicit;return Lu().onToggleFocusType.emit(o.type)})),Ou(1,"div",8),Mf(2),Pu(),Ou(3,"div",9),Mf(4),Pu(),wu(5,"div"),Pu()}if(2&t){const t=e.$implicit,n=Lu();vu("ngClass",gb(4,mX,t.type===n.focusType?"focus":"")),Jc(2),vf(t.displayName),Jc(2),Of(" ",t.displaySymbol,": ",t.count," ")}}class fX{constructor(){this.numAlerts=0,this.alertsBreakdown=[],this.focusType=null,this.onToggleFocusType=new Ab}}fX.ɵfac=function t(e){return new(e||fX)},fX.ɵcmp=Uo({type:fX,selectors:[["alerts-component"]],inputs:{numAlerts:"numAlerts",alertsBreakdown:"alertsBreakdown",focusType:"focusType"},outputs:{onToggleFocusType:"onToggleFocusType"},decls:10,vars:5,consts:[[1,"alerts-container"],[1,"debugging-title"],[1,"num-alerts-container"],[1,"num-alerts-label"],[1,"num-alerts-value",3,"ngClass"],[1,"alerts-breakdown-container"],["class","alerts-breakdown-type",3,"ngClass","click",4,"ngFor","ngForOf"],[1,"alerts-breakdown-type",3,"ngClass","click"],[1,"alert-type-name"],[1,"alert-type-count"]],template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"div",1),Mf(2,"Debugging"),Pu(),Ou(3,"div",2),Ou(4,"div",3),Mf(5,"Alerts"),Pu(),Ou(6,"div",4),Mf(7),Pu(),Pu(),Ou(8,"div",5),Wm(9,uX,6,6,"div",6),Pu(),Pu()),2&e&&(Jc(6),vu("ngClass",gb(3,mX,n.numAlerts>0?"non-zero":"")),Jc(1),xf(" ",n.numAlerts," "),Jc(2),vu("ngForOf",n.alertsBreakdown))},directives:[tv,ov],styles:[".alerts-breakdown-container[_ngcontent-%COMP%] {\n  font-size: 13px;\n  padding: 10px 10px 10px;\n  position: relative;\n}\n\n.alerts-breakdown-type[_ngcontent-%COMP%] {\n  border-radius: 0 10px 10px 0;\n  cursor: pointer;\n  display: flex;\n  padding: 6px 0 6px 50px;\n  vertical-align: middle;\n}\n\n.alerts-breakdown-type.focus[_ngcontent-%COMP%] {\n  background-color: #ffeee0;\n}\n\n.alerts-container[_ngcontent-%COMP%] {\n  font-family: 'Roboto', Arial, Helvetica, sans-serif;\n}\n\n.alert-type-count[_ngcontent-%COMP%] {\n  \n  background-color: #e52592;\n  border-radius: 3px;\n  color: #fff;\n  display: inline-block;\n  padding: 3px;\n  position: absolute;\n  right: 20px;\n  vertical-align: middle;\n}\n\n.alert-type-name[_ngcontent-%COMP%] {\n  display: inline-block;\n  padding: 3px;\n  vertical-align: middle;\n}\n\n.debugging-title[_ngcontent-%COMP%] {\n  font-size: 18px;\n}\n\n.num-alerts-container[_ngcontent-%COMP%] {\n  font-weight: bold;\n  padding: 10px 10px 10px 30px;\n  position: relative;\n}\n\n.num-alerts-label[_ngcontent-%COMP%] {\n  display: inline-block;\n  font-size: 13px;\n}\n\n.num-alerts-value[_ngcontent-%COMP%] {\n  border-radius: 12px;\n  display: inline-block;\n  font-size: 13px;\n  font-weight: normal;\n  line-height: 24px;\n  position: absolute;\n  right: 20px;\n  text-align: center;\n  vertical-align: middle;\n  width: 24px;\n}\n\n.num-alerts-value.non-zero[_ngcontent-%COMP%] {\n  background-color: #ffb780;\n  font-weight: bold;\n}"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fX,[{type:h_,args:[{selector:"alerts-component",templateUrl:"./alerts_component.ng.html",styleUrls:["./alerts_component.css"]}]}],null,{numAlerts:[{type:y_}],alertsBreakdown:[{type:y_}],focusType:[{type:y_}],onToggleFocusType:[{type:__}]});const gX={[iZ.FUNCTION_RECOMPILE_ALERT]:{displayName:"Function recompiles",displaySymbol:"C"},[iZ.INF_NAN_ALERT]:{displayName:"NaN/∞",displaySymbol:"∞"},[iZ.TENSOR_SHAPE_ALERT]:{displayName:"Tensor shape",displaySymbol:"■"}};class hX{constructor(t){this.store=t,this.numAlerts$=this.store.pipe(Rk(vZ)),this.alertsBreakdown$=this.store.pipe(Rk(zk(wZ,(t=>{const e=Object.keys(t);return e.sort(),e.map((e=>Object.assign(Object.assign({type:e},gX[e]),{count:t[e]})))})))),this.focusType$=this.store.pipe(Rk(xZ))}onToggleFocusType(t){this.store.dispatch(Aq({alertType:t}))}}hX.ɵfac=function t(e){return new(e||hX)(Mu(Ek))},hX.ɵcmp=Uo({type:hX,selectors:[["tf-debugger-v2-alerts"]],decls:4,vars:9,consts:[[3,"numAlerts","alertsBreakdown","focusType","onToggleFocusType"]],template:function t(e,n){1&e&&(Ou(0,"alerts-component",0),Nu("onToggleFocusType",(function t(e){return n.onToggleFocusType(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("numAlerts",Pb(1,3,n.numAlerts$))("alertsBreakdown",Pb(2,5,n.alertsBreakdown$))("focusType",Pb(3,7,n.focusType$))},directives:[fX],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(hX,[{type:h_,args:[{selector:"tf-debugger-v2-alerts",template:'\n    <alerts-component\n      [numAlerts]="numAlerts$ | async"\n      [alertsBreakdown]="alertsBreakdown$ | async"\n      [focusType]="focusType$ | async"\n      (onToggleFocusType)="onToggleFocusType($event)"\n    >\n    </alerts-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);const bX=["sliderWrapper"],yX=vI({passive:!1}),_X={provide:vV,useExisting:In((()=>vX)),multi:!0};class CX{}const MX=Hz(Iz(Nz(class{constructor(t){this._elementRef=t}}),"accent"));class vX extends MX{constructor(t,e,n,o,i,a,r,s){super(t),this._focusMonitor=e,this._changeDetectorRef=n,this._dir=o,this._ngZone=a,this._animationMode=s,this._invert=!1,this._max=100,this._min=0,this._step=1,this._thumbLabel=!1,this._tickInterval=0,this._value=null,this._vertical=!1,this.change=new Ab,this.input=new Ab,this.valueChange=new Ab,this.onTouched=()=>{},this._percent=0,this._isSliding=!1,this._isActive=!1,this._tickIntervalPercent=0,this._sliderDimensions=null,this._controlValueAccessorChangeFn=()=>{},this._dirChangeSubscription=l.EMPTY,this._pointerDown=t=>{this.disabled||this._isSliding||!xX(t)&&0!==t.button||this._ngZone.run((()=>{const e=this.value,n=OX(t);this._isSliding=!0,this._lastPointerEvent=t,t.preventDefault(),this._focusHostElement(),this._onMouseenter(),this._bindGlobalEvents(t),this._focusHostElement(),this._updateValueFromPosition(n),this._valueOnSlideStart=e,e!=this.value&&this._emitInputEvent()}))},this._pointerMove=t=>{if(this._isSliding){t.preventDefault();const e=this.value;this._lastPointerEvent=t,this._updateValueFromPosition(OX(t)),e!=this.value&&this._emitInputEvent()}},this._pointerUp=t=>{this._isSliding&&(t.preventDefault(),this._removeGlobalEvents(),this._isSliding=!1,this._valueOnSlideStart==this.value||this.disabled||this._emitChangeEvent(),this._valueOnSlideStart=this._lastPointerEvent=null)},this._windowBlur=()=>{this._lastPointerEvent&&this._pointerUp(this._lastPointerEvent)},this._document=r,this.tabIndex=parseInt(i)||0,a.runOutsideAngular((()=>{const e=t.nativeElement;e.addEventListener("mousedown",this._pointerDown,yX),e.addEventListener("touchstart",this._pointerDown,yX)}))}get invert(){return this._invert}set invert(t){this._invert=rI(t)}get max(){return this._max}set max(t){this._max=sI(t,this._max),this._percent=this._calculatePercentage(this._value),this._changeDetectorRef.markForCheck()}get min(){return this._min}set min(t){this._min=sI(t,this._min),null===this._value&&(this.value=this._min),this._percent=this._calculatePercentage(this._value),this._changeDetectorRef.markForCheck()}get step(){return this._step}set step(t){this._step=sI(t,this._step),this._step%1!=0&&(this._roundToDecimal=this._step.toString().split(".").pop().length),this._changeDetectorRef.markForCheck()}get thumbLabel(){return this._thumbLabel}set thumbLabel(t){this._thumbLabel=rI(t)}get tickInterval(){return this._tickInterval}set tickInterval(t){this._tickInterval="auto"===t?"auto":"number"==typeof t||"string"==typeof t?sI(t,this._tickInterval):0}get value(){return null===this._value&&(this.value=this._min),this._value}set value(t){if(t!==this._value){let e=sI(t);this._roundToDecimal&&e!==this.min&&e!==this.max&&(e=parseFloat(e.toFixed(this._roundToDecimal))),this._value=e,this._percent=this._calculatePercentage(this._value),this._changeDetectorRef.markForCheck()}}get vertical(){return this._vertical}set vertical(t){this._vertical=rI(t)}get displayValue(){return this.displayWith?this.displayWith(this.value):this._roundToDecimal&&this.value&&this.value%1!=0?this.value.toFixed(this._roundToDecimal):this.value||0}focus(t){this._focusHostElement(t)}blur(){this._blurHostElement()}get percent(){return this._clamp(this._percent)}_shouldInvertAxis(){return this.vertical?!this.invert:this.invert}_isMinValue(){return 0===this.percent}_getThumbGap(){return this.disabled?7:this._isMinValue()&&!this.thumbLabel?this._isActive?10:7:0}_getTrackBackgroundStyles(){const t=this.vertical?`1, ${1-this.percent}, 1`:1-this.percent+", 1, 1";return{transform:`translate${this.vertical?"Y":"X"}(${this._shouldInvertMouseCoords()?"-":""}${this._getThumbGap()}px) scale3d(${t})`}}_getTrackFillStyles(){const t=this.percent,e=this.vertical?`1, ${t}, 1`:`${t}, 1, 1`;return{transform:`translate${this.vertical?"Y":"X"}(${this._shouldInvertMouseCoords()?"":"-"}${this._getThumbGap()}px) scale3d(${e})`,display:0===t?"none":""}}_getTicksContainerStyles(){return{transform:`translate${this.vertical?"Y":"X"}(${this.vertical||"rtl"!=this._getDirection()?"-":""}${this._tickIntervalPercent/2*100}%)`}}_getTicksStyles(){let t=100*this._tickIntervalPercent,e={backgroundSize:this.vertical?`2px ${t}%`:`${t}% 2px`,transform:`translateZ(0) translate${this.vertical?"Y":"X"}(${this.vertical||"rtl"!=this._getDirection()?"":"-"}${t/2}%)${this.vertical||"rtl"!=this._getDirection()?"":" rotate(180deg)"}`};if(this._isMinValue()&&this._getThumbGap()){const t=this._shouldInvertAxis();let n;n=this.vertical?t?"Bottom":"Top":t?"Right":"Left",e[`padding${n}`]=`${this._getThumbGap()}px`}return e}_getThumbContainerStyles(){const t=this._shouldInvertAxis();return{transform:`translate${this.vertical?"Y":"X"}(-${100*(("rtl"!=this._getDirection()||this.vertical?t:!t)?this.percent:1-this.percent)}%)`}}_shouldInvertMouseCoords(){const t=this._shouldInvertAxis();return"rtl"!=this._getDirection()||this.vertical?t:!t}_getDirection(){return this._dir&&"rtl"==this._dir.value?"rtl":"ltr"}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe((t=>{this._isActive=!!t&&"keyboard"!==t,this._changeDetectorRef.detectChanges()})),this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe((()=>{this._changeDetectorRef.markForCheck()})))}ngOnDestroy(){const t=this._elementRef.nativeElement;t.removeEventListener("mousedown",this._pointerDown,yX),t.removeEventListener("touchstart",this._pointerDown,yX),this._lastPointerEvent=null,this._removeGlobalEvents(),this._focusMonitor.stopMonitoring(this._elementRef),this._dirChangeSubscription.unsubscribe()}_onMouseenter(){this.disabled||(this._sliderDimensions=this._getSliderDimensions(),this._updateTickIntervalPercent())}_onFocus(){this._sliderDimensions=this._getSliderDimensions(),this._updateTickIntervalPercent()}_onBlur(){this.onTouched()}_onKeydown(t){if(this.disabled||aI(t))return;const e=this.value;switch(t.keyCode){case 33:this._increment(10);break;case 34:this._increment(-10);break;case 35:this.value=this.max;break;case 36:this.value=this.min;break;case 37:this._increment("rtl"==this._getDirection()?1:-1);break;case oI:this._increment(1);break;case 39:this._increment("rtl"==this._getDirection()?-1:1);break;case iI:this._increment(-1);break;default:return}e!=this.value&&(this._emitInputEvent(),this._emitChangeEvent()),this._isSliding=!0,t.preventDefault()}_onKeyup(){this._isSliding=!1}_getWindow(){return this._document.defaultView||window}_bindGlobalEvents(t){const e=this._document,n=xX(t),o=n?"touchend":"mouseup";e.addEventListener(n?"touchmove":"mousemove",this._pointerMove,yX),e.addEventListener(o,this._pointerUp,yX),n&&e.addEventListener("touchcancel",this._pointerUp,yX);const i=this._getWindow();void 0!==i&&i&&i.addEventListener("blur",this._windowBlur)}_removeGlobalEvents(){const t=this._document;t.removeEventListener("mousemove",this._pointerMove,yX),t.removeEventListener("mouseup",this._pointerUp,yX),t.removeEventListener("touchmove",this._pointerMove,yX),t.removeEventListener("touchend",this._pointerUp,yX),t.removeEventListener("touchcancel",this._pointerUp,yX);const e=this._getWindow();void 0!==e&&e&&e.removeEventListener("blur",this._windowBlur)}_increment(t){this.value=this._clamp((this.value||0)+this.step*t,this.min,this.max)}_updateValueFromPosition(t){if(!this._sliderDimensions)return;let e=this._clamp(((this.vertical?t.y:t.x)-(this.vertical?this._sliderDimensions.top:this._sliderDimensions.left))/(this.vertical?this._sliderDimensions.height:this._sliderDimensions.width));if(this._shouldInvertMouseCoords()&&(e=1-e),0===e)this.value=this.min;else if(1===e)this.value=this.max;else{const t=this._calculateValue(e),n=Math.round((t-this.min)/this.step)*this.step+this.min;this.value=this._clamp(n,this.min,this.max)}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.value),this.valueChange.emit(this.value),this.change.emit(this._createChangeEvent())}_emitInputEvent(){this.input.emit(this._createChangeEvent())}_updateTickIntervalPercent(){if(this.tickInterval&&this._sliderDimensions)if("auto"==this.tickInterval){let t=this.vertical?this._sliderDimensions.height:this._sliderDimensions.width,e=Math.ceil(30/(t*this.step/(this.max-this.min)));this._tickIntervalPercent=e*this.step/t}else this._tickIntervalPercent=this.tickInterval*this.step/(this.max-this.min)}_createChangeEvent(t=this.value){let e=new CX;return e.source=this,e.value=t,e}_calculatePercentage(t){return((t||0)-this.min)/(this.max-this.min)}_calculateValue(t){return this.min+t*(this.max-this.min)}_clamp(t,e=0,n=1){return Math.max(e,Math.min(t,n))}_getSliderDimensions(){return this._sliderWrapper?this._sliderWrapper.nativeElement.getBoundingClientRect():null}_focusHostElement(t){this._elementRef.nativeElement.focus(t)}_blurHostElement(){this._elementRef.nativeElement.blur()}writeValue(t){this.value=t}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t}}function xX(t){return"t"===t.type[0]}function OX(t){const e=xX(t)?t.touches[0]||t.changedTouches[0]:t;return{x:e.clientX,y:e.clientY}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */vX.ɵfac=function t(e){return new(e||vX)(Mu(ch),Mu(pz),Mu(Hh),Mu(Mz,8),Or("tabindex"),Mu(tC),Mu(UC),Mu(Nw,8))},vX.ɵcmp=Uo({type:vX,selectors:[["mat-slider"]],viewQuery:function t(e,n){if(1&e&&Wb(bX,1),2&e){let t;Ub(t=Yb())&&(n._sliderWrapper=t.first)}},hostAttrs:["role","slider",1,"mat-slider","mat-focus-indicator"],hostVars:29,hostBindings:function t(e,n){1&e&&Nu("focus",(function t(){return n._onFocus()}))("blur",(function t(){return n._onBlur()}))("keydown",(function t(e){return n._onKeydown(e)}))("keyup",(function t(){return n._onKeyup()}))("mouseenter",(function t(){return n._onMouseenter()}))("selectstart",(function t(e){return e.preventDefault()})),2&e&&(kf("tabIndex",n.tabIndex),Nm("aria-disabled",n.disabled)("aria-valuemax",n.max)("aria-valuemin",n.min)("aria-valuenow",n.value)("aria-valuetext",null==n.valueText?n.displayValue:n.valueText)("aria-orientation",n.vertical?"vertical":"horizontal"),af("mat-slider-disabled",n.disabled)("mat-slider-has-ticks",n.tickInterval)("mat-slider-horizontal",!n.vertical)("mat-slider-axis-inverted",n._shouldInvertAxis())("mat-slider-invert-mouse-coords",n._shouldInvertMouseCoords())("mat-slider-sliding",n._isSliding)("mat-slider-thumb-label-showing",n.thumbLabel)("mat-slider-vertical",n.vertical)("mat-slider-min-value",n._isMinValue())("mat-slider-hide-last-tick",n.disabled||n._isMinValue()&&n._getThumbGap()&&n._shouldInvertAxis())("_mat-animation-noopable","NoopAnimations"===n._animationMode))},inputs:{disabled:"disabled",color:"color",tabIndex:"tabIndex",invert:"invert",max:"max",min:"min",value:"value",step:"step",thumbLabel:"thumbLabel",tickInterval:"tickInterval",vertical:"vertical",displayWith:"displayWith",valueText:"valueText"},outputs:{change:"change",input:"input",valueChange:"valueChange"},exportAs:["matSlider"],features:[ih([_X]),gm],decls:13,vars:6,consts:[[1,"mat-slider-wrapper"],["sliderWrapper",""],[1,"mat-slider-track-wrapper"],[1,"mat-slider-track-background",3,"ngStyle"],[1,"mat-slider-track-fill",3,"ngStyle"],[1,"mat-slider-ticks-container",3,"ngStyle"],[1,"mat-slider-ticks",3,"ngStyle"],[1,"mat-slider-thumb-container",3,"ngStyle"],[1,"mat-slider-focus-ring"],[1,"mat-slider-thumb"],[1,"mat-slider-thumb-label"],[1,"mat-slider-thumb-label-text"]],template:function t(e,n){1&e&&(Ou(0,"div",0,1),Ou(2,"div",2),wu(3,"div",3),wu(4,"div",4),Pu(),Ou(5,"div",5),wu(6,"div",6),Pu(),Ou(7,"div",7),wu(8,"div",8),wu(9,"div",9),Ou(10,"div",10),Ou(11,"span",11),Mf(12),Pu(),Pu(),Pu(),Pu()),2&e&&(Jc(3),vu("ngStyle",n._getTrackBackgroundStyles()),Jc(1),vu("ngStyle",n._getTrackFillStyles()),Jc(1),vu("ngStyle",n._getTicksContainerStyles()),Jc(1),vu("ngStyle",n._getTicksStyles()),Jc(1),vu("ngStyle",n._getThumbContainerStyles()),Jc(5),vf(n.displayValue))},directives:[gv],styles:['.mat-slider{display:inline-block;position:relative;box-sizing:border-box;padding:8px;outline:none;vertical-align:middle}.mat-slider:not(.mat-slider-disabled):active,.mat-slider.mat-slider-sliding:not(.mat-slider-disabled){cursor:-webkit-grabbing;cursor:grabbing}.mat-slider-wrapper{position:absolute;-webkit-print-color-adjust:exact;color-adjust:exact}.mat-slider-track-wrapper{position:absolute;top:0;left:0;overflow:hidden}.mat-slider-track-fill{position:absolute;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-track-background{position:absolute;transform-origin:100% 100%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-ticks-container{position:absolute;left:0;top:0;overflow:hidden}.mat-slider-ticks{background-repeat:repeat;background-clip:content-box;box-sizing:border-box;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-container{position:absolute;z-index:1;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-focus-ring{position:absolute;width:30px;height:30px;border-radius:50%;transform:scale(0);opacity:0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider.cdk-keyboard-focused .mat-slider-focus-ring,.mat-slider.cdk-program-focused .mat-slider-focus-ring{transform:scale(1);opacity:1}.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb-label,.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb{cursor:-webkit-grab;cursor:grab}.mat-slider-thumb{position:absolute;right:-10px;bottom:-10px;box-sizing:border-box;width:20px;height:20px;border:3px solid transparent;border-radius:50%;transform:scale(0.7);transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-label{display:none;align-items:center;justify-content:center;position:absolute;width:28px;height:28px;border-radius:50%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-radius 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.cdk-high-contrast-active .mat-slider-thumb-label{outline:solid 1px}.mat-slider-thumb-label-text{z-index:1;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-sliding .mat-slider-track-fill,.mat-slider-sliding .mat-slider-track-background,.mat-slider-sliding .mat-slider-thumb-container{transition-duration:0ms}.mat-slider-has-ticks .mat-slider-wrapper::after{content:"";position:absolute;border-width:0;border-style:solid;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after,.mat-slider-has-ticks:hover:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after{opacity:1}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-disabled) .mat-slider-ticks,.mat-slider-has-ticks:hover:not(.mat-slider-disabled) .mat-slider-ticks{opacity:1}.mat-slider-thumb-label-showing .mat-slider-focus-ring{display:none}.mat-slider-thumb-label-showing .mat-slider-thumb-label{display:flex}.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:100% 100%}.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:0 0}.mat-slider:not(.mat-slider-disabled).cdk-focused.mat-slider-thumb-label-showing .mat-slider-thumb{transform:scale(0)}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label{border-radius:50% 50% 0}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label-text{opacity:1}.mat-slider:not(.mat-slider-disabled).cdk-mouse-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-touch-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-program-focused .mat-slider-thumb{border-width:2px;transform:scale(1)}.mat-slider-disabled .mat-slider-focus-ring{transform:scale(0);opacity:0}.mat-slider-disabled .mat-slider-thumb{border-width:4px;transform:scale(0.5)}.mat-slider-disabled .mat-slider-thumb-label{display:none}.mat-slider-horizontal{height:48px;min-width:128px}.mat-slider-horizontal .mat-slider-wrapper{height:2px;top:23px;left:8px;right:8px}.mat-slider-horizontal .mat-slider-wrapper::after{height:2px;border-left-width:2px;right:0;top:0}.mat-slider-horizontal .mat-slider-track-wrapper{height:2px;width:100%}.mat-slider-horizontal .mat-slider-track-fill{height:2px;width:100%;transform:scaleX(0)}.mat-slider-horizontal .mat-slider-track-background{height:2px;width:100%;transform:scaleX(1)}.mat-slider-horizontal .mat-slider-ticks-container{height:2px;width:100%}.cdk-high-contrast-active .mat-slider-horizontal .mat-slider-ticks-container{height:0;outline:solid 2px;top:1px}.mat-slider-horizontal .mat-slider-ticks{height:2px;width:100%}.mat-slider-horizontal .mat-slider-thumb-container{width:100%;height:0;top:50%}.mat-slider-horizontal .mat-slider-focus-ring{top:-15px;right:-15px}.mat-slider-horizontal .mat-slider-thumb-label{right:-14px;top:-40px;transform:translateY(26px) scale(0.01) rotate(45deg)}.mat-slider-horizontal .mat-slider-thumb-label-text{transform:rotate(-45deg)}.mat-slider-horizontal.cdk-focused .mat-slider-thumb-label{transform:rotate(45deg)}.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label,.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label-text{transform:none}.mat-slider-vertical{width:48px;min-height:128px}.mat-slider-vertical .mat-slider-wrapper{width:2px;top:8px;bottom:8px;left:23px}.mat-slider-vertical .mat-slider-wrapper::after{width:2px;border-top-width:2px;bottom:0;left:0}.mat-slider-vertical .mat-slider-track-wrapper{height:100%;width:2px}.mat-slider-vertical .mat-slider-track-fill{height:100%;width:2px;transform:scaleY(0)}.mat-slider-vertical .mat-slider-track-background{height:100%;width:2px;transform:scaleY(1)}.mat-slider-vertical .mat-slider-ticks-container{width:2px;height:100%}.cdk-high-contrast-active .mat-slider-vertical .mat-slider-ticks-container{width:0;outline:solid 2px;left:1px}.mat-slider-vertical .mat-slider-focus-ring{bottom:-15px;left:-15px}.mat-slider-vertical .mat-slider-ticks{width:2px;height:100%}.mat-slider-vertical .mat-slider-thumb-container{height:100%;width:0;left:50%}.mat-slider-vertical .mat-slider-thumb{-webkit-backface-visibility:hidden;backface-visibility:hidden}.mat-slider-vertical .mat-slider-thumb-label{bottom:-14px;left:-40px;transform:translateX(26px) scale(0.01) rotate(-45deg)}.mat-slider-vertical .mat-slider-thumb-label-text{transform:rotate(45deg)}.mat-slider-vertical.cdk-focused .mat-slider-thumb-label{transform:rotate(-45deg)}[dir=rtl] .mat-slider-wrapper::after{left:0;right:auto}[dir=rtl] .mat-slider-horizontal .mat-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .mat-slider-horizontal .mat-slider-track-background{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:100% 100%}.mat-slider._mat-animation-noopable .mat-slider-track-fill,.mat-slider._mat-animation-noopable .mat-slider-track-background,.mat-slider._mat-animation-noopable .mat-slider-ticks,.mat-slider._mat-animation-noopable .mat-slider-thumb-container,.mat-slider._mat-animation-noopable .mat-slider-focus-ring,.mat-slider._mat-animation-noopable .mat-slider-thumb,.mat-slider._mat-animation-noopable .mat-slider-thumb-label,.mat-slider._mat-animation-noopable .mat-slider-thumb-label-text,.mat-slider._mat-animation-noopable .mat-slider-has-ticks .mat-slider-wrapper::after{transition:none}\n'],encapsulation:2,changeDetection:0}),vX.ctorParameters=()=>[{type:ch},{type:pz},{type:Hh},{type:Mz,decorators:[{type:_s}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],vX.propDecorators={invert:[{type:y_}],max:[{type:y_}],min:[{type:y_}],step:[{type:y_}],thumbLabel:[{type:y_}],tickInterval:[{type:y_}],value:[{type:y_}],displayWith:[{type:y_}],valueText:[{type:y_}],vertical:[{type:y_}],change:[{type:__}],input:[{type:__}],valueChange:[{type:__}],_sliderWrapper:[{type:Fr,args:["sliderWrapper"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(vX,[{type:h_,args:[{selector:"mat-slider",exportAs:"matSlider",providers:[_X],host:{"(focus)":"_onFocus()","(blur)":"_onBlur()","(keydown)":"_onKeydown($event)","(keyup)":"_onKeyup()","(mouseenter)":"_onMouseenter()","(selectstart)":"$event.preventDefault()",class:"mat-slider mat-focus-indicator",role:"slider","[tabIndex]":"tabIndex","[attr.aria-disabled]":"disabled","[attr.aria-valuemax]":"max","[attr.aria-valuemin]":"min","[attr.aria-valuenow]":"value","[attr.aria-valuetext]":"valueText == null ? displayValue : valueText","[attr.aria-orientation]":'vertical ? "vertical" : "horizontal"',"[class.mat-slider-disabled]":"disabled","[class.mat-slider-has-ticks]":"tickInterval","[class.mat-slider-horizontal]":"!vertical","[class.mat-slider-axis-inverted]":"_shouldInvertAxis()","[class.mat-slider-invert-mouse-coords]":"_shouldInvertMouseCoords()","[class.mat-slider-sliding]":"_isSliding","[class.mat-slider-thumb-label-showing]":"thumbLabel","[class.mat-slider-vertical]":"vertical","[class.mat-slider-min-value]":"_isMinValue()","[class.mat-slider-hide-last-tick]":"disabled || _isMinValue() && _getThumbGap() && _shouldInvertAxis()","[class._mat-animation-noopable]":'_animationMode === "NoopAnimations"'},template:'<div class="mat-slider-wrapper" #sliderWrapper>\n  <div class="mat-slider-track-wrapper">\n    <div class="mat-slider-track-background" [ngStyle]="_getTrackBackgroundStyles()"></div>\n    <div class="mat-slider-track-fill" [ngStyle]="_getTrackFillStyles()"></div>\n  </div>\n  <div class="mat-slider-ticks-container" [ngStyle]="_getTicksContainerStyles()">\n    <div class="mat-slider-ticks" [ngStyle]="_getTicksStyles()"></div>\n  </div>\n  <div class="mat-slider-thumb-container" [ngStyle]="_getThumbContainerStyles()">\n    <div class="mat-slider-focus-ring"></div>\n    <div class="mat-slider-thumb"></div>\n    <div class="mat-slider-thumb-label">\n      <span class="mat-slider-thumb-label-text">{{displayValue}}</span>\n    </div>\n  </div>\n</div>\n',inputs:["disabled","color","tabIndex"],encapsulation:Po.None,changeDetection:xo.OnPush,styles:['.mat-slider{display:inline-block;position:relative;box-sizing:border-box;padding:8px;outline:none;vertical-align:middle}.mat-slider:not(.mat-slider-disabled):active,.mat-slider.mat-slider-sliding:not(.mat-slider-disabled){cursor:-webkit-grabbing;cursor:grabbing}.mat-slider-wrapper{position:absolute;-webkit-print-color-adjust:exact;color-adjust:exact}.mat-slider-track-wrapper{position:absolute;top:0;left:0;overflow:hidden}.mat-slider-track-fill{position:absolute;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-track-background{position:absolute;transform-origin:100% 100%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-ticks-container{position:absolute;left:0;top:0;overflow:hidden}.mat-slider-ticks{background-repeat:repeat;background-clip:content-box;box-sizing:border-box;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-container{position:absolute;z-index:1;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-focus-ring{position:absolute;width:30px;height:30px;border-radius:50%;transform:scale(0);opacity:0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider.cdk-keyboard-focused .mat-slider-focus-ring,.mat-slider.cdk-program-focused .mat-slider-focus-ring{transform:scale(1);opacity:1}.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb-label,.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb{cursor:-webkit-grab;cursor:grab}.mat-slider-thumb{position:absolute;right:-10px;bottom:-10px;box-sizing:border-box;width:20px;height:20px;border:3px solid transparent;border-radius:50%;transform:scale(0.7);transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-label{display:none;align-items:center;justify-content:center;position:absolute;width:28px;height:28px;border-radius:50%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-radius 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.cdk-high-contrast-active .mat-slider-thumb-label{outline:solid 1px}.mat-slider-thumb-label-text{z-index:1;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-sliding .mat-slider-track-fill,.mat-slider-sliding .mat-slider-track-background,.mat-slider-sliding .mat-slider-thumb-container{transition-duration:0ms}.mat-slider-has-ticks .mat-slider-wrapper::after{content:"";position:absolute;border-width:0;border-style:solid;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after,.mat-slider-has-ticks:hover:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after{opacity:1}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-disabled) .mat-slider-ticks,.mat-slider-has-ticks:hover:not(.mat-slider-disabled) .mat-slider-ticks{opacity:1}.mat-slider-thumb-label-showing .mat-slider-focus-ring{display:none}.mat-slider-thumb-label-showing .mat-slider-thumb-label{display:flex}.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:100% 100%}.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:0 0}.mat-slider:not(.mat-slider-disabled).cdk-focused.mat-slider-thumb-label-showing .mat-slider-thumb{transform:scale(0)}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label{border-radius:50% 50% 0}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label-text{opacity:1}.mat-slider:not(.mat-slider-disabled).cdk-mouse-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-touch-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-program-focused .mat-slider-thumb{border-width:2px;transform:scale(1)}.mat-slider-disabled .mat-slider-focus-ring{transform:scale(0);opacity:0}.mat-slider-disabled .mat-slider-thumb{border-width:4px;transform:scale(0.5)}.mat-slider-disabled .mat-slider-thumb-label{display:none}.mat-slider-horizontal{height:48px;min-width:128px}.mat-slider-horizontal .mat-slider-wrapper{height:2px;top:23px;left:8px;right:8px}.mat-slider-horizontal .mat-slider-wrapper::after{height:2px;border-left-width:2px;right:0;top:0}.mat-slider-horizontal .mat-slider-track-wrapper{height:2px;width:100%}.mat-slider-horizontal .mat-slider-track-fill{height:2px;width:100%;transform:scaleX(0)}.mat-slider-horizontal .mat-slider-track-background{height:2px;width:100%;transform:scaleX(1)}.mat-slider-horizontal .mat-slider-ticks-container{height:2px;width:100%}.cdk-high-contrast-active .mat-slider-horizontal .mat-slider-ticks-container{height:0;outline:solid 2px;top:1px}.mat-slider-horizontal .mat-slider-ticks{height:2px;width:100%}.mat-slider-horizontal .mat-slider-thumb-container{width:100%;height:0;top:50%}.mat-slider-horizontal .mat-slider-focus-ring{top:-15px;right:-15px}.mat-slider-horizontal .mat-slider-thumb-label{right:-14px;top:-40px;transform:translateY(26px) scale(0.01) rotate(45deg)}.mat-slider-horizontal .mat-slider-thumb-label-text{transform:rotate(-45deg)}.mat-slider-horizontal.cdk-focused .mat-slider-thumb-label{transform:rotate(45deg)}.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label,.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label-text{transform:none}.mat-slider-vertical{width:48px;min-height:128px}.mat-slider-vertical .mat-slider-wrapper{width:2px;top:8px;bottom:8px;left:23px}.mat-slider-vertical .mat-slider-wrapper::after{width:2px;border-top-width:2px;bottom:0;left:0}.mat-slider-vertical .mat-slider-track-wrapper{height:100%;width:2px}.mat-slider-vertical .mat-slider-track-fill{height:100%;width:2px;transform:scaleY(0)}.mat-slider-vertical .mat-slider-track-background{height:100%;width:2px;transform:scaleY(1)}.mat-slider-vertical .mat-slider-ticks-container{width:2px;height:100%}.cdk-high-contrast-active .mat-slider-vertical .mat-slider-ticks-container{width:0;outline:solid 2px;left:1px}.mat-slider-vertical .mat-slider-focus-ring{bottom:-15px;left:-15px}.mat-slider-vertical .mat-slider-ticks{width:2px;height:100%}.mat-slider-vertical .mat-slider-thumb-container{height:100%;width:0;left:50%}.mat-slider-vertical .mat-slider-thumb{-webkit-backface-visibility:hidden;backface-visibility:hidden}.mat-slider-vertical .mat-slider-thumb-label{bottom:-14px;left:-40px;transform:translateX(26px) scale(0.01) rotate(-45deg)}.mat-slider-vertical .mat-slider-thumb-label-text{transform:rotate(45deg)}.mat-slider-vertical.cdk-focused .mat-slider-thumb-label{transform:rotate(-45deg)}[dir=rtl] .mat-slider-wrapper::after{left:0;right:auto}[dir=rtl] .mat-slider-horizontal .mat-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .mat-slider-horizontal .mat-slider-track-background{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:100% 100%}.mat-slider._mat-animation-noopable .mat-slider-track-fill,.mat-slider._mat-animation-noopable .mat-slider-track-background,.mat-slider._mat-animation-noopable .mat-slider-ticks,.mat-slider._mat-animation-noopable .mat-slider-thumb-container,.mat-slider._mat-animation-noopable .mat-slider-focus-ring,.mat-slider._mat-animation-noopable .mat-slider-thumb,.mat-slider._mat-animation-noopable .mat-slider-thumb-label,.mat-slider._mat-animation-noopable .mat-slider-thumb-label-text,.mat-slider._mat-animation-noopable .mat-slider-has-ticks .mat-slider-wrapper::after{transition:none}\n']}]}],(function(){return[{type:ch},{type:pz},{type:Hh},{type:Mz,decorators:[{type:_s}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:tC},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{change:[{type:__}],input:[{type:__}],valueChange:[{type:__}],invert:[{type:y_}],max:[{type:y_}],min:[{type:y_}],value:[{type:y_}],step:[{type:y_}],thumbLabel:[{type:y_}],tickInterval:[{type:y_}],vertical:[{type:y_}],displayWith:[{type:y_}],valueText:[{type:y_}],_sliderWrapper:[{type:Fr,args:["sliderWrapper"]}]});class PX{}PX.ɵfac=function t(e){return new(e||PX)},PX.ɵmod=Zo({type:PX}),PX.ɵinj=co({imports:[[Bv,Tz],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(PX,{declarations:function(){return[vX]},imports:function(){return[Bv,Tz]},exports:function(){return[vX,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(PX,[{type:k_,args:[{imports:[Bv,Tz],exports:[vX,Tz],declarations:[vX]}]}],null,null);const wX={19:"float16",1:"float32",2:"float64",3:"int32",4:"uint8",17:"uint16",22:"uint32",23:"uint64",5:"int16",6:"int8",7:"string",8:"complex64",18:"complex128",9:"int64",10:"bool",11:"qint8",12:"quint8",15:"qint16",16:"quint16",13:"qint32",14:"bfloat16",20:"resource",21:"variant",119:"float16_ref",101:"float32_ref",102:"float64_ref",103:"int32_ref",122:"uint32_ref",104:"uint8_ref",117:"uint16_ref",105:"int16_ref",106:"int8_ref",107:"string_ref",108:"complex64_ref",118:"complex128_ref",109:"int64_ref",123:"uint64_ref",110:"bool_ref",111:"qint8_ref",112:"quint8_ref",115:"qint16_ref",116:"quint16_ref",113:"qint32_ref",114:"bfloat16_ref",120:"resource_ref",121:"variant_ref"};function kX(t){const{tensorDebugMode:e,array:n}=t;switch(e){case oZ.NO_TENSOR:if(null!==n)throw new Error("Unexpectedly received non-null debug-tensor-value array under NO_TENSOR mode");return{};case oZ.CURT_HEALTH:if(null===n||2!==n.length)throw new Error(`Under CURT_HEALTH mode, expected debug-tensor-value array to have length 2, but got ${JSON.stringify(n)}`);return{hasInfOrNaN:Boolean(n[1])};case oZ.CONCISE_HEALTH:{if(null===n||5!==n.length)throw new Error(`Under CONCISE_HEALTH mode, expected debug-tensor-value array to have length 5, but got ${JSON.stringify(n)}`);const t={size:n[1]};return n[2]>0&&(t.numNegativeInfs=n[2]),n[3]>0&&(t.numPositiveInfs=n[3]),n[4]>0&&(t.numNaNs=n[4]),t}case oZ.SHAPE:{if(null===n||10!==n.length)throw new Error(`Under SHAPE mode, expected debug-tensor-value array to have length 10, but got ${JSON.stringify(n)}`);const t=n[2];let e=n.slice(4,Math.min(4+t,n.length));return e.length<t&&(e=new Array(t-e.length).concat(e)),{dtype:wX[n[1]],rank:t,size:n[3],shape:e}}case oZ.FULL_HEALTH:{if(null===n||11!==n.length)throw new Error(`Under FULL_HEALTH mode, expected debug-tensor-value array to have length 11, but got ${JSON.stringify(n)}`);const t={dtype:wX[n[2]],rank:n[3],size:n[4]};return n[5]>0&&(t.numNegativeInfs=n[5]),n[6]>0&&(t.numPositiveInfs=n[6]),n[7]>0&&(t.numNaNs=n[7]),n[8]>0&&(t.numNegativeFinites=n[8]),n[9]>0&&(t.numZeros=n[9]),n[10]>0&&(t.numPositiveFinites=n[10]),t}case oZ.FULL_TENSOR:if(null!==n)throw new Error("Unexpectedly received non-null debug-tensor-value array under FULL_TENSOR mode");return{};default:throw new Error(`Unrecognized tensorDebugMode: ${e}`)}}const SX="[_nghost-%COMP%] {\n    background-color: #e3e5e8;\n    border: 1px solid #c0c0c0;\n    border-radius: 4px;\n    font-family: 'Roboto Mono', monospace;\n    height: 14px;\n    line-height: 14px;\n    margin: 0 2px;\n    padding: 1px 3px;\n    width: max-content;\n  }";function DX(t,e){1&t&&wu(0,"div",4)}function EX(t,e){if(1&t&&(Ou(0,"div",7),Ou(1,"span",8),Mf(2,"NaN"),Pu(),Ou(3,"span",9),Mf(4),Pu(),Pu()),2&t){const t=Lu(2);Jc(4),xf("×",t.numNaNs,"")}}function AX(t,e){if(1&t&&(Ou(0,"div",7),Ou(1,"span",8),Mf(2,"-∞"),Pu(),Ou(3,"span",9),Mf(4),Pu(),Pu()),2&t){const t=Lu(2);Jc(4),xf("×",t.numNegativeInfs,"")}}function RX(t,e){if(1&t&&(Ou(0,"div",7),Ou(1,"span",8),Mf(2,"+∞"),Pu(),Ou(3,"span",9),Mf(4),Pu(),Pu()),2&t){const t=Lu(2);Jc(4),xf("×",t.numPositiveInfs,"")}}function TX(t,e){if(1&t&&(Ou(0,"div",7),Ou(1,"span",10),Mf(2,"-"),Pu(),Ou(3,"span",9),Mf(4),Pu(),Pu()),2&t){const t=Lu(2);Jc(4),xf("×",t.numNegativeFinites,"")}}function NX(t,e){if(1&t&&(Ou(0,"div",7),Ou(1,"span",10),Mf(2,"0"),Pu(),Ou(3,"span",9),Mf(4),Pu(),Pu()),2&t){const t=Lu(2);Jc(4),xf("×",t.numZeros,"")}}function IX(t,e){if(1&t&&(Ou(0,"div",7),Ou(1,"span",10),Mf(2,"+"),Pu(),Ou(3,"span",9),Mf(4),Pu(),Pu()),2&t){const t=Lu(2);Jc(4),xf("×",t.numPositiveFinites,"")}}function zX(t,e){if(1&t&&(Ou(0,"div",5),Wm(1,EX,5,1,"div",6),Wm(2,AX,5,1,"div",6),Wm(3,RX,5,1,"div",6),Wm(4,TX,5,1,"div",6),Wm(5,NX,5,1,"div",6),Wm(6,IX,5,1,"div",6),Pu()),2&t){const t=Lu();Jc(1),vu("ngIf",void 0!==t.numNaNs&&t.numNaNs>0),Jc(1),vu("ngIf",void 0!==t.numNegativeInfs&&t.numNegativeInfs>0),Jc(1),vu("ngIf",void 0!==t.numPositiveInfs&&t.numPositiveInfs>0),Jc(1),vu("ngIf",void 0!==t.numNegativeFinites&&t.numNegativeFinites>0),Jc(1),vu("ngIf",void 0!==t.numZeros&&t.numZeros>0),Jc(1),vu("ngIf",void 0!==t.numPositiveFinites&&t.numPositiveFinites>0)}}const HX=function(t){return["container",t]};function FX(t,e){1&t&&wu(0,"debug-tensor-dtype",5),2&t&&vu("dtype",Lu().debugTensorValue.dtype)}function LX(t,e){1&t&&wu(0,"debug-tensor-rank",6),2&t&&vu("rank",Lu().debugTensorValue.rank)}function BX(t,e){1&t&&wu(0,"debug-tensor-shape",7),2&t&&vu("shape",Lu().debugTensorValue.shape)}function VX(t,e){1&t&&wu(0,"debug-tensor-has-inf-or-nan",8),2&t&&vu("hasInfOrNaN",Lu().debugTensorValue.hasInfOrNaN)}function jX(t,e){if(1&t&&wu(0,"debug-tensor-numeric-breakdown",9),2&t){const t=Lu();Uu("size",t.debugTensorValue.size),vu("numNegativeInfs",t.debugTensorValue.numNegativeInfs)("numPositiveInfs",t.debugTensorValue.numPositiveInfs)("numNaNs",t.debugTensorValue.numNaNs)("numNegativeFinites",t.debugTensorValue.numNegativeFinites)("numZeros",t.debugTensorValue.numZeros)("numPositiveFinites",t.debugTensorValue.numPositiveFinites)}}const UX="\n  :host {\n    background-color: #e3e5e8;\n    border: 1px solid #c0c0c0;\n    border-radius: 4px;\n    font-family: 'Roboto Mono', monospace;\n    height: 14px;\n    line-height: 14px;\n    margin: 0 2px;\n    padding: 1px 3px;\n    width: max-content;\n  }\n";class WX{}WX.ɵfac=function t(e){return new(e||WX)},WX.ɵcmp=Uo({type:WX,selectors:[["debug-tensor-dtype"]],inputs:{dtype:"dtype"},decls:1,vars:1,template:function t(e,n){1&e&&Mf(0),2&e&&xf(" ",n.dtype," ")},styles:[SX]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(WX,[{type:h_,args:[{selector:"debug-tensor-dtype",template:" {{ dtype }} ",styles:[UX]}]}],null,{dtype:[{type:y_}]});class GX{}GX.ɵfac=function t(e){return new(e||GX)},GX.ɵcmp=Uo({type:GX,selectors:[["debug-tensor-rank"]],inputs:{rank:"rank"},decls:1,vars:1,template:function t(e,n){1&e&&Mf(0),2&e&&xf(" ",n.rank,"D ")},styles:[SX]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(GX,[{type:h_,args:[{selector:"debug-tensor-rank",template:" {{ rank }}D ",styles:[UX]}]}],null,{rank:[{type:y_}]});class YX{get shapeString(){return"["+this.shape.map((t=>void 0===t?"?":String(t))).join(",")+"]"}}YX.ɵfac=function t(e){return new(e||YX)},YX.ɵcmp=Uo({type:YX,selectors:[["debug-tensor-shape"]],inputs:{shape:"shape"},decls:1,vars:1,template:function t(e,n){1&e&&Mf(0),2&e&&xf(" shape:",n.shapeString," ")},styles:[SX]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(YX,[{type:h_,args:[{selector:"debug-tensor-shape",template:" shape:{{ shapeString }} ",styles:[UX]}]}],null,{shape:[{type:y_}]});class qX{get breakdownExists(){return void 0!==this.numNaNs||void 0!==this.numNegativeInfs||void 0!==this.numPositiveInfs||void 0!==this.numNegativeFinites||void 0!==this.numZeros||void 0!==this.numPositiveFinites}}qX.ɵfac=function t(e){return new(e||qX)},qX.ɵcmp=Uo({type:qX,selectors:[["debug-tensor-numeric-breakdown"]],inputs:{size:"size",numNaNs:"numNaNs",numNegativeInfs:"numNegativeInfs",numPositiveInfs:"numPositiveInfs",numNegativeFinites:"numNegativeFinites",numZeros:"numZeros",numPositiveFinites:"numPositiveFinites"},decls:7,vars:3,consts:[[1,"size"],[1,"size-value"],["class","break",4,"ngIf"],["class","breakdown",4,"ngIf"],[1,"break"],[1,"breakdown"],["class","category",4,"ngIf"],[1,"category"],[1,"category-tag","infinite"],[1,"category-count"],[1,"category-tag","finite"]],template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"span"),Mf(2,"size:"),Pu(),Ou(3,"span",1),Mf(4),Pu(),Pu(),Wm(5,DX,1,0,"div",2),Wm(6,zX,7,6,"div",3)),2&e&&(Jc(4),vf(n.size),Jc(1),vu("ngIf",n.breakdownExists),Jc(1),vu("ngIf",n.breakdownExists))},directives:[av],styles:["[_nghost-%COMP%] {\n        background-color: #e3e5e8;\n        border: 1px solid #c0c0c0;\n        border-radius: 4px;\n        font-family: 'Roboto Mono', monospace;\n        font-size: 10px;\n        margin: 0 2px;\n        padding: 1px;\n      }\n      .break[_ngcontent-%COMP%] {\n        flex-basis: 100%;\n        width: 0;\n      }\n      .size[_ngcontent-%COMP%] {\n        display: block;\n        height: 11px;\n        line-height: 11px;\n        margin: 0 3px;\n        vertical-align: middle;\n      }\n      .breakdown[_ngcontent-%COMP%] {\n        border-top: 1px solid rgba(0, 0, 0, 0.12);\n        display: flex;\n        height: 11px;\n        line-height: 11px;\n        padding: 2px;\n        vertical-align: middle;\n      }\n      .category[_ngcontent-%COMP%] {\n        margin-bottom: 2px;\n        margin-left: 4px;\n        margin-top: 2px;\n        heigth: 100%;\n        width: max-content;\n      }\n      .category-tag[_ngcontent-%COMP%] {\n        border-radius: 2px;\n        padding: 0 2px;\n      }\n      .finite[_ngcontent-%COMP%] {\n        background-color: #aaa;\n        color: #fefefe;\n      }\n      .infinite[_ngcontent-%COMP%] {\n        background-color: #e52592;\n        color: #fff;\n      }"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(qX,[{type:h_,args:[{selector:"debug-tensor-numeric-breakdown",template:'\n    <div class="size">\n      <span>size:</span>\n      <span class="size-value">{{ size }}</span>\n    </div>\n    <div *ngIf="breakdownExists" class="break"></div>\n    <div *ngIf="breakdownExists" class="breakdown">\n      <div *ngIf="numNaNs !== undefined && numNaNs > 0" class="category">\n        <span class="category-tag infinite">NaN</span>\n        <span class="category-count">×{{ numNaNs }}</span>\n      </div>\n      <div\n        *ngIf="numNegativeInfs !== undefined && numNegativeInfs > 0"\n        class="category"\n      >\n        <span class="category-tag infinite">-∞</span>\n        <span class="category-count">×{{ numNegativeInfs }}</span>\n      </div>\n      <div\n        *ngIf="numPositiveInfs !== undefined && numPositiveInfs > 0"\n        class="category"\n      >\n        <span class="category-tag infinite">+∞</span>\n        <span class="category-count">×{{ numPositiveInfs }}</span>\n      </div>\n      <div\n        *ngIf="numNegativeFinites !== undefined && numNegativeFinites > 0"\n        class="category"\n      >\n        <span class="category-tag finite">-</span>\n        <span class="category-count">×{{ numNegativeFinites }}</span>\n      </div>\n      <div *ngIf="numZeros !== undefined && numZeros > 0" class="category">\n        <span class="category-tag finite">0</span>\n        <span class="category-count">×{{ numZeros }}</span>\n      </div>\n      <div\n        *ngIf="numPositiveFinites !== undefined && numPositiveFinites > 0"\n        class="category"\n      >\n        <span class="category-tag finite">+</span>\n        <span class="category-count">×{{ numPositiveFinites }}</span>\n      </div>\n    </div>\n  ',styles:["\n      :host {\n        background-color: #e3e5e8;\n        border: 1px solid #c0c0c0;\n        border-radius: 4px;\n        font-family: 'Roboto Mono', monospace;\n        font-size: 10px;\n        margin: 0 2px;\n        padding: 1px;\n      }\n      .break {\n        flex-basis: 100%;\n        width: 0;\n      }\n      .size {\n        display: block;\n        height: 11px;\n        line-height: 11px;\n        margin: 0 3px;\n        vertical-align: middle;\n      }\n      .breakdown {\n        border-top: 1px solid rgba(0, 0, 0, 0.12);\n        display: flex;\n        height: 11px;\n        line-height: 11px;\n        padding: 2px;\n        vertical-align: middle;\n      }\n      .category {\n        margin-bottom: 2px;\n        margin-left: 4px;\n        margin-top: 2px;\n        heigth: 100%;\n        width: max-content;\n      }\n      .category-tag {\n        border-radius: 2px;\n        padding: 0 2px;\n      }\n      .finite {\n        background-color: #aaa;\n        color: #fefefe;\n      }\n      .infinite {\n        background-color: #e52592;\n        color: #fff;\n      }\n    "]}]}],null,{size:[{type:y_}],numNaNs:[{type:y_}],numNegativeInfs:[{type:y_}],numPositiveInfs:[{type:y_}],numNegativeFinites:[{type:y_}],numZeros:[{type:y_}],numPositiveFinites:[{type:y_}]});class ZX{get infoString(){return this.hasInfOrNaN?"Has ∞/NaN":"No ∞/NaN"}}ZX.ɵfac=function t(e){return new(e||ZX)},ZX.ɵcmp=Uo({type:ZX,selectors:[["debug-tensor-has-inf-or-nan"]],inputs:{hasInfOrNaN:"hasInfOrNaN"},decls:2,vars:4,consts:[[3,"ngClass"]],template:function t(e,n){1&e&&(Ou(0,"div",0),Mf(1),Pu()),2&e&&(vu("ngClass",gb(2,HX,n.hasInfOrNaN?"has-inf-or-nan":"")),Jc(1),xf(" ",n.infoString," "))},directives:[tv],styles:[".container[_ngcontent-%COMP%] {\n        background-color: #e3e5e8;\n        border: 1px solid #c0c0c0;\n        border-radius: 4px;\n        color: #666666;\n        font-family: 'Roboto Mono', monospace;\n        height: 14px;\n        line-height: 14px;\n        margin: 0 2px;\n        padding: 1px 3px;\n        width: max-content;\n      }\n      .has-inf-or-nan[_ngcontent-%COMP%] {\n        background-color: #e52592;\n        color: #fff;\n      }"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(ZX,[{type:h_,args:[{selector:"debug-tensor-has-inf-or-nan",template:"\n    <div [ngClass]=\"['container', hasInfOrNaN ? 'has-inf-or-nan' : '']\">\n      {{ infoString }}\n    </div>\n  ",styles:["\n      .container {\n        background-color: #e3e5e8;\n        border: 1px solid #c0c0c0;\n        border-radius: 4px;\n        color: #666666;\n        font-family: 'Roboto Mono', monospace;\n        height: 14px;\n        line-height: 14px;\n        margin: 0 2px;\n        padding: 1px 3px;\n        width: max-content;\n      }\n      .has-inf-or-nan {\n        background-color: #e52592;\n        color: #fff;\n      }\n    "]}]}],null,{hasInfOrNaN:[{type:y_}]});class XX{}XX.ɵfac=function t(e){return new(e||XX)},XX.ɵcmp=Uo({type:XX,selectors:[["debug-tensor-value"]],inputs:{debugTensorValue:"debugTensorValue"},decls:5,vars:5,consts:[[3,"dtype",4,"ngIf"],[3,"rank",4,"ngIf"],[3,"shape",4,"ngIf"],[3,"hasInfOrNaN",4,"ngIf"],[3,"size","numNegativeInfs","numPositiveInfs","numNaNs","numNegativeFinites","numZeros","numPositiveFinites",4,"ngIf"],[3,"dtype"],[3,"rank"],[3,"shape"],[3,"hasInfOrNaN"],[3,"size","numNegativeInfs","numPositiveInfs","numNaNs","numNegativeFinites","numZeros","numPositiveFinites"]],template:function t(e,n){1&e&&(Wm(0,FX,1,1,"debug-tensor-dtype",0),Wm(1,LX,1,1,"debug-tensor-rank",1),Wm(2,BX,1,1,"debug-tensor-shape",2),Wm(3,VX,1,1,"debug-tensor-has-inf-or-nan",3),Wm(4,jX,1,7,"debug-tensor-numeric-breakdown",4)),2&e&&(vu("ngIf",void 0!==n.debugTensorValue.dtype),Jc(1),vu("ngIf",void 0!==n.debugTensorValue.rank),Jc(1),vu("ngIf",void 0!==n.debugTensorValue.shape),Jc(1),vu("ngIf",void 0!==n.debugTensorValue.hasInfOrNaN),Jc(1),vu("ngIf",void 0!==n.debugTensorValue.size))},directives:[av,WX,GX,YX,ZX,qX],styles:["[_nghost-%COMP%] {\n        align-items: flex-start;\n        display: flex;\n        flex-wrap: nowrap;\n        overflow: hidden;\n        vertical-align: top;\n      }\n      debug-tensor-numeric-breakdown[_ngcontent-%COMP%] {\n        display: inline-block;\n      }"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(XX,[{type:h_,args:[{selector:"debug-tensor-value",template:'\n    <debug-tensor-dtype\n      *ngIf="debugTensorValue.dtype !== undefined"\n      [dtype]="debugTensorValue.dtype"\n    >\n    </debug-tensor-dtype>\n    <debug-tensor-rank\n      *ngIf="debugTensorValue.rank !== undefined"\n      [rank]="debugTensorValue.rank"\n    >\n    </debug-tensor-rank>\n    <debug-tensor-shape\n      *ngIf="debugTensorValue.shape !== undefined"\n      [shape]="debugTensorValue.shape"\n    >\n    </debug-tensor-shape>\n    <debug-tensor-has-inf-or-nan\n      *ngIf="debugTensorValue.hasInfOrNaN !== undefined"\n      [hasInfOrNaN]="debugTensorValue.hasInfOrNaN"\n    >\n    </debug-tensor-has-inf-or-nan>\n    <debug-tensor-numeric-breakdown\n      *ngIf="debugTensorValue.size !== undefined"\n      size="{{ debugTensorValue.size }}"\n      [numNegativeInfs]="debugTensorValue.numNegativeInfs"\n      [numPositiveInfs]="debugTensorValue.numPositiveInfs"\n      [numNaNs]="debugTensorValue.numNaNs"\n      [numNegativeFinites]="debugTensorValue.numNegativeFinites"\n      [numZeros]="debugTensorValue.numZeros"\n      [numPositiveFinites]="debugTensorValue.numPositiveFinites"\n    >\n    </debug-tensor-numeric-breakdown>\n  ',styles:["\n      :host {\n        align-items: flex-start;\n        display: flex;\n        flex-wrap: nowrap;\n        overflow: hidden;\n        vertical-align: top;\n      }\n      debug-tensor-numeric-breakdown {\n        display: inline-block;\n      }\n    "]}]}],null,{debugTensorValue:[{type:y_}]});const KX=function(t,e){return{tensorDebugMode:t,array:e}};function JX(t,e){if(1&t&&(Ou(0,"div",12),Ou(1,"div",13),Mf(2),Pu(),Ou(3,"div",14),wu(4,"debug-tensor-value",15),Pu(),Pu()),2&t){const t=e.$implicit,n=e.index,o=Lu(3);Jc(2),xf("Output slot ",n,":"),Jc(2),vu("debugTensorValue",o.parseDebugTensorValue(hb(2,KX,o.tensorDebugMode,t)))}}function QX(t,e){if(1&t&&(Ou(0,"div",10),Wm(1,JX,5,5,"div",11),Pu()),2&t){const t=Lu(2);Jc(1),vu("ngForOf",t.debugTensorValues)}}function $X(t,e){if(1&t&&(Ou(0,"div"),Ou(1,"div"),Ou(2,"div",3),Ou(3,"span",4),Mf(4," Op: "),Pu(),Ou(5,"span",5),Mf(6),Pu(),Pu(),Ou(7,"div",3),Ou(8,"span",4),Mf(9," # of input tensors: "),Pu(),Ou(10,"span",6),Mf(11),Pu(),Pu(),Ou(12,"div",3),Ou(13,"span",4),Mf(14," # of output tensors: "),Pu(),Ou(15,"span",7),Mf(16),Pu(),Ou(17,"span",8),Mf(18),Pu(),Pu(),Wm(19,QX,2,1,"div",9),Pu(),Pu()),2&t){const t=Lu();Jc(6),xf(" ",t.focusedExecutionData.op_type," "),Jc(5),xf(" ",null==t.focusedExecutionData.input_tensor_ids?0:t.focusedExecutionData.input_tensor_ids.length," "),Jc(5),xf(" ",null==t.focusedExecutionData.output_tensor_ids?0:t.focusedExecutionData.output_tensor_ids.length," "),Jc(2),xf(" (debug mode: ",t.TensorDebugMode[t.tensorDebugMode],") "),Jc(1),vu("ngIf",t.hasDebugTensorValues)}}function tK(t,e){}class eK{constructor(){this.tensorDebugMode=oZ.UNSPECIFIED,this.hasDebugTensorValues=!1,this.debugTensorValues=null,this.debugTensorDtypes=null,this.TensorDebugMode=oZ,this.parseDebugTensorValue=kX}}eK.ɵfac=function t(e){return new(e||eK)},eK.ɵcmp=Uo({type:eK,selectors:[["execution-data-component"]],inputs:{focusedExecutionIndex:"focusedExecutionIndex",focusedExecutionData:"focusedExecutionData",tensorDebugMode:"tensorDebugMode",hasDebugTensorValues:"hasDebugTensorValues",debugTensorValues:"debugTensorValues",debugTensorDtypes:"debugTensorDtypes"},decls:7,vars:3,consts:[[1,"focus-execution-container"],[4,"ngIf","ngIfElse"],["loading_section",""],[1,"execution-data-field"],[1,"execution-data-key"],[1,"execution-data-value","op-type"],[1,"execution-data-value","input-tensors"],[1,"execution-data-value","output-tensors"],[1,"execution-data-value"],["class","output-slots",4,"ngIf"],[1,"output-slots"],["class","output-slot-container",4,"ngFor","ngForOf"],[1,"output-slot-container"],[1,"output-slot-number"],[1,"output-slot-debug-tensor-value"],[3,"debugTensorValue"]],template:function t(e,n){if(1&e&&(Ou(0,"div",0),Ou(1,"div"),Ou(2,"span"),Mf(3),Pu(),Pu(),Wm(4,$X,20,5,"div",1),Wm(5,tK,0,0,"ng-template",null,2,Kb),Pu()),2&e){const t=Gm(6);Jc(3),xf(" Python Execution #",n.focusedExecutionIndex," "),Jc(1),vu("ngIf",null!==n.focusedExecutionData)("ngIfElse",t)}},directives:[av,ov,XX],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.debug-tensor-values-table[_ngcontent-%COMP%]{width:100%}.debug-tensor-values-table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{border-top:1px solid #000;text-align:left}.debug-tensor-values-table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{text-align:left}.execution-data-field[_ngcontent-%COMP%]{white-space:nowrap}.execution-data-key[_ngcontent-%COMP%]{display:inline-block;max-width:120px;text-align:right;width:120px}.execution-data-value[_ngcontent-%COMP%]{display:inline-block;margin-left:10px}.focus-execution-container[_ngcontent-%COMP%]{background-color:#ffcc80;border-radius:4px;font-size:12px;height:120px;padding:5px;width:360px}body.dark-mode[_nghost-%COMP%]   .focus-execution-container[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .focus-execution-container[_ngcontent-%COMP%]{background-color:#e65100}.output-slots[_ngcontent-%COMP%]{height:60px;overflow-x:auto;overflow-y:auto}.output-slot-container[_ngcontent-%COMP%]{border-top:1px solid #ebebeb;margin-top:5px;padding:2px 0;vertical-align:top}body.dark-mode[_nghost-%COMP%]   .output-slot-container[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .output-slot-container[_ngcontent-%COMP%]{border-top:1px solid #555}.output-slot-number[_ngcontent-%COMP%]{display:block;font-family:"Roboto Mono",monospace}.output-slot-debug-tensor-value[_ngcontent-%COMP%]{display:block;margin:3px 0 3px 30px}.output-tensors[_ngcontent-%COMP%]{margin-top:5px}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(eK,[{type:h_,args:[{selector:"execution-data-component",templateUrl:"./execution_data_component.ng.html",styleUrls:["./execution_data_component.css"]}]}],null,{focusedExecutionIndex:[{type:y_}],focusedExecutionData:[{type:y_}],tensorDebugMode:[{type:y_}],hasDebugTensorValues:[{type:y_}],debugTensorValues:[{type:y_}],debugTensorDtypes:[{type:y_}]});const nK="Unknown dtype";class oK{constructor(t){this.store=t,this.focusedExecutionData$=this.store.pipe(Rk(oX)),this.tensorDebugMode$=this.store.pipe(Rk(zk(oX,(t=>null===t?oZ.UNSPECIFIED:t.tensor_debug_mode)))),this.hasDebugTensorValues$=this.store.pipe(Rk(zk(oX,(t=>{if(null===t||null===t.debug_tensor_values)return!1;for(const e of t.debug_tensor_values)if(null!==e&&e.length>0)return!0;return!1})))),this.debugTensorValues$=this.store.pipe(Rk(zk(oX,(t=>null===t?null:t.debug_tensor_values)))),this.debugTensorDtypes$=this.store.pipe(Rk(zk(oX,(t=>{if(null===t||null===t.debug_tensor_values)return null;if(t.tensor_debug_mode!==oZ.FULL_HEALTH&&t.tensor_debug_mode!==oZ.SHAPE)return null;const e=[];for(const n of t.debug_tensor_values)if(null===n)e.push(nK);else{const o=String(t.tensor_debug_mode===oZ.FULL_HEALTH?n[2]:n[1]);e.push(wX[o]||nK)}return e}))))}}function iK(t,e){if(1&t){const t=Eu();Ou(0,"mat-slider",11),Nu("input",(function e(n){return ra(t),Lu(2).onSliderChange.emit(n.value)})),Pu()}if(2&t){const t=Lu(2);vu("min",0)("max",t.scrollBeginIndexUpperLimit)("value",t.scrollBeginIndex)}}function aK(t,e){if(1&t){const t=Eu();Ou(0,"div",6),Ou(1,"button",7),Nu("click",(function e(){return ra(t),Lu().onNavigateLeft.emit()})),Mf(2," < "),Pu(),Ou(3,"div",8),Mf(4),Pu(),Ou(5,"button",9),Nu("click",(function e(){return ra(t),Lu().onNavigateRight.emit()})),Mf(6," > "),Pu(),Wm(7,iK,1,3,"mat-slider",10),Pu()}if(2&t){const t=Lu();Jc(4),Pf(" ",t.scrollBeginIndex," ~ ",t.scrollBeginIndex+t.displayCount-1," of ",t.numExecutions," "),Jc(3),vu("ngIf",t.scrollBeginIndexUpperLimit>0)}}oK.ɵfac=function t(e){return new(e||oK)(Mu(Ek))},oK.ɵcmp=Uo({type:oK,selectors:[["tf-debugger-v2-execution-data"]],inputs:{focusedExecutionIndex:"focusedExecutionIndex"},decls:6,vars:16,consts:[[3,"focusedExecutionIndex","focusedExecutionData","tensorDebugMode","hasDebugTensorValues","debugTensorValues","debugTensorDtypes"]],template:function t(e,n){1&e&&(wu(0,"execution-data-component",0),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async")),2&e&&vu("focusedExecutionIndex",n.focusedExecutionIndex)("focusedExecutionData",Pb(1,6,n.focusedExecutionData$))("tensorDebugMode",Pb(2,8,n.tensorDebugMode$))("hasDebugTensorValues",Pb(3,10,n.hasDebugTensorValues$))("debugTensorValues",Pb(4,12,n.debugTensorValues$))("debugTensorDtypes",Pb(5,14,n.debugTensorDtypes$))},directives:[eK],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(oK,[{type:h_,args:[{selector:"tf-debugger-v2-execution-data",template:'\n    <execution-data-component\n      [focusedExecutionIndex]="focusedExecutionIndex"\n      [focusedExecutionData]="focusedExecutionData$ | async"\n      [tensorDebugMode]="tensorDebugMode$ | async"\n      [hasDebugTensorValues]="hasDebugTensorValues$ | async"\n      [debugTensorValues]="debugTensorValues$ | async"\n      [debugTensorDtypes]="debugTensorDtypes$ | async"\n    ></execution-data-component>\n  '}]}],(function(){return[{type:Ek}]}),{focusedExecutionIndex:[{type:y_}]});const rK=function(t,e,n){return[t,e,n]};function sK(t,e){if(1&t){const t=Eu();Ou(0,"div",14),Nu("click",(function n(){ra(t);const o=e.index;return Lu(2).onExecutionDigestClicked.emit(o)})),Ou(1,"div",15),Mf(2),Pu(),Pu()}if(2&t){const t=e.$implicit,n=e.index,o=Lu(2);Jc(1),Uu("title",t.op_type),vu("ngClass",bb(3,rK,t.is_graph?"func-graph-execution":"",n===o.focusedExecutionDisplayIndex?"focused":"",o.displayFocusedAlertTypes[n]||"")),Jc(1),xf(" ",t.short_op_type," ")}}function lK(t,e){if(1&t&&(Ou(0,"div",12),Wm(1,sK,3,7,"div",13),Pu()),2&t){const t=Lu();Jc(1),vu("ngForOf",t.displayExecutionDigests)}}function cK(t,e){if(1&t&&(ku(0),wu(1,"tf-debugger-v2-execution-data",16),Su()),2&t){const t=Lu();Jc(1),vu("focusedExecutionIndex",t.focusedExecutionIndex)}}class dK{constructor(){this.activeRunId=null,this.loadingNumExecutions=!1,this.numExecutions=0,this.scrollBeginIndex=0,this.scrollBeginIndexUpperLimit=0,this.pageSize=0,this.displayCount=0,this.displayExecutionDigests=[],this.displayFocusedAlertTypes=[],this.focusedExecutionIndex=null,this.focusedExecutionDisplayIndex=null,this.focusedExecutionData=null,this.onNavigateLeft=new Ab,this.onNavigateRight=new Ab,this.onExecutionDigestClicked=new Ab,this.onSliderChange=new Ab}}dK.ɵfac=function t(e){return new(e||dK)},dK.ɵcmp=Uo({type:dK,selectors:[["timeline-component"]],inputs:{activeRunId:"activeRunId",loadingNumExecutions:"loadingNumExecutions",numExecutions:"numExecutions",scrollBeginIndex:"scrollBeginIndex",scrollBeginIndexUpperLimit:"scrollBeginIndexUpperLimit",pageSize:"pageSize",displayCount:"displayCount",displayExecutionDigests:"displayExecutionDigests",displayFocusedAlertTypes:"displayFocusedAlertTypes",focusedExecutionIndex:"focusedExecutionIndex",focusedExecutionDisplayIndex:"focusedExecutionDisplayIndex",focusedExecutionData:"focusedExecutionData"},outputs:{onNavigateLeft:"onNavigateLeft",onNavigateRight:"onNavigateRight",onExecutionDigestClicked:"onExecutionDigestClicked",onSliderChange:"onSliderChange"},decls:9,vars:4,consts:[[1,"timeline-title"],[1,"execution-count"],[1,"top-level-executions"],["class","navigation-section",4,"ngIf"],["class","execution-timeline",4,"ngIf"],[4,"ngIf"],[1,"navigation-section"],["mat-button","",1,"navigation-button-left",3,"click"],[1,"navigation-position-info"],["mat-button","",1,"navigation-button-right",3,"click"],["class","timeline-slider","step","1",3,"min","max","value","input",4,"ngIf"],["step","1",1,"timeline-slider",3,"min","max","value","input"],[1,"execution-timeline"],[3,"click",4,"ngFor","ngForOf"],[3,"click"],[1,"execution-digest",3,"ngClass","title"],[3,"focusedExecutionIndex"]],template:function t(e,n){1&e&&(Ou(0,"div"),Ou(1,"div",0),Mf(2," Python Execution Timeline "),Ou(3,"span",1),Mf(4),Pu(),Pu(),Ou(5,"div",2),Wm(6,aK,8,4,"div",3),Wm(7,lK,2,1,"div",4),Wm(8,cK,2,1,"ng-container",5),Pu(),Pu()),2&e&&(Jc(4),xf(" (",n.numExecutions,") "),Jc(2),vu("ngIf",n.numExecutions),Jc(1),vu("ngIf",n.numExecutions),Jc(1),vu("ngIf",null!==n.activeRunId&&null!==n.focusedExecutionIndex))},directives:[av,NH,vX,ov,tv,oK],styles:[".execution-digest[_ngcontent-%COMP%] {\n  background-color: #e3e5e8;\n  border: 1px solid #c0c0c0;\n  color: #425066;\n  display: inline-block;\n  font-size: 10px;\n  height: 15px;\n  padding: 1px;\n  text-align: center;\n  vertical-align: middle;\n  width: 12px;\n}\n\n.execution-digest.func-graph-execution[_ngcontent-%COMP%] {\n  background-color: #c7dbf5;\n  color: #4e5664;\n  text-decoration: underline;\n}\n\n.execution-digest.focused[_ngcontent-%COMP%] {\n  background-color: #ffd4b3;\n  border: 1px solid #000;\n  font-weight: bold;\n}\n\n.execution-digest.InfNanAlert[_ngcontent-%COMP%] {\n  background-color: #e52592;\n  color: #fff;\n}\n\n\n.execution-digest[_ngcontent-%COMP%]:hover {\n  border: 1px solid #000;\n  font-weight: bold;\n}\n\n.execution-timeline[_ngcontent-%COMP%] {\n  display: flex;\n  overflow-x: hidden;\n  white-space: nowrap;\n  width: 100%;\n  margin-top: 5px;\n  margin-bottom: 5px;\n}\n\n.timeline-slider[_ngcontent-%COMP%] {\n  display: inline-block;\n  height: 48px;\n  left: 340px; \n  padding: 0;\n  position: absolute;\n  right: 40px;\n}\n\n  .timeline-slider .mat-slider-thumb {\n  border-radius: 5px;\n  right: -40px;\n  width: 80px;\n}\n\n\n.navigation-position-info[_ngcontent-%COMP%] {\n  display: inline-flex;\n  font-size: 14px;\n  line-height: normal;\n  max-width: 200px;\n  padding-left: 10px;\n  padding-right: 10px;\n  text-align: center;\n  vertical-align: middle;\n}\n\n.navigation-section[_ngcontent-%COMP%] {\n  height: 48px;\n  line-height: 48px;\n  position: relative;\n  vertical-align: middle;\n  width: 100%;\n}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(dK,[{type:h_,args:[{selector:"timeline-component",templateUrl:"./timeline_component.ng.html",styleUrls:["./timeline_component.css"],changeDetection:xo.OnPush}]}],null,{activeRunId:[{type:y_}],loadingNumExecutions:[{type:y_}],numExecutions:[{type:y_}],scrollBeginIndex:[{type:y_}],scrollBeginIndexUpperLimit:[{type:y_}],pageSize:[{type:y_}],displayCount:[{type:y_}],displayExecutionDigests:[{type:y_}],displayFocusedAlertTypes:[{type:y_}],focusedExecutionIndex:[{type:y_}],focusedExecutionDisplayIndex:[{type:y_}],focusedExecutionData:[{type:y_}],onNavigateLeft:[{type:__}],onNavigateRight:[{type:__}],onExecutionDigestClicked:[{type:__}],onSliderChange:[{type:__}]});const pK=["__forward_","__backward_","__inference_"];class mK{constructor(t){this.store=t,this.activeRunId$=this.store.pipe(Rk(yZ)),this.loadingNumExecutions$=this.store.pipe(Rk(zk(SZ,(t=>t.state==BE.LOADING)))),this.scrollBeginIndex$=this.store.pipe(Rk(AZ)),this.scrollBeginIndexUpperLimit$=this.store.pipe(Rk(zk(EZ,TZ,((t,e)=>Math.max(0,t-e))))),this.pageSize$=this.store.pipe(Rk(RZ)),this.displayCount$=this.store.pipe(Rk(TZ)),this.displayExecutionDigests$=this.store.pipe(Rk(zk(NZ,(t=>t.map((t=>(function e(t,n=1){if(!t)return{op_type:"(N/A)",short_op_type:"..",is_graph:!1};const o=pK.filter((e=>t.op_type.startsWith(e)));if(o.length){const e=t.op_type.slice(o[0].length);return{op_type:t.op_type,short_op_type:e.slice(0,n),is_graph:!0}}return{op_type:t.op_type,short_op_type:t.op_type.slice(0,n),is_graph:!1}})(t))))))),this.displayFocusedAlertTypes$=this.store.pipe(Rk(KZ)),this.focusedExecutionIndex$=this.store.pipe(Rk(QZ)),this.focusedExecutionDisplayIndex$=this.store.pipe(Rk($Z)),this.numExecutions$=this.store.pipe(Rk(EZ))}onNavigateLeft(){this.store.dispatch(zq())}onNavigateRight(){this.store.dispatch(Hq())}onExecutionDigestClicked(t){this.store.dispatch(Lq({displayIndex:t}))}onSliderChange(t){this.store.dispatch(Fq({index:t}))}}function uK(t,e){1&t&&(Ou(0,"span"),Mf(1," Output "),Pu())}function fK(t,e){1&t&&(Ou(0,"span"),Mf(1," Input "),Pu())}function gK(t,e){if(1&t&&(Ou(0,"div",6),Ou(1,"span",7),Wm(2,uK,2,0,"span",8),Wm(3,fK,2,0,"span",8),Pu(),Mf(4),Pu()),2&t){const t=Lu();Jc(1),vu("ngSwitch",t.kind),Jc(1),vu("ngSwitchCase","input"),Jc(1),vu("ngSwitchCase","consumer"),Jc(1),xf(" slot: ",t.slot," ")}}function hK(t,e){if(1&t&&(Ou(0,"div",9),Mf(1),Pu()),2&t){const t=Lu();Jc(1),xf(" ",t.opData.op_type," ")}}function bK(t,e){1&t&&(Ou(0,"span",10),Mf(1," (Op info unavailable.) "),Pu())}mK.ɵfac=function t(e){return new(e||mK)(Mu(Ek))},mK.ɵcmp=Uo({type:mK,selectors:[["tf-debugger-v2-timeline"]],decls:12,vars:33,consts:[[3,"activeRunId","loadingNumExecutions","numExecutions","scrollBeginIndex","scrollBeginIndexUpperLimit","pageSize","displayCount","displayExecutionDigests","displayFocusedAlertTypes","focusedExecutionIndex","focusedExecutionDisplayIndex","onNavigateLeft","onNavigateRight","onExecutionDigestClicked","onSliderChange"]],template:function t(e,n){1&e&&(Ou(0,"timeline-component",0),Nu("onNavigateLeft",(function t(){return n.onNavigateLeft()}))("onNavigateRight",(function t(){return n.onNavigateRight()}))("onExecutionDigestClicked",(function t(e){return n.onExecutionDigestClicked(e)}))("onSliderChange",(function t(e){return n.onSliderChange(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Ob(7,"async"),Ob(8,"async"),Ob(9,"async"),Ob(10,"async"),Ob(11,"async"),Pu()),2&e&&vu("activeRunId",Pb(1,11,n.activeRunId$))("loadingNumExecutions",Pb(2,13,n.loadingNumExecutions$))("numExecutions",Pb(3,15,n.numExecutions$))("scrollBeginIndex",Pb(4,17,n.scrollBeginIndex$))("scrollBeginIndexUpperLimit",Pb(5,19,n.scrollBeginIndexUpperLimit$))("pageSize",Pb(6,21,n.pageSize$))("displayCount",Pb(7,23,n.displayCount$))("displayExecutionDigests",Pb(8,25,n.displayExecutionDigests$))("displayFocusedAlertTypes",Pb(9,27,n.displayFocusedAlertTypes$))("focusedExecutionIndex",Pb(10,29,n.focusedExecutionIndex$))("focusedExecutionDisplayIndex",Pb(11,31,n.focusedExecutionDisplayIndex$))},directives:[dK],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(mK,[{type:h_,args:[{selector:"tf-debugger-v2-timeline",template:'\n    <timeline-component\n      [activeRunId]="activeRunId$ | async"\n      [loadingNumExecutions]="loadingNumExecutions$ | async"\n      [numExecutions]="numExecutions$ | async"\n      [scrollBeginIndex]="scrollBeginIndex$ | async"\n      [scrollBeginIndexUpperLimit]="scrollBeginIndexUpperLimit$ | async"\n      [pageSize]="pageSize$ | async"\n      [displayCount]="displayCount$ | async"\n      [displayExecutionDigests]="displayExecutionDigests$ | async"\n      [displayFocusedAlertTypes]="displayFocusedAlertTypes$ | async"\n      [focusedExecutionIndex]="focusedExecutionIndex$ | async"\n      [focusedExecutionDisplayIndex]="focusedExecutionDisplayIndex$ | async"\n      (onNavigateLeft)="onNavigateLeft()"\n      (onNavigateRight)="onNavigateRight()"\n      (onExecutionDigestClicked)="onExecutionDigestClicked($event)"\n      (onSliderChange)="onSliderChange($event)"\n    ></timeline-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);const yK=function(t){return[t]};class _K{constructor(){this.onOpNameClick=new Ab}}function CK(t,e){if(1&t){const t=Eu();Ou(0,"div",13),Ou(1,"div",14),Mf(2),Pu(),Ou(3,"graph-op",15),Nu("onOpNameClick",(function e(n){ra(t);const o=Lu(3);return o.onGraphOpNavigate.emit({op_name:n.op_name,graph_id:o.graphId})})),Pu(),Pu()}if(2&t){const t=e.$implicit,n=e.index;Jc(2),xf("Input slot ",n,":"),Jc(1),vu("kind","input")("opName",t.op_name)("slot",t.output_slot)("opData",t.data)}}function MK(t,e){if(1&t&&(Ou(0,"div",11),Ou(1,"div"),Wm(2,CK,4,5,"div",12),Pu(),Pu()),2&t){const t=Lu(2);Jc(2),vu("ngForOf",t.inputOps)}}function vK(t,e){1&t&&(Ou(0,"div",16),Mf(1," (This op has no input tensor.) "),Pu())}function xK(t,e){if(1&t){const t=Eu();Ou(0,"div",23),Ou(1,"graph-op",15),Nu("onOpNameClick",(function e(n){ra(t);const o=Lu(4);return o.onGraphOpNavigate.emit({op_name:n.op_name,graph_id:o.graphId})})),Pu(),Pu()}if(2&t){const t=e.$implicit;Jc(1),vu("kind","consumer")("opName",t.op_name)("slot",t.input_slot)("opData",t.data)}}function OK(t,e){if(1&t&&(Ou(0,"div",19),Ou(1,"div",20),Mf(2),Ou(3,"span"),qg(4,21),Pu(),Mf(5,") "),Pu(),Wm(6,xK,2,4,"div",22),Pu()),2&t){const t=e.$implicit,n=e.index;Jc(2),Of(" Output slot ",n,": (",t.length," "),Jc(2),Zg(t.length),Xg(4),Jc(2),vu("ngForOf",t)}}function PK(t,e){if(1&t&&(Ou(0,"div",17),Ou(1,"div"),Wm(2,OK,7,4,"div",18),Pu(),Pu()),2&t){const t=Lu(2);Jc(2),vu("ngForOf",t.consumerOps)}}function wK(t,e){if(1&t&&(Ou(0,"div",24),Mf(1),Ou(2,"span"),qg(3,25),Pu(),Mf(4," and no consumer.) "),Pu()),2&t){const t=Lu(2);Jc(1),xf(" (This op has ",t.opInfo.consumers.length," output "),Jc(2),Zg(t.opInfo.consumers.length),Xg(3)}}function kK(t,e){if(1&t){const t=Eu();Ou(0,"div"),Wm(1,MK,3,1,"div",4),Wm(2,vK,2,0,"ng-template",null,5,Kb),Ou(4,"div",6),Ou(5,"div",7),Mf(6,"Op:"),Pu(),Ou(7,"graph-op",8),Nu("onOpNameClick",(function e(n){ra(t);const o=Lu();return o.onGraphOpNavigate.emit({op_name:n.op_name,graph_id:o.graphId})})),Pu(),Pu(),Wm(8,PK,3,1,"div",9),Wm(9,wK,5,2,"ng-template",null,10,Kb),Pu()}if(2&t){const t=Gm(3),e=Gm(10),n=Lu();Jc(1),vu("ngIf",n.inputOps.length>0)("ngIfElse",t),Jc(6),vu("kind","self")("opName",n.opInfo.op_name)("opData",n.opInfo),Jc(1),vu("ngIf",n.totalNumConsumers>0)("ngIfElse",e)}}function SK(t,e){1&t&&(Ou(0,"span",26),Mf(1," (Op info unavailable.) "),Pu())}function DK(t,e){1&t&&(Ou(0,"div",27),Mf(1," No graph op selected. Click a tensor name in the Graph Executions table to view the neighborhood of the tensor's op in its graph. "),Pu())}_K.ɵfac=function t(e){return new(e||_K)},_K.ɵcmp=Uo({type:_K,selectors:[["graph-op"]],inputs:{kind:"kind",opName:"opName",slot:"slot",opData:"opData"},outputs:{onOpNameClick:"onOpNameClick"},decls:9,vars:7,consts:[[1,"op-container"],[1,"input-tensor-name"],[1,"op-name",3,"ngClass","click"],["class","slot",4,"ngIf"],["class","op-type",4,"ngIf","ngIfElse"],["opInfoMissing",""],[1,"slot"],[3,"ngSwitch"],[4,"ngSwitchCase"],[1,"op-type"],[1,"op-info-missing"]],template:function t(e,n){if(1&e&&(Ou(0,"button",0),Ou(1,"div",1),Ou(2,"button",2),Nu("click",(function t(){return n.onOpNameClick.emit({op_name:n.opName})})),Ou(3,"span"),Mf(4),Pu(),Pu(),Wm(5,gK,5,4,"div",3),Pu(),Wm(6,hK,2,1,"div",4),Wm(7,bK,2,0,"ng-template",null,5,Kb),Pu()),2&e){const t=Gm(8);Jc(2),vu("ngClass",gb(5,yK,"self"===n.kind?"self-op-name":"")),Jc(2),vf(n.opName),Jc(1),vu("ngIf","self"!==n.kind),Jc(1),vu("ngIf",void 0!==n.opData)("ngIfElse",t)}},directives:[tv,av,cv,dv],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.op-container[_ngcontent-%COMP%], .op-name[_ngcontent-%COMP%]{color:inherit;background-color:inherit}.op-container[_ngcontent-%COMP%]{border:2px solid #ebebeb;border-radius:4px;box-shadow:1px 3px #eee;cursor:pointer;margin:0 5px 0 0;padding:2px 6px;text-align:right;width:200px}body.dark-mode[_nghost-%COMP%]   .op-container[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .op-container[_ngcontent-%COMP%]{border:2px solid #555}body.dark-mode[_nghost-%COMP%]   .op-container[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .op-container[_ngcontent-%COMP%]{box-shadow:1px 3px #757575}.op-container[_ngcontent-%COMP%]:focus{outline:0}.op-container[_ngcontent-%COMP%]:hover{border:2px solid #ffd3b2}.op-info-missing[_ngcontent-%COMP%]{color:gray}.op-name[_ngcontent-%COMP%]{border:none;cursor:pointer;display:inline-block;overflow-wrap:anywhere;padding:0;text-align:right;text-decoration:underline;white-space:pre-wrap}.op-name[_ngcontent-%COMP%]:focus{outline:0}.op-type[_ngcontent-%COMP%]{background-color:#eceff1;border:1px solid #ebebeb;border-radius:4px;font-family:"Roboto Mono",monospace;font-size:10px;height:14px;line-height:14px;padding:1px 3px;width:max-content;display:inline-block;margin-top:3px}body.dark-mode[_nghost-%COMP%]   .op-type[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .op-type[_ngcontent-%COMP%]{border:1px solid #555}body.dark-mode[_nghost-%COMP%]   .op-type[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .op-type[_ngcontent-%COMP%]{background-color:#455a64}.self-op-name[_ngcontent-%COMP%]{font-weight:bold;text-decoration:none}.slot[_ngcontent-%COMP%]{color:#616161}body.dark-mode[_nghost-%COMP%]   .slot[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .slot[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(_K,[{type:h_,args:[{selector:"graph-op",templateUrl:"graph_op_component.ng.html",styleUrls:["./graph_op_component.css"]}]}],null,{kind:[{type:y_}],opName:[{type:y_}],slot:[{type:y_}],opData:[{type:y_}],onOpNameClick:[{type:__}]});class EK{constructor(){this.onGraphOpNavigate=new Ab}get graphId(){return this.opInfo.graph_ids[this.opInfo.graph_ids.length-1]}get totalNumConsumers(){return this.consumerOps.reduce(((t,e)=>t+e.length),0)}}EK.ɵfac=function t(e){return new(e||EK)},EK.ɵcmp=Uo({type:EK,selectors:[["graph-component"]],inputs:{opInfo:"opInfo",inputOps:"inputOps",consumerOps:"consumerOps"},outputs:{onGraphOpNavigate:"onGraphOpNavigate"},decls:9,vars:2,consts:function(){let t,e,n,o;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("{VAR_PLURAL, plural, =0 {consumer} =1 {consumer} other {consumers}}"):$localize`:␟fe55f9b193ea20aae5b5635e68d9386503847746␟4955133740841299851:{VAR_PLURAL, plural, =0 {consumer} =1 {consumer} other {consumers}}`,t=Kg(t,{VAR_PLURAL:"�0�"}),e="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg(" {$icu}",{icu:t}):$localize`:␟baa460e2f2b857e26292b246fc18ae0ea9b5e537␟5556340343850165516: ${t}:ICU:`,n="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("{VAR_PLURAL, plural, =0 {tensor} =1 {tensor} other {tensors}}"):$localize`:␟6aa75f627e0dc16150ef448464e0c857aaa0dc18␟5156712935150586878:{VAR_PLURAL, plural, =0 {tensor} =1 {tensor} other {tensors}}`,n=Kg(n,{VAR_PLURAL:"�0�"}),o="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg(" {$icu}",{icu:n}):$localize`:␟893476c2c421cee47663c9732fa41a750d3a73df␟246067053735162634: ${n}:ICU:`,[[1,"graph-structure-container"],[4,"ngIf","ngIfElse"],["opInfoMissing",""],["noOpFocused",""],["class","inputs-container",4,"ngIf","ngIfElse"],["noInputs",""],[1,"self-op-container"],[1,"self-op-header"],[3,"kind","opName","opData","onOpNameClick"],["class","consumers-container",4,"ngIf","ngIfElse"],["noConsumers",""],[1,"inputs-container"],["class","input-op-section",4,"ngFor","ngForOf"],[1,"input-op-section"],[1,"input-slot-header"],[3,"kind","opName","slot","opData","onOpNameClick"],[1,"inputs-container","no-inputs-indicator"],[1,"consumers-container"],["class","slot-consumers-container",4,"ngFor","ngForOf"],[1,"slot-consumers-container"],[1,"slot-consumers-header"],e,["class","consumer-section",4,"ngFor","ngForOf"],[1,"consumer-section"],[1,"op-consumers-container"],o,[1,"op-info-missing"],[1,"no-op-focused"]]},template:function t(e,n){if(1&e&&(Ou(0,"div"),Ou(1,"div"),Mf(2,"Graph Structure"),Pu(),Ou(3,"div",0),Wm(4,kK,11,7,"div",1),Pu(),Wm(5,SK,2,0,"ng-template",null,2,Kb),Wm(7,DK,2,0,"ng-template",null,3,Kb),Pu()),2&e){const t=Gm(8);Jc(4),vu("ngIf",null!=n.opInfo)("ngIfElse",t)}},directives:[av,_K,ov],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{overflow-y:auto}.consumers-container[_ngcontent-%COMP%]{padding-bottom:5px;overflow-x:auto;white-space:nowrap}.consumer-section[_ngcontent-%COMP%]{display:block;margin:5px 0}.graph-structure-container[_ngcontent-%COMP%]{font-size:12px;overflow-y:auto;white-space:nowrap}.inputs-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.12);margin-top:5px;overflow-x:auto;padding-bottom:0;white-space:nowrap}.input-op-section[_ngcontent-%COMP%]{border-right:1px solid rgba(0,0,0,.12);display:inline-block;margin-right:5px;padding-bottom:5px}.input-slot-header[_ngcontent-%COMP%]{background-color:#fff099;margin-bottom:5px}body.dark-mode[_nghost-%COMP%]   .input-slot-header[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .input-slot-header[_ngcontent-%COMP%]{background-color:#e65100}.input-tensor-name[_ngcontent-%COMP%]{display:block;white-space:nowrap}.no-op-focused[_ngcontent-%COMP%]{color:gray;font-family:"Roboto",Arial,Helvetica,sans-serif;font-size:13px;white-space:normal}.self-op-header[_ngcontent-%COMP%]{font-weight:bold;margin-bottom:5px}.self-op-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.12);padding-bottom:5px}.slot-consumers-container[_ngcontent-%COMP%]{border-right:1px solid rgba(0,0,0,.12);display:inline-block;margin-right:5px;padding-top:5px;vertical-align:top}.slot-consumers-header[_ngcontent-%COMP%]{white-space:nowrap}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(EK,[{type:h_,args:[{selector:"graph-component",templateUrl:"./graph_component.ng.html",styleUrls:["./graph_component.css"],changeDetection:xo.OnPush}]}],null,{opInfo:[{type:y_}],inputOps:[{type:y_}],consumerOps:[{type:y_}],onGraphOpNavigate:[{type:__}]});class AK{constructor(t){this.store=t,this.opInfo$=this.store.pipe(Rk(YZ)),this.inputOps$=this.store.pipe(Rk(qZ)),this.consumerOps$=this.store.pipe(Rk(XZ))}onGraphOpNavigate(t){this.store.dispatch(qq(t))}}function RK(t,e){1&t&&(Ou(0,"div",12),Mf(1,"▶"),Pu())}AK.ɵfac=function t(e){return new(e||AK)(Mu(Ek))},AK.ɵcmp=Uo({type:AK,selectors:[["tf-debugger-v2-graph"]],decls:4,vars:9,consts:[[3,"opInfo","inputOps","consumerOps","onGraphOpNavigate"]],template:function t(e,n){1&e&&(Ou(0,"graph-component",0),Nu("onGraphOpNavigate",(function t(e){return n.onGraphOpNavigate(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("opInfo",Pb(1,3,n.opInfo$))("inputOps",Pb(2,5,n.inputOps$))("consumerOps",Pb(3,7,n.consumerOps$))},directives:[EK],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(AK,[{type:h_,args:[{selector:"tf-debugger-v2-graph",template:'\n    <graph-component\n      [opInfo]="opInfo$ | async"\n      [inputOps]="inputOps$ | async"\n      [consumerOps]="consumerOps$ | async"\n      (onGraphOpNavigate)="onGraphOpNavigate($event)"\n    ></graph-component>\n  '}]}],(function(){return[{type:Ek}]}),null);const TK=function(t,e){return{tensorDebugMode:t,array:e}};function NK(t,e){if(1&t&&wu(0,"debug-tensor-value",17),2&t){const t=Lu(2).$implicit,e=Lu(2);vu("debugTensorValue",e.parseDebugTensorValue(hb(1,TK,e.graphExecutionData[t].tensor_debug_mode,e.graphExecutionData[t].debug_tensor_value)))}}function IK(t,e){if(1&t){const t=Eu();Ou(0,"div"),Ou(1,"div",13),Ou(2,"button",14),Nu("click",(function e(){ra(t);const n=Lu().$implicit,o=Lu(2);return o.onTensorNameClick.emit({index:n,graph_id:o.graphExecutionData[n].graph_id,op_name:o.graphExecutionData[n].op_name})})),Mf(3),Pu(),Ou(4,"div",15),Mf(5),Pu(),Pu(),Wm(6,NK,1,4,"debug-tensor-value",16),Pu()}if(2&t){const t=Lu().$implicit,e=Lu(2);Jc(2),Uu("title",e.getTensorName(t)),Jc(1),xf(" ",e.getTensorName(t)," "),Jc(2),vf(e.graphExecutionData[t].op_type),Jc(1),vu("ngIf",null!==e.graphExecutionData[t].debug_tensor_value)}}function zK(t,e){1&t&&(Ou(0,"div",18),Mf(1," Loading... "),Pu())}const HK=function(t){return{"input-of-focus":t}};function FK(t,e){if(1&t&&(Ou(0,"div",5),Ou(1,"div",6),Ou(2,"div",7),Wm(3,RK,2,0,"div",8),Mf(4),Pu(),Wm(5,IK,7,4,"div",9),Wm(6,zK,2,0,"ng-template",10,11,Kb),Pu(),Pu()),2&t){const t=e.$implicit,n=Gm(7),o=Lu(2);Jc(1),vu("ngClass",gb(5,HK,o.isInputOfFocus(t))),Jc(2),vu("ngIf",t===o.focusIndex),Jc(1),xf(" ",t," "),Jc(1),vu("ngIf",o.graphExecutionData[t])("ngIfElse",n)}}function LK(t,e){if(1&t){const t=Eu();Ou(0,"cdk-virtual-scroll-viewport",3),Nu("scrolledIndexChange",(function e(n){return ra(t),Lu().onScrolledIndexChange.emit(n)})),Wm(1,FK,8,7,"div",4),Pu()}if(2&t){const t=Lu();Jc(1),vu("cdkVirtualForOf",t.graphExecutionIndices)}}class BK{constructor(){this.onScrolledIndexChange=new Ab,this.onTensorNameClick=new Ab,this.parseDebugTensorValue=kX,this.TEST_ONLY={getViewPort:()=>this.viewPort}}ngOnChanges(t){if(this.viewPort&&t.focusIndex&&null!==t.focusIndex.currentValue){const e=this.viewPort.getRenderedRange(),n=t.focusIndex.currentValue,o=Math.round((e.end-e.start)/3),i=Math.max(n-o,0);this.viewPort.scrollToIndex(i,n>=e.start&&n<e.end?"smooth":void 0)}}getTensorName(t){return`${this.graphExecutionData[t].op_name}:${this.graphExecutionData[t].output_slot}`}isInputOfFocus(t){return null!==this.focusInputIndices&&this.focusInputIndices.includes(t)}}BK.ɵfac=function t(e){return new(e||BK)},BK.ɵcmp=Uo({type:BK,selectors:[["graph-executions-component"]],viewQuery:function t(e,n){if(1&e&&Wb(tF,1),2&e){let t;Ub(t=Yb())&&(n.viewPort=t.first)}},inputs:{numGraphExecutions:"numGraphExecutions",graphExecutionData:"graphExecutionData",graphExecutionIndices:"graphExecutionIndices",focusIndex:"focusIndex",focusInputIndices:"focusInputIndices"},outputs:{onScrolledIndexChange:"onScrolledIndexChange",onTensorNameClick:"onTensorNameClick"},features:[Si],decls:4,vars:2,consts:[[1,"graph-executions-container"],[1,"graph-executions-title"],["itemSize","38","class","graph-executions-viewport",3,"scrolledIndexChange",4,"ngIf"],["itemSize","38",1,"graph-executions-viewport",3,"scrolledIndexChange"],["class","tensor-container",4,"cdkVirtualFor","cdkVirtualForOf"],[1,"tensor-container"],[1,"tensor-item",3,"ngClass"],[1,"graph-execution-index"],["class","graph-execution-focus",4,"ngIf"],[4,"ngIf","ngIfElse"],["class","tensor-item"],["dataLoading",""],[1,"graph-execution-focus"],[1,"tensor-name-and-op-type"],[1,"tensor-name",3,"title","click"],[1,"op-type"],[3,"debugTensorValue",4,"ngIf"],[3,"debugTensorValue"],[1,"loading-spinner"]],template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"div",1),Mf(2),Pu(),Wm(3,LK,2,1,"cdk-virtual-scroll-viewport",2),Pu()),2&e&&(Jc(2),xf(" Graph Executions (",n.numGraphExecutions,") "),Jc(1),vu("ngIf",null!==n.numGraphExecutions&&n.numGraphExecutions>0))},directives:[av,tF,XH,nF,tv,XX],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.graph-executions-container[_ngcontent-%COMP%]{border-left:1px solid #ebebeb;display:flex;flex-direction:column;height:100%;margin-left:8px;padding-left:10px}body.dark-mode[_nghost-%COMP%]   .graph-executions-container[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .graph-executions-container[_ngcontent-%COMP%]{border-left:1px solid #555}.graph-execution-focus[_ngcontent-%COMP%]{display:inline-block}.graph-execution-index[_ngcontent-%COMP%]{color:#616161;display:inline-block;padding-right:4px;text-align:right;width:40px}body.dark-mode[_nghost-%COMP%]   .graph-execution-index[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .graph-execution-index[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}.graph-executions-title[_ngcontent-%COMP%]{box-shadow:0 5px 3px -3px #ccc;padding-bottom:5px}.graph-executions-viewport[_ngcontent-%COMP%]{flex-grow:1;font-size:12px;width:100%;overflow-x:hidden}.input-of-focus[_ngcontent-%COMP%]{background-color:#fff099}body.dark-mode[_nghost-%COMP%]   .input-of-focus[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .input-of-focus[_ngcontent-%COMP%]{background-color:#e65100}.loading-spinner[_ngcontent-%COMP%]{display:inline-block}.op-type[_ngcontent-%COMP%]{background-color:#eceff1;border:1px solid #ebebeb;border-radius:4px;font-family:"Roboto Mono",monospace;font-size:10px;height:14px;line-height:14px;padding:1px 3px;width:max-content;direction:rtl;display:block}body.dark-mode[_nghost-%COMP%]   .op-type[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .op-type[_ngcontent-%COMP%]{border:1px solid #555}body.dark-mode[_nghost-%COMP%]   .op-type[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .op-type[_ngcontent-%COMP%]{background-color:#455a64}.tensor-container[_ngcontent-%COMP%]{width:100%}.tensor-item[_ngcontent-%COMP%]{border-bottom:1px solid #ebebeb;display:flex;flex-wrap:nowrap;height:38px;line-height:38px;text-align:left;vertical-align:middle;white-space:nowrap;width:100%}body.dark-mode[_nghost-%COMP%]   .tensor-item[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .tensor-item[_ngcontent-%COMP%]{border-bottom:1px solid #555}.tensor-name[_ngcontent-%COMP%]{background-color:transparent;border:none;box-sizing:border-box;color:inherit;cursor:pointer;direction:rtl;display:block;height:16px;line-height:16px;margin:2px 0 1px;max-width:calc(100% - 2px);overflow:hidden;padding:0 2px;text-align:right;text-decoration:underline;text-overflow:ellipsis;white-space:nowrap}.tensor-name[_ngcontent-%COMP%]:focus{outline:1px solid #c6cad1}.tensor-name-and-op-type[_ngcontent-%COMP%]{direction:rtl;display:inline-block;overflow:hidden;padding-right:8px;text-align:right;width:240px}debug-tensor-value[_ngcontent-%COMP%]{display:inline-block;margin:2px 0}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(BK,[{type:h_,args:[{selector:"graph-executions-component",templateUrl:"./graph_executions_component.ng.html",styleUrls:["./graph_executions_component.css"],changeDetection:xo.OnPush}]}],null,{numGraphExecutions:[{type:y_}],graphExecutionData:[{type:y_}],graphExecutionIndices:[{type:y_}],focusIndex:[{type:y_}],focusInputIndices:[{type:y_}],onScrolledIndexChange:[{type:__}],onTensorNameClick:[{type:__}],viewPort:[{type:Fr,args:[tF,{static:!1}]}]});class VK{constructor(t){this.store=t,this.numGraphExecutions$=this.store.pipe(Rk(HZ)),this.graphExecutionData$=this.store.pipe(Rk(UZ)),this.graphExecutionIndices$=this.store.pipe(Rk(zk(HZ,(t=>0===t?null:Array.from({length:t}).map(((t,e)=>e)))))),this.focusIndex$=this.store.pipe(Rk(WZ)),this.focusInputIndices$=this.store.pipe(Rk(ZZ))}onScrolledIndexChange(t){this.store.dispatch(Gq({index:t}))}onTensorNameClick(t){this.store.dispatch(Yq(t))}}VK.ɵfac=function t(e){return new(e||VK)(Mu(Ek))},VK.ɵcmp=Uo({type:VK,selectors:[["tf-debugger-v2-graph-executions"]],decls:6,vars:15,consts:[[3,"numGraphExecutions","graphExecutionData","graphExecutionIndices","focusIndex","focusInputIndices","onScrolledIndexChange","onTensorNameClick"]],template:function t(e,n){1&e&&(Ou(0,"graph-executions-component",0),Nu("onScrolledIndexChange",(function t(e){return n.onScrolledIndexChange(e)}))("onTensorNameClick",(function t(e){return n.onTensorNameClick(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Pu()),2&e&&vu("numGraphExecutions",Pb(1,5,n.numGraphExecutions$))("graphExecutionData",Pb(2,7,n.graphExecutionData$))("graphExecutionIndices",Pb(3,9,n.graphExecutionIndices$))("focusIndex",Pb(4,11,n.focusIndex$))("focusInputIndices",Pb(5,13,n.focusInputIndices$))},directives:[BK],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(VK,[{type:h_,args:[{selector:"tf-debugger-v2-graph-executions",template:'\n    <graph-executions-component\n      [numGraphExecutions]="numGraphExecutions$ | async"\n      [graphExecutionData]="graphExecutionData$ | async"\n      [graphExecutionIndices]="graphExecutionIndices$ | async"\n      [focusIndex]="focusIndex$ | async"\n      [focusInputIndices]="focusInputIndices$ | async"\n      (onScrolledIndexChange)="onScrolledIndexChange($event)"\n      (onTensorNameClick)="onTensorNameClick($event)"\n    ></graph-executions-component>\n  '}]}],(function(){return[{type:Ek}]}),null);const jK=function UK(){return window};function WK(t){const e=jK().require;return new Promise((n=>{e(t,n)}))}function GK(){return rR(this,void 0,void 0,(function*(){const t=jK();if(void 0===t.monaco){if(!t.require)throw new Error("loadMonaco() failed because function require() is unavailable");t.require.config({paths:{vs:"/tf-imports/vs"}}),yield WK(["vs/editor/editor.main"]),yield WK(["vs/python/python.contribution"])}}))}function YK(t){return t?"vs-dark":"vs"}class qK{constructor(t){this.resizeEventDebouncePeriodInMs=100,this.onResize=new Ab,this.ngUnsubscribe$=new x,this.onResize$=new x;const e=new ResizeObserver((()=>{this.onResize$.next()}));e.observe(t.nativeElement),this.ngUnsubscribe$.subscribe((()=>{e.unobserve(t.nativeElement)}))}ngOnInit(){this.onResize$.pipe(rn(1),de(this.resizeEventDebouncePeriodInMs),un(this.ngUnsubscribe$)).subscribe((()=>{this.onResize.emit()}))}ngOnDestroy(){this.ngUnsubscribe$.next(),this.ngUnsubscribe$.complete()}}qK.ɵfac=function t(e){return new(e||qK)(Mu(ch))},qK.ɵdir=Jo({type:qK,selectors:[["","detectResize",""]],inputs:{resizeEventDebouncePeriodInMs:"resizeEventDebouncePeriodInMs"},outputs:{onResize:"onResize"}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(qK,[{type:g_,args:[{selector:"[detectResize]"}]}],(function(){return[{type:ch}]}),{resizeEventDebouncePeriodInMs:[{type:y_}],onResize:[{type:__}]});const ZK=["codeViewerContainer"];class XK{constructor(){this.lines=null,this.focusedLineno=null,this.monaco=null,this.editor=null,this.decorations=[],this.RESIZE_DEBOUNCE_INTERVAL_MS=50}onResize(){this.editor&&this.editor.layout()}ngOnChanges(t){var e;if(null===this.monaco)return;const n=t.monaco&&null===this.editor;null===this.editor&&(this.editor=this.monaco.editor.create(this.codeViewerContainer.nativeElement,{value:(null!==(e=this.lines)&&void 0!==e?e:[]).join("\n"),language:"python",readOnly:!0,fontSize:10,minimap:{enabled:!0},theme:YK(this.useDarkMode)})),t.lines&&this.lines&&this.editor.setValue(this.lines.join("\n"));const o=n||t.focusedLineno?this.focusedLineno:null;if(o&&this.lines){this.editor.revealLineInCenter(o,this.monaco.editor.ScrollType.Smooth);const t=this.lines[o-1].length;this.decorations=this.editor.deltaDecorations(this.decorations,[{range:new this.monaco.Range(o,1,o,1),options:{isWholeLine:!0,linesDecorationsClassName:"highlight-gutter"}},{range:new this.monaco.Range(o,1,o,t+1),options:{inlineClassName:"highlight-line"}}])}t.useDarkMode&&this.monaco.editor.setTheme(YK(this.useDarkMode))}}XK.ɵfac=function t(e){return new(e||XK)},XK.ɵcmp=Uo({type:XK,selectors:[["source-code-component"]],viewQuery:function t(e,n){if(1&e&&Wb(ZK,3,ch),2&e){let t;Ub(t=Yb())&&(n.codeViewerContainer=t.first)}},inputs:{lines:"lines",focusedLineno:"focusedLineno",monaco:"monaco",useDarkMode:"useDarkMode"},features:[Si],decls:2,vars:1,consts:[["detectResize","",1,"code-viewer-container",3,"resizeEventDebouncePeriodInMs","onResize"],["codeViewerContainer",""]],template:function t(e,n){1&e&&(Ou(0,"div",0,1),Nu("onResize",(function t(){return n.onResize()})),Pu()),2&e&&vu("resizeEventDebouncePeriodInMs",n.RESIZE_DEBOUNCE_INTERVAL_MS)},directives:[qK],styles:[".code-viewer-container[_ngcontent-%COMP%] {\n  height: 100%;\n}\n\n[_nghost-%COMP%]     .highlight-gutter {\n  background: rgba(255, 111, 0, 0.7);\n  width: 5px !important;\n}\n\n[_nghost-%COMP%]     .highlight-line {\n  background: rgba(255, 111, 0, 0.3);\n}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(XK,[{type:h_,args:[{selector:"source-code-component",templateUrl:"./source_code_component.ng.html",styleUrls:["./source_code_component.css"],changeDetection:xo.OnPush}]}],null,{lines:[{type:y_}],focusedLineno:[{type:y_}],monaco:[{type:y_}],useDarkMode:[{type:y_}],codeViewerContainer:[{type:Fr,args:["codeViewerContainer",{static:!0,read:ch}]}]});class KK{constructor(){this.lines=null,this.focusedLineno=null,this.useDarkMode=!1,this.monaco$=null}ngOnInit(){this.monaco$=Rt(GK()).pipe(ht((()=>window.monaco)))}}function JK(t,e){if(1&t&&(Ou(0,"div",6),Mf(1),Pu()),2&t){const t=Lu();Jc(1),xf(" ",t.focusedSourceLineSpec.file_path," ")}}function QK(t,e){1&t&&(Ou(0,"div",7),Mf(1," No file selected. Click a line number in the Stack Trace section to show the source code. "),Pu())}function $K(t,e){if(1&t&&wu(0,"source-code",8),2&t){const t=Lu();vu("lines",t.focusedSourceFileContent.lines)("focusedLineno",t.focusedSourceLineSpec.lineno)("useDarkMode",t.useDarkMode)}}KK.ɵfac=function t(e){return new(e||KK)},KK.ɵcmp=Uo({type:KK,selectors:[["source-code"]],inputs:{lines:"lines",focusedLineno:"focusedLineno",useDarkMode:"useDarkMode"},decls:2,vars:6,consts:[[3,"lines","focusedLineno","monaco","useDarkMode"]],template:function t(e,n){1&e&&(wu(0,"source-code-component",0),Ob(1,"async")),2&e&&vu("lines",n.lines)("focusedLineno",n.focusedLineno)("monaco",Pb(1,4,n.monaco$))("useDarkMode",n.useDarkMode)},directives:[XK],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(KK,[{type:h_,args:[{selector:"source-code",template:'\n    <source-code-component\n      [lines]="lines"\n      [focusedLineno]="focusedLineno"\n      [monaco]="monaco$ | async"\n      [useDarkMode]="useDarkMode"\n    ></source-code-component>\n  '}]}],(function(){return[]}),{lines:[{type:y_}],focusedLineno:[{type:y_}],useDarkMode:[{type:y_}]});class tJ{constructor(){this.focusedSourceFileContent=null,this.focusedSourceLineSpec=null}}tJ.ɵfac=function t(e){return new(e||tJ)},tJ.ɵcmp=Uo({type:tJ,selectors:[["source-files-component"]],inputs:{focusedSourceFileContent:"focusedSourceFileContent",focusedSourceLineSpec:"focusedSourceLineSpec",useDarkMode:"useDarkMode"},decls:8,vars:3,consts:[[1,"source-files-container"],[1,"header-section"],[1,"title-tag"],["class","file-label",4,"ngIf","ngIfElse"],["noFileSelected",""],[3,"lines","focusedLineno","useDarkMode",4,"ngIf"],[1,"file-label"],[1,"no-file-selected"],[3,"lines","focusedLineno","useDarkMode"]],template:function t(e,n){if(1&e&&(Ou(0,"div",0),Ou(1,"div",1),Ou(2,"div",2),Mf(3,"Source Code"),Pu(),Wm(4,JK,2,1,"div",3),Wm(5,QK,2,0,"ng-template",null,4,Kb),Pu(),Wm(7,$K,1,3,"source-code",5),Pu()),2&e){const t=Gm(6);Jc(4),vu("ngIf",null!==n.focusedSourceLineSpec)("ngIfElse",t),Jc(3),vu("ngIf",null!==n.focusedSourceFileContent&&null!==n.focusedSourceLineSpec&&null!==n.focusedSourceFileContent.lines)}},directives:[av,KK],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.header-section[_ngcontent-%COMP%]{border-bottom:1px solid #ebebeb;display:flex;height:24px;padding-bottom:6px;vertical-align:middle;white-space:nowrap;width:100%}body.dark-mode[_nghost-%COMP%]   .header-section[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .header-section[_ngcontent-%COMP%]{border-bottom:1px solid #555}.file-label[_ngcontent-%COMP%]{display:inline-block;font-weight:normal;white-space:normal;overflow-wrap:anywhere;overflow-y:auto;padding:0 20px}.no-file-selected[_ngcontent-%COMP%]{display:inline-block;color:#666;padding:0 20px;white-space:normal}.source-files-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;font-family:"Roboto Mono",monospace;font-size:10px;height:100%}.title-tag[_ngcontent-%COMP%]{display:inline-block;font-weight:bold;height:100%;padding-left:6px;vertical-align:top}source-code[_ngcontent-%COMP%]{flex-grow:1;width:100%}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(tJ,[{type:h_,args:[{selector:"source-files-component",templateUrl:"./source_files_component.ng.html",styleUrls:["./source_files_component.css"]}]}],null,{focusedSourceFileContent:[{type:y_}],focusedSourceLineSpec:[{type:y_}],useDarkMode:[{type:y_}]});class eJ{constructor(t){this.store=t,this.focusedSourceFileContent$=this.store.select(cX),this.focusedSourceLineSpec$=this.store.select(dX),this.useDarkMode$=this.store.select(ME)}}eJ.ɵfac=function t(e){return new(e||eJ)(Mu(Ek))},eJ.ɵcmp=Uo({type:eJ,selectors:[["tf-debugger-v2-source-files"]],decls:4,vars:9,consts:[[3,"focusedSourceFileContent","focusedSourceLineSpec","useDarkMode"]],template:function t(e,n){1&e&&(wu(0,"source-files-component",0),Ob(1,"async"),Ob(2,"async"),Ob(3,"async")),2&e&&vu("focusedSourceFileContent",Pb(1,3,n.focusedSourceFileContent$))("focusedSourceLineSpec",Pb(2,5,n.focusedSourceLineSpec$))("useDarkMode",Pb(3,7,n.useDarkMode$))},directives:[tJ],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(eJ,[{type:h_,args:[{selector:"tf-debugger-v2-source-files",template:'\n    <source-files-component\n      [focusedSourceFileContent]="focusedSourceFileContent$ | async"\n      [focusedSourceLineSpec]="focusedSourceLineSpec$ | async"\n      [useDarkMode]="useDarkMode$ | async"\n    ></source-files-component>\n  '}]}],(function(){return[{type:Ek}]}),null);const nJ=["stackFrameArray"];function oJ(t,e){if(1&t&&(Ou(0,"span",13),Mf(1),Pu()),2&t){const t=Lu(3);Jc(1),xf(" #",t.executionIndex,": ")}}function iJ(t,e){if(1&t&&(Ou(0,"span",14),Mf(1),Pu()),2&t){const t=Lu(3);Jc(1),xf(" ",t.opType," ")}}function aJ(t,e){if(1&t&&(Ou(0,"div"),Mf(1," Eager execution "),Wm(2,oJ,2,1,"span",11),Wm(3,iJ,2,1,"span",12),Pu()),2&t){const t=Lu(2);Jc(2),vu("ngIf",null!==t.opType),Jc(1),vu("ngIf",null!==t.opType)}}function rJ(t,e){if(1&t&&(Ou(0,"span",16),Mf(1),Pu()),2&t){const t=Lu(3);Jc(1),xf(' "',t.opName,'" ')}}function sJ(t,e){if(1&t&&(Ou(0,"span",14),Mf(1),Pu()),2&t){const t=Lu(3);Jc(1),xf(" ",t.opType," ")}}function lJ(t,e){if(1&t&&(Ou(0,"div"),Mf(1," Creation of graph op "),Wm(2,rJ,2,1,"span",15),Wm(3,sJ,2,1,"span",12),Pu()),2&t){const t=Lu(2);Jc(2),vu("ngIf",null!==t.opName),Jc(1),vu("ngIf",null!==t.opType)}}function cJ(t,e){if(1&t&&(Ou(0,"span",17),Mf(1),Pu()),2&t){const t=Lu(2);Jc(1),xf(" (Host name: ",t.stackFramesForDisplay[0].host_name,") ")}}function dJ(t,e){if(1&t&&(Ou(0,"div",7),Ou(1,"span"),Ou(2,"span",8),Wm(3,aJ,4,2,"div",9),Wm(4,lJ,4,2,"div",9),Pu(),Pu(),Ou(5,"div"),Wm(6,cJ,2,1,"span",10),Pu(),Pu()),2&t){const t=Lu();Jc(2),vu("ngSwitch",t.codeLocationType),Jc(1),vu("ngSwitchCase",t.CodeLocationType.EXECUTION),Jc(1),vu("ngSwitchCase",t.CodeLocationType.GRAPH_OP_CREATION),Jc(2),vu("ngIf",null!==t.stackFramesForDisplay&&t.stackFramesForDisplay.length>0)}}function pJ(t,e){1&t&&(Ou(0,"div",18),Mf(1," Click an eager execution or graph op to show its original stack trace. "),Pu())}function mJ(t,e){1&t&&(Ou(0,"div",28),Mf(1," ⤓ "),Pu())}const uJ=function(t,e){return[t,e]};function fJ(t,e){if(1&t){const t=Eu();Ou(0,"div",22),Ou(1,"div",23),Mf(2),Pu(),Ou(3,"div",24),Wm(4,mJ,2,0,"div",25),Ou(5,"div",26),Nu("click",(function n(){ra(t);const o=e.$implicit;return Lu(2).onSourceLineClicked.emit(o)})),Mf(6),Pu(),Ou(7,"div",27),Mf(8),Pu(),Pu(),Pu()}if(2&t){const t=e.$implicit,n=Lu(2);vu("ngClass",hb(6,uJ,t.belongsToFocusedFile?"focused-file":"",t.focused?"focused-stack-frame":"")),Jc(1),Uu("title",t.file_path),Jc(1),xf(" ",t.concise_file_path," "),Jc(2),vu("ngIf",n.stickToBottommostFrameInFocusedFile&&t.focused),Jc(2),xf(" Line ",t.lineno," "),Jc(2),xf(" ",t.function_name," ")}}function gJ(t,e){if(1&t&&(Ou(0,"div",19,20),Wm(2,fJ,9,9,"div",21),Pu()),2&t){const t=Lu();Jc(2),vu("ngForOf",t.stackFramesForDisplay)}}function hJ(t,e){}class bJ{constructor(){this.stackFramesForDisplay=null,this.onSourceLineClicked=new Ab,this.CodeLocationType=aZ}ngAfterViewChecked(){if(void 0===this.stackFrameArray)return;const t=this.stackFrameArray.nativeElement,e=t.querySelector(".focused-stack-frame");if(null!==e)return void this.scrollToElement(t,e);const n=t.querySelector(".stack-frame-container:last-child");null!==n&&this.scrollToElement(t,n)}scrollToElement(t,e){t.scrollTop=e.offsetTop}}bJ.ɵfac=function t(e){return new(e||bJ)},bJ.ɵcmp=Uo({type:bJ,selectors:[["stack-trace-component"]],viewQuery:function t(e,n){if(1&e&&Wb(nJ,1),2&e){let t;Ub(t=Yb())&&(n.stackFrameArray=t.first)}},inputs:{codeLocationType:"codeLocationType",opType:"opType",opName:"opName",executionIndex:"executionIndex",stickToBottommostFrameInFocusedFile:"stickToBottommostFrameInFocusedFile",stackFramesForDisplay:"stackFramesForDisplay"},outputs:{onSourceLineClicked:"onSourceLineClicked"},decls:10,vars:4,consts:[[1,"stack-trace-container"],[1,"stack-trace-header"],[1,"stack-trace-title"],["class","stack-trace-aux-info",4,"ngIf","ngIfElse"],["noStackTrace",""],["class","stack-frame-array",4,"ngIf","ngIfElse"],["loadingSection",""],[1,"stack-trace-aux-info"],[1,"code-location-origin",3,"ngSwitch"],[4,"ngSwitchCase"],["class","stack-trace-host-name",4,"ngIf"],["class","eager-execution-index",4,"ngIf"],["class","op-type",4,"ngIf"],[1,"eager-execution-index"],[1,"op-type"],["class","op-name",4,"ngIf"],[1,"op-name"],[1,"stack-trace-host-name"],[1,"stack-trace-aux-info","no-stack-trace"],[1,"stack-frame-array"],["stackFrameArray",""],["class","stack-frame-container",3,"ngClass",4,"ngFor","ngForOf"],[1,"stack-frame-container",3,"ngClass"],[1,"stack-frame-file-path",3,"title"],[1,"stack-frame-lineno-function"],["class","stick-to-bottommost-indicator","title","Sticking to the bottommost frame in the current source file when navigating executions and graph ops. To remove this sticking, click any non-bottommost stack frame.",4,"ngIf"],[1,"stack-frame-lineno",3,"click"],[1,"stack-frame-function"],["title","Sticking to the bottommost frame in the current source file when navigating executions and graph ops. To remove this sticking, click any non-bottommost stack frame.",1,"stick-to-bottommost-indicator"]],template:function t(e,n){if(1&e&&(Ou(0,"div",0),Ou(1,"div",1),Ou(2,"span",2),Mf(3," Stack Trace "),Pu(),Wm(4,dJ,7,4,"div",3),Wm(5,pJ,2,0,"ng-template",null,4,Kb),Pu(),Wm(7,gJ,3,1,"div",5),Wm(8,hJ,0,0,"ng-template",null,6,Kb),Pu()),2&e){const t=Gm(6),e=Gm(9);Jc(4),vu("ngIf",null!==n.codeLocationType)("ngIfElse",t),Jc(3),vu("ngIf",null!==n.stackFramesForDisplay)("ngIfElse",e)}},directives:[av,cv,dv,ov,tv],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.focused-file[_ngcontent-%COMP%]{font-weight:bold}.focused-stack-frame[_ngcontent-%COMP%]{background-color:rgba(255,111,0,.3)}.no-stack-trace[_ngcontent-%COMP%]{color:gray}.op-name[_ngcontent-%COMP%]{word-wrap:anywhere}.op-type[_ngcontent-%COMP%]{background-color:#eceff1;border:1px solid #ebebeb;border-radius:4px;font-family:"Roboto Mono",monospace;font-size:10px;height:14px;line-height:14px;padding:1px 3px;width:max-content}body.dark-mode[_nghost-%COMP%]   .op-type[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .op-type[_ngcontent-%COMP%]{border:1px solid #555}body.dark-mode[_nghost-%COMP%]   .op-type[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .op-type[_ngcontent-%COMP%]{background-color:#455a64}.stack-frame-array[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto;width:calc(100% - 8px)}.stack-frame-container[_ngcontent-%COMP%]{border-bottom:1px solid #a0a0a0}.stack-frame-file-path[_ngcontent-%COMP%]{max-width:180px;width:180px}.stack-frame-lineno-function[_ngcontent-%COMP%]{text-align:right;white-space:nowrap}.stack-frame-function[_ngcontent-%COMP%]{display:inline-block;max-width:200px;padding-left:10px;text-align:left;white-space:normal;width:200px;word-wrap:anywhere}.stack-frame-lineno[_ngcontent-%COMP%]{cursor:pointer;display:inline-block;max-width:80px;text-align:left;text-decoration:underline;width:80px}.stack-trace-aux-info[_ngcontent-%COMP%]{margin-top:15px;padding-left:24px}.stack-trace-container[_ngcontent-%COMP%]{border-left:1px solid #ebebeb;box-sizing:border-box;display:flex;flex-flow:column;font-size:10px;font-family:"Roboto Mono",monospace;height:100%;margin-left:8px;max-height:360px;overflow-x:hidden;overflow-y:hidden;padding-left:8px;width:100%}body.dark-mode[_nghost-%COMP%]   .stack-trace-container[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .stack-trace-container[_ngcontent-%COMP%]{border-left:1px solid #555}.stack-trace-header[_ngcontent-%COMP%]{box-shadow:0 5px 3px -3px #ccc;padding-bottom:3px}.stack-trace-host-name[_ngcontent-%COMP%]{color:gray}.stack-trace-title[_ngcontent-%COMP%]{font-weight:bold}.stick-to-bottommost-indicator[_ngcontent-%COMP%]{display:inline-block;font-weight:bold;font-size:12px;padding-right:3px}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(bJ,[{type:h_,args:[{selector:"stack-trace-component",templateUrl:"./stack_trace_component.ng.html",styleUrls:["./stack_trace_component.css"]}]}],null,{codeLocationType:[{type:y_}],opType:[{type:y_}],opName:[{type:y_}],executionIndex:[{type:y_}],stickToBottommostFrameInFocusedFile:[{type:y_}],stackFramesForDisplay:[{type:y_}],onSourceLineClicked:[{type:__}],stackFrameArray:[{type:Fr,args:["stackFrameArray"]}]});class yJ{constructor(t){this.store=t,this.codeLocationType$=this.store.pipe(Rk(zk(iX,(t=>null===t?null:t.codeLocationType)))),this.opType$=this.store.pipe(Rk(zk(iX,(t=>null===t?null:t.opType)))),this.opName$=this.store.pipe(Rk(zk(iX,(t=>null===t||t.codeLocationType!==aZ.GRAPH_OP_CREATION?null:t.opName)))),this.executionIndex$=this.store.pipe(Rk(zk(iX,(t=>null===t||t.codeLocationType!==aZ.EXECUTION?null:t.executionIndex)))),this.stickToBottommostFrameInFocusedFile$=this.store.pipe(Rk(pX)),this.stackFramesForDisplay$=this.store.pipe(Rk(zk(aX,dX,((t,e)=>{if(null===t)return null;const n=[];for(const o of t){const{host_name:t,file_path:i,lineno:a,function_name:r}=o,s=i.split("/"),l=null!==e&&t===e.host_name&&i===e.file_path;n.push({host_name:t,file_path:i,concise_file_path:s[s.length-1],lineno:a,function_name:r,belongsToFocusedFile:l,focused:l&&a===e.lineno})}return n}))))}onSourceLineClicked(t){const{host_name:e,file_path:n,lineno:o,function_name:i}=t;this.store.dispatch(Qq({stackFrame:{host_name:e,file_path:n,lineno:o,function_name:i}}))}}function _J(t,e){1&t&&wu(0,"tf-debugger-v2-inactive")}function CJ(t,e){1&t&&(Ou(0,"div",3),wu(1,"tf-debugger-v2-alerts"),Ou(2,"div",4),wu(3,"tf-debugger-v2-timeline"),wu(4,"tf-debugger-v2-graph"),Pu(),wu(5,"tf-debugger-v2-graph-executions"),Pu(),Ou(6,"div",5),wu(7,"tf-debugger-v2-source-files"),wu(8,"tf-debugger-v2-stack-trace"),Pu())}yJ.ɵfac=function t(e){return new(e||yJ)(Mu(Ek))},yJ.ɵcmp=Uo({type:yJ,selectors:[["tf-debugger-v2-stack-trace"]],decls:7,vars:18,consts:[[3,"codeLocationType","opType","opName","executionIndex","stickToBottommostFrameInFocusedFile","stackFramesForDisplay","onSourceLineClicked"]],template:function t(e,n){1&e&&(Ou(0,"stack-trace-component",0),Nu("onSourceLineClicked",(function t(e){return n.onSourceLineClicked(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Pu()),2&e&&vu("codeLocationType",Pb(1,6,n.codeLocationType$))("opType",Pb(2,8,n.opType$))("opName",Pb(3,10,n.opName$))("executionIndex",Pb(4,12,n.executionIndex$))("stickToBottommostFrameInFocusedFile",Pb(5,14,n.stickToBottommostFrameInFocusedFile$))("stackFramesForDisplay",Pb(6,16,n.stackFramesForDisplay$))},directives:[bJ],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(yJ,[{type:h_,args:[{selector:"tf-debugger-v2-stack-trace",template:'\n    <stack-trace-component\n      [codeLocationType]="codeLocationType$ | async"\n      [opType]="opType$ | async"\n      [opName]="opName$ | async"\n      [executionIndex]="executionIndex$ | async"\n      [stickToBottommostFrameInFocusedFile]="\n        stickToBottommostFrameInFocusedFile$ | async\n      "\n      [stackFramesForDisplay]="stackFramesForDisplay$ | async"\n      (onSourceLineClicked)="onSourceLineClicked($event)"\n    ></stack-trace-component>\n  '}]}],(function(){return[{type:Ek}]}),null);class MJ{constructor(){this.runs={},this.runIds=[],this.activeRunId=null}}MJ.ɵfac=function t(e){return new(e||MJ)},MJ.ɵcmp=Uo({type:MJ,selectors:[["debugger-component"]],inputs:{runs:"runs",runIds:"runIds",activeRunId:"activeRunId"},decls:4,vars:2,consts:[[1,"debugger-container"],[4,"ngIf","ngIfElse"],["dataAvailable",""],[1,"top-section"],[1,"top-center-section"],[1,"bottom-section"]],template:function t(e,n){if(1&e&&(Ou(0,"div",0),Wm(1,_J,1,0,"tf-debugger-v2-inactive",1),Wm(2,CJ,9,0,"ng-template",null,2,Kb),Pu()),2&e){const t=Gm(3);Jc(1),vu("ngIf",0===n.runIds.length)("ngIfElse",t)}},directives:[av,Mq,hX,mK,AK,VK,eJ,yJ],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.bottom-section[_ngcontent-%COMP%]{box-sizing:border-box;border-top:1px solid #ebebeb;display:flex;flex-grow:1;height:34%;padding-top:6px}body.dark-mode[_nghost-%COMP%]   .bottom-section[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .bottom-section[_ngcontent-%COMP%]{border-top:1px solid #555}.debugger-container[_ngcontent-%COMP%]{box-sizing:border-box;height:100%;overflow:hidden}.top-section[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;flex-grow:1;height:66%;padding:6px 0}tf-debugger-v2-alerts[_ngcontent-%COMP%]{border-right:1px solid #ebebeb;display:inline-block;margin-right:10px;min-width:160px;width:calc(15% - 11px)}body.dark-mode[_nghost-%COMP%]   tf-debugger-v2-alerts[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   tf-debugger-v2-alerts[_ngcontent-%COMP%]{border-right:1px solid #555}tf-debugger-v2-graph-executions[_ngcontent-%COMP%]{display:inline-block;flex-grow:1;min-width:540px;width:540px}tf-debugger-v2-source-files[_ngcontent-%COMP%]{display:inline-block;height:100%;width:70%}tf-debugger-v2-stack-trace[_ngcontent-%COMP%]{display:inline-block;flex-grow:1;height:100%;min-width:540px;width:540px}.top-center-section[_ngcontent-%COMP%]{display:inline-block;overflow:auto;width:55%}tf-debugger-v2-timeline[_ngcontent-%COMP%]{display:block}tf-debugger-v2-graph[_ngcontent-%COMP%]{border-top:1px solid #ebebeb;display:block;margin-top:5px}body.dark-mode[_nghost-%COMP%]   tf-debugger-v2-graph[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   tf-debugger-v2-graph[_ngcontent-%COMP%]{border-top:1px solid #555}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(MJ,[{type:h_,args:[{selector:"debugger-component",templateUrl:"./debugger_component.ng.html",styleUrls:["./debugger_component.css"],changeDetection:xo.OnPush}]}],null,{runs:[{type:y_}],runIds:[{type:y_}],activeRunId:[{type:y_}]});class vJ{constructor(t){this.store=t,this.runs$=this.store.pipe(Rk(hZ)),this.runsIds$=this.store.pipe(Rk(zk(hZ,(t=>Object.keys(t))))),this.activeRunId$=this.store.pipe(Rk(yZ))}ngOnInit(){this.store.dispatch(vq())}ngOnDestroy(){this.store.dispatch(xq())}}vJ.ɵfac=function t(e){return new(e||vJ)(Mu(Ek))},vJ.ɵcmp=Uo({type:vJ,selectors:[["tf-debugger-v2"]],decls:4,vars:9,consts:[[3,"runs","runIds","activeRunId"]],template:function t(e,n){1&e&&(wu(0,"debugger-component",0),Ob(1,"async"),Ob(2,"async"),Ob(3,"async")),2&e&&vu("runs",Pb(1,3,n.runs$))("runIds",Pb(2,5,n.runsIds$))("activeRunId",Pb(3,7,n.activeRunId$))},directives:[MJ],pipes:[Mv],styles:["[_nghost-%COMP%] {\n        display: block;\n        height: 100%;\n      }"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(vJ,[{type:h_,args:[{selector:"tf-debugger-v2",template:'\n    <debugger-component\n      [runs]="runs$ | async"\n      [runIds]="runsIds$ | async"\n      [activeRunId]="activeRunId$ | async"\n    ></debugger-component>\n  ',styles:["\n      :host {\n        display: block;\n        height: 100%;\n      }\n    "]}]}],(function(){return[{type:Ek}]}),null);const xJ="debugger-v2";function OJ(t,e,n,o,i){if(n<=0||!Number.isInteger(n))throw new Error(`Invalid pageSize: ${n}`);if(e>o)throw new Error(`end index (${e}) exceeds total number of items (${o})`);if(e-t>n)throw new Error("begin-end span exceeds page size, which is not allowed");const a=[],r=Math.floor(t/n);(!(r in i)||i[r]<n&&r*n+i[r]<o)&&a.push(r);const s=Math.floor((e-1)/n);return s!==r&&(!(s in i)||s*n+i[s]<e&&e<o)&&a.push(s),a}class PJ{constructor(t,e,n){this.actions$=t,this.store=e,this.dataSource=n,this.loadData$=gS((()=>{const t=this.loadDebuggerRuns(Wt(this.onDebuggerDataPoll(),this.onCoreReload())).pipe(on()),e=this.loadSourceFileList(t),n=this.createNumExecutionLoader(t),o=this.createNumAlertsAndBreakdownLoader(t),i=this.onAlertTypeFocused(),a=this.fetchExecutionDigestsForAlertTypeFocus(i),r=this.createInitialExecutionDetector(n).pipe(on()),s=this.createExecutionDigestLoader(Wt(this.onExecutionScroll(),this.createInitialExecutionDigest(r),a)),l=this.createExecutionDataAndStackFramesLoader(Wt(this.onExecutionDigestFocused(),r.pipe(kn(this.store.select(yZ),this.store.select(tX)),ht((([,t,e])=>({activeRunId:t,loadedExecutionData:e,focusIndex:0}))))));return Wt(o,s,l,this.createNumGraphExecutionLoader(t),e,this.onSourceFileFocused(),this.loadGraphExecutionPages(this.onGraphExecutionScroll()),this.loadGraphOpStackFrames(this.loadGraphOpInfo())).pipe(ht((()=>({}))))}),{dispatch:!1})}onDebuggerDataPoll(){return this.actions$.pipe(xS(vq),dn((t=>(function e(t,n,o){return t.pipe((function i(t){return e=>e.lift(new tn(t))})((t=>t.pipe(kn(n),(function e(t,n){return n?e=>new xe(e,n).lift(new Me(t)):e=>e.lift(new Me(t))})((([,t])=>Zt(t)))))),un(o),ht((()=>{})))})(Z(t),this.store.select(_Z).pipe(ht((t=>(function e(t){return t>6e4?6e4:t>4e3?t:2e3})(t)))),this.actions$.pipe(xS(xq))))),_n((()=>this.store.dispatch(Oq()))),ht((()=>{})))}onCoreReload(){return Wt(this.actions$.pipe(xS(WE,GE)),this.actions$.pipe(xS(VE)).pipe(kn(this.store.select(bZ)),Gt((([,t])=>t.state===BE.NOT_LOADED||t.state===BE.FAILED&&null===t.lastLoadedTimeInMs)))).pipe(kn(this.store.select(dA)),Gt((([,t])=>t===xJ)),_n((()=>this.store.dispatch(Oq()))),ht((()=>{})))}loadDebuggerRuns(t){return t.pipe(kn(this.store.select(bZ)),Gt((([,{state:t}])=>t!==BE.LOADING)),_n((()=>this.store.dispatch(Pq()))),Tt((()=>this.dataSource.fetchRuns().pipe(_n((t=>{this.store.dispatch(wq({runs:t}))})),ht((()=>{}))))))}createNumExecutionLoader(t){return t.pipe(kn(this.store.select(hZ),this.store.select(SZ)),Gt((([,t,e])=>Object.keys(t).length>0&&e.state!==BE.LOADING)),_n((()=>this.store.dispatch(Rq()))),Tt((([,t])=>{const e=Object.keys(t)[0];return this.dataSource.fetchExecutionDigests(e,0,0).pipe(_n((t=>{this.store.dispatch(Tq({numExecutions:t.num_digests}))})),ht((()=>{})))})))}createNumGraphExecutionLoader(t){return t.pipe(kn(this.store.select(hZ),this.store.select(zZ)),Gt((([,t,e])=>Object.keys(t).length>0&&e.state!==BE.LOADING)),_n((()=>this.store.dispatch(Vq()))),Tt((([,t])=>{const e=Object.keys(t)[0];return this.dataSource.fetchGraphExecutionDigests(e,0,0).pipe(_n((t=>{this.store.dispatch(jq({numGraphExecutions:t.num_digests}))})),ht((()=>{})))})))}createNumAlertsAndBreakdownLoader(t){return t.pipe(kn(this.store.select(hZ),this.store.select(MZ)),Gt((([,t,e])=>Object.keys(t).length>0&&e.state!==BE.LOADING)),_n((()=>this.store.dispatch(Sq()))),Tt((([,t])=>{const e=Object.keys(t)[0];return this.dataSource.fetchAlerts(e,0,0).pipe(_n((t=>{this.store.dispatch(Dq({numAlerts:t.num_alerts,alertsBreakdown:t.alerts_breakdown}))})),ht((()=>{})))})))}createInitialExecutionDetector(t){return t.pipe(kn(this.store.select(EZ),this.store.select(DZ)),Gt((([,t,e])=>t>0&&0===Object.keys(e.pageLoadedSizes).length)),ht((()=>{})))}createInitialExecutionDigest(t){return t.pipe(kn(this.store.select(EZ),this.store.select(yZ),this.store.select(RZ)),Gt((([,,t])=>null!==t)),ht((([,t,e,n])=>({begin:0,end:Math.min(t,n),runId:e}))))}onExecutionScroll(){return this.actions$.pipe(xS(zq,Hq,Fq),kn(this.store.select(yZ),this.store.select(AZ),this.store.select(EZ),this.store.select(TZ),this.store.select(RZ)),Gt((([t])=>null!==t)),ht((([,t,e,n,o,i])=>({runId:t,begin:e,end:Math.min(n,e+o),pageSize:i}))),kn(this.store.select(DZ)),ht((([t,e])=>({props:t,loaded:e,missingPages:OJ(t.begin,t.end,t.pageSize,e.numExecutions,e.pageLoadedSizes)}))),Gt((({missingPages:t})=>t.length>0)),ht((({props:t,loaded:e,missingPages:n})=>{const{runId:o,pageSize:i}=t;return{begin:n[0]*i,end:Math.min(e.numExecutions,(n[n.length-1]+1)*i),runId:o}})))}createExecutionDigestLoader(t){return t.pipe(kn(this.store.select(DZ)),Gt((([{begin:t,end:e},n])=>e>t&&!(function o(t,e,n){if(e>=n)throw new Error(`Expected begin to be less than end, but got begin=${e}, end=${n}`);return-1!==t.findIndex((t=>t.begin>=e&&t.end<=n))})(n.loadingRanges,t,e))),_n((([{begin:t,end:e}])=>{this.store.dispatch(Nq({begin:t,end:e}))})),Tt((([{runId:t,begin:e,end:n}])=>this.dataSource.fetchExecutionDigests(t,e,n).pipe(_n((t=>{this.store.dispatch(Iq(t))})),ht((()=>{}))))))}onExecutionDigestFocused(){return this.actions$.pipe(xS(Lq),kn(this.store.select(yZ),this.store.select(tX),this.store.select(AZ)),ht((([t,e,n,o])=>({activeRunId:e,loadedExecutionData:n,focusIndex:o+t.displayIndex}))))}createExecutionDataAndStackFramesLoader(t){return t.pipe(Gt((({activeRunId:t,loadedExecutionData:e,focusIndex:n})=>null!==t&&null!==n&&void 0===e[n])),Tt((({activeRunId:t,focusIndex:e})=>{const n=e,o=n+1;return this.dataSource.fetchExecutionData(t,n,o).pipe(_n((t=>{this.store.dispatch(Bq(t))})),ht((t=>({executionData:t,begin:n,end:o}))))})),ht((({executionData:t})=>t.executions[0])),kn(this.store.select(yZ),this.store.select(nX)),Gt((([t,e,n])=>{if(null===e)return!1;for(const e of t.stack_frame_ids)if(void 0===n[e])return!0;return!1})),Tt((([t,e])=>{const n=t.stack_frame_ids;return this.dataSource.fetchStackFrames(e,n).pipe(_n((t=>{const e={};for(let o=0;o<n.length;++o)e[n[o]]=t.stack_frames[o];this.store.dispatch(eZ({stackFrames:e}))})),ht((()=>{})))})))}onGraphExecutionScroll(){return this.actions$.pipe(xS(Gq),de(100),kn(this.store.select(yZ),this.store.select(HZ),this.store.select(FZ)),Gt((([,t,e])=>null!==t&&e>0)),ht((([,t,e,n])=>({runId:t,numGraphExecutions:e,scrollBeginIndex:n}))),kn(this.store.select(BZ),this.store.select(LZ),this.store.select(VZ),this.store.select(jZ)),ht((([{runId:t,numGraphExecutions:e,scrollBeginIndex:n},o,i,a,r])=>{let s=OJ(n,Math.min(n+i,e),o,e,r);return s=s.filter((t=>-1===a.indexOf(t))),{runId:t,missingPages:s,pageSize:o,numGraphExecutions:e}})))}loadGraphExecutionPages(t){return t.pipe(Gt((({missingPages:t})=>t.length>0)),_n((({missingPages:t})=>{t.forEach((t=>{this.store.dispatch(Uq({pageIndex:t}))}))})),Tt((({runId:t,missingPages:e,pageSize:n,numGraphExecutions:o})=>{const i=e[0]*n,a=Math.min((e[e.length-1]+1)*n,o);return this.dataSource.fetchGraphExecutionData(t,i,a).pipe(_n((t=>{this.store.dispatch(Wq(t))})),ht((()=>{})))})))}loadGraphOpInfo(){return this.actions$.pipe(xS(qq,Yq),kn(this.store.select(yZ),this.store.select(eX)),Gt((([t,e,n])=>{const{graph_id:o,op_name:i}=t;return!(null===e||void 0!==n[o]&&n[o].has(i)&&(n[o].get(i)===BE.LOADING||n[o].get(i)===BE.LOADED))})),_n((([{graph_id:t,op_name:e}])=>this.store.dispatch(Zq({graph_id:t,op_name:e})))),Tt((([t,e])=>{const{graph_id:n,op_name:o}=t;return this.dataSource.fetchGraphOpInfo(e,n,o).pipe(_n((t=>this.store.dispatch(Xq({graphOpInfoResponse:t})))),ht((t=>({runId:e,stackFrameIds:t.stack_frame_ids}))))})))}loadGraphOpStackFrames(t){return t.pipe(kn(this.store.select(nX)),ht((([{runId:t,stackFrameIds:e},n])=>({runId:t,missingStackFrameIds:e.filter((t=>void 0===n[t]))}))),Gt((({runId:t,missingStackFrameIds:e})=>null!==t&&e.length>0)),Tt((({runId:t,missingStackFrameIds:e})=>this.dataSource.fetchStackFrames(t,e).pipe(_n((t=>{const n={};for(let o=0;o<e.length;++o)n[e[o]]=t.stack_frames[o];this.store.dispatch(eZ({stackFrames:n}))})),ht((()=>{}))))))}onAlertTypeFocused(){return this.actions$.pipe(xS(Aq),kn(this.store.select(yZ),this.store.select(xZ),this.store.select(OZ),this.store.select(PZ),this.store.select(MZ)),Gt((([,t,e,n,o,i])=>null!==t&&null!==e&&n>0&&(null===o||Object.keys(o).length<n)&&i.state!==BE.LOADING)),_n((()=>this.store.dispatch(Sq()))),Tt((([,t,e])=>this.dataSource.fetchAlerts(t,0,-1,e))),_n((({num_alerts:t,alerts_breakdown:e,alert_type:n,begin:o,end:i,alerts:a})=>{this.store.dispatch(Eq({numAlerts:t,alertsBreakdown:e,alertType:n,begin:o,end:i,alerts:a}))})))}fetchExecutionDigestsForAlertTypeFocus(t){return t.pipe(kn(this.store.select(RZ),this.store.select(TZ),this.store.select(EZ),this.store.select(DZ),this.store.select(yZ)),ht((([t,e,n,o,i,a])=>{const r=t.alerts[0].execution_index,s=OJ(Math.max(0,r-Math.floor(n/2)),Math.min(r+Math.floor(n/2),o),e,o,i.pageLoadedSizes);return 0===s.length?{runId:a,begin:0,end:0}:{runId:a,begin:s[0]*e,end:Math.min(i.numExecutions,(s[s.length-1]+1)*e)}})))}loadSourceFileList(t){return t.pipe(kn(this.store.select(yZ),this.store.select(sX)),Gt((([,t,e])=>null!==t&&e.state!==BE.LOADING)),_n((()=>this.store.dispatch(Kq()))),Tt((([,t])=>this.dataSource.fetchSourceFileList(t).pipe(_n((t=>{const e=[];t.forEach((([t,n])=>{e.push({host_name:t,file_path:n})})),this.store.dispatch(Jq({sourceFiles:e}))})),ht((()=>{}))))))}onSourceFileFocused(){return this.actions$.pipe(xS(Qq),kn(this.store.select(yZ),this.store.select(lX),this.store.select(cX)),ht((([t,e,n,o])=>({runId:e,stackFrame:t.stackFrame,fileIndex:n,fileContent:o}))),Gt((({runId:t,fileContent:e})=>null!==t&&null!==e&&e.loadState===BE.NOT_LOADED)),_n((({stackFrame:t})=>this.store.dispatch($q({host_name:t.host_name,file_path:t.file_path})))),Tt((({fileIndex:t,runId:e})=>this.dataSource.fetchSourceFile(e,t).pipe(_n((t=>{this.store.dispatch(tZ(t))})),ht((()=>{}))))))}}PJ.ɵfac=function t(e){return new(e||PJ)(us(vS),us(Ek),us(yq))},PJ.ɵprov=lo({token:PJ,factory:PJ.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(PJ,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:yq}]}),null);class wJ{}wJ.ɵfac=function t(e){return new(e||wJ)},wJ.ɵmod=Zo({type:wJ}),wJ.ɵinj=co({imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(wJ,{declarations:[fX,hX],imports:[Bv],exports:[hX]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(wJ,[{type:k_,args:[{declarations:[fX,hX],imports:[Bv],exports:[hX]}]}],null,null);class kJ{}kJ.ɵfac=function t(e){return new(e||kJ)},kJ.ɵmod=Zo({type:kJ}),kJ.ɵinj=co({imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(kJ,{declarations:[EK,_K,AK],imports:[Bv],exports:[AK]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(kJ,[{type:k_,args:[{declarations:[EK,_K,AK],imports:[Bv],exports:[AK]}]}],null,null);class SJ{}SJ.ɵfac=function t(e){return new(e||SJ)},SJ.ɵmod=Zo({type:SJ}),SJ.ɵinj=co({imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(SJ,{declarations:[WX,ZX,qX,GX,YX,XX],imports:[Bv],exports:[XX]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(SJ,[{type:k_,args:[{declarations:[WX,ZX,qX,GX,YX,XX],imports:[Bv],exports:[XX]}]}],null,null);class DJ{}DJ.ɵfac=function t(e){return new(e||DJ)},DJ.ɵmod=Zo({type:DJ}),DJ.ɵinj=co({imports:[[Bv,SJ,iF]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(DJ,{declarations:[BK,VK],imports:[Bv,SJ,iF],exports:[VK]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(DJ,[{type:k_,args:[{declarations:[BK,VK],imports:[Bv,SJ,iF],exports:[VK]}]}],null,null);class EJ{}EJ.ɵfac=function t(e){return new(e||EJ)},EJ.ɵmod=Zo({type:EJ}),EJ.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(EJ,{declarations:[Cq,Mq],exports:[Mq]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(EJ,[{type:k_,args:[{declarations:[Cq,Mq],exports:[Mq]}]}],null,null);class AJ{}AJ.ɵfac=function t(e){return new(e||AJ)},AJ.ɵmod=Zo({type:AJ}),AJ.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(AJ,{declarations:[qK],exports:[qK]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(AJ,[{type:k_,args:[{exports:[qK],declarations:[qK]}]}],null,null);const RJ=["codeViewerContainer"];class TJ{constructor(){this.firstText=null,this.secondText=null,this.renderSideBySide=!0,this.monaco=null,this.editor=null,this.RESIZE_DEBOUNCE_INTERVAL_MS=50}onResize(){this.editor&&this.editor.layout()}ngOnChanges(t){if(!this.monaco)return;const e=!this.editor;e&&(this.editor=this.monaco.editor.createDiffEditor(this.codeViewerContainer.nativeElement,{readOnly:!0,fontSize:10,minimap:{enabled:!0},renderSideBySide:this.renderSideBySide,theme:YK(this.useDarkMode)})),(e||t.firstText||t.secondText)&&this.editor.setModel({original:this.monaco.editor.createModel(this.firstText||""),modified:this.monaco.editor.createModel(this.secondText||"")}),t.renderSideBySide&&this.editor.updateOptions({renderSideBySide:this.renderSideBySide}),t.useDarkMode&&this.monaco.editor.setTheme(YK(this.useDarkMode))}}TJ.ɵfac=function t(e){return new(e||TJ)},TJ.ɵcmp=Uo({type:TJ,selectors:[["source-code-diff-component"]],viewQuery:function t(e,n){if(1&e&&Wb(RJ,3,ch),2&e){let t;Ub(t=Yb())&&(n.codeViewerContainer=t.first)}},inputs:{firstText:"firstText",secondText:"secondText",renderSideBySide:"renderSideBySide",monaco:"monaco",useDarkMode:"useDarkMode"},features:[Si],decls:2,vars:1,consts:[["detectResize","",1,"code-viewer-container",3,"resizeEventDebouncePeriodInMs","onResize"],["codeViewerContainer",""]],template:function t(e,n){1&e&&(Ou(0,"div",0,1),Nu("onResize",(function t(){return n.onResize()})),Pu()),2&e&&vu("resizeEventDebouncePeriodInMs",n.RESIZE_DEBOUNCE_INTERVAL_MS)},directives:[qK],styles:[".code-viewer-container[_ngcontent-%COMP%] {\n        height: 100%;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(TJ,[{type:h_,args:[{selector:"source-code-diff-component",template:'\n    <div\n      #codeViewerContainer\n      class="code-viewer-container"\n      detectResize\n      [resizeEventDebouncePeriodInMs]="RESIZE_DEBOUNCE_INTERVAL_MS"\n      (onResize)="onResize()"\n    ></div>\n  ',styles:["\n      .code-viewer-container {\n        height: 100%;\n      }\n    "],changeDetection:xo.OnPush}]}],null,{firstText:[{type:y_}],secondText:[{type:y_}],renderSideBySide:[{type:y_}],monaco:[{type:y_}],useDarkMode:[{type:y_}],codeViewerContainer:[{type:Fr,args:["codeViewerContainer",{static:!0,read:ch}]}]});class NJ{constructor(){this.firstText=null,this.secondText=null,this.renderSideBySide=!0,this.useDarkMode=!1,this.monaco$=null}ngOnInit(){this.monaco$=Rt(GK()).pipe(ht((()=>window.monaco)))}}NJ.ɵfac=function t(e){return new(e||NJ)},NJ.ɵcmp=Uo({type:NJ,selectors:[["source-code-diff"]],inputs:{firstText:"firstText",secondText:"secondText",renderSideBySide:"renderSideBySide",useDarkMode:"useDarkMode"},decls:2,vars:7,consts:[[3,"firstText","secondText","renderSideBySide","monaco","useDarkMode"]],template:function t(e,n){1&e&&(wu(0,"source-code-diff-component",0),Ob(1,"async")),2&e&&vu("firstText",n.firstText)("secondText",n.secondText)("renderSideBySide",n.renderSideBySide)("monaco",Pb(1,5,n.monaco$))("useDarkMode",n.useDarkMode)},directives:[TJ],pipes:[Mv],styles:["source-code-diff-component[_ngcontent-%COMP%] {\n        display: block;\n        height: 100%;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(NJ,[{type:h_,args:[{selector:"source-code-diff",template:'\n    <source-code-diff-component\n      [firstText]="firstText"\n      [secondText]="secondText"\n      [renderSideBySide]="renderSideBySide"\n      [monaco]="monaco$ | async"\n      [useDarkMode]="useDarkMode"\n    ></source-code-diff-component>\n  ',styles:["\n      source-code-diff-component {\n        display: block;\n        height: 100%;\n      }\n    "],changeDetection:xo.OnPush}]}],null,{firstText:[{type:y_}],secondText:[{type:y_}],renderSideBySide:[{type:y_}],useDarkMode:[{type:y_}]});class IJ{}IJ.ɵfac=function t(e){return new(e||IJ)},IJ.ɵmod=Zo({type:IJ}),IJ.ɵinj=co({imports:[[Bv,AJ]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(IJ,{declarations:[XK,KK,TJ,NJ],imports:[Bv,AJ],exports:[KK,NJ]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(IJ,[{type:k_,args:[{declarations:[XK,KK,TJ,NJ],imports:[Bv,AJ],exports:[KK,NJ]}]}],null,null);class zJ{}zJ.ɵfac=function t(e){return new(e||zJ)},zJ.ɵmod=Zo({type:zJ}),zJ.ɵinj=co({imports:[[Bv,IJ]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(zJ,{declarations:[tJ,eJ],imports:[Bv,IJ],exports:[eJ]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(zJ,[{type:k_,args:[{declarations:[tJ,eJ],imports:[Bv,IJ],exports:[eJ]}]}],null,null);class HJ{}HJ.ɵfac=function t(e){return new(e||HJ)},HJ.ɵmod=Zo({type:HJ}),HJ.ɵinj=co({imports:[[Bv,IJ]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(HJ,{declarations:[bJ,yJ],imports:[Bv,IJ],exports:[yJ]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(HJ,[{type:k_,args:[{declarations:[bJ,yJ],imports:[Bv,IJ],exports:[yJ]}]}],null,null);class FJ{}FJ.ɵfac=function t(e){return new(e||FJ)},FJ.ɵmod=Zo({type:FJ}),FJ.ɵinj=co({imports:[[Bv,SJ]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(FJ,{declarations:[eK,oK],imports:[Bv,SJ],exports:[oK]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(FJ,[{type:k_,args:[{declarations:[eK,oK],imports:[Bv,SJ],exports:[oK]}]}],null,null);class LJ{}LJ.ɵfac=function t(e){return new(e||LJ)},LJ.ɵmod=Zo({type:LJ}),LJ.ɵinj=co({imports:[[Bv,FJ,zH,PX]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(LJ,{declarations:[dK,mK],imports:[Bv,FJ,zH,PX],exports:[mK]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(LJ,[{type:k_,args:[{declarations:[dK,mK],imports:[Bv,FJ,zH,PX],exports:[mK]}]}],null,null);class BJ{}BJ.ɵfac=function t(e){return new(e||BJ)},BJ.ɵmod=Zo({type:BJ}),BJ.ɵinj=co({imports:[[wJ,Bv,CA,DJ,kJ,EJ,zJ,HJ,_q,LJ,iS.forFeature(nZ,fZ),LS.forFeature([PJ]),bq.forPlugin(xJ,vJ)]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(BJ,{declarations:[MJ,vJ],imports:[wJ,Bv,CA,DJ,kJ,EJ,zJ,HJ,_q,LJ,oS,FS,bq],exports:[vJ]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(BJ,[{type:k_,args:[{declarations:[MJ,vJ],imports:[wJ,Bv,CA,DJ,kJ,EJ,zJ,HJ,_q,LJ,iS.forFeature(nZ,fZ),LS.forFeature([PJ]),bq.forPlugin(xJ,vJ)],exports:[vJ],entryComponents:[vJ]}]}],null,null);const VJ=Ww("[Metrics] Metrics Tag Metadata Requested"),jJ=Ww("[Metrics] Metrics Tag Metadata Loaded",{_as:"props",_p:void 0}),UJ=Ww("[Metrics] Metrics Tag Metadata Failed"),WJ=Ww("[Metrics] Metrics Settings Change Tooltip",{_as:"props",_p:void 0});Ww("[Metrics] Metrics Settings Toggle Show Data Download");const GJ=Ww("[Metrics] Metrics Setting Toggle Ignore Outlier"),YJ=Ww("[Metrics] Metrics Setting Change X Axis Type",{_as:"props",_p:void 0}),qJ=Ww("[Metrics] Metrics Setting Change Scalar Smoothing",{_as:"props",_p:void 0}),ZJ=Ww("[Metrics] Metrics Setting Partition Non Monotonic X Toggled"),XJ=Ww("[Metrics] Metrics Setting Change Image Brightness",{_as:"props",_p:void 0}),KJ=Ww("[Metrics] Metrics Setting Change Image Contrast",{_as:"props",_p:void 0}),JJ=Ww("[Metrics] Image Brightness Setting Reset"),QJ=Ww("[Metrics] Image Contrast Setting Reset"),$J=Ww("[Metrics] Metrics Setting Toggle Image Show Actual Size"),tQ=Ww("[Metrics] Metrics Setting Change Histogram Mode",{_as:"props",_p:void 0}),eQ=Ww("[Metrics] Multiple Time Series Requested",{_as:"props",_p:void 0}),nQ=Ww("[Metrics] Fetch Time Series Request Failed",{_as:"props",_p:void 0}),oQ=Ww("[Metrics] Fetch Time Series Response Loaded",{_as:"props",_p:void 0}),iQ=Ww("[Metrics] Card Visibility Changed",{_as:"props",_p:void 0}),aQ=Ww("[Metrics] Card Step Slider Changed",{_as:"props",_p:void 0}),rQ=Ww("[Metrics] Tag Filter Changed",{_as:"props",_p:void 0}),sQ=Ww("[Metrics] Metrics Tag Group Expansion Changed",{_as:"props",_p:void 0}),lQ=Ww("[Metrics] Card Pin State Toggled",{_as:"props",_p:void 0}),cQ=Ww("[Metrics] Linked Time Selection Changed",{_as:"props",_p:void 0}),dQ=Ww("[Metrics] Linked Time Selection Cleared");function pQ(t,e){const n={};for(const o of Object.keys(t))n[o]=e(t[o],o);return n}function mQ(t,e,n){const{plugin:o,tag:i,runId:a,sample:r}=e[t],s=pT(n,o,i,r);if(s){if(null!==a&&s.runToSeries.hasOwnProperty(a)){const t=s.runToSeries[a].length;return t>0?t-1:null}const t=Object.values(s.runToSeries).map((t=>t.length));if(t.length)return Math.max(...t)-1}return null}function uQ(t,e,n,o){const i=Object.assign({},e);for(const a in t){if(!t.hasOwnProperty(a))continue;const r=mQ(a,t,n);if(null===r){e.hasOwnProperty(a)&&(i[a]=null);continue}const s=e.hasOwnProperty(a)?e[a]:null,l=mQ(a,t,o),c=null!==s&&s===l,d=null===s||c;(null!==s&&s>r||d)&&(i[a]=r)}return i}function fQ(t){const e=pQ(t.runToLoadState,(t=>t===BE.LOADING?BE.LOADING:BE.NOT_LOADED));return Object.assign(Object.assign({},t),{runToLoadState:e})}function gQ(t,e,n,o){return JSON.stringify([t,e,n||"",o])}const{initialState:hQ,reducers:bQ}=ON({tagMetadataLoaded:BE.NOT_LOADED,tagMetadata:{scalars:{tagDescriptions:{},tagToRuns:{}},histograms:{tagDescriptions:{},tagToRuns:{}},images:{tagDescriptions:{},tagRunSampledInfo:{}}},cardList:[],cardToPinnedCopy:new Map,pinnedCardToOriginal:new Map,unresolvedImportedPinnedCards:[],cardMetadataMap:{},cardStepIndex:{},tagFilter:"",tagGroupExpanded:new Map,selectedTime:null},{timeSeriesData:{scalars:{},histograms:{},images:{}},settings:CT,settingOverrides:{},visibleCards:new Set},(t=>Object.assign(Object.assign({},t),{visibleCards:new Set}))),yQ=hQ,_Q=mS(hQ,pS(tD,((t,{routeKind:e,partialState:n})=>{if(e!==jS.EXPERIMENT&&e!==jS.COMPARE_EXPERIMENT)return t;const o=new Set;for(const e of t.pinnedCardToOriginal.keys()){const{plugin:n,tag:i,runId:a,sample:r}=t.cardMetadataMap[e];o.add(gQ(n,i,a,r))}const i=n,a=[];for(const e of[...t.unresolvedImportedPinnedCards,...i.metrics.pinnedCards]){const t=gQ(e.plugin,e.tag,e.runId,e.sample);o.has(t)||(o.add(t),a.push(e))}const r=hT(a,t.cardList,t.cardMetadataMap,t.cardToPinnedCopy,t.pinnedCardToOriginal,t.cardStepIndex),s=i.metrics.smoothing;let l=t.settingOverrides;if(Number.isFinite(s)&&null!==s){const e=Math.max(0,Math.min(.999,Number(s.toPrecision(3))));l=Object.assign(Object.assign({},t.settingOverrides),{scalarSmoothing:e})}return Object.assign(Object.assign(Object.assign({},t),r),{settingOverrides:l})})),pS(PR,((t,{partialSettings:e})=>{const n={};if(e.tooltipSortString)switch(e.tooltipSortString){case lR.ASCENDING:n.tooltipSort=lR.ASCENDING;break;case lR.DESCENDING:n.tooltipSort=lR.DESCENDING;break;case lR.DEFAULT:n.tooltipSort=lR.DEFAULT;break;case lR.NEAREST:n.tooltipSort=lR.NEAREST}return"boolean"==typeof e.ignoreOutliers&&(n.ignoreOutliers=e.ignoreOutliers),"number"==typeof e.scalarSmoothing&&(n.scalarSmoothing=e.scalarSmoothing),Object.assign(Object.assign({},t),{settings:Object.assign(Object.assign({},t.settings),n)})})),pS(GE,WE,(t=>{const e=t.tagMetadataLoaded===BE.LOADING?BE.LOADING:BE.NOT_LOADED,n=pQ(t.timeSeriesData,((t,e)=>pQ(t,(t=>mR(e)?pQ(t,(t=>fQ(t))):fQ(t)))));return Object.assign(Object.assign({},t),{tagMetadataLoaded:e,timeSeriesData:n})})),pS(VJ,(t=>Object.assign(Object.assign({},t),{tagMetadataLoaded:BE.LOADING}))),pS(UJ,(t=>Object.assign(Object.assign({},t),{tagMetadataLoaded:BE.FAILED}))),pS(jJ,((t,{tagMetadata:e})=>{const n={scalars:MQ(e,sR.SCALARS),histograms:MQ(e,sR.HISTOGRAMS),images:e[sR.IMAGES]},o=Object.assign({},t.cardMetadataMap),i=(function a(t){const e=[];for(let n of Object.keys(t)){const o=n;let i;if(mR(o)){if(!fR(o))throw new Error("Multi-run, sampled plugin support not yet implemented");{const n=t[o].tagRunSampledInfo;for(const t of Object.keys(n))for(const i of Object.keys(n[t])){const{maxSamplesPerStep:a}=n[t][i];for(let n=0;n<a;n++)e.push({plugin:o,tag:t,runId:i,sample:n})}}}else if(fR(o)){i=t[o].tagToRuns;for(const t of Object.keys(i))for(const n of i[t])e.push({plugin:o,tag:t,runId:n})}else{i=t[o].tagToRuns;for(const t of Object.keys(i))e.push({plugin:o,tag:t,runId:null})}}return e})(n),r=[];for(const e of i){const n=uT(e);t.cardMetadataMap.hasOwnProperty(n)||(o[n]=e,r.push(n))}const s=[...t.cardList,...r],l=hT(t.unresolvedImportedPinnedCards,r,o,t.cardToPinnedCopy,t.pinnedCardToOriginal,t.cardStepIndex);return Object.assign(Object.assign(Object.assign({},t),l),{tagMetadataLoaded:BE.LOADED,tagMetadata:n,cardList:s})})),pS(rQ,((t,{tagFilter:e})=>Object.assign(Object.assign({},t),{tagFilter:e}))),pS(WJ,((t,{sort:e})=>Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{tooltipSort:e})}))),pS(GJ,(t=>{var e;const n=!(null!==(e=t.settingOverrides.ignoreOutliers)&&void 0!==e?e:t.settings.ignoreOutliers);return Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{ignoreOutliers:n})})})),pS(YJ,((t,{xAxisType:e})=>Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{xAxisType:e})}))),pS(qJ,((t,{smoothing:e})=>Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{scalarSmoothing:e})}))),pS(ZJ,(t=>{var e;const n=!(null!==(e=t.settingOverrides.scalarPartitionNonMonotonicX)&&void 0!==e?e:t.settings.scalarPartitionNonMonotonicX);return Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{scalarPartitionNonMonotonicX:n})})})),pS(XJ,((t,{brightnessInMilli:e})=>Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{imageBrightnessInMilli:e})}))),pS(KJ,((t,{contrastInMilli:e})=>Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{imageContrastInMilli:e})}))),pS(JJ,(t=>Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{imageBrightnessInMilli:void 0})}))),pS(QJ,(t=>Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{imageContrastInMilli:void 0})}))),pS($J,(t=>{var e;const n=!(null!==(e=t.settingOverrides.imageShowActualSize)&&void 0!==e?e:t.settings.imageShowActualSize);return Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{imageShowActualSize:n})})})),pS(tQ,((t,{histogramMode:e})=>Object.assign(Object.assign({},t),{settingOverrides:Object.assign(Object.assign({},t.settingOverrides),{histogramMode:e})}))),pS(eQ,((t,{requests:e})=>{if(!e.length)return t;const n=Object.assign({},t.timeSeriesData);for(const o of e){const{plugin:e,tag:i,sample:a}=o;n[e]=mT(n,e,i,a);const r=pT(n,e,i,a),s=gR(o)?[o.runId]:gT(t.tagMetadata,e,i,a);r.runToLoadState=fT(BE.LOADING,s,r.runToLoadState)}return Object.assign(Object.assign({},t),{timeSeriesData:n})})),pS(nQ,((t,{request:e})=>{const n=Object.assign({},t.timeSeriesData),{plugin:o,tag:i,sample:a}=e;n[o]=mT(n,o,i,a);const r=pT(n,o,i,a),s=gR(e)?[e.runId]:gT(t.tagMetadata,o,i,a);return r.runToLoadState=fT(BE.FAILED,s,r.runToLoadState),Object.assign(Object.assign({},t),{timeSeriesData:n})})),pS(oQ,((t,{response:e})=>{const n=Object.assign({},t.timeSeriesData),{plugin:o,tag:i,runId:a,sample:r}=e;n[o]=mT(n,o,i,r);const s=pT(n,o,i,r);if(bR(e)){const e=a?[a]:gT(t.tagMetadata,o,i,r);s.runToLoadState=fT(BE.FAILED,e,s.runToLoadState)}else{const t=e.runToSeries;s.runToSeries=Object.assign({},s.runToSeries),s.runToLoadState=Object.assign({},s.runToLoadState);for(const e in t)t.hasOwnProperty(e)&&(s.runToSeries[e]=t[e],s.runToLoadState[e]=BE.LOADED)}return Object.assign(Object.assign({},t),{timeSeriesData:n,cardStepIndex:uQ(t.cardMetadataMap,t.cardStepIndex,n,t.timeSeriesData)})})),pS(aQ,((t,{cardId:e,stepIndex:n})=>{const o=mQ(e,t.cardMetadataMap,t.timeSeriesData);let i=n;return null===o?i=null:n>o&&(i=o),Object.assign(Object.assign({},t),{cardStepIndex:Object.assign(Object.assign({},t.cardStepIndex),{[e]:i})})})),pS(sQ,((t,{tagGroup:e})=>{const n=new Map(t.tagGroupExpanded);return n.set(e,!n.get(e)),Object.assign(Object.assign({},t),{tagGroupExpanded:n})})),pS(iQ,((t,{enteredCards:e,exitedCards:n})=>{if(0===e.size&&0===n.size)return t;const o=new Set(t.visibleCards);return e.forEach((t=>{o.add(t)})),n.forEach((t=>{if(o.delete(t),e.has(t))throw new Error("A 'cardVisibilityChanged' with an invalid payload contains overlapping sets")})),Object.assign(Object.assign({},t),{visibleCards:o})})),pS(lQ,((t,{cardId:e})=>{const n=t.pinnedCardToOriginal.has(e),o=!n&&!t.cardToPinnedCopy.has(e);if(o&&!yT(t))return t;let i=new Map(t.cardToPinnedCopy),a=new Map(t.pinnedCardToOriginal),r=Object.assign({},t.cardMetadataMap),s=Object.assign({},t.cardStepIndex);if(n){const n=t.pinnedCardToOriginal.get(e);i.delete(n),a.delete(e),delete r[e],delete s[e]}else if(o){const t=bT(e,i,a,s,r);i=t.cardToPinnedCopy,a=t.pinnedCardToOriginal,r=t.cardMetadataMap,s=t.cardStepIndex}else{const n=t.cardToPinnedCopy.get(e);i.delete(e),a.delete(n),delete r[n],delete s[n]}return Object.assign(Object.assign({},t),{cardMetadataMap:r,cardStepIndex:s,cardToPinnedCopy:i,pinnedCardToOriginal:a})})),pS(cQ,((t,e)=>Object.assign(Object.assign({},t),{selectedTime:{start:{step:e.startStep,wallTime:e.startWallTime},end:void 0===e.endStep||void 0===e.endWallTime?null:{step:e.endStep,wallTime:e.endWallTime}}}))),pS(dQ,(t=>Object.assign(Object.assign({},t),{selectedTime:null}))));function CQ(t,e){return SN(_Q,bQ)(t,e)}function MQ(t,e){return{tagDescriptions:t[e].tagDescriptions,tagToRuns:vQ(t[e].runTagInfo)}}function vQ(t){const e={};for(const n in t)for(const o of t[n])e[o]=[...e[o]||[],n];return e}const xQ=zk(OT,kT,((t,e,n)=>e?Object.assign(Object.assign({},e),{loadState:t,id:n}):null)),OQ=Ww("[Metrics Effects] Init");class PQ{constructor(t,e,n){this.actions$=t,this.store=e,this.dataSource=n,this.dashboardShownWithoutData$=this.actions$.pipe(xS(OQ,VE,oD),kn(this.store.select(dA),this.store.select(vT)),Gt((([,t,e])=>t===dR&&e===BE.NOT_LOADED))),this.reloadRequestedWhileShown$=this.actions$.pipe(xS(GE,WE),kn(this.store.select(dA)),Gt((([,t])=>t===dR))),this.loadTagMetadata$=Wt(this.dashboardShownWithoutData$,this.reloadRequestedWhileShown$).pipe(kn(this.store.select(vT),this.store.select(xD)),Gt((([,t,e])=>t!==BE.LOADING&&null!==e)),_n((()=>{this.store.dispatch(VJ())})),dn((([,,t])=>this.dataSource.fetchTagMetadata(t).pipe(_n((t=>{this.store.dispatch(jJ({tagMetadata:t}))})),re((()=>(this.store.dispatch(UJ()),Z(null)))))))),this.visibleCardsWithoutDataChanged$=this.actions$.pipe(xS(iQ),dn((()=>this.getVisibleCardFetchInfos().pipe(Ne(1)))),ht((t=>t.filter((t=>t.loadState===BE.NOT_LOADED))))),this.visibleCardsReloaded$=this.reloadRequestedWhileShown$.pipe(dn((()=>this.getVisibleCardFetchInfos().pipe(Ne(1)))),ht((t=>t.filter((t=>t.loadState!==BE.LOADING))))),this.loadTimeSeries$=Wt(this.visibleCardsWithoutDataChanged$,this.visibleCardsReloaded$).pipe(Gt((t=>t.length>0)),kn(this.store.select(xD).pipe(Gt((t=>null!==t)))),Tt((([t,e])=>this.fetchTimeSeriesForCards(t,e)))),this.dataEffects$=gS((()=>Wt(this.loadTagMetadata$,this.loadTimeSeries$)),{dispatch:!1})}ngrxOnInitEffects(){return OQ()}getVisibleCardFetchInfos(){return this.store.select(DT).pipe(dn((t=>t.size?Lt([...t].map((t=>this.store.select(xQ,t).pipe(Ne(1))))):Z([]))),ht((t=>t.filter(Boolean))))}fetchTimeSeries(t){return this.dataSource.fetchTimeSeries([t]).pipe(_n((t=>{const e=t.filter(bR);e.length&&console.error("Time series response contained errors:",e),this.store.dispatch(oQ({response:t[0]}))})),re((()=>(this.store.dispatch(nQ({request:t})),Z(null)))))}fetchTimeSeriesForCards(t,e){return Z(t.map((t=>{const{plugin:n,tag:o,runId:i,sample:a}=t;return fR(n)?{plugin:n,tag:o,sample:a,runId:i}:{plugin:n,tag:o,sample:a,experimentIds:e}}))).pipe(_n((t=>{this.store.dispatch(eQ({requests:t}))})),Tt((t=>Wt(...t.map((t=>this.fetchTimeSeries(t)))))))}}PQ.ɵfac=function t(e){return new(e||PQ)(us(vS),us(Ek),us(hR))},PQ.ɵprov=lo({token:PQ,factory:PQ.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(PQ,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:hR}]}),null);const wQ=new Nr("Metrics Store Config"),kQ=new Nr("Metrics Initial Settings Config");function SQ(t){return t?{initialState:Object.assign(Object.assign({},yQ),{settings:t})}:{initialState:yQ}}var DQ;!(function(t){t.CHECKBOX="checkbox",t.RUN_NAME="run_name",t.EXPERIMENT_NAME="experiment_name",t.RUN_COLOR="run_color"})(DQ||(DQ={}));const EQ=Fk(xA),AQ=zk(EQ,((t,e)=>{const n=[];for(const o of e)t.specs[o]&&n.push(t.specs[o].hparam.defaultFilters);return GA(n)})),RQ=zk(AQ,EQ,((t,e,n)=>{var o;const i=WA(n),a=e.filters[i];return new Map([...t,...null!==(o=null==a?void 0:a.hparams)&&void 0!==o?o:[]])})),TQ=zk(EQ,((t,e)=>{const n=[];for(const o of e)t.specs[o]&&n.push(t.specs[o].metric.defaultFilters);return YA(n)})),NQ=zk(TQ,EQ,((t,e,n)=>{var o;const i=WA(n),a=e.filters[i];return new Map([...t,...null!==(o=null==a?void 0:a.metrics)&&void 0!==o?o:[]])})),IQ=zk(EQ,((t,e)=>(function n(...t){const e=new Map,n=new Map,o=new Map,i=new Map,a=[];for(const r of t){for(const t of r.hparams)if(n.has(t.name)||n.set(t.name,new Set),n.get(t.name).add(t.displayName),e.has(t.name)){const n=e.get(t.name),o=t;if(n.type!==o.type&&a.push(`Hparam, ${o.name}, types have to match. Got: ${n.type} vs. ${o.type}`),n.domain.type===LA.INTERVAL&&o.domain.type===LA.INTERVAL)n.domain.minValue===o.domain.minValue&&n.domain.maxValue===o.domain.maxValue||a.push(`Hparam, ${o.name}, domains have to match. Got: ${n.domain} vs. ${o.domain}`);else if(n.domain.type===LA.DISCRETE&&o.domain.type===LA.DISCRETE){const t=new Set([...n.domain.values,...o.domain.values]);n.domain.values.length===o.domain.values.length&&n.domain.values.length===t.size||a.push(`Hparam, ${o.name}, domains have to match. Got: ${n.domain} vs. ${o.domain}`)}else a.push(`Hparam, ${o.name}, domains have to match. Got: ${n.domain} vs. ${o.domain}`)}else e.set(t.name,Object.assign({},t));for(const t of r.metrics)if(i.has(t.tag)||i.set(t.tag,new Set),i.get(t.tag).add(t.displayName),o.has(t.tag)){const e=o.get(t.tag),n=t;e.datasetType!==n.datasetType&&a.push(`Metric, ${n.tag}, datasetTypes have to match. Got: ${e.datasetType} vs. ${n.datasetType}`)}else o.set(t.tag,Object.assign({},t))}if(a.length)throw new Error(`Validation error:\n${a.join("\n")}`);return{hparams:[...e].map((([t,e])=>Object.assign(Object.assign({},e),{displayName:[...n.get(t)].join(" or ")}))),metrics:[...o].map((([t,e])=>Object.assign(Object.assign({},e),{displayName:[...i.get(t)].join(" or ")})))}})(...e.experimentIds.map((e=>{const n=t.specs[e];return n?{hparams:n.hparam.specs,metrics:n.metric.specs}:null})).filter(Boolean)))),zQ={tooltipState:Kx("state",[tO("initial, void, hidden",$x({opacity:0,transform:"scale(0)"})),tO("visible",$x({transform:"scale(1)"})),nO("* => visible",Jx("200ms cubic-bezier(0, 0, 0.2, 1)",eO([$x({opacity:0,transform:"scale(0)",offset:0}),$x({opacity:.5,transform:"scale(0.99)",offset:.5}),$x({opacity:1,transform:"scale(1)",offset:1})]))),nO("* => hidden",Jx("100ms cubic-bezier(0, 0, 0.2, 1)",$x({opacity:0})))])},HQ=vI({passive:!0});function FQ(t){return Error(`Tooltip position "${t}" is invalid.`)}const LQ=new Nr("mat-tooltip-scroll-strategy"),BQ={provide:LQ,deps:[JF],useFactory:function VQ(t){return()=>t.scrollStrategies.reposition({scrollThrottle:20})}},jQ=new Nr("mat-tooltip-default-options",{providedIn:"root",factory:function UQ(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}});class WQ{constructor(t,e,n,o,i,a,r,s,l,c,d,p){this._overlay=t,this._elementRef=e,this._scrollDispatcher=n,this._viewContainerRef=o,this._ngZone=i,this._platform=a,this._ariaDescriber=r,this._focusMonitor=s,this._dir=c,this._defaultOptions=d,this._position="below",this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this.showDelay=this._defaultOptions.showDelay,this.hideDelay=this._defaultOptions.hideDelay,this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new x,this._handleKeydown=t=>{this._isTooltipVisible()&&t.keyCode===eI&&!aI(t)&&(t.preventDefault(),t.stopPropagation(),this._ngZone.run((()=>this.hide(0))))},this._scrollStrategy=l,d&&(d.position&&(this.position=d.position),d.touchGestures&&(this.touchGestures=d.touchGestures)),i.runOutsideAngular((()=>{e.nativeElement.addEventListener("keydown",this._handleKeydown)}))}get position(){return this._position}set position(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(),this._tooltipInstance&&this._tooltipInstance.show(0),this._overlayRef.updatePosition()))}get disabled(){return this._disabled}set disabled(t){this._disabled=rI(t),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get message(){return this._message}set message(t){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=t?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular((()=>{Promise.resolve().then((()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}))})))}get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(un(this._destroyed)).subscribe((t=>{t?"keyboard"===t&&this._ngZone.run((()=>this.show())):this._ngZone.run((()=>this.hide(0)))}))}ngOnDestroy(){const t=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),t.removeEventListener("keydown",this._handleKeydown),this._passiveListeners.forEach((([e,n])=>{t.removeEventListener(e,n,HQ)})),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t)}show(t=this.showDelay){if(this.disabled||!this.message||this._isTooltipVisible()&&!this._tooltipInstance._showTimeoutId&&!this._tooltipInstance._hideTimeoutId)return;const e=this._createOverlay();this._detach(),this._portal=this._portal||new sF(GQ,this._viewContainerRef),this._tooltipInstance=e.attach(this._portal).instance,this._tooltipInstance.afterHidden().pipe(un(this._destroyed)).subscribe((()=>this._detach())),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),this._tooltipInstance.show(t)}hide(t=this.hideDelay){this._tooltipInstance&&this._tooltipInstance.hide(t)}toggle(){this._isTooltipVisible()?this.hide():this.show()}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(){if(this._overlayRef)return this._overlayRef;const t=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),e=this._overlay.position().flexibleConnectedTo(this._elementRef).withTransformOriginOn(".mat-tooltip").withFlexibleDimensions(!1).withViewportMargin(8).withScrollableContainers(t);return e.positionChanges.pipe(un(this._destroyed)).subscribe((t=>{this._tooltipInstance&&t.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run((()=>this.hide(0)))})),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:e,panelClass:"mat-tooltip-panel",scrollStrategy:this._scrollStrategy()}),this._updatePosition(),this._overlayRef.detachments().pipe(un(this._destroyed)).subscribe((()=>this._detach())),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(){const t=this._overlayRef.getConfig().positionStrategy,e=this._getOrigin(),n=this._getOverlayPosition();t.withPositions([Object.assign(Object.assign({},e.main),n.main),Object.assign(Object.assign({},e.fallback),n.fallback)])}_getOrigin(){const t=!this._dir||"ltr"==this._dir.value,e=this.position;let n;if("above"==e||"below"==e)n={originX:"center",originY:"above"==e?"top":"bottom"};else if("before"==e||"left"==e&&t||"right"==e&&!t)n={originX:"start",originY:"center"};else if("after"==e||"right"==e&&t||"left"==e&&!t)n={originX:"end",originY:"center"};else if("undefined"==typeof ngDevMode||ngDevMode)throw FQ(e);const{x:o,y:i}=this._invertPosition(n.originX,n.originY);return{main:n,fallback:{originX:o,originY:i}}}_getOverlayPosition(){const t=!this._dir||"ltr"==this._dir.value,e=this.position;let n;if("above"==e)n={overlayX:"center",overlayY:"bottom"};else if("below"==e)n={overlayX:"center",overlayY:"top"};else if("before"==e||"left"==e&&t||"right"==e&&!t)n={overlayX:"end",overlayY:"center"};else if("after"==e||"right"==e&&t||"left"==e&&!t)n={overlayX:"start",overlayY:"center"};else if("undefined"==typeof ngDevMode||ngDevMode)throw FQ(e);const{x:o,y:i}=this._invertPosition(n.overlayX,n.overlayY);return{main:n,fallback:{overlayX:o,overlayY:i}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(Ne(1),un(this._destroyed)).subscribe((()=>{this._tooltipInstance&&this._overlayRef.updatePosition()})))}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t,this._tooltipInstance._markForCheck())}_invertPosition(t,e){return"above"===this.position||"below"===this.position?"top"===e?e="bottom":"bottom"===e&&(e="top"):"end"===t?t="start":"start"===t&&(t="end"),{x:t,y:e}}_setupPointerEnterEventsIfNeeded(){!this._disabled&&this.message&&this._viewInitialized&&!this._passiveListeners.length&&(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",()=>{this._setupPointerExitEventsIfNeeded(),this.show()}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",()=>{this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout((()=>this.show()),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const t=[];if(this._platformSupportsMouseEvents())t.push(["mouseleave",()=>this.hide()],["wheel",t=>this._wheelListener(t)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const e=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};t.push(["touchend",e],["touchcancel",e])}this._addListeners(t),this._passiveListeners.push(...t)}_addListeners(t){t.forEach((([t,e])=>{this._elementRef.nativeElement.addEventListener(t,e,HQ)}))}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(t){if(this._isTooltipVisible()){const e=(this._document||document).elementFromPoint(t.clientX,t.clientY),n=this._elementRef.nativeElement;e===n||n.contains(e)||this.hide()}}_disableNativeGesturesIfNecessary(){const t=this.touchGestures;if("off"!==t){const e=this._elementRef.nativeElement,n=e.style;("on"===t||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName)&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),"on"!==t&&e.draggable||(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}}WQ.ɵfac=function t(e){return new(e||WQ)(Mu(JF),Mu(ch),Mu(KH),Mu(Xh),Mu(tC),Mu(fI),Mu(zI),Mu(pz),Mu(LQ),Mu(Mz,8),Mu(jQ,8),Mu(UC))},WQ.ɵdir=Jo({type:WQ,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-tooltip-trigger"],inputs:{showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],position:["matTooltipPosition","position"],disabled:["matTooltipDisabled","disabled"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]}),WQ.ctorParameters=()=>[{type:JF},{type:ch},{type:KH},{type:Xh},{type:tC},{type:fI},{type:zI},{type:pz},{type:void 0,decorators:[{type:ys,args:[LQ]}]},{type:Mz,decorators:[{type:_s}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[jQ]}]},{type:void 0,decorators:[{type:ys,args:[UC]}]}],WQ.propDecorators={position:[{type:y_,args:["matTooltipPosition"]}],disabled:[{type:y_,args:["matTooltipDisabled"]}],showDelay:[{type:y_,args:["matTooltipShowDelay"]}],hideDelay:[{type:y_,args:["matTooltipHideDelay"]}],touchGestures:[{type:y_,args:["matTooltipTouchGestures"]}],message:[{type:y_,args:["matTooltip"]}],tooltipClass:[{type:y_,args:["matTooltipClass"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(WQ,[{type:g_,args:[{selector:"[matTooltip]",exportAs:"matTooltip",host:{class:"mat-tooltip-trigger"}}]}],(function(){return[{type:JF},{type:ch},{type:KH},{type:Xh},{type:tC},{type:fI},{type:zI},{type:pz},{type:void 0,decorators:[{type:ys,args:[LQ]}]},{type:Mz,decorators:[{type:_s}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[jQ]}]},{type:void 0,decorators:[{type:ys,args:[UC]}]}]}),{showDelay:[{type:y_,args:["matTooltipShowDelay"]}],hideDelay:[{type:y_,args:["matTooltipHideDelay"]}],touchGestures:[{type:y_,args:["matTooltipTouchGestures"]}],position:[{type:y_,args:["matTooltipPosition"]}],disabled:[{type:y_,args:["matTooltipDisabled"]}],message:[{type:y_,args:["matTooltip"]}],tooltipClass:[{type:y_,args:["matTooltipClass"]}]});class GQ{constructor(t,e){this._changeDetectorRef=t,this._breakpointObserver=e,this._visibility="initial",this._closeOnInteraction=!1,this._onHide=new x,this._isHandset=this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)")}show(t){this._hideTimeoutId&&(clearTimeout(this._hideTimeoutId),this._hideTimeoutId=null),this._closeOnInteraction=!0,this._showTimeoutId=setTimeout((()=>{this._visibility="visible",this._showTimeoutId=null,this._markForCheck()}),t)}hide(t){this._showTimeoutId&&(clearTimeout(this._showTimeoutId),this._showTimeoutId=null),this._hideTimeoutId=setTimeout((()=>{this._visibility="hidden",this._hideTimeoutId=null,this._markForCheck()}),t)}afterHidden(){return this._onHide}isVisible(){return"visible"===this._visibility}ngOnDestroy(){this._onHide.complete()}_animationStart(){this._closeOnInteraction=!1}_animationDone(t){const e=t.toState;"hidden"!==e||this.isVisible()||this._onHide.next(),"visible"!==e&&"hidden"!==e||(this._closeOnInteraction=!0)}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}}GQ.ɵfac=function t(e){return new(e||GQ)(Mu(Hh),Mu(pL))},GQ.ɵcmp=Uo({type:GQ,selectors:[["mat-tooltip-component"]],hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function t(e,n){1&e&&Nu("click",(function t(){return n._handleBodyInteraction()}),!1,Xl)("auxclick",(function t(){return n._handleBodyInteraction()}),!1,Xl),2&e&&of("zoom","visible"===n._visibility?1:null)},decls:3,vars:7,consts:[[1,"mat-tooltip",3,"ngClass"]],template:function t(e,n){if(1&e&&(Ou(0,"div",0),Nu("@state.start",(function t(){return n._animationStart()}))("@state.done",(function t(e){return n._animationDone(e)})),Ob(1,"async"),Mf(2),Pu()),2&e){let t=null;af("mat-tooltip-handset",null==(t=Pb(1,5,n._isHandset))?null:t.matches),vu("ngClass",n.tooltipClass)("@state",n._visibility),Jc(2),vf(n.message)}},directives:[tv],pipes:[Mv],styles:[".mat-tooltip-panel{pointer-events:none !important}.mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis}.cdk-high-contrast-active .mat-tooltip{outline:solid 1px}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}\n"],encapsulation:2,data:{animation:[zQ.tooltipState]},changeDetection:0}),GQ.ctorParameters=()=>[{type:Hh},{type:pL}],("undefined"==typeof ngDevMode||ngDevMode)&&db(GQ,[{type:h_,args:[{selector:"mat-tooltip-component",template:'<div class="mat-tooltip"\n     [ngClass]="tooltipClass"\n     [class.mat-tooltip-handset]="(_isHandset | async)?.matches"\n     [@state]="_visibility"\n     (@state.start)="_animationStart()"\n     (@state.done)="_animationDone($event)">{{message}}</div>\n',encapsulation:Po.None,changeDetection:xo.OnPush,animations:[zQ.tooltipState],host:{"[style.zoom]":'_visibility === "visible" ? 1 : null',"(body:click)":"this._handleBodyInteraction()","(body:auxclick)":"this._handleBodyInteraction()","aria-hidden":"true"},styles:[".mat-tooltip-panel{pointer-events:none !important}.mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis}.cdk-high-contrast-active .mat-tooltip{outline:solid 1px}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}\n"]}]}],(function(){return[{type:Hh},{type:pL}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class YQ{}function qQ(t,e){if(1&t&&(Ou(0,"mat-option",19),Mf(1),Pu()),2&t){const t=e.$implicit;vu("value",t),Jc(1),xf(" ",t," ")}}function ZQ(t,e){if(1&t){const t=Eu();Ou(0,"mat-form-field",16),Ou(1,"mat-select",17),Nu("selectionChange",(function e(n){return ra(t),Lu(2)._changePageSize(n.value)})),Wm(2,qQ,2,2,"mat-option",18),Pu(),Pu()}if(2&t){const t=Lu(2);vu("appearance",t._formFieldAppearance)("color",t.color),Jc(1),vu("value",t.pageSize)("disabled",t.disabled)("aria-label",t._intl.itemsPerPageLabel),Jc(1),vu("ngForOf",t._displayedPageSizeOptions)}}function XQ(t,e){if(1&t&&(Ou(0,"div",20),Mf(1),Pu()),2&t){const t=Lu(2);Jc(1),vf(t.pageSize)}}function KQ(t,e){if(1&t&&(Ou(0,"div",12),Ou(1,"div",13),Mf(2),Pu(),Wm(3,ZQ,3,6,"mat-form-field",14),Wm(4,XQ,2,1,"div",15),Pu()),2&t){const t=Lu();Jc(2),xf(" ",t._intl.itemsPerPageLabel," "),Jc(1),vu("ngIf",t._displayedPageSizeOptions.length>1),Jc(1),vu("ngIf",t._displayedPageSizeOptions.length<=1)}}function JQ(t,e){if(1&t){const t=Eu();Ou(0,"button",21),Nu("click",(function e(){return ra(t),Lu().firstPage()})),Ha(),Ou(1,"svg",7),wu(2,"path",22),Pu(),Pu()}if(2&t){const t=Lu();vu("matTooltip",t._intl.firstPageLabel)("matTooltipDisabled",t._previousButtonsDisabled())("matTooltipPosition","above")("disabled",t._previousButtonsDisabled()),Nm("aria-label",t._intl.firstPageLabel)}}function QQ(t,e){if(1&t){const t=Eu();Ha(),Fa(),Ou(0,"button",23),Nu("click",(function e(){return ra(t),Lu().lastPage()})),Ha(),Ou(1,"svg",7),wu(2,"path",24),Pu(),Pu()}if(2&t){const t=Lu();vu("matTooltip",t._intl.lastPageLabel)("matTooltipDisabled",t._nextButtonsDisabled())("matTooltipPosition","above")("disabled",t._nextButtonsDisabled()),Nm("aria-label",t._intl.lastPageLabel)}}YQ.ɵfac=function t(e){return new(e||YQ)},YQ.ɵmod=Zo({type:YQ}),YQ.ɵinj=co({providers:[BQ],imports:[[yz,Bv,iL,Tz],Tz,oF]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(YQ,{declarations:function(){return[WQ,GQ]},imports:function(){return[yz,Bv,iL,Tz]},exports:function(){return[WQ,GQ,Tz,oF]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(YQ,[{type:k_,args:[{imports:[yz,Bv,iL,Tz],exports:[WQ,GQ,Tz,oF],declarations:[WQ,GQ],entryComponents:[GQ],providers:[BQ]}]}],null,null);class $Q{constructor(){this.changes=new x,this.itemsPerPageLabel="Items per page:",this.nextPageLabel="Next page",this.previousPageLabel="Previous page",this.firstPageLabel="First page",this.lastPageLabel="Last page",this.getRangeLabel=(t,e,n)=>{if(0==n||0==e)return`0 of ${n}`;const o=t*e;return`${o+1} – ${o<(n=Math.max(n,0))?Math.min(o+e,n):o+e} of ${n}`}}}$Q.ɵfac=function t(e){return new(e||$Q)},$Q.ɵprov=lo({factory:function t(){return new $Q},token:$Q,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db($Q,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[]}),null);const t$={provide:$Q,deps:[[new _s,new Ms,$Q]],useFactory:function e$(t){return t||new $Q}},n$=new Nr("MAT_PAGINATOR_DEFAULT_OPTIONS"),o$=Nz(Lz(class{}));
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class i$ extends o${constructor(t,e,n){if(super(),this._intl=t,this._changeDetectorRef=e,this._pageIndex=0,this._length=0,this._pageSizeOptions=[],this._hidePageSize=!1,this._showFirstLastButtons=!1,this.page=new Ab,this._intlChanges=t.changes.subscribe((()=>this._changeDetectorRef.markForCheck())),n){const{pageSize:t,pageSizeOptions:e,hidePageSize:o,showFirstLastButtons:i}=n;null!=t&&(this._pageSize=t),null!=e&&(this._pageSizeOptions=e),null!=o&&(this._hidePageSize=o),null!=i&&(this._showFirstLastButtons=i)}}get pageIndex(){return this._pageIndex}set pageIndex(t){this._pageIndex=Math.max(sI(t),0),this._changeDetectorRef.markForCheck()}get length(){return this._length}set length(t){this._length=sI(t),this._changeDetectorRef.markForCheck()}get pageSize(){return this._pageSize}set pageSize(t){this._pageSize=Math.max(sI(t),0),this._updateDisplayedPageSizeOptions()}get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(t){this._pageSizeOptions=(t||[]).map((t=>sI(t))),this._updateDisplayedPageSizeOptions()}get hidePageSize(){return this._hidePageSize}set hidePageSize(t){this._hidePageSize=rI(t)}get showFirstLastButtons(){return this._showFirstLastButtons}set showFirstLastButtons(t){this._showFirstLastButtons=rI(t)}ngOnInit(){this._initialized=!0,this._updateDisplayedPageSizeOptions(),this._markInitialized()}ngOnDestroy(){this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;const t=this.pageIndex;this.pageIndex++,this._emitPageEvent(t)}previousPage(){if(!this.hasPreviousPage())return;const t=this.pageIndex;this.pageIndex--,this._emitPageEvent(t)}firstPage(){if(!this.hasPreviousPage())return;const t=this.pageIndex;this.pageIndex=0,this._emitPageEvent(t)}lastPage(){if(!this.hasNextPage())return;const t=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(t)}hasPreviousPage(){return this.pageIndex>=1&&0!=this.pageSize}hasNextPage(){const t=this.getNumberOfPages()-1;return this.pageIndex<t&&0!=this.pageSize}getNumberOfPages(){return this.pageSize?Math.ceil(this.length/this.pageSize):0}_changePageSize(t){const e=this.pageIndex;this.pageIndex=Math.floor(this.pageIndex*this.pageSize/t)||0,this.pageSize=t,this._emitPageEvent(e)}_nextButtonsDisabled(){return this.disabled||!this.hasNextPage()}_previousButtonsDisabled(){return this.disabled||!this.hasPreviousPage()}_updateDisplayedPageSizeOptions(){this._initialized&&(this.pageSize||(this._pageSize=0!=this.pageSizeOptions.length?this.pageSizeOptions[0]:50),this._displayedPageSizeOptions=this.pageSizeOptions.slice(),-1===this._displayedPageSizeOptions.indexOf(this.pageSize)&&this._displayedPageSizeOptions.push(this.pageSize),this._displayedPageSizeOptions.sort(((t,e)=>t-e)),this._changeDetectorRef.markForCheck())}_emitPageEvent(t){this.page.emit({previousPageIndex:t,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}}i$.ɵfac=function t(e){return new(e||i$)(Mu($Q),Mu(Hh),Mu(void 0))},i$.ɵdir=Jo({type:i$,inputs:{pageIndex:"pageIndex",length:"length",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",hidePageSize:"hidePageSize",showFirstLastButtons:"showFirstLastButtons",color:"color"},outputs:{page:"page"},features:[gm]}),i$.ctorParameters=()=>[{type:$Q},{type:Hh},{type:void 0}],i$.propDecorators={color:[{type:y_}],pageIndex:[{type:y_}],length:[{type:y_}],pageSize:[{type:y_}],pageSizeOptions:[{type:y_}],hidePageSize:[{type:y_}],showFirstLastButtons:[{type:y_}],page:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(i$,[{type:g_}],(function(){return[{type:$Q},{type:Hh},{type:void 0}]}),{page:[{type:__}],pageIndex:[{type:y_}],length:[{type:y_}],pageSize:[{type:y_}],pageSizeOptions:[{type:y_}],hidePageSize:[{type:y_}],showFirstLastButtons:[{type:y_}],color:[{type:y_}]});class a$ extends i${constructor(t,e,n){super(t,e,n),n&&null!=n.formFieldAppearance&&(this._formFieldAppearance=n.formFieldAppearance)}}a$.ɵfac=function t(e){return new(e||a$)(Mu($Q),Mu(Hh),Mu(n$,8))},a$.ɵcmp=Uo({type:a$,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-paginator"],inputs:{disabled:"disabled"},exportAs:["matPaginator"],features:[gm],decls:14,vars:14,consts:[[1,"mat-paginator-outer-container"],[1,"mat-paginator-container"],["class","mat-paginator-page-size",4,"ngIf"],[1,"mat-paginator-range-actions"],[1,"mat-paginator-range-label"],["mat-icon-button","","type","button","class","mat-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-previous",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["viewBox","0 0 24 24","focusable","false",1,"mat-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-next",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","class","mat-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],[1,"mat-paginator-page-size"],[1,"mat-paginator-page-size-label"],["class","mat-paginator-page-size-select",3,"appearance","color",4,"ngIf"],["class","mat-paginator-page-size-value",4,"ngIf"],[1,"mat-paginator-page-size-select",3,"appearance","color"],[3,"value","disabled","aria-label","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"mat-paginator-page-size-value"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"div",1),Wm(2,KQ,5,3,"div",2),Ou(3,"div",3),Ou(4,"div",4),Mf(5),Pu(),Wm(6,JQ,3,5,"button",5),Ou(7,"button",6),Nu("click",(function t(){return n.previousPage()})),Ha(),Ou(8,"svg",7),wu(9,"path",8),Pu(),Pu(),Fa(),Ou(10,"button",9),Nu("click",(function t(){return n.nextPage()})),Ha(),Ou(11,"svg",7),wu(12,"path",10),Pu(),Pu(),Wm(13,QQ,3,5,"button",11),Pu(),Pu(),Pu()),2&e&&(Jc(2),vu("ngIf",!n.hidePageSize),Jc(3),xf(" ",n._intl.getRangeLabel(n.pageIndex,n.pageSize,n.length)," "),Jc(1),vu("ngIf",n.showFirstLastButtons),Jc(1),vu("matTooltip",n._intl.previousPageLabel)("matTooltipDisabled",n._previousButtonsDisabled())("matTooltipPosition","above")("disabled",n._previousButtonsDisabled()),Nm("aria-label",n._intl.previousPageLabel),Jc(3),vu("matTooltip",n._intl.nextPageLabel)("matTooltipDisabled",n._nextButtonsDisabled())("matTooltipPosition","above")("disabled",n._nextButtonsDisabled()),Nm("aria-label",n._intl.nextPageLabel),Jc(3),vu("ngIf",n.showFirstLastButtons))},directives:[av,NH,WQ,_V,dW,ov,PH],styles:[".mat-paginator{display:block}.mat-paginator-outer-container{display:flex}.mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}.mat-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-paginator-page-size{margin-right:0;margin-left:8px}.mat-paginator-page-size-label{margin:0 4px}.mat-paginator-page-size-select{margin:6px 4px 0 4px;width:56px}.mat-paginator-page-size-select.mat-form-field-appearance-outline{width:64px}.mat-paginator-page-size-select.mat-form-field-appearance-fill{width:64px}.mat-paginator-range-label{margin:0 32px 0 24px}.mat-paginator-range-actions{display:flex;align-items:center}.mat-paginator-icon{width:28px;fill:currentColor}[dir=rtl] .mat-paginator-icon{transform:rotate(180deg)}\n"],encapsulation:2,changeDetection:0}),a$.ctorParameters=()=>[{type:$Q},{type:Hh},{type:void 0,decorators:[{type:_s},{type:ys,args:[n$]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(a$,[{type:h_,args:[{selector:"mat-paginator",exportAs:"matPaginator",template:'<div class="mat-paginator-outer-container">\n  <div class="mat-paginator-container">\n    <div class="mat-paginator-page-size" *ngIf="!hidePageSize">\n      <div class="mat-paginator-page-size-label">\n        {{_intl.itemsPerPageLabel}}\n      </div>\n\n      <mat-form-field\n        *ngIf="_displayedPageSizeOptions.length > 1"\n        [appearance]="_formFieldAppearance!"\n        [color]="color"\n        class="mat-paginator-page-size-select">\n        <mat-select\n          [value]="pageSize"\n          [disabled]="disabled"\n          [aria-label]="_intl.itemsPerPageLabel"\n          (selectionChange)="_changePageSize($event.value)">\n          <mat-option *ngFor="let pageSizeOption of _displayedPageSizeOptions" [value]="pageSizeOption">\n            {{pageSizeOption}}\n          </mat-option>\n        </mat-select>\n      </mat-form-field>\n\n      <div\n        class="mat-paginator-page-size-value"\n        *ngIf="_displayedPageSizeOptions.length <= 1">{{pageSize}}</div>\n    </div>\n\n    <div class="mat-paginator-range-actions">\n      <div class="mat-paginator-range-label">\n        {{_intl.getRangeLabel(pageIndex, pageSize, length)}}\n      </div>\n\n      <button mat-icon-button type="button"\n              class="mat-paginator-navigation-first"\n              (click)="firstPage()"\n              [attr.aria-label]="_intl.firstPageLabel"\n              [matTooltip]="_intl.firstPageLabel"\n              [matTooltipDisabled]="_previousButtonsDisabled()"\n              [matTooltipPosition]="\'above\'"\n              [disabled]="_previousButtonsDisabled()"\n              *ngIf="showFirstLastButtons">\n        <svg class="mat-paginator-icon" viewBox="0 0 24 24" focusable="false">\n          <path d="M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"/>\n        </svg>\n      </button>\n      <button mat-icon-button type="button"\n              class="mat-paginator-navigation-previous"\n              (click)="previousPage()"\n              [attr.aria-label]="_intl.previousPageLabel"\n              [matTooltip]="_intl.previousPageLabel"\n              [matTooltipDisabled]="_previousButtonsDisabled()"\n              [matTooltipPosition]="\'above\'"\n              [disabled]="_previousButtonsDisabled()">\n        <svg class="mat-paginator-icon" viewBox="0 0 24 24" focusable="false">\n          <path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>\n        </svg>\n      </button>\n      <button mat-icon-button type="button"\n              class="mat-paginator-navigation-next"\n              (click)="nextPage()"\n              [attr.aria-label]="_intl.nextPageLabel"\n              [matTooltip]="_intl.nextPageLabel"\n              [matTooltipDisabled]="_nextButtonsDisabled()"\n              [matTooltipPosition]="\'above\'"\n              [disabled]="_nextButtonsDisabled()">\n        <svg class="mat-paginator-icon" viewBox="0 0 24 24" focusable="false">\n          <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>\n        </svg>\n      </button>\n      <button mat-icon-button type="button"\n              class="mat-paginator-navigation-last"\n              (click)="lastPage()"\n              [attr.aria-label]="_intl.lastPageLabel"\n              [matTooltip]="_intl.lastPageLabel"\n              [matTooltipDisabled]="_nextButtonsDisabled()"\n              [matTooltipPosition]="\'above\'"\n              [disabled]="_nextButtonsDisabled()"\n              *ngIf="showFirstLastButtons">\n        <svg class="mat-paginator-icon" viewBox="0 0 24 24" focusable="false">\n          <path d="M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"/>\n        </svg>\n      </button>\n    </div>\n  </div>\n</div>\n',inputs:["disabled"],host:{class:"mat-paginator",role:"group"},changeDetection:xo.OnPush,encapsulation:Po.None,styles:[".mat-paginator{display:block}.mat-paginator-outer-container{display:flex}.mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}.mat-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-paginator-page-size{margin-right:0;margin-left:8px}.mat-paginator-page-size-label{margin:0 4px}.mat-paginator-page-size-select{margin:6px 4px 0 4px;width:56px}.mat-paginator-page-size-select.mat-form-field-appearance-outline{width:64px}.mat-paginator-page-size-select.mat-form-field-appearance-fill{width:64px}.mat-paginator-range-label{margin:0 32px 0 24px}.mat-paginator-range-actions{display:flex;align-items:center}.mat-paginator-icon{width:28px;fill:currentColor}[dir=rtl] .mat-paginator-icon{transform:rotate(180deg)}\n"]}]}],(function(){return[{type:$Q},{type:Hh},{type:void 0,decorators:[{type:_s},{type:ys,args:[n$]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class r${}function s$(t,e){if(1&t){const t=Eu();Ou(0,"div",3),Nu("@arrowPosition.start",(function e(){return ra(t),Lu()._disableViewStateAnimation=!0}))("@arrowPosition.done",(function e(){return ra(t),Lu()._disableViewStateAnimation=!1})),wu(1,"div",4),Ou(2,"div",5),wu(3,"div",6),wu(4,"div",7),wu(5,"div",8),Pu(),Pu()}if(2&t){const t=Lu();vu("@arrowOpacity",t._getArrowViewState())("@arrowPosition",t._getArrowViewState())("@allowChildren",t._getArrowDirectionState()),Jc(2),vu("@indicator",t._getArrowDirectionState()),Jc(1),vu("@leftPointer",t._getArrowDirectionState()),Jc(1),vu("@rightPointer",t._getArrowDirectionState())}}r$.ɵfac=function t(e){return new(e||r$)},r$.ɵmod=Zo({type:r$}),r$.ɵinj=co({providers:[t$],imports:[[Bv,zH,mW,YQ,Tz]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(r$,{declarations:function(){return[a$]},imports:function(){return[Bv,zH,mW,YQ,Tz]},exports:function(){return[a$]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(r$,[{type:k_,args:[{imports:[Bv,zH,mW,YQ,Tz],exports:[a$],declarations:[a$],providers:[t$]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const l$=new Nr("MAT_SORT_DEFAULT_OPTIONS"),c$=Lz(Nz(class{}));class d$ extends c${constructor(t){super(),this._defaultOptions=t,this.sortables=new Map,this._stateChanges=new x,this.start="asc",this._direction="",this.sortChange=new Ab}get direction(){return this._direction}set direction(t){if(t&&"asc"!==t&&"desc"!==t&&("undefined"==typeof ngDevMode||ngDevMode))throw(function e(t){return Error(`${t} is not a valid sort direction ('asc' or 'desc').`)})(t);this._direction=t}get disableClear(){return this._disableClear}set disableClear(t){this._disableClear=rI(t)}register(t){if("undefined"==typeof ngDevMode||ngDevMode){if(!t.id)throw(function e(){return Error("MatSortHeader must be provided with a unique id.")})();if(this.sortables.has(t.id))throw(function n(t){return Error(`Cannot have two MatSortables with the same id (${t}).`)})(t.id)}this.sortables.set(t.id,t)}deregister(t){this.sortables.delete(t.id)}sort(t){this.active!=t.id?(this.active=t.id,this.direction=t.start?t.start:this.start):this.direction=this.getNextSortDirection(t),this.sortChange.emit({active:this.active,direction:this.direction})}getNextSortDirection(t){var e,n,o;if(!t)return"";const i=null!==(n=null!==(e=null==t?void 0:t.disableClear)&&void 0!==e?e:this.disableClear)&&void 0!==n?n:!!(null===(o=this._defaultOptions)||void 0===o?void 0:o.disableClear);let a=(function r(t,e){let n=["asc","desc"];return"desc"==t&&n.reverse(),e||n.push(""),n}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)(t.start||this.start,i),s=a.indexOf(this.direction)+1;return s>=a.length&&(s=0),a[s]}ngOnInit(){this._markInitialized()}ngOnChanges(){this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}}d$.ɵfac=function t(e){return new(e||d$)(Mu(l$,8))},d$.ɵdir=Jo({type:d$,selectors:[["","matSort",""]],hostAttrs:[1,"mat-sort"],inputs:{disabled:["matSortDisabled","disabled"],start:["matSortStart","start"],direction:["matSortDirection","direction"],disableClear:["matSortDisableClear","disableClear"],active:["matSortActive","active"]},outputs:{sortChange:"matSortChange"},exportAs:["matSort"],features:[gm,Si]}),d$.ctorParameters=()=>[{type:void 0,decorators:[{type:_s},{type:ys,args:[l$]}]}],d$.propDecorators={active:[{type:y_,args:["matSortActive"]}],start:[{type:y_,args:["matSortStart"]}],direction:[{type:y_,args:["matSortDirection"]}],disableClear:[{type:y_,args:["matSortDisableClear"]}],sortChange:[{type:__,args:["matSortChange"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(d$,[{type:g_,args:[{selector:"[matSort]",exportAs:"matSort",host:{class:"mat-sort"},inputs:["disabled: matSortDisabled"]}]}],(function(){return[{type:void 0,decorators:[{type:_s},{type:ys,args:[l$]}]}]}),{start:[{type:y_,args:["matSortStart"]}],sortChange:[{type:__,args:["matSortChange"]}],direction:[{type:y_,args:["matSortDirection"]}],disableClear:[{type:y_,args:["matSortDisableClear"]}],active:[{type:y_,args:["matSortActive"]}]});const p$=Dz.ENTERING+" "+Sz.STANDARD_CURVE,m$={indicator:Kx("indicator",[tO("active-asc, asc",$x({transform:"translateY(0px)"})),tO("active-desc, desc",$x({transform:"translateY(10px)"})),nO("active-asc <=> active-desc",Jx(p$))]),leftPointer:Kx("leftPointer",[tO("active-asc, asc",$x({transform:"rotate(-45deg)"})),tO("active-desc, desc",$x({transform:"rotate(45deg)"})),nO("active-asc <=> active-desc",Jx(p$))]),rightPointer:Kx("rightPointer",[tO("active-asc, asc",$x({transform:"rotate(45deg)"})),tO("active-desc, desc",$x({transform:"rotate(-45deg)"})),nO("active-asc <=> active-desc",Jx(p$))]),arrowOpacity:Kx("arrowOpacity",[tO("desc-to-active, asc-to-active, active",$x({opacity:1})),tO("desc-to-hint, asc-to-hint, hint",$x({opacity:.54})),tO("hint-to-desc, active-to-desc, desc, hint-to-asc, active-to-asc, asc, void",$x({opacity:0})),nO("* => asc, * => desc, * => active, * => hint, * => void",Jx("0ms")),nO("* <=> *",Jx(p$))]),arrowPosition:Kx("arrowPosition",[nO("* => desc-to-hint, * => desc-to-active",Jx(p$,eO([$x({transform:"translateY(-25%)"}),$x({transform:"translateY(0)"})]))),nO("* => hint-to-desc, * => active-to-desc",Jx(p$,eO([$x({transform:"translateY(0)"}),$x({transform:"translateY(25%)"})]))),nO("* => asc-to-hint, * => asc-to-active",Jx(p$,eO([$x({transform:"translateY(25%)"}),$x({transform:"translateY(0)"})]))),nO("* => hint-to-asc, * => active-to-asc",Jx(p$,eO([$x({transform:"translateY(0)"}),$x({transform:"translateY(-25%)"})]))),tO("desc-to-hint, asc-to-hint, hint, desc-to-active, asc-to-active, active",$x({transform:"translateY(0)"})),tO("hint-to-desc, active-to-desc, desc",$x({transform:"translateY(-25%)"})),tO("hint-to-asc, active-to-asc, asc",$x({transform:"translateY(25%)"}))]),allowChildren:Kx("allowChildren",[nO("* <=> *",[iO("@*",oO(),{optional:!0})])])};
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class u${constructor(){this.changes=new x,this.sortButtonLabel=t=>`Change sorting for ${t}`}}u$.ɵfac=function t(e){return new(e||u$)},u$.ɵprov=lo({factory:function t(){return new u$},token:u$,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&db(u$,[{type:Jm,args:[{providedIn:"root"}]}],(function(){return[]}),null);const f$={provide:u$,deps:[[new _s,new Ms,u$]],useFactory:function g$(t){return t||new u$}},h$=Nz(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class{});class b$ extends h${constructor(t,e,n,o,i,a){if(super(),this._intl=t,this._changeDetectorRef=e,this._sort=n,this._columnDef=o,this._focusMonitor=i,this._elementRef=a,this._showIndicatorHint=!1,this._arrowDirection="",this._disableViewStateAnimation=!1,this.arrowPosition="after",!n&&("undefined"==typeof ngDevMode||ngDevMode))throw(function r(){return Error("MatSortHeader must be placed within a parent element with the MatSort directive.")})();this._handleStateChanges()}get disableClear(){return this._disableClear}set disableClear(t){this._disableClear=rI(t)}ngOnInit(){!this.id&&this._columnDef&&(this.id=this._columnDef.name),this._updateArrowDirection(),this._setAnimationTransitionState({toState:this._isSorted()?"active":this._arrowDirection}),this._sort.register(this)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe((t=>{const e=!!t;e!==this._showIndicatorHint&&(this._setIndicatorHintVisible(e),this._changeDetectorRef.markForCheck())}))}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._sort.deregister(this),this._rerenderSubscription.unsubscribe()}_setIndicatorHintVisible(t){this._isDisabled()&&t||(this._showIndicatorHint=t,this._isSorted()||(this._updateArrowDirection(),this._setAnimationTransitionState(this._showIndicatorHint?{fromState:this._arrowDirection,toState:"hint"}:{fromState:"hint",toState:this._arrowDirection})))}_setAnimationTransitionState(t){this._viewState=t,this._disableViewStateAnimation&&(this._viewState={toState:t.toState})}_toggleOnInteraction(){this._sort.sort(this),"hint"!==this._viewState.toState&&"active"!==this._viewState.toState||(this._disableViewStateAnimation=!0)}_handleClick(){this._isDisabled()||this._sort.sort(this)}_handleKeydown(t){this._isDisabled()||t.keyCode!==nI&&t.keyCode!==tI||(t.preventDefault(),this._toggleOnInteraction())}_isSorted(){return this._sort.active==this.id&&("asc"===this._sort.direction||"desc"===this._sort.direction)}_getArrowDirectionState(){return`${this._isSorted()?"active-":""}${this._arrowDirection}`}_getArrowViewState(){const t=this._viewState.fromState;return(t?`${t}-to-`:"")+this._viewState.toState}_updateArrowDirection(){this._arrowDirection=this._isSorted()?this._sort.direction:this.start||this._sort.start}_isDisabled(){return this._sort.disabled||this.disabled}_getAriaSortAttribute(){return this._isSorted()?"asc"==this._sort.direction?"ascending":"descending":"none"}_renderArrow(){return!this._isDisabled()||this._isSorted()}_handleStateChanges(){this._rerenderSubscription=Wt(this._sort.sortChange,this._sort._stateChanges,this._intl.changes).subscribe((()=>{this._isSorted()&&(this._updateArrowDirection(),"hint"!==this._viewState.toState&&"active"!==this._viewState.toState||(this._disableViewStateAnimation=!0),this._setAnimationTransitionState({fromState:this._arrowDirection,toState:"active"}),this._showIndicatorHint=!1),!this._isSorted()&&this._viewState&&"active"===this._viewState.toState&&(this._disableViewStateAnimation=!1,this._setAnimationTransitionState({fromState:"active",toState:this._arrowDirection})),this._changeDetectorRef.markForCheck()}))}}b$.ɵfac=function t(e){return new(e||b$)(Mu(u$),Mu(Hh),Mu(d$,8),Mu("MAT_SORT_HEADER_COLUMN_DEF",8),Mu(pz),Mu(ch))},b$.ɵcmp=Uo({type:b$,selectors:[["","mat-sort-header",""]],hostAttrs:[1,"mat-sort-header"],hostVars:3,hostBindings:function t(e,n){1&e&&Nu("click",(function t(){return n._handleClick()}))("keydown",(function t(e){return n._handleKeydown(e)}))("mouseenter",(function t(){return n._setIndicatorHintVisible(!0)}))("mouseleave",(function t(){return n._setIndicatorHintVisible(!1)})),2&e&&(Nm("aria-sort",n._getAriaSortAttribute()),af("mat-sort-header-disabled",n._isDisabled()))},inputs:{disabled:"disabled",arrowPosition:"arrowPosition",disableClear:"disableClear",id:["mat-sort-header","id"],start:"start"},exportAs:["matSortHeader"],features:[gm],attrs:["mat-sort-header",""],ngContentSelectors:["*"],decls:4,vars:6,consts:[["role","button",1,"mat-sort-header-container","mat-focus-indicator"],[1,"mat-sort-header-content"],["class","mat-sort-header-arrow",4,"ngIf"],[1,"mat-sort-header-arrow"],[1,"mat-sort-header-stem"],[1,"mat-sort-header-indicator"],[1,"mat-sort-header-pointer-left"],[1,"mat-sort-header-pointer-right"],[1,"mat-sort-header-pointer-middle"]],template:function t(e,n){1&e&&(Vu(),Ou(0,"div",0),Ou(1,"div",1),ju(2),Pu(),Wm(3,s$,6,6,"div",2),Pu()),2&e&&(af("mat-sort-header-sorted",n._isSorted())("mat-sort-header-position-before","before"==n.arrowPosition),Nm("tabindex",n._isDisabled()?null:0),Jc(3),vu("ngIf",n._renderArrow()))},directives:[av],styles:[".mat-sort-header-container{display:flex;cursor:pointer;align-items:center;letter-spacing:normal;outline:0}[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container,[mat-sort-header].cdk-program-focused .mat-sort-header-container{border-bottom:solid 1px currentColor}.mat-sort-header-disabled .mat-sort-header-container{cursor:default}.mat-sort-header-content{text-align:center;display:flex;align-items:center}.mat-sort-header-position-before{flex-direction:row-reverse}.mat-sort-header-arrow{height:12px;width:12px;min-width:12px;position:relative;display:flex;opacity:0}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.mat-sort-header-stem{background:currentColor;height:10px;width:2px;margin:auto;display:flex;align-items:center}.cdk-high-contrast-active .mat-sort-header-stem{width:0;border-left:solid 2px}.mat-sort-header-indicator{width:100%;height:2px;display:flex;align-items:center;position:absolute;top:0;left:0}.mat-sort-header-pointer-middle{margin:auto;height:2px;width:2px;background:currentColor;transform:rotate(45deg)}.cdk-high-contrast-active .mat-sort-header-pointer-middle{width:0;height:0;border-top:solid 2px;border-left:solid 2px}.mat-sort-header-pointer-left,.mat-sort-header-pointer-right{background:currentColor;width:6px;height:2px;position:absolute;top:0}.cdk-high-contrast-active .mat-sort-header-pointer-left,.cdk-high-contrast-active .mat-sort-header-pointer-right{width:0;height:0;border-left:solid 6px;border-top:solid 2px}.mat-sort-header-pointer-left{transform-origin:right;left:0}.mat-sort-header-pointer-right{transform-origin:left;right:0}\n"],encapsulation:2,data:{animation:[m$.indicator,m$.leftPointer,m$.rightPointer,m$.arrowOpacity,m$.arrowPosition,m$.allowChildren]},changeDetection:0}),b$.ctorParameters=()=>[{type:u$},{type:Hh},{type:d$,decorators:[{type:_s}]},{type:void 0,decorators:[{type:ys,args:["MAT_SORT_HEADER_COLUMN_DEF"]},{type:_s}]},{type:pz},{type:ch}],b$.propDecorators={id:[{type:y_,args:["mat-sort-header"]}],arrowPosition:[{type:y_}],start:[{type:y_}],disableClear:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(b$,[{type:h_,args:[{selector:"[mat-sort-header]",exportAs:"matSortHeader",template:'\x3c!--\n  We set the `tabindex` on an element inside the table header, rather than the header itself,\n  because of a bug in NVDA where having a `tabindex` on a `th` breaks keyboard navigation in the\n  table (see https://github.com/nvaccess/nvda/issues/7718). This allows for the header to both\n  be focusable, and have screen readers read out its `aria-sort` state. We prefer this approach\n  over having a button with an `aria-label` inside the header, because the button\'s `aria-label`\n  will be read out as the user is navigating the table\'s cell (see #13012).\n\n  The approach is based off of: https://dequeuniversity.com/library/aria/tables/sf-sortable-grid\n--\x3e\n<div class="mat-sort-header-container mat-focus-indicator"\n     [class.mat-sort-header-sorted]="_isSorted()"\n     [class.mat-sort-header-position-before]="arrowPosition == \'before\'"\n     [attr.tabindex]="_isDisabled() ? null : 0"\n     role="button">\n\n  \x3c!--\n    TODO(crisbeto): this div isn\'t strictly necessary, but we have to keep it due to a large\n    number of screenshot diff failures. It should be removed eventually. Note that the difference\n    isn\'t visible with a shorter header, but once it breaks up into multiple lines, this element\n    causes it to be center-aligned, whereas removing it will keep the text to the left.\n  --\x3e\n  <div class="mat-sort-header-content">\n    <ng-content></ng-content>\n  </div>\n\n  \x3c!-- Disable animations while a current animation is running --\x3e\n  <div class="mat-sort-header-arrow"\n       *ngIf="_renderArrow()"\n       [@arrowOpacity]="_getArrowViewState()"\n       [@arrowPosition]="_getArrowViewState()"\n       [@allowChildren]="_getArrowDirectionState()"\n       (@arrowPosition.start)="_disableViewStateAnimation = true"\n       (@arrowPosition.done)="_disableViewStateAnimation = false">\n    <div class="mat-sort-header-stem"></div>\n    <div class="mat-sort-header-indicator" [@indicator]="_getArrowDirectionState()">\n      <div class="mat-sort-header-pointer-left" [@leftPointer]="_getArrowDirectionState()"></div>\n      <div class="mat-sort-header-pointer-right" [@rightPointer]="_getArrowDirectionState()"></div>\n      <div class="mat-sort-header-pointer-middle"></div>\n    </div>\n  </div>\n</div>\n',host:{class:"mat-sort-header","(click)":"_handleClick()","(keydown)":"_handleKeydown($event)","(mouseenter)":"_setIndicatorHintVisible(true)","(mouseleave)":"_setIndicatorHintVisible(false)","[attr.aria-sort]":"_getAriaSortAttribute()","[class.mat-sort-header-disabled]":"_isDisabled()"},encapsulation:Po.None,changeDetection:xo.OnPush,inputs:["disabled"],animations:[m$.indicator,m$.leftPointer,m$.rightPointer,m$.arrowOpacity,m$.arrowPosition,m$.allowChildren],styles:[".mat-sort-header-container{display:flex;cursor:pointer;align-items:center;letter-spacing:normal;outline:0}[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container,[mat-sort-header].cdk-program-focused .mat-sort-header-container{border-bottom:solid 1px currentColor}.mat-sort-header-disabled .mat-sort-header-container{cursor:default}.mat-sort-header-content{text-align:center;display:flex;align-items:center}.mat-sort-header-position-before{flex-direction:row-reverse}.mat-sort-header-arrow{height:12px;width:12px;min-width:12px;position:relative;display:flex;opacity:0}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.mat-sort-header-stem{background:currentColor;height:10px;width:2px;margin:auto;display:flex;align-items:center}.cdk-high-contrast-active .mat-sort-header-stem{width:0;border-left:solid 2px}.mat-sort-header-indicator{width:100%;height:2px;display:flex;align-items:center;position:absolute;top:0;left:0}.mat-sort-header-pointer-middle{margin:auto;height:2px;width:2px;background:currentColor;transform:rotate(45deg)}.cdk-high-contrast-active .mat-sort-header-pointer-middle{width:0;height:0;border-top:solid 2px;border-left:solid 2px}.mat-sort-header-pointer-left,.mat-sort-header-pointer-right{background:currentColor;width:6px;height:2px;position:absolute;top:0}.cdk-high-contrast-active .mat-sort-header-pointer-left,.cdk-high-contrast-active .mat-sort-header-pointer-right{width:0;height:0;border-left:solid 6px;border-top:solid 2px}.mat-sort-header-pointer-left{transform-origin:right;left:0}.mat-sort-header-pointer-right{transform-origin:left;right:0}\n"]}]}],(function(){return[{type:u$},{type:Hh},{type:d$,decorators:[{type:_s}]},{type:void 0,decorators:[{type:ys,args:["MAT_SORT_HEADER_COLUMN_DEF"]},{type:_s}]},{type:pz},{type:ch}]}),{arrowPosition:[{type:y_}],disableClear:[{type:y_}],id:[{type:y_,args:["mat-sort-header"]}],start:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class y${}y$.ɵfac=function t(e){return new(e||y$)},y$.ɵmod=Zo({type:y$}),y$.ɵinj=co({providers:[f$],imports:[[Bv,Tz]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(y$,{declarations:function(){return[d$,b$]},imports:function(){return[Bv,Tz]},exports:function(){return[d$,b$]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(y$,[{type:k_,args:[{imports:[Bv,Tz],exports:[d$,b$],declarations:[d$,b$],providers:[f$]}]}],null,null);const _$=[[["caption"]],[["colgroup"],["col"]]];function C$(t,e){if(1&t&&(Ou(0,"th",3),Mf(1),Pu()),2&t){const t=Lu();of("text-align",t.justify),Jc(1),xf(" ",t.headerText," ")}}function M$(t,e){if(1&t&&(Ou(0,"td",4),Mf(1),Pu()),2&t){const t=e.$implicit,n=Lu();of("text-align",n.justify),Jc(1),xf(" ",n.dataAccessor(t,n.name)," ")}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function v$(t){return class extends t{constructor(...t){super(...t),this._sticky=!1,this._hasStickyChanged=!1}get sticky(){return this._sticky}set sticky(t){const e=this._sticky;this._sticky=rI(t),this._hasStickyChanged=e!==this._sticky}hasStickyChanged(){const t=this._hasStickyChanged;return this._hasStickyChanged=!1,t}resetStickyChanged(){this._hasStickyChanged=!1}}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */const x$=new Nr("CDK_TABLE"),O$=new Nr("text-column-options");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class P${constructor(t){this.template=t}}P$.ɵfac=function t(e){return new(e||P$)(Mu(Uh))},P$.ɵdir=Jo({type:P$,selectors:[["","cdkCellDef",""]]}),P$.ctorParameters=()=>[{type:Uh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(P$,[{type:g_,args:[{selector:"[cdkCellDef]"}]}],(function(){return[{type:Uh}]}),null);class w${constructor(t){this.template=t}}w$.ɵfac=function t(e){return new(e||w$)(Mu(Uh))},w$.ɵdir=Jo({type:w$,selectors:[["","cdkHeaderCellDef",""]]}),w$.ctorParameters=()=>[{type:Uh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(w$,[{type:g_,args:[{selector:"[cdkHeaderCellDef]"}]}],(function(){return[{type:Uh}]}),null);class k${constructor(t){this.template=t}}k$.ɵfac=function t(e){return new(e||k$)(Mu(Uh))},k$.ɵdir=Jo({type:k$,selectors:[["","cdkFooterCellDef",""]]}),k$.ctorParameters=()=>[{type:Uh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(k$,[{type:g_,args:[{selector:"[cdkFooterCellDef]"}]}],(function(){return[{type:Uh}]}),null);const S$=v$(class{});class D$ extends S${constructor(t){super(),this._table=t,this._stickyEnd=!1}get name(){return this._name}set name(t){this._setNameInput(t)}get stickyEnd(){return this._stickyEnd}set stickyEnd(t){const e=this._stickyEnd;this._stickyEnd=rI(t),this._hasStickyChanged=e!==this._stickyEnd}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(t){t&&(this._name=t,this.cssClassFriendlyName=t.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}}D$.ɵfac=function t(e){return new(e||D$)(Mu(x$,8))},D$.ɵdir=Jo({type:D$,selectors:[["","cdkColumnDef",""]],contentQueries:function t(e,n,o){if(1&e&&(Gb(o,P$,1),Gb(o,w$,1),Gb(o,k$,1)),2&e){let t;Ub(t=Yb())&&(n.cell=t.first),Ub(t=Yb())&&(n.headerCell=t.first),Ub(t=Yb())&&(n.footerCell=t.first)}},inputs:{sticky:"sticky",name:["cdkColumnDef","name"],stickyEnd:"stickyEnd"},features:[ih([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:D$}]),gm]}),D$.ctorParameters=()=>[{type:void 0,decorators:[{type:ys,args:[x$]},{type:_s}]}],D$.propDecorators={name:[{type:y_,args:["cdkColumnDef"]}],stickyEnd:[{type:y_,args:["stickyEnd"]}],cell:[{type:Hr,args:[P$]}],headerCell:[{type:Hr,args:[w$]}],footerCell:[{type:Hr,args:[k$]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(D$,[{type:g_,args:[{selector:"[cdkColumnDef]",inputs:["sticky"],providers:[{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:D$}]}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[x$]},{type:_s}]}]}),{name:[{type:y_,args:["cdkColumnDef"]}],stickyEnd:[{type:y_,args:["stickyEnd"]}],cell:[{type:Hr,args:[P$]}],headerCell:[{type:Hr,args:[w$]}],footerCell:[{type:Hr,args:[k$]}]});class E${constructor(t,e){const n=e.nativeElement.classList;for(const e of t._columnCssClassName)n.add(e)}}class A$ extends E${constructor(t,e){super(t,e)}}A$.ɵfac=function t(e){return new(e||A$)(Mu(D$),Mu(ch))},A$.ɵdir=Jo({type:A$,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[gm]}),A$.ctorParameters=()=>[{type:D$},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(A$,[{type:g_,args:[{selector:"cdk-header-cell, th[cdk-header-cell]",host:{class:"cdk-header-cell",role:"columnheader"}}]}],(function(){return[{type:D$},{type:ch}]}),null);class R$ extends E${constructor(t,e){super(t,e)}}R$.ɵfac=function t(e){return new(e||R$)(Mu(D$),Mu(ch))},R$.ɵdir=Jo({type:R$,selectors:[["cdk-footer-cell"],["td","cdk-footer-cell",""]],hostAttrs:["role","gridcell",1,"cdk-footer-cell"],features:[gm]}),R$.ctorParameters=()=>[{type:D$},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(R$,[{type:g_,args:[{selector:"cdk-footer-cell, td[cdk-footer-cell]",host:{class:"cdk-footer-cell",role:"gridcell"}}]}],(function(){return[{type:D$},{type:ch}]}),null);class T$ extends E${constructor(t,e){super(t,e)}}T$.ɵfac=function t(e){return new(e||T$)(Mu(D$),Mu(ch))},T$.ɵdir=Jo({type:T$,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:["role","gridcell",1,"cdk-cell"],features:[gm]}),T$.ctorParameters=()=>[{type:D$},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(T$,[{type:g_,args:[{selector:"cdk-cell, td[cdk-cell]",host:{class:"cdk-cell",role:"gridcell"}}]}],(function(){return[{type:D$},{type:ch}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class N${constructor(){this.tasks=[],this.endTasks=[]}}const I$=new Nr("_COALESCED_STYLE_SCHEDULER");class z${constructor(t){this._ngZone=t,this._currentSchedule=null,this._destroyed=new x}schedule(t){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(t)}scheduleEnd(t){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(t)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new N$,this._getScheduleObservable().pipe(un(this._destroyed)).subscribe((()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){const t=this._currentSchedule;this._currentSchedule=new N$;for(const e of t.tasks)e();for(const e of t.endTasks)e()}this._currentSchedule=null})))}_getScheduleObservable(){return this._ngZone.isStable?Rt(Promise.resolve(void 0)):this._ngZone.onStable.pipe(Ne(1))}}z$.ɵfac=function t(e){return new(e||z$)(us(tC))},z$.ɵprov=lo({token:z$,factory:z$.ɵfac}),z$.ctorParameters=()=>[{type:tC}],("undefined"==typeof ngDevMode||ngDevMode)&&db(z$,[{type:Jm}],(function(){return[{type:tC}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const H$="<ng-container cdkCellOutlet></ng-container>";class F${constructor(t,e){this.template=t,this._differs=e}ngOnChanges(t){if(!this._columnsDiffer){const e=t.columns&&t.columns.currentValue||[];this._columnsDiffer=this._differs.find(e).create(),this._columnsDiffer.diff(e)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(t){return this instanceof B$?t.headerCell.template:this instanceof j$?t.footerCell.template:t.cell.template}}F$.ɵfac=function t(e){return new(e||F$)(Mu(Uh),Mu(Eh))},F$.ɵdir=Jo({type:F$,features:[Si]}),F$.ctorParameters=()=>[{type:Uh},{type:Eh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(F$,[{type:g_}],(function(){return[{type:Uh},{type:Eh}]}),null);const L$=v$(class extends F${});class B$ extends L${constructor(t,e,n){super(t,e),this._table=n}ngOnChanges(t){super.ngOnChanges(t)}}B$.ɵfac=function t(e){return new(e||B$)(Mu(Uh),Mu(Eh),Mu(x$,8))},B$.ɵdir=Jo({type:B$,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:["cdkHeaderRowDef","columns"],sticky:["cdkHeaderRowDefSticky","sticky"]},features:[gm,Si]}),B$.ctorParameters=()=>[{type:Uh},{type:Eh},{type:void 0,decorators:[{type:ys,args:[x$]},{type:_s}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(B$,[{type:g_,args:[{selector:"[cdkHeaderRowDef]",inputs:["columns: cdkHeaderRowDef","sticky: cdkHeaderRowDefSticky"]}]}],(function(){return[{type:Uh},{type:Eh},{type:void 0,decorators:[{type:ys,args:[x$]},{type:_s}]}]}),null);const V$=v$(class extends F${});class j$ extends V${constructor(t,e,n){super(t,e),this._table=n}ngOnChanges(t){super.ngOnChanges(t)}}j$.ɵfac=function t(e){return new(e||j$)(Mu(Uh),Mu(Eh),Mu(x$,8))},j$.ɵdir=Jo({type:j$,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:["cdkFooterRowDef","columns"],sticky:["cdkFooterRowDefSticky","sticky"]},features:[gm,Si]}),j$.ctorParameters=()=>[{type:Uh},{type:Eh},{type:void 0,decorators:[{type:ys,args:[x$]},{type:_s}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(j$,[{type:g_,args:[{selector:"[cdkFooterRowDef]",inputs:["columns: cdkFooterRowDef","sticky: cdkFooterRowDefSticky"]}]}],(function(){return[{type:Uh},{type:Eh},{type:void 0,decorators:[{type:ys,args:[x$]},{type:_s}]}]}),null);class U$ extends F${constructor(t,e,n){super(t,e),this._table=n}}U$.ɵfac=function t(e){return new(e||U$)(Mu(Uh),Mu(Eh),Mu(x$,8))},U$.ɵdir=Jo({type:U$,selectors:[["","cdkRowDef",""]],inputs:{columns:["cdkRowDefColumns","columns"],when:["cdkRowDefWhen","when"]},features:[gm]}),U$.ctorParameters=()=>[{type:Uh},{type:Eh},{type:void 0,decorators:[{type:ys,args:[x$]},{type:_s}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(U$,[{type:g_,args:[{selector:"[cdkRowDef]",inputs:["columns: cdkRowDefColumns","when: cdkRowDefWhen"]}]}],(function(){return[{type:Uh},{type:Eh},{type:void 0,decorators:[{type:ys,args:[x$]},{type:_s}]}]}),null);class W${constructor(t){this._viewContainer=t,W$.mostRecentCellOutlet=this}ngOnDestroy(){W$.mostRecentCellOutlet===this&&(W$.mostRecentCellOutlet=null)}}W$.ɵfac=function t(e){return new(e||W$)(Mu(Xh))},W$.ɵdir=Jo({type:W$,selectors:[["","cdkCellOutlet",""]]}),W$.mostRecentCellOutlet=null,W$.ctorParameters=()=>[{type:Xh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(W$,[{type:g_,args:[{selector:"[cdkCellOutlet]"}]}],(function(){return[{type:Xh}]}),null);class G${}G$.ɵfac=function t(e){return new(e||G$)},G$.ɵcmp=Uo({type:G$,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function t(e,n){1&e&&Du(0,0)},directives:[W$],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(G$,[{type:h_,args:[{selector:"cdk-header-row, tr[cdk-header-row]",template:H$,host:{class:"cdk-header-row",role:"row"},changeDetection:xo.Default,encapsulation:Po.None}]}],null,null);class Y${}Y$.ɵfac=function t(e){return new(e||Y$)},Y$.ɵcmp=Uo({type:Y$,selectors:[["cdk-footer-row"],["tr","cdk-footer-row",""]],hostAttrs:["role","row",1,"cdk-footer-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function t(e,n){1&e&&Du(0,0)},directives:[W$],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Y$,[{type:h_,args:[{selector:"cdk-footer-row, tr[cdk-footer-row]",template:H$,host:{class:"cdk-footer-row",role:"row"},changeDetection:xo.Default,encapsulation:Po.None}]}],null,null);class q${}q$.ɵfac=function t(e){return new(e||q$)},q$.ɵcmp=Uo({type:q$,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function t(e,n){1&e&&Du(0,0)},directives:[W$],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(q$,[{type:h_,args:[{selector:"cdk-row, tr[cdk-row]",template:H$,host:{class:"cdk-row",role:"row"},changeDetection:xo.Default,encapsulation:Po.None}]}],null,null);class Z${constructor(t){this.templateRef=t}}Z$.ɵfac=function t(e){return new(e||Z$)(Mu(Uh))},Z$.ɵdir=Jo({type:Z$,selectors:[["ng-template","cdkNoDataRow",""]]}),Z$.ctorParameters=()=>[{type:Uh}],("undefined"==typeof ngDevMode||ngDevMode)&&db(Z$,[{type:g_,args:[{selector:"ng-template[cdkNoDataRow]"}]}],(function(){return[{type:Uh}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const X$=["top","bottom","left","right"];class K${constructor(t,e,n,o,i=!0,a=!0,r){this._isNativeHtmlTable=t,this._stickCellCss=e,this.direction=n,this._coalescedStyleScheduler=o,this._isBrowser=i,this._needsPositionStickyOnElement=a,this._positionListener=r,this._cachedCellWidths=[],this._borderCellCss={top:`${e}-border-elem-top`,bottom:`${e}-border-elem-bottom`,left:`${e}-border-elem-left`,right:`${e}-border-elem-right`}}clearStickyPositioning(t,e){const n=[];for(const e of t)if(e.nodeType===e.ELEMENT_NODE){n.push(e);for(let t=0;t<e.children.length;t++)n.push(e.children[t])}this._scheduleStyleChanges((()=>{for(const t of n)this._removeStickyStyle(t,e)}))}updateStickyColumns(t,e,n,o=!0){if(!t.length||!this._isBrowser||!e.some((t=>t))&&!n.some((t=>t)))return void(this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:[]}),this._positionListener.stickyEndColumnsUpdated({sizes:[]})));const i=t[0],a=i.children.length,r=this._getCellWidths(i,o),s=this._getStickyStartColumnPositions(r,e),l=this._getStickyEndColumnPositions(r,n),c=e.lastIndexOf(!0),d=n.indexOf(!0);this._scheduleStyleChanges((()=>{const o="rtl"===this.direction,i=o?"right":"left",p=o?"left":"right";for(const o of t)for(let t=0;t<a;t++){const a=o.children[t];e[t]&&this._addStickyStyle(a,i,s[t],t===c),n[t]&&this._addStickyStyle(a,p,l[t],t===d)}this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:-1===c?[]:r.slice(0,c+1).map(((t,n)=>e[n]?t:null))}),this._positionListener.stickyEndColumnsUpdated({sizes:-1===d?[]:r.slice(d).map(((t,e)=>n[e+d]?t:null)).reverse()}))}))}stickRows(t,e,n){if(!this._isBrowser)return;const o="bottom"===n?t.slice().reverse():t,i="bottom"===n?e.slice().reverse():e,a=[],r=[],s=[];for(let t=0,e=0;t<o.length;t++){if(a[t]=e,!i[t])continue;const n=o[t];s[t]=this._isNativeHtmlTable?Array.from(n.children):[n];const l=n.getBoundingClientRect().height;e+=l,r[t]=l}const l=i.lastIndexOf(!0);this._scheduleStyleChanges((()=>{var t,e;for(let t=0;t<o.length;t++){if(!i[t])continue;const e=a[t],o=t===l;for(const i of s[t])this._addStickyStyle(i,n,e,o)}"top"===n?null===(t=this._positionListener)||void 0===t||t.stickyHeaderRowsUpdated({sizes:r,elements:s}):null===(e=this._positionListener)||void 0===e||e.stickyFooterRowsUpdated({sizes:r,elements:s})}))}updateStickyFooterContainer(t,e){if(!this._isNativeHtmlTable)return;const n=t.querySelector("tfoot");this._scheduleStyleChanges((()=>{e.some((t=>!t))?this._removeStickyStyle(n,["bottom"]):this._addStickyStyle(n,"bottom",0,!1)}))}_removeStickyStyle(t,e){for(const n of e)t.style[n]="",t.classList.remove(this._borderCellCss[n]);X$.some((n=>-1===e.indexOf(n)&&t.style[n]))?t.style.zIndex=this._getCalculatedZIndex(t):(t.style.zIndex="",this._needsPositionStickyOnElement&&(t.style.position=""),t.classList.remove(this._stickCellCss))}_addStickyStyle(t,e,n,o){t.classList.add(this._stickCellCss),o&&t.classList.add(this._borderCellCss[e]),t.style[e]=`${n}px`,t.style.zIndex=this._getCalculatedZIndex(t),this._needsPositionStickyOnElement&&(t.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(t){const e={top:100,bottom:10,left:1,right:1};let n=0;for(const o of X$)t.style[o]&&(n+=e[o]);return n?`${n}`:""}_getCellWidths(t,e=!0){if(!e&&this._cachedCellWidths.length)return this._cachedCellWidths;const n=[],o=t.children;for(let t=0;t<o.length;t++)n.push(o[t].getBoundingClientRect().width);return this._cachedCellWidths=n,n}_getStickyStartColumnPositions(t,e){const n=[];let o=0;for(let i=0;i<t.length;i++)e[i]&&(n[i]=o,o+=t[i]);return n}_getStickyEndColumnPositions(t,e){const n=[];let o=0;for(let i=t.length;i>0;i--)e[i]&&(n[i]=o,o+=t[i]);return n}_scheduleStyleChanges(t){this._coalescedStyleScheduler?this._coalescedStyleScheduler.schedule(t):t()}}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */function J$(t){return Error(`Could not find column with id "${t}".`)}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Q$=new Nr("CDK_SPL");
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */class $${constructor(t,e){this.viewContainer=t,this.elementRef=e}}$$.ɵfac=function t(e){return new(e||$$)(Mu(Xh),Mu(ch))},$$.ɵdir=Jo({type:$$,selectors:[["","rowOutlet",""]]}),$$.ctorParameters=()=>[{type:Xh},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db($$,[{type:g_,args:[{selector:"[rowOutlet]"}]}],(function(){return[{type:Xh},{type:ch}]}),null);class t0{constructor(t,e){this.viewContainer=t,this.elementRef=e}}t0.ɵfac=function t(e){return new(e||t0)(Mu(Xh),Mu(ch))},t0.ɵdir=Jo({type:t0,selectors:[["","headerRowOutlet",""]]}),t0.ctorParameters=()=>[{type:Xh},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(t0,[{type:g_,args:[{selector:"[headerRowOutlet]"}]}],(function(){return[{type:Xh},{type:ch}]}),null);class e0{constructor(t,e){this.viewContainer=t,this.elementRef=e}}e0.ɵfac=function t(e){return new(e||e0)(Mu(Xh),Mu(ch))},e0.ɵdir=Jo({type:e0,selectors:[["","footerRowOutlet",""]]}),e0.ctorParameters=()=>[{type:Xh},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(e0,[{type:g_,args:[{selector:"[footerRowOutlet]"}]}],(function(){return[{type:Xh},{type:ch}]}),null);class n0{constructor(t,e){this.viewContainer=t,this.elementRef=e}}n0.ɵfac=function t(e){return new(e||n0)(Mu(Xh),Mu(ch))},n0.ɵdir=Jo({type:n0,selectors:[["","noDataRowOutlet",""]]}),n0.ctorParameters=()=>[{type:Xh},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(n0,[{type:g_,args:[{selector:"[noDataRowOutlet]"}]}],(function(){return[{type:Xh},{type:ch}]}),null);const o0='\n  <ng-content select="caption"></ng-content>\n  <ng-content select="colgroup, col"></ng-content>\n  <ng-container headerRowOutlet></ng-container>\n  <ng-container rowOutlet></ng-container>\n  <ng-container noDataRowOutlet></ng-container>\n  <ng-container footerRowOutlet></ng-container>\n';class i0{constructor(t,e,n,o,i,a,r,s,l,c,d){this._differs=t,this._changeDetectorRef=e,this._elementRef=n,this._dir=i,this._platform=r,this._viewRepeater=s,this._coalescedStyleScheduler=l,this._stickyPositioningListener=c,this._viewportRuler=d,this._onDestroy=new x,this._columnDefsByName=new Map,this._customColumnDefs=new Set,this._customRowDefs=new Set,this._customHeaderRowDefs=new Set,this._customFooterRowDefs=new Set,this._headerRowDefChanged=!0,this._footerRowDefChanged=!0,this._stickyColumnStylesNeedReset=!0,this._forceRecalculateCellWidths=!0,this._cachedRenderRowsMap=new Map,this.stickyCssClass="cdk-table-sticky",this.needsPositionStickyOnElement=!0,this._isShowingNoDataRow=!1,this._multiTemplateDataRows=!1,this._fixedLayout=!1,this.viewChange=new H({start:0,end:Number.MAX_VALUE}),o||this._elementRef.nativeElement.setAttribute("role","grid"),this._document=a,this._isNativeHtmlTable="TABLE"===this._elementRef.nativeElement.nodeName}get trackBy(){return this._trackByFn}set trackBy(t){"undefined"!=typeof ngDevMode&&!ngDevMode||null==t||"function"==typeof t||console.warn(`trackBy must be a function, but received ${JSON.stringify(t)}.`),this._trackByFn=t}get dataSource(){return this._dataSource}set dataSource(t){this._dataSource!==t&&this._switchDataSource(t)}get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(t){this._multiTemplateDataRows=rI(t),this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}get fixedLayout(){return this._fixedLayout}set fixedLayout(t){this._fixedLayout=rI(t),this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}ngOnInit(){this._setupStickyStyler(),this._isNativeHtmlTable&&this._applyNativeTableSections(),this._dataDiffer=this._differs.find([]).create(((t,e)=>this.trackBy?this.trackBy(e.dataIndex,e.data):e)),this._viewportRuler&&this._viewportRuler.change().pipe(un(this._onDestroy)).subscribe((()=>{this._forceRecalculateCellWidths=!0}))}ngAfterContentChecked(){if(this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&!this._rowDefs.length&&("undefined"==typeof ngDevMode||ngDevMode))throw(function t(){return Error("Missing definitions for header, footer, and row; cannot determine which columns should be rendered.")})();const e=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||e,this._forceRecalculateCellWidths=e,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}ngOnDestroy(){this._rowOutlet.viewContainer.clear(),this._noDataRowOutlet.viewContainer.clear(),this._headerRowOutlet.viewContainer.clear(),this._footerRowOutlet.viewContainer.clear(),this._cachedRenderRowsMap.clear(),this._onDestroy.next(),this._onDestroy.complete(),FH(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();const t=this._dataDiffer.diff(this._renderRows);if(!t)return void this._updateNoDataRow();const e=this._rowOutlet.viewContainer;this._viewRepeater?this._viewRepeater.applyChanges(t,e,((t,e,n)=>this._getEmbeddedViewArgs(t.item,n)),(t=>t.item.data),(t=>{1===t.operation&&t.context&&this._renderCellTemplateForItem(t.record.item.rowDef,t.context)})):t.forEachOperation(((t,n,o)=>{if(null==t.previousIndex){const e=t.item;this._renderRow(this._rowOutlet,e.rowDef,o,{$implicit:e.data})}else if(null==o)e.remove(n);else{const t=e.get(n);e.move(t,o)}})),this._updateRowIndexContext(),t.forEachIdentityChange((t=>{e.get(t.currentIndex).context.$implicit=t.item.data})),this._updateNoDataRow(),this.updateStickyColumnStyles()}addColumnDef(t){this._customColumnDefs.add(t)}removeColumnDef(t){this._customColumnDefs.delete(t)}addRowDef(t){this._customRowDefs.add(t)}removeRowDef(t){this._customRowDefs.delete(t)}addHeaderRowDef(t){this._customHeaderRowDefs.add(t),this._headerRowDefChanged=!0}removeHeaderRowDef(t){this._customHeaderRowDefs.delete(t),this._headerRowDefChanged=!0}addFooterRowDef(t){this._customFooterRowDefs.add(t),this._footerRowDefChanged=!0}removeFooterRowDef(t){this._customFooterRowDefs.delete(t),this._footerRowDefChanged=!0}setNoDataRow(t){this._customNoDataRow=t}updateStickyHeaderRowStyles(){const t=this._getRenderedRows(this._headerRowOutlet),e=this._elementRef.nativeElement.querySelector("thead");e&&(e.style.display=t.length?"":"none");const n=this._headerRowDefs.map((t=>t.sticky));this._stickyStyler.clearStickyPositioning(t,["top"]),this._stickyStyler.stickRows(t,n,"top"),this._headerRowDefs.forEach((t=>t.resetStickyChanged()))}updateStickyFooterRowStyles(){const t=this._getRenderedRows(this._footerRowOutlet),e=this._elementRef.nativeElement.querySelector("tfoot");e&&(e.style.display=t.length?"":"none");const n=this._footerRowDefs.map((t=>t.sticky));this._stickyStyler.clearStickyPositioning(t,["bottom"]),this._stickyStyler.stickRows(t,n,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,n),this._footerRowDefs.forEach((t=>t.resetStickyChanged()))}updateStickyColumnStyles(){const t=this._getRenderedRows(this._headerRowOutlet),e=this._getRenderedRows(this._rowOutlet),n=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...t,...e,...n],["left","right"]),this._stickyColumnStylesNeedReset=!1),t.forEach(((t,e)=>{this._addStickyColumnStyles([t],this._headerRowDefs[e])})),this._rowDefs.forEach((t=>{const n=[];for(let o=0;o<e.length;o++)this._renderRows[o].rowDef===t&&n.push(e[o]);this._addStickyColumnStyles(n,t)})),n.forEach(((t,e)=>{this._addStickyColumnStyles([t],this._footerRowDefs[e])})),Array.from(this._columnDefsByName.values()).forEach((t=>t.resetStickyChanged()))}_getAllRenderRows(){const t=[],e=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let n=0;n<this._data.length;n++){let o=this._data[n];const i=this._getRenderRowsForData(o,n,e.get(o));this._cachedRenderRowsMap.has(o)||this._cachedRenderRowsMap.set(o,new WeakMap);for(let e=0;e<i.length;e++){let n=i[e];const o=this._cachedRenderRowsMap.get(n.data);o.has(n.rowDef)?o.get(n.rowDef).push(n):o.set(n.rowDef,[n]),t.push(n)}}return t}_getRenderRowsForData(t,e,n){return this._getRowDefs(t,e).map((o=>{const i=n&&n.has(o)?n.get(o):[];if(i.length){const t=i.shift();return t.dataIndex=e,t}return{data:t,rowDef:o,dataIndex:e}}))}_cacheColumnDefs(){this._columnDefsByName.clear(),a0(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach((t=>{if(this._columnDefsByName.has(t.name)&&("undefined"==typeof ngDevMode||ngDevMode))throw(function e(t){return Error(`Duplicate column definition name provided: "${t}".`)})(t.name);this._columnDefsByName.set(t.name,t)}))}_cacheRowDefs(){this._headerRowDefs=a0(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=a0(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=a0(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);const t=this._rowDefs.filter((t=>!t.when));if(!this.multiTemplateDataRows&&t.length>1&&("undefined"==typeof ngDevMode||ngDevMode))throw(function e(){return Error("There can only be one default row without a when predicate function.")})();this._defaultRowDef=t[0]}_renderUpdatedColumns(){const t=(t,e)=>t||!!e.getColumnsDiff(),e=this._rowDefs.reduce(t,!1);e&&this._forceRenderDataRows();const n=this._headerRowDefs.reduce(t,!1);n&&this._forceRenderHeaderRows();const o=this._footerRowDefs.reduce(t,!1);return o&&this._forceRenderFooterRows(),e||n||o}_switchDataSource(t){this._data=[],FH(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),t||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear()),this._dataSource=t}_observeRenderChanges(){if(!this.dataSource)return;let t;if(FH(this.dataSource)?t=this.dataSource.connect(this):ut(this.dataSource)?t=this.dataSource:Array.isArray(this.dataSource)&&(t=Z(this.dataSource)),void 0===t&&("undefined"==typeof ngDevMode||ngDevMode))throw(function e(){return Error("Provided data source did not match an array, Observable, or DataSource")})();this._renderChangeSubscription=t.pipe(un(this._onDestroy)).subscribe((t=>{this._data=t||[],this.renderRows()}))}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach(((t,e)=>this._renderRow(this._headerRowOutlet,t,e))),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach(((t,e)=>this._renderRow(this._footerRowOutlet,t,e))),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(t,e){const n=Array.from(e.columns||[]).map((t=>{const e=this._columnDefsByName.get(t);if(!e&&("undefined"==typeof ngDevMode||ngDevMode))throw J$(t);return e})),o=n.map((t=>t.sticky)),i=n.map((t=>t.stickyEnd));this._stickyStyler.updateStickyColumns(t,o,i,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(t){const e=[];for(let n=0;n<t.viewContainer.length;n++){const o=t.viewContainer.get(n);e.push(o.rootNodes[0])}return e}_getRowDefs(t,e){if(1==this._rowDefs.length)return[this._rowDefs[0]];let n=[];if(this.multiTemplateDataRows)n=this._rowDefs.filter((n=>!n.when||n.when(e,t)));else{let o=this._rowDefs.find((n=>n.when&&n.when(e,t)))||this._defaultRowDef;o&&n.push(o)}if(!n.length&&("undefined"==typeof ngDevMode||ngDevMode))throw(function o(t){return Error(`Could not find a matching row definition for theprovided row data: ${JSON.stringify(t)}`)})(t);return n}_getEmbeddedViewArgs(t,e){return{templateRef:t.rowDef.template,context:{$implicit:t.data},index:e}}_renderRow(t,e,n,o={}){const i=t.viewContainer.createEmbeddedView(e.template,o,n);return this._renderCellTemplateForItem(e,o),i}_renderCellTemplateForItem(t,e){for(let n of this._getCellTemplates(t))W$.mostRecentCellOutlet&&W$.mostRecentCellOutlet._viewContainer.createEmbeddedView(n,e);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){const t=this._rowOutlet.viewContainer;for(let e=0,n=t.length;e<n;e++){const o=t.get(e).context;o.count=n,o.first=0===e,o.last=e===n-1,o.even=e%2==0,o.odd=!o.even,this.multiTemplateDataRows?(o.dataIndex=this._renderRows[e].dataIndex,o.renderIndex=e):o.index=this._renderRows[e].dataIndex}}_getCellTemplates(t){return t&&t.columns?Array.from(t.columns,(e=>{const n=this._columnDefsByName.get(e);if(!n&&("undefined"==typeof ngDevMode||ngDevMode))throw J$(e);return t.extractCellTemplate(n)})):[]}_applyNativeTableSections(){const t=this._document.createDocumentFragment(),e=[{tag:"thead",outlets:[this._headerRowOutlet]},{tag:"tbody",outlets:[this._rowOutlet,this._noDataRowOutlet]},{tag:"tfoot",outlets:[this._footerRowOutlet]}];for(const n of e){const e=this._document.createElement(n.tag);e.setAttribute("role","rowgroup");for(const t of n.outlets)e.appendChild(t.elementRef.nativeElement);t.appendChild(e)}this._elementRef.nativeElement.appendChild(t)}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){const t=(t,e)=>t||e.hasStickyChanged();this._headerRowDefs.reduce(t,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(t,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(t,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){this._stickyStyler=new K$(this._isNativeHtmlTable,this.stickyCssClass,this._dir?this._dir.value:"ltr",this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener),(this._dir?this._dir.change:Z()).pipe(un(this._onDestroy)).subscribe((t=>{this._stickyStyler.direction=t,this.updateStickyColumnStyles()}))}_getOwnDefs(t){return t.filter((t=>!t._table||t._table===this))}_updateNoDataRow(){const t=this._customNoDataRow||this._noDataRow;if(t){const e=0===this._rowOutlet.viewContainer.length;if(e!==this._isShowingNoDataRow){const n=this._noDataRowOutlet.viewContainer;e?n.createEmbeddedView(t.templateRef):n.clear(),this._isShowingNoDataRow=e}}}}function a0(t,e){return t.concat(Array.from(e))}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */i0.ɵfac=function t(e){return new(e||i0)(Mu(Eh),Mu(Hh),Mu(ch),Or("role"),Mu(Mz,8),Mu(UC),Mu(fI),Mu(WH,8),Mu(I$,8),Mu(Q$,12),Mu(QH,8))},i0.ɵcmp=Uo({type:i0,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function t(e,n,o){if(1&e&&(Gb(o,Z$,1),Gb(o,D$,1),Gb(o,U$,1),Gb(o,B$,1),Gb(o,j$,1)),2&e){let t;Ub(t=Yb())&&(n._noDataRow=t.first),Ub(t=Yb())&&(n._contentColumnDefs=t),Ub(t=Yb())&&(n._contentRowDefs=t),Ub(t=Yb())&&(n._contentHeaderRowDefs=t),Ub(t=Yb())&&(n._contentFooterRowDefs=t)}},viewQuery:function t(e,n){if(1&e&&(Wb($$,3),Wb(t0,3),Wb(e0,3),Wb(n0,3)),2&e){let t;Ub(t=Yb())&&(n._rowOutlet=t.first),Ub(t=Yb())&&(n._headerRowOutlet=t.first),Ub(t=Yb())&&(n._footerRowOutlet=t.first),Ub(t=Yb())&&(n._noDataRowOutlet=t.first)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function t(e,n){2&e&&af("cdk-table-fixed-layout",n.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:"multiTemplateDataRows",fixedLayout:"fixedLayout"},exportAs:["cdkTable"],features:[ih([{provide:x$,useExisting:i0},{provide:WH,useClass:BH},{provide:I$,useClass:z$},{provide:Q$,useValue:null}])],ngContentSelectors:["caption","colgroup, col"],decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function t(e,n){1&e&&(Vu(_$),ju(0),ju(1,1),Du(2,0),Du(3,1),Du(4,2),Du(5,3))},directives:[t0,$$,n0,e0],styles:[".cdk-table-fixed-layout{table-layout:fixed}\n"],encapsulation:2}),i0.ctorParameters=()=>[{type:Eh},{type:Hh},{type:ch},{type:String,decorators:[{type:Rr,args:["role"]}]},{type:Mz,decorators:[{type:_s}]},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[WH]}]},{type:z$,decorators:[{type:_s},{type:ys,args:[I$]}]},{type:void 0,decorators:[{type:_s},{type:Ms},{type:ys,args:[Q$]}]},{type:QH,decorators:[{type:_s}]}],i0.propDecorators={trackBy:[{type:y_}],dataSource:[{type:y_}],multiTemplateDataRows:[{type:y_}],fixedLayout:[{type:y_}],_rowOutlet:[{type:Fr,args:[$$,{static:!0}]}],_headerRowOutlet:[{type:Fr,args:[t0,{static:!0}]}],_footerRowOutlet:[{type:Fr,args:[e0,{static:!0}]}],_noDataRowOutlet:[{type:Fr,args:[n0,{static:!0}]}],_contentColumnDefs:[{type:zr,args:[D$,{descendants:!0}]}],_contentRowDefs:[{type:zr,args:[U$,{descendants:!0}]}],_contentHeaderRowDefs:[{type:zr,args:[B$,{descendants:!0}]}],_contentFooterRowDefs:[{type:zr,args:[j$,{descendants:!0}]}],_noDataRow:[{type:Hr,args:[Z$]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(i0,[{type:h_,args:[{selector:"cdk-table, table[cdk-table]",exportAs:"cdkTable",template:o0,host:{class:"cdk-table","[class.cdk-table-fixed-layout]":"fixedLayout"},encapsulation:Po.None,changeDetection:xo.Default,providers:[{provide:x$,useExisting:i0},{provide:WH,useClass:BH},{provide:I$,useClass:z$},{provide:Q$,useValue:null}],styles:[".cdk-table-fixed-layout{table-layout:fixed}\n"]}]}],(function(){return[{type:Eh},{type:Hh},{type:ch},{type:String,decorators:[{type:Rr,args:["role"]}]},{type:Mz,decorators:[{type:_s}]},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[WH]}]},{type:z$,decorators:[{type:_s},{type:ys,args:[I$]}]},{type:void 0,decorators:[{type:_s},{type:Ms},{type:ys,args:[Q$]}]},{type:QH,decorators:[{type:_s}]}]}),{trackBy:[{type:y_}],dataSource:[{type:y_}],multiTemplateDataRows:[{type:y_}],fixedLayout:[{type:y_}],_rowOutlet:[{type:Fr,args:[$$,{static:!0}]}],_headerRowOutlet:[{type:Fr,args:[t0,{static:!0}]}],_footerRowOutlet:[{type:Fr,args:[e0,{static:!0}]}],_noDataRowOutlet:[{type:Fr,args:[n0,{static:!0}]}],_contentColumnDefs:[{type:zr,args:[D$,{descendants:!0}]}],_contentRowDefs:[{type:zr,args:[U$,{descendants:!0}]}],_contentHeaderRowDefs:[{type:zr,args:[B$,{descendants:!0}]}],_contentFooterRowDefs:[{type:zr,args:[j$,{descendants:!0}]}],_noDataRow:[{type:Hr,args:[Z$]}]});class r0{constructor(t,e){this._table=t,this._options=e,this.justify="start",this._options=e||{}}get name(){return this._name}set name(t){this._name=t,this._syncColumnDefName()}ngOnInit(){if(this._syncColumnDefName(),void 0===this.headerText&&(this.headerText=this._createDefaultHeaderText()),this.dataAccessor||(this.dataAccessor=this._options.defaultDataAccessor||((t,e)=>t[e])),this._table)this.columnDef.cell=this.cell,this.columnDef.headerCell=this.headerCell,this._table.addColumnDef(this.columnDef);else if("undefined"==typeof ngDevMode||ngDevMode)throw(function t(){return Error("Text column could not find a parent table for registration.")})()}ngOnDestroy(){this._table&&this._table.removeColumnDef(this.columnDef)}_createDefaultHeaderText(){const t=this.name;if(!t&&("undefined"==typeof ngDevMode||ngDevMode))throw(function e(){return Error("Table text column must have a name.")})();return this._options&&this._options.defaultHeaderTextTransform?this._options.defaultHeaderTextTransform(t):t[0].toUpperCase()+t.slice(1)}_syncColumnDefName(){this.columnDef&&(this.columnDef.name=this.name)}}r0.ɵfac=function t(e){return new(e||r0)(Mu(i0,8),Mu(O$,8))},r0.ɵcmp=Uo({type:r0,selectors:[["cdk-text-column"]],viewQuery:function t(e,n){if(1&e&&(Wb(D$,3),Wb(P$,3),Wb(w$,3)),2&e){let t;Ub(t=Yb())&&(n.columnDef=t.first),Ub(t=Yb())&&(n.cell=t.first),Ub(t=Yb())&&(n.headerCell=t.first)}},inputs:{justify:"justify",name:"name",headerText:"headerText",dataAccessor:"dataAccessor"},decls:3,vars:0,consts:[["cdkColumnDef",""],["cdk-header-cell","",3,"text-align",4,"cdkHeaderCellDef"],["cdk-cell","",3,"text-align",4,"cdkCellDef"],["cdk-header-cell",""],["cdk-cell",""]],template:function t(e,n){1&e&&(ku(0,0),Wm(1,C$,2,3,"th",1),Wm(2,M$,2,3,"td",2),Su())},directives:[D$,w$,P$,A$,T$],encapsulation:2}),r0.ctorParameters=()=>[{type:i0,decorators:[{type:_s}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[O$]}]}],r0.propDecorators={name:[{type:y_}],headerText:[{type:y_}],dataAccessor:[{type:y_}],justify:[{type:y_}],columnDef:[{type:Fr,args:[D$,{static:!0}]}],cell:[{type:Fr,args:[P$,{static:!0}]}],headerCell:[{type:Fr,args:[w$,{static:!0}]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(r0,[{type:h_,args:[{selector:"cdk-text-column",template:'\n    <ng-container cdkColumnDef>\n      <th cdk-header-cell *cdkHeaderCellDef [style.text-align]="justify">\n        {{headerText}}\n      </th>\n      <td cdk-cell *cdkCellDef="let data" [style.text-align]="justify">\n        {{dataAccessor(data, name)}}\n      </td>\n    </ng-container>\n  ',encapsulation:Po.None,changeDetection:xo.Default}]}],(function(){return[{type:i0,decorators:[{type:_s}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[O$]}]}]}),{justify:[{type:y_}],name:[{type:y_}],headerText:[{type:y_}],dataAccessor:[{type:y_}],columnDef:[{type:Fr,args:[D$,{static:!0}]}],cell:[{type:Fr,args:[P$,{static:!0}]}],headerCell:[{type:Fr,args:[w$,{static:!0}]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const s0=[i0,U$,P$,W$,w$,k$,D$,T$,q$,A$,R$,G$,B$,Y$,j$,$$,t0,e0,r0,Z$,n0];class l0{}l0.ɵfac=function t(e){return new(e||l0)},l0.ɵmod=Zo({type:l0}),l0.ɵinj=co({imports:[[iF]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(l0,{declarations:function(){return[i0,U$,P$,W$,w$,k$,D$,T$,q$,A$,R$,G$,B$,Y$,j$,$$,t0,e0,r0,Z$,n0]},imports:function(){return[iF]},exports:function(){return[i0,U$,P$,W$,w$,k$,D$,T$,q$,A$,R$,G$,B$,Y$,j$,$$,t0,e0,r0,Z$,n0]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(l0,[{type:k_,args:[{exports:s0,declarations:s0,imports:[iF]}]}],null,null);const c0=[[["caption"]],[["colgroup"],["col"]]];function d0(t,e){if(1&t&&(Ou(0,"th",3),Mf(1),Pu()),2&t){const t=Lu();of("text-align",t.justify),Jc(1),xf(" ",t.headerText," ")}}function p0(t,e){if(1&t&&(Ou(0,"td",4),Mf(1),Pu()),2&t){const t=e.$implicit,n=Lu();of("text-align",n.justify),Jc(1),xf(" ",n.dataAccessor(t,n.name)," ")}}class m0 extends i0{constructor(){super(...arguments),this.stickyCssClass="mat-table-sticky",this.needsPositionStickyOnElement=!1}}m0.ɵfac=function t(e){return u0(e||m0)},m0.ɵcmp=Uo({type:m0,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-table"],hostVars:2,hostBindings:function t(e,n){2&e&&af("mat-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[ih([{provide:WH,useClass:BH},{provide:i0,useExisting:m0},{provide:x$,useExisting:m0},{provide:I$,useClass:z$}]),gm],ngContentSelectors:["caption","colgroup, col"],decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function t(e,n){1&e&&(Vu(c0),ju(0),ju(1,1),Du(2,0),Du(3,1),Du(4,2),Du(5,3))},directives:[t0,$$,n0,e0],styles:['mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-row::after,mat-header-row::after,mat-footer-row::after{display:inline-block;min-height:inherit;content:""}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}table.mat-table{border-spacing:0}tr.mat-header-row{height:56px}tr.mat-row,tr.mat-footer-row{height:48px}th.mat-header-cell{text-align:left}[dir=rtl] th.mat-header-cell{text-align:right}th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:0;border-bottom-width:1px;border-bottom-style:solid}th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] th.mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] th.mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}.mat-table-sticky{position:-webkit-sticky !important;position:sticky !important}.mat-table-fixed-layout{table-layout:fixed}\n'],encapsulation:2});const u0=vr(m0);("undefined"==typeof ngDevMode||ngDevMode)&&db(m0,[{type:h_,args:[{selector:"mat-table, table[mat-table]",exportAs:"matTable",template:o0,host:{class:"mat-table","[class.mat-table-fixed-layout]":"fixedLayout"},providers:[{provide:WH,useClass:BH},{provide:i0,useExisting:m0},{provide:x$,useExisting:m0},{provide:I$,useClass:z$}],encapsulation:Po.None,changeDetection:xo.Default,styles:['mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-row::after,mat-header-row::after,mat-footer-row::after{display:inline-block;min-height:inherit;content:""}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}table.mat-table{border-spacing:0}tr.mat-header-row{height:56px}tr.mat-row,tr.mat-footer-row{height:48px}th.mat-header-cell{text-align:left}[dir=rtl] th.mat-header-cell{text-align:right}th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:0;border-bottom-width:1px;border-bottom-style:solid}th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] th.mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] th.mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}.mat-table-sticky{position:-webkit-sticky !important;position:sticky !important}.mat-table-fixed-layout{table-layout:fixed}\n']}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class f0 extends P${}f0.ɵfac=function t(e){return g0(e||f0)},f0.ɵdir=Jo({type:f0,selectors:[["","matCellDef",""]],features:[ih([{provide:P$,useExisting:f0}]),gm]});const g0=vr(f0);("undefined"==typeof ngDevMode||ngDevMode)&&db(f0,[{type:g_,args:[{selector:"[matCellDef]",providers:[{provide:P$,useExisting:f0}]}]}],null,null);class h0 extends w${}h0.ɵfac=function t(e){return b0(e||h0)},h0.ɵdir=Jo({type:h0,selectors:[["","matHeaderCellDef",""]],features:[ih([{provide:w$,useExisting:h0}]),gm]});const b0=vr(h0);("undefined"==typeof ngDevMode||ngDevMode)&&db(h0,[{type:g_,args:[{selector:"[matHeaderCellDef]",providers:[{provide:w$,useExisting:h0}]}]}],null,null);class y0 extends k${}y0.ɵfac=function t(e){return _0(e||y0)},y0.ɵdir=Jo({type:y0,selectors:[["","matFooterCellDef",""]],features:[ih([{provide:k$,useExisting:y0}]),gm]});const _0=vr(y0);("undefined"==typeof ngDevMode||ngDevMode)&&db(y0,[{type:g_,args:[{selector:"[matFooterCellDef]",providers:[{provide:k$,useExisting:y0}]}]}],null,null);class C0 extends D${get name(){return this._name}set name(t){this._setNameInput(t)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}}C0.ɵfac=function t(e){return M0(e||C0)},C0.ɵdir=Jo({type:C0,selectors:[["","matColumnDef",""]],inputs:{sticky:"sticky",name:["matColumnDef","name"]},features:[ih([{provide:D$,useExisting:C0},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:C0}]),gm]}),C0.propDecorators={name:[{type:y_,args:["matColumnDef"]}]};const M0=vr(C0);("undefined"==typeof ngDevMode||ngDevMode)&&db(C0,[{type:g_,args:[{selector:"[matColumnDef]",inputs:["sticky"],providers:[{provide:D$,useExisting:C0},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:C0}]}]}],null,{name:[{type:y_,args:["matColumnDef"]}]});class v0 extends A${}v0.ɵfac=function t(e){return x0(e||v0)},v0.ɵdir=Jo({type:v0,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-header-cell"],features:[gm]});const x0=vr(v0);("undefined"==typeof ngDevMode||ngDevMode)&&db(v0,[{type:g_,args:[{selector:"mat-header-cell, th[mat-header-cell]",host:{class:"mat-header-cell",role:"columnheader"}}]}],null,null);class O0 extends R${}O0.ɵfac=function t(e){return P0(e||O0)},O0.ɵdir=Jo({type:O0,selectors:[["mat-footer-cell"],["td","mat-footer-cell",""]],hostAttrs:["role","gridcell",1,"mat-footer-cell"],features:[gm]});const P0=vr(O0);("undefined"==typeof ngDevMode||ngDevMode)&&db(O0,[{type:g_,args:[{selector:"mat-footer-cell, td[mat-footer-cell]",host:{class:"mat-footer-cell",role:"gridcell"}}]}],null,null);class w0 extends T${}w0.ɵfac=function t(e){return k0(e||w0)},w0.ɵdir=Jo({type:w0,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:["role","gridcell",1,"mat-cell"],features:[gm]});const k0=vr(w0);("undefined"==typeof ngDevMode||ngDevMode)&&db(w0,[{type:g_,args:[{selector:"mat-cell, td[mat-cell]",host:{class:"mat-cell",role:"gridcell"}}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class S0 extends B${}S0.ɵfac=function t(e){return D0(e||S0)},S0.ɵdir=Jo({type:S0,selectors:[["","matHeaderRowDef",""]],inputs:{columns:["matHeaderRowDef","columns"],sticky:["matHeaderRowDefSticky","sticky"]},features:[ih([{provide:B$,useExisting:S0}]),gm]});const D0=vr(S0);("undefined"==typeof ngDevMode||ngDevMode)&&db(S0,[{type:g_,args:[{selector:"[matHeaderRowDef]",providers:[{provide:B$,useExisting:S0}],inputs:["columns: matHeaderRowDef","sticky: matHeaderRowDefSticky"]}]}],null,null);class E0 extends j${}E0.ɵfac=function t(e){return A0(e||E0)},E0.ɵdir=Jo({type:E0,selectors:[["","matFooterRowDef",""]],inputs:{columns:["matFooterRowDef","columns"],sticky:["matFooterRowDefSticky","sticky"]},features:[ih([{provide:j$,useExisting:E0}]),gm]});const A0=vr(E0);("undefined"==typeof ngDevMode||ngDevMode)&&db(E0,[{type:g_,args:[{selector:"[matFooterRowDef]",providers:[{provide:j$,useExisting:E0}],inputs:["columns: matFooterRowDef","sticky: matFooterRowDefSticky"]}]}],null,null);class R0 extends U${}R0.ɵfac=function t(e){return T0(e||R0)},R0.ɵdir=Jo({type:R0,selectors:[["","matRowDef",""]],inputs:{columns:["matRowDefColumns","columns"],when:["matRowDefWhen","when"]},features:[ih([{provide:U$,useExisting:R0}]),gm]});const T0=vr(R0);("undefined"==typeof ngDevMode||ngDevMode)&&db(R0,[{type:g_,args:[{selector:"[matRowDef]",providers:[{provide:U$,useExisting:R0}],inputs:["columns: matRowDefColumns","when: matRowDefWhen"]}]}],null,null);class N0 extends G${}N0.ɵfac=function t(e){return I0(e||N0)},N0.ɵcmp=Uo({type:N0,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-header-row"],exportAs:["matHeaderRow"],features:[ih([{provide:G$,useExisting:N0}]),gm],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function t(e,n){1&e&&Du(0,0)},directives:[W$],encapsulation:2});const I0=vr(N0);("undefined"==typeof ngDevMode||ngDevMode)&&db(N0,[{type:h_,args:[{selector:"mat-header-row, tr[mat-header-row]",template:H$,host:{class:"mat-header-row",role:"row"},changeDetection:xo.Default,encapsulation:Po.None,exportAs:"matHeaderRow",providers:[{provide:G$,useExisting:N0}]}]}],null,null);class z0 extends Y${}z0.ɵfac=function t(e){return H0(e||z0)},z0.ɵcmp=Uo({type:z0,selectors:[["mat-footer-row"],["tr","mat-footer-row",""]],hostAttrs:["role","row",1,"mat-footer-row"],exportAs:["matFooterRow"],features:[ih([{provide:Y$,useExisting:z0}]),gm],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function t(e,n){1&e&&Du(0,0)},directives:[W$],encapsulation:2});const H0=vr(z0);("undefined"==typeof ngDevMode||ngDevMode)&&db(z0,[{type:h_,args:[{selector:"mat-footer-row, tr[mat-footer-row]",template:H$,host:{class:"mat-footer-row",role:"row"},changeDetection:xo.Default,encapsulation:Po.None,exportAs:"matFooterRow",providers:[{provide:Y$,useExisting:z0}]}]}],null,null);class F0 extends q${}F0.ɵfac=function t(e){return L0(e||F0)},F0.ɵcmp=Uo({type:F0,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-row"],exportAs:["matRow"],features:[ih([{provide:q$,useExisting:F0}]),gm],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function t(e,n){1&e&&Du(0,0)},directives:[W$],encapsulation:2});const L0=vr(F0);("undefined"==typeof ngDevMode||ngDevMode)&&db(F0,[{type:h_,args:[{selector:"mat-row, tr[mat-row]",template:H$,host:{class:"mat-row",role:"row"},changeDetection:xo.Default,encapsulation:Po.None,exportAs:"matRow",providers:[{provide:q$,useExisting:F0}]}]}],null,null);class B0 extends Z${}B0.ɵfac=function t(e){return V0(e||B0)},B0.ɵdir=Jo({type:B0,selectors:[["ng-template","matNoDataRow",""]],features:[ih([{provide:Z$,useExisting:B0}]),gm]});const V0=vr(B0);("undefined"==typeof ngDevMode||ngDevMode)&&db(B0,[{type:g_,args:[{selector:"ng-template[matNoDataRow]",providers:[{provide:Z$,useExisting:B0}]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class j0 extends r0{}j0.ɵfac=function t(e){return U0(e||j0)},j0.ɵcmp=Uo({type:j0,selectors:[["mat-text-column"]],features:[gm],decls:3,vars:0,consts:[["matColumnDef",""],["mat-header-cell","",3,"text-align",4,"matHeaderCellDef"],["mat-cell","",3,"text-align",4,"matCellDef"],["mat-header-cell",""],["mat-cell",""]],template:function t(e,n){1&e&&(ku(0,0),Wm(1,d0,2,3,"th",1),Wm(2,p0,2,3,"td",2),Su())},directives:[C0,h0,f0,v0,w0],encapsulation:2});const U0=vr(j0);("undefined"==typeof ngDevMode||ngDevMode)&&db(j0,[{type:h_,args:[{selector:"mat-text-column",template:'\n    <ng-container matColumnDef>\n      <th mat-header-cell *matHeaderCellDef [style.text-align]="justify">\n        {{headerText}}\n      </th>\n      <td mat-cell *matCellDef="let data" [style.text-align]="justify">\n        {{dataAccessor(data, name)}}\n      </td>\n    </ng-container>\n  ',encapsulation:Po.None,changeDetection:xo.Default}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const W0=[m0,h0,S0,C0,f0,R0,y0,E0,v0,w0,O0,N0,F0,z0,B0,j0];class G0{}G0.ɵfac=function t(e){return new(e||G0)},G0.ɵmod=Zo({type:G0}),G0.ɵinj=co({imports:[[l0,Tz],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(G0,{declarations:function(){return[m0,h0,S0,C0,f0,R0,y0,E0,v0,w0,O0,N0,F0,z0,B0,j0]},imports:function(){return[l0,Tz]},exports:function(){return[Tz,m0,h0,S0,C0,f0,R0,y0,E0,v0,w0,O0,N0,F0,z0,B0,j0]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(G0,[{type:k_,args:[{imports:[l0,Tz],exports:[Tz,W0],declarations:W0}]}],null,null);class Y0 extends HH{constructor(t=[]){super(),this._renderData=new H([]),this._filter=new H(""),this._internalPageChanges=new x,this._renderChangesSubscription=null,this.sortingDataAccessor=(t,e)=>{const n=t[e];if(lI(n)){const t=Number(n);return t<9007199254740991?t:n}return n},this.sortData=(t,e)=>{const n=e.active,o=e.direction;return n&&""!=o?t.sort(((t,e)=>{let i=this.sortingDataAccessor(t,n),a=this.sortingDataAccessor(e,n);const r=typeof i,s=typeof a;r!==s&&("number"===r&&(i+=""),"number"===s&&(a+=""));let l=0;return null!=i&&null!=a?i>a?l=1:i<a&&(l=-1):null!=i?l=1:null!=a&&(l=-1),l*("asc"==o?1:-1)})):t},this.filterPredicate=(t,e)=>{const n=Object.keys(t).reduce(((e,n)=>e+t[n]+"◬"),"").toLowerCase(),o=e.trim().toLowerCase();return-1!=n.indexOf(o)},this._data=new H(t),this._updateChangeSubscription()}get data(){return this._data.value}set data(t){this._data.next(t),this._renderChangesSubscription||this._filterData(t)}get filter(){return this._filter.value}set filter(t){this._filter.next(t),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(t){this._sort=t,this._updateChangeSubscription()}get paginator(){return this._paginator}set paginator(t){this._paginator=t,this._updateChangeSubscription()}_updateChangeSubscription(){var t;const e=this._sort?Wt(this._sort.sortChange,this._sort.initialized):Z(null),n=this._paginator?Wt(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Z(null),o=Dt([this._data,this._filter]).pipe(ht((([t])=>this._filterData(t)))),i=Dt([o,e]).pipe(ht((([t])=>this._orderData(t)))),a=Dt([i,n]).pipe(ht((([t])=>this._pageData(t))));null===(t=this._renderChangesSubscription)||void 0===t||t.unsubscribe(),this._renderChangesSubscription=a.subscribe((t=>this._renderData.next(t)))}_filterData(t){return this.filteredData=null==this.filter||""===this.filter?t:t.filter((t=>this.filterPredicate(t,this.filter))),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(t){return this.sort?this.sortData(t.slice(),this.sort):t}_pageData(t){if(!this.paginator)return t;const e=this.paginator.pageIndex*this.paginator.pageSize;return t.slice(e,e+this.paginator.pageSize)}_updatePaginator(t){Promise.resolve().then((()=>{const e=this.paginator;if(e&&(e.length=t,e.pageIndex>0)){const t=Math.ceil(e.length/e.pageSize)-1||0,n=Math.min(e.pageIndex,t);n!==e.pageIndex&&(e.pageIndex=n,this._internalPageChanges.next())}}))}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){var t;null===(t=this._renderChangesSubscription)||void 0===t||t.unsubscribe(),this._renderChangesSubscription=null}}class q0 extends Y0{}const Z0=["panel"];function X0(t,e){if(1&t&&(Ou(0,"div",0,1),ju(2),Pu()),2&t){const t=e.id,n=Lu();vu("id",n.id)("ngClass",n._classList),Nm("aria-label",n.ariaLabel||null)("aria-labelledby",n._getPanelAriaLabelledby(t))}}let K0=0;class J0{constructor(t,e){this.source=t,this.option=e}}const Q0=zz(class{}),$0=new Nr("mat-autocomplete-default-options",{providedIn:"root",factory:function t1(){return{autoActiveFirstOption:!1}}});class e1 extends Q0{constructor(t,e,n,o){super(),this._changeDetectorRef=t,this._elementRef=e,this._activeOptionChanges=l.EMPTY,this.showPanel=!1,this._isOpen=!1,this.displayWith=null,this.optionSelected=new Ab,this.opened=new Ab,this.closed=new Ab,this.optionActivated=new Ab,this._classList={},this.id="mat-autocomplete-"+K0++,this.inertGroups=(null==o?void 0:o.SAFARI)||!1,this._autoActiveFirstOption=!!n.autoActiveFirstOption}get isOpen(){return this._isOpen&&this.showPanel}get autoActiveFirstOption(){return this._autoActiveFirstOption}set autoActiveFirstOption(t){this._autoActiveFirstOption=rI(t)}set classList(t){this._classList=t&&t.length?(function e(t,n=/\s+/){const o=[];if(null!=t){const e=Array.isArray(t)?t:`${t}`.split(n);for(const t of e){const e=`${t}`.trim();e&&o.push(e)}}return o})(t).reduce(((t,e)=>(t[e]=!0,t)),{}):{},this._setVisibilityClasses(this._classList),this._elementRef.nativeElement.className=""}ngAfterContentInit(){this._keyManager=new BI(this.options).withWrap(),this._activeOptionChanges=this._keyManager.change.subscribe((t=>{this.optionActivated.emit({source:this,option:this.options.toArray()[t]||null})})),this._setVisibility()}ngOnDestroy(){this._activeOptionChanges.unsubscribe()}_setScrollTop(t){this.panel&&(this.panel.nativeElement.scrollTop=t)}_getScrollTop(){return this.panel?this.panel.nativeElement.scrollTop:0}_setVisibility(){this.showPanel=!!this.options.length,this._setVisibilityClasses(this._classList),this._changeDetectorRef.markForCheck()}_emitSelectEvent(t){const e=new J0(this,t);this.optionSelected.emit(e)}_getPanelAriaLabelledby(t){return this.ariaLabel?null:this.ariaLabelledby?(t?t+" ":"")+this.ariaLabelledby:t}_setVisibilityClasses(t){t[this._visibleClass]=this.showPanel,t[this._hiddenClass]=!this.showPanel}}e1.ɵfac=function t(e){return new(e||e1)(Mu(Hh),Mu(ch),Mu($0),Mu(fI))},e1.ɵdir=Jo({type:e1,viewQuery:function t(e,n){if(1&e&&(Wb(Uh,3),Wb(Z0,1)),2&e){let t;Ub(t=Yb())&&(n.template=t.first),Ub(t=Yb())&&(n.panel=t.first)}},inputs:{displayWith:"displayWith",autoActiveFirstOption:"autoActiveFirstOption",classList:["class","classList"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],panelWidth:"panelWidth"},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},features:[gm]}),e1.ctorParameters=()=>[{type:Hh},{type:ch},{type:void 0,decorators:[{type:ys,args:[$0]}]},{type:fI}],e1.propDecorators={template:[{type:Fr,args:[Uh,{static:!0}]}],panel:[{type:Fr,args:["panel"]}],ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],displayWith:[{type:y_}],autoActiveFirstOption:[{type:y_}],panelWidth:[{type:y_}],optionSelected:[{type:__}],opened:[{type:__}],closed:[{type:__}],optionActivated:[{type:__}],classList:[{type:y_,args:["class"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(e1,[{type:g_}],(function(){return[{type:Hh},{type:ch},{type:void 0,decorators:[{type:ys,args:[$0]}]},{type:fI}]}),{displayWith:[{type:y_}],optionSelected:[{type:__}],opened:[{type:__}],closed:[{type:__}],optionActivated:[{type:__}],autoActiveFirstOption:[{type:y_}],classList:[{type:y_,args:["class"]}],template:[{type:Fr,args:[Uh,{static:!0}]}],panel:[{type:Fr,args:["panel"]}],ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],panelWidth:[{type:y_}]});class n1 extends e1{constructor(){super(...arguments),this._visibleClass="mat-autocomplete-visible",this._hiddenClass="mat-autocomplete-hidden"}}n1.ɵfac=function t(e){return o1(e||n1)},n1.ɵcmp=Uo({type:n1,selectors:[["mat-autocomplete"]],contentQueries:function t(e,n,o){if(1&e&&(Gb(o,_H,1),Gb(o,PH,1)),2&e){let t;Ub(t=Yb())&&(n.optionGroups=t),Ub(t=Yb())&&(n.options=t)}},hostAttrs:[1,"mat-autocomplete"],inputs:{disableRipple:"disableRipple"},exportAs:["matAutocomplete"],features:[ih([{provide:gH,useExisting:n1}]),gm],ngContentSelectors:["*"],decls:1,vars:0,consts:[["role","listbox",1,"mat-autocomplete-panel",3,"id","ngClass"],["panel",""]],template:function t(e,n){1&e&&(Vu(),Wm(0,X0,3,4,"ng-template"))},directives:[tv],styles:[".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}\n"],encapsulation:2,changeDetection:0}),n1.propDecorators={optionGroups:[{type:zr,args:[_H,{descendants:!0}]}],options:[{type:zr,args:[PH,{descendants:!0}]}]};const o1=vr(n1);("undefined"==typeof ngDevMode||ngDevMode)&&db(n1,[{type:h_,args:[{selector:"mat-autocomplete",template:'<ng-template let-formFieldId="id">\n  <div class="mat-autocomplete-panel"\n       role="listbox"\n       [id]="id"\n       [attr.aria-label]="ariaLabel || null"\n       [attr.aria-labelledby]="_getPanelAriaLabelledby(formFieldId)"\n       [ngClass]="_classList"\n       #panel>\n    <ng-content></ng-content>\n  </div>\n</ng-template>\n',encapsulation:Po.None,changeDetection:xo.OnPush,exportAs:"matAutocomplete",inputs:["disableRipple"],host:{class:"mat-autocomplete"},providers:[{provide:gH,useExisting:n1}],styles:[".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}\n"]}]}],null,{optionGroups:[{type:zr,args:[_H,{descendants:!0}]}],options:[{type:zr,args:[PH,{descendants:!0}]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class i1{constructor(t){this.elementRef=t}}i1.ɵfac=function t(e){return new(e||i1)(Mu(ch))},i1.ɵdir=Jo({type:i1}),i1.ctorParameters=()=>[{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(i1,[{type:g_}],(function(){return[{type:ch}]}),null);class a1 extends i1{}a1.ɵfac=function t(e){return r1(e||a1)},a1.ɵdir=Jo({type:a1,selectors:[["","matAutocompleteOrigin",""]],exportAs:["matAutocompleteOrigin"],features:[gm]});const r1=vr(a1);("undefined"==typeof ngDevMode||ngDevMode)&&db(a1,[{type:g_,args:[{selector:"[matAutocompleteOrigin]",exportAs:"matAutocompleteOrigin"}]}],null,null);const s1=new Nr("mat-autocomplete-scroll-strategy"),l1={provide:s1,deps:[JF],useFactory:function c1(t){return()=>t.scrollStrategies.reposition()}},d1={provide:vV,useExisting:In((()=>m1)),multi:!0};class p1{constructor(t,e,n,o,i,a,r,s,c,d,p){this._element=t,this._overlay=e,this._viewContainerRef=n,this._zone=o,this._changeDetectorRef=i,this._dir=r,this._formField=s,this._document=c,this._viewportRuler=d,this._defaults=p,this._componentDestroyed=!1,this._autocompleteDisabled=!1,this._manuallyFloatingLabel=!1,this._viewportSubscription=l.EMPTY,this._canOpenOnNextFocus=!0,this._closeKeyEventStream=new x,this._windowBlurHandler=()=>{this._canOpenOnNextFocus=this._document.activeElement!==this._element.nativeElement||this.panelOpen},this._onChange=()=>{},this._onTouched=()=>{},this.position="auto",this.autocompleteAttribute="off",this._overlayAttached=!1,this.optionSelections=Ft((()=>this.autocomplete&&this.autocomplete.options?Wt(...this.autocomplete.options.map((t=>t.onSelectionChange))):this._zone.onStable.pipe(Ne(1),dn((()=>this.optionSelections))))),this._scrollStrategy=a}get autocompleteDisabled(){return this._autocompleteDisabled}set autocompleteDisabled(t){this._autocompleteDisabled=rI(t)}ngAfterViewInit(){const t=this._getWindow();void 0!==t&&this._zone.runOutsideAngular((()=>t.addEventListener("blur",this._windowBlurHandler)))}ngOnChanges(t){t.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition())}ngOnDestroy(){const t=this._getWindow();void 0!==t&&t.removeEventListener("blur",this._windowBlurHandler),this._viewportSubscription.unsubscribe(),this._componentDestroyed=!0,this._destroyPanel(),this._closeKeyEventStream.complete()}get panelOpen(){return this._overlayAttached&&this.autocomplete.showPanel}openPanel(){this._attachOverlay(),this._floatLabel()}closePanel(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this.autocomplete.closed.emit(),this.autocomplete._isOpen=this._overlayAttached=!1,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._componentDestroyed||this._changeDetectorRef.detectChanges())}updatePosition(){this._overlayAttached&&this._overlayRef.updatePosition()}get panelClosingActions(){return Wt(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe(Gt((()=>this._overlayAttached))),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe(Gt((()=>this._overlayAttached))):Z()).pipe(ht((t=>t instanceof xH?t:null)))}get activeOption(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}_getOutsideClickStream(){return Wt(Vt(this._document,"click"),Vt(this._document,"auxclick"),Vt(this._document,"touchend")).pipe(Gt((t=>{const e=this._isInsideShadowRoot&&t.composedPath?t.composedPath()[0]:t.target,n=this._formField?this._formField._elementRef.nativeElement:null,o=this.connectedTo?this.connectedTo.elementRef.nativeElement:null;return this._overlayAttached&&e!==this._element.nativeElement&&(!n||!n.contains(e))&&(!o||!o.contains(e))&&!!this._overlayRef&&!this._overlayRef.overlayElement.contains(e)})))}writeValue(t){Promise.resolve(null).then((()=>this._setTriggerValue(t)))}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this._element.nativeElement.disabled=t}_handleKeydown(t){const e=t.keyCode;if(e!==eI||aI(t)||t.preventDefault(),this.activeOption&&e===tI&&this.panelOpen)this.activeOption._selectViaInteraction(),this._resetActiveItem(),t.preventDefault();else if(this.autocomplete){const n=this.autocomplete._keyManager.activeItem,o=e===oI||e===iI;this.panelOpen||9===e?this.autocomplete._keyManager.onKeydown(t):o&&this._canOpen()&&this.openPanel(),(o||this.autocomplete._keyManager.activeItem!==n)&&this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0)}}_handleInput(t){let e=t.target,n=e.value;"number"===e.type&&(n=""==n?null:parseFloat(n)),this._previousValue!==n&&(this._previousValue=n,this._onChange(n),this._canOpen()&&this._document.activeElement===t.target&&this.openPanel())}_handleFocus(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(),this._floatLabel(!0)):this._canOpenOnNextFocus=!0}_floatLabel(t=!1){this._formField&&"auto"===this._formField.floatLabel&&(t?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=!0)}_resetLabel(){this._manuallyFloatingLabel&&(this._formField.floatLabel="auto",this._manuallyFloatingLabel=!1)}_subscribeToClosingActions(){return Wt(this._zone.onStable.pipe(Ne(1)),this.autocomplete.options.changes.pipe(_n((()=>this._positionStrategy.reapplyLastPosition())),be(0))).pipe(dn((()=>{const t=this.panelOpen;return this._resetActiveItem(),this.autocomplete._setVisibility(),this.panelOpen&&(this._overlayRef.updatePosition(),t!==this.panelOpen&&this.autocomplete.opened.emit()),this.panelClosingActions})),Ne(1)).subscribe((t=>this._setValueAndClose(t)))}_destroyPanel(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null)}_setTriggerValue(t){const e=this.autocomplete&&this.autocomplete.displayWith?this.autocomplete.displayWith(t):t,n=null!=e?e:"";this._formField?this._formField._control.value=n:this._element.nativeElement.value=n,this._previousValue=n}_setValueAndClose(t){t&&t.source&&(this._clearPreviousSelectedOption(t.source),this._setTriggerValue(t.source.value),this._onChange(t.source.value),this._element.nativeElement.focus(),this.autocomplete._emitSelectEvent(t.source)),this.closePanel()}_clearPreviousSelectedOption(t){this.autocomplete.options.forEach((e=>{e!==t&&e.selected&&e.deselect()}))}_attachOverlay(){var t;if(!this.autocomplete&&("undefined"==typeof ngDevMode||ngDevMode))throw(function e(){return Error("Attempting to open an undefined instance of `mat-autocomplete`. Make sure that the id passed to the `matAutocomplete` is correct and that you're attempting to open it after the ngAfterContentInit hook.")})();null==this._isInsideShadowRoot&&(this._isInsideShadowRoot=!!PI(this._element.nativeElement));let n=this._overlayRef;n?(this._positionStrategy.setOrigin(this._getConnectedElement()),n.updateSize({width:this._getPanelWidth()})):(this._portal=new lF(this.autocomplete.template,this._viewContainerRef,{id:null===(t=this._formField)||void 0===t?void 0:t.getLabelId()}),n=this._overlay.create(this._getOverlayConfig()),this._overlayRef=n,n.keydownEvents().subscribe((t=>{(t.keyCode===eI&&!aI(t)||t.keyCode===oI&&aI(t,"altKey"))&&(this._resetActiveItem(),this._closeKeyEventStream.next(),t.stopPropagation(),t.preventDefault())})),this._viewportSubscription=this._viewportRuler.change().subscribe((()=>{this.panelOpen&&n&&n.updateSize({width:this._getPanelWidth()})}))),n&&!n.hasAttached()&&(n.attach(this._portal),this._closingActionsSubscription=this._subscribeToClosingActions());const o=this.panelOpen;this.autocomplete._setVisibility(),this.autocomplete._isOpen=this._overlayAttached=!0,this.panelOpen&&o!==this.panelOpen&&this.autocomplete.opened.emit()}_getOverlayConfig(){var t;return new SF({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir,panelClass:null===(t=this._defaults)||void 0===t?void 0:t.overlayPanelClass})}_getOverlayPosition(){const t=this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(!1).withPush(!1);return this._setStrategyPositions(t),this._positionStrategy=t,t}_setStrategyPositions(t){const e=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],n=this._aboveClass,o=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:n},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:n}];let i;i="above"===this.position?o:"below"===this.position?e:[...e,...o],t.withPositions(i)}_getConnectedElement(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}_getPanelWidth(){return this.autocomplete.panelWidth||this._getHostWidth()}_getHostWidth(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}_resetActiveItem(){const t=this.autocomplete;t.autoActiveFirstOption?t._keyManager.setFirstItemActive():t._keyManager.setActiveItem(-1)}_canOpen(){const t=this._element.nativeElement;return!t.readOnly&&!t.disabled&&!this._autocompleteDisabled}_getWindow(){var t;return(null===(t=this._document)||void 0===t?void 0:t.defaultView)||window}_scrollToOption(t){const e=this.autocomplete,n=wH(t,e.options,e.optionGroups);if(0===t&&1===n)e._setScrollTop(0);else if(e.panel){const n=e.options.toArray()[t];if(n){const t=n._getHostElement(),o=kH(t.offsetTop,t.offsetHeight,e._getScrollTop(),e.panel.nativeElement.offsetHeight);e._setScrollTop(o)}}}}p1.ɵfac=function t(e){return new(e||p1)(Mu(ch),Mu(JF),Mu(Xh),Mu(tC),Mu(Hh),Mu(s1),Mu(Mz,8),Mu(yV,9),Mu(UC,8),Mu(QH),Mu($0,8))},p1.ɵdir=Jo({type:p1,inputs:{position:["matAutocompletePosition","position"],autocompleteAttribute:["autocomplete","autocompleteAttribute"],autocompleteDisabled:["matAutocompleteDisabled","autocompleteDisabled"],autocomplete:["matAutocomplete","autocomplete"],connectedTo:["matAutocompleteConnectedTo","connectedTo"]},features:[Si]}),p1.ctorParameters=()=>[{type:ch},{type:JF},{type:Xh},{type:tC},{type:Hh},{type:void 0,decorators:[{type:ys,args:[s1]}]},{type:Mz,decorators:[{type:_s}]},{type:_V,decorators:[{type:_s},{type:ys,args:[yV]},{type:vs}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:QH},{type:void 0,decorators:[{type:_s},{type:ys,args:[$0]}]}],p1.propDecorators={autocomplete:[{type:y_,args:["matAutocomplete"]}],position:[{type:y_,args:["matAutocompletePosition"]}],connectedTo:[{type:y_,args:["matAutocompleteConnectedTo"]}],autocompleteAttribute:[{type:y_,args:["autocomplete"]}],autocompleteDisabled:[{type:y_,args:["matAutocompleteDisabled"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(p1,[{type:g_}],(function(){return[{type:ch},{type:JF},{type:Xh},{type:tC},{type:Hh},{type:void 0,decorators:[{type:ys,args:[s1]}]},{type:Mz,decorators:[{type:_s}]},{type:_V,decorators:[{type:_s},{type:ys,args:[yV]},{type:vs}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:QH},{type:void 0,decorators:[{type:_s},{type:ys,args:[$0]}]}]}),{position:[{type:y_,args:["matAutocompletePosition"]}],autocompleteAttribute:[{type:y_,args:["autocomplete"]}],autocompleteDisabled:[{type:y_,args:["matAutocompleteDisabled"]}],autocomplete:[{type:y_,args:["matAutocomplete"]}],connectedTo:[{type:y_,args:["matAutocompleteConnectedTo"]}]});class m1 extends p1{constructor(){super(...arguments),this._aboveClass="mat-autocomplete-panel-above"}}m1.ɵfac=function t(e){return u1(e||m1)},m1.ɵdir=Jo({type:m1,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-autocomplete-trigger"],hostVars:7,hostBindings:function t(e,n){1&e&&Nu("focusin",(function t(){return n._handleFocus()}))("blur",(function t(){return n._onTouched()}))("input",(function t(e){return n._handleInput(e)}))("keydown",(function t(e){return n._handleKeydown(e)})),2&e&&Nm("autocomplete",n.autocompleteAttribute)("role",n.autocompleteDisabled?null:"combobox")("aria-autocomplete",n.autocompleteDisabled?null:"list")("aria-activedescendant",n.panelOpen&&n.activeOption?n.activeOption.id:null)("aria-expanded",n.autocompleteDisabled?null:n.panelOpen.toString())("aria-owns",n.autocompleteDisabled||!n.panelOpen||null==n.autocomplete?null:n.autocomplete.id)("aria-haspopup",!n.autocompleteDisabled)},exportAs:["matAutocompleteTrigger"],features:[ih([d1]),gm]});const u1=vr(m1);("undefined"==typeof ngDevMode||ngDevMode)&&db(m1,[{type:g_,args:[{selector:"input[matAutocomplete], textarea[matAutocomplete]",host:{class:"mat-autocomplete-trigger","[attr.autocomplete]":"autocompleteAttribute","[attr.role]":'autocompleteDisabled ? null : "combobox"',"[attr.aria-autocomplete]":'autocompleteDisabled ? null : "list"',"[attr.aria-activedescendant]":"(panelOpen && activeOption) ? activeOption.id : null","[attr.aria-expanded]":"autocompleteDisabled ? null : panelOpen.toString()","[attr.aria-owns]":"(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id","[attr.aria-haspopup]":"!autocompleteDisabled","(focusin)":"_handleFocus()","(blur)":"_onTouched()","(input)":"_handleInput($event)","(keydown)":"_handleKeydown($event)"},exportAs:"matAutocompleteTrigger",providers:[d1]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class f1{}f1.ɵfac=function t(e){return new(e||f1)},f1.ɵmod=Zo({type:f1}),f1.ɵinj=co({providers:[l1],imports:[[iL,SH,Tz,Bv],oF,SH,Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(f1,{declarations:function(){return[n1,m1,a1]},imports:function(){return[iL,SH,Tz,Bv]},exports:function(){return[n1,m1,a1,oF,SH,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(f1,[{type:k_,args:[{imports:[iL,SH,Tz,Bv],exports:[n1,m1,a1,oF,SH,Tz],declarations:[n1,m1,a1],providers:[l1]}]}],null,null);class g1{constructor(){this.value="",this.placeholder=""}onInputKeyUp(t){"Enter"===t.key&&this.autocompleteTrigger.closePanel()}}function h1(t,e){if(1&t&&(Ha(),wu(0,"circle",3)),2&t){const t=Lu();of("animation-name","mat-progress-spinner-stroke-rotate-"+t._spinnerAnimationLabel)("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%"),Nm("r",t._getCircleRadius())}}function b1(t,e){if(1&t&&(Ha(),wu(0,"circle",3)),2&t){const t=Lu();of("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%"),Nm("r",t._getCircleRadius())}}function y1(t,e){if(1&t&&(Ha(),wu(0,"circle",3)),2&t){const t=Lu();of("animation-name","mat-progress-spinner-stroke-rotate-"+t._spinnerAnimationLabel)("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%"),Nm("r",t._getCircleRadius())}}function _1(t,e){if(1&t&&(Ha(),wu(0,"circle",3)),2&t){const t=Lu();of("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%"),Nm("r",t._getCircleRadius())}}g1.ɵfac=function t(e){return new(e||g1)},g1.ɵcmp=Uo({type:g1,selectors:[["tb-filter-input"]],viewQuery:function t(e,n){if(1&e&&Wb(m1,1),2&e){let t;Ub(t=Yb())&&(n.autocompleteTrigger=t.first)}},inputs:{value:"value",matAutocomplete:"matAutocomplete",placeholder:"placeholder"},decls:2,vars:4,consts:[["svgIcon","search_24px"],["type","text","autocomplete","off",3,"placeholder","matAutocomplete","matAutocompleteDisabled","value","keyup"]],template:function t(e,n){1&e&&(wu(0,"mat-icon",0),Ou(1,"input",1),Nu("keyup",(function t(e){return n.onInputKeyUp(e)})),Pu()),2&e&&(Jc(1),vu("placeholder",n.placeholder)("matAutocomplete",n.matAutocomplete)("matAutocompleteDisabled",!n.matAutocomplete)("value",n.value))},directives:[cG,m1],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;font-size:13px}mat-icon[_ngcontent-%COMP%]{color:#616161;flex:none;margin-right:5px}body.dark-mode[_nghost-%COMP%]   mat-icon[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   mat-icon[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}input[_ngcontent-%COMP%]{background-color:inherit;caret-color:currentColor;color:currentColor;font:inherit;border:none;outline:none;padding:0;flex-grow:1}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(g1,[{type:h_,args:[{selector:"tb-filter-input",template:'\n    <mat-icon svgIcon="search_24px"></mat-icon>\n\n    \x3c!-- Note: to allow falsy \'matAutocomplete\' values, we need \'matAutocompleteDisabled\'\n    to prevent runtime errors. --\x3e\n    <input\n      type="text"\n      autocomplete="off"\n      [placeholder]="placeholder"\n      [matAutocomplete]="matAutocomplete"\n      [matAutocompleteDisabled]="!matAutocomplete"\n      [value]="value"\n      (keyup)="onInputKeyUp($event)"\n    />\n  ',styleUrls:["filter_input_component.css"]}]}],null,{value:[{type:y_}],matAutocomplete:[{type:y_}],placeholder:[{type:y_}],autocompleteTrigger:[{type:Fr,args:[m1]}]});const C1=".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:currentColor;stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{animation:mat-progress-spinner-stroke-rotate-fallback 10000ms cubic-bezier(0.87, 0.03, 0.33, 1) infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition-property:stroke}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}@keyframes mat-progress-spinner-stroke-rotate-fallback{0%{transform:rotate(0deg)}25%{transform:rotate(1170deg)}50%{transform:rotate(2340deg)}75%{transform:rotate(3510deg)}100%{transform:rotate(4680deg)}}\n",M1=Iz(class{constructor(t){this._elementRef=t}},"primary"),v1=new Nr("mat-progress-spinner-default-options",{providedIn:"root",factory:function x1(){return{diameter:100}}});class O1 extends M1{constructor(t,e,n,o,i){super(t),this._elementRef=t,this._document=n,this._diameter=100,this._value=0,this._fallbackAnimation=!1,this.mode="determinate";const a=O1._diameters;this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),a.has(n.head)||a.set(n.head,new Set([100])),this._fallbackAnimation=e.EDGE||e.TRIDENT,this._noopAnimations="NoopAnimations"===o&&!!i&&!i._forceAnimations,i&&(i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}get diameter(){return this._diameter}set diameter(t){this._diameter=sI(t),this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),!this._fallbackAnimation&&this._styleRoot&&this._attachStyleNode()}get strokeWidth(){return this._strokeWidth||this.diameter/10}set strokeWidth(t){this._strokeWidth=sI(t)}get value(){return"determinate"===this.mode?this._value:0}set value(t){this._value=Math.max(0,Math.min(100,sI(t)))}ngOnInit(){const t=this._elementRef.nativeElement;this._styleRoot=PI(t)||this._document.head,this._attachStyleNode(),t.classList.add(`mat-progress-spinner-indeterminate${this._fallbackAnimation?"-fallback":""}-animation`)}_getCircleRadius(){return(this.diameter-10)/2}_getViewBox(){const t=2*this._getCircleRadius()+this.strokeWidth;return`0 0 ${t} ${t}`}_getStrokeCircumference(){return 2*Math.PI*this._getCircleRadius()}_getStrokeDashOffset(){return"determinate"===this.mode?this._getStrokeCircumference()*(100-this._value)/100:this._fallbackAnimation&&"indeterminate"===this.mode?.2*this._getStrokeCircumference():null}_getCircleStrokeWidth(){return this.strokeWidth/this.diameter*100}_attachStyleNode(){const t=this._styleRoot,e=this._diameter,n=O1._diameters;let o=n.get(t);if(!o||!o.has(e)){const i=this._document.createElement("style");i.setAttribute("mat-spinner-animation",this._spinnerAnimationLabel),i.textContent=this._getAnimationText(),t.appendChild(i),o||(o=new Set,n.set(t,o)),o.add(e)}}_getAnimationText(){const t=this._getStrokeCircumference();return"\n @keyframes mat-progress-spinner-stroke-rotate-DIAMETER {\n    0%      { stroke-dashoffset: START_VALUE;  transform: rotate(0); }\n    12.5%   { stroke-dashoffset: END_VALUE;    transform: rotate(0); }\n    12.5001%  { stroke-dashoffset: END_VALUE;    transform: rotateX(180deg) rotate(72.5deg); }\n    25%     { stroke-dashoffset: START_VALUE;  transform: rotateX(180deg) rotate(72.5deg); }\n\n    25.0001%   { stroke-dashoffset: START_VALUE;  transform: rotate(270deg); }\n    37.5%   { stroke-dashoffset: END_VALUE;    transform: rotate(270deg); }\n    37.5001%  { stroke-dashoffset: END_VALUE;    transform: rotateX(180deg) rotate(161.5deg); }\n    50%     { stroke-dashoffset: START_VALUE;  transform: rotateX(180deg) rotate(161.5deg); }\n\n    50.0001%  { stroke-dashoffset: START_VALUE;  transform: rotate(180deg); }\n    62.5%   { stroke-dashoffset: END_VALUE;    transform: rotate(180deg); }\n    62.5001%  { stroke-dashoffset: END_VALUE;    transform: rotateX(180deg) rotate(251.5deg); }\n    75%     { stroke-dashoffset: START_VALUE;  transform: rotateX(180deg) rotate(251.5deg); }\n\n    75.0001%  { stroke-dashoffset: START_VALUE;  transform: rotate(90deg); }\n    87.5%   { stroke-dashoffset: END_VALUE;    transform: rotate(90deg); }\n    87.5001%  { stroke-dashoffset: END_VALUE;    transform: rotateX(180deg) rotate(341.5deg); }\n    100%    { stroke-dashoffset: START_VALUE;  transform: rotateX(180deg) rotate(341.5deg); }\n  }\n".replace(/START_VALUE/g,""+.95*t).replace(/END_VALUE/g,""+.2*t).replace(/DIAMETER/g,`${this._spinnerAnimationLabel}`)}_getSpinnerAnimationLabel(){return this.diameter.toString().replace(".","_")}}O1.ɵfac=function t(e){return new(e||O1)(Mu(ch),Mu(fI),Mu(UC,8),Mu(Nw,8),Mu(v1))},O1.ɵcmp=Uo({type:O1,selectors:[["mat-progress-spinner"]],hostAttrs:["role","progressbar","tabindex","-1",1,"mat-progress-spinner"],hostVars:10,hostBindings:function t(e,n){2&e&&(Nm("aria-valuemin","determinate"===n.mode?0:null)("aria-valuemax","determinate"===n.mode?100:null)("aria-valuenow","determinate"===n.mode?n.value:null)("mode",n.mode),of("width",n.diameter,"px")("height",n.diameter,"px"),af("_mat-animation-noopable",n._noopAnimations))},inputs:{color:"color",mode:"mode",diameter:"diameter",strokeWidth:"strokeWidth",value:"value"},exportAs:["matProgressSpinner"],features:[gm],decls:3,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function t(e,n){1&e&&(Ha(),Ou(0,"svg",0),Wm(1,h1,1,9,"circle",1),Wm(2,b1,1,7,"circle",2),Pu()),2&e&&(of("width",n.diameter,"px")("height",n.diameter,"px"),vu("ngSwitch","indeterminate"===n.mode),Nm("viewBox",n._getViewBox()),Jc(1),vu("ngSwitchCase",!0),Jc(1),vu("ngSwitchCase",!1))},directives:[cv,dv],styles:[C1],encapsulation:2,changeDetection:0}),O1._diameters=new WeakMap,O1.ctorParameters=()=>[{type:ch},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]},{type:void 0,decorators:[{type:ys,args:[v1]}]}],O1.propDecorators={diameter:[{type:y_}],strokeWidth:[{type:y_}],mode:[{type:y_}],value:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(O1,[{type:h_,args:[{selector:"mat-progress-spinner",exportAs:"matProgressSpinner",host:{role:"progressbar",class:"mat-progress-spinner",tabindex:"-1","[class._mat-animation-noopable]":"_noopAnimations","[style.width.px]":"diameter","[style.height.px]":"diameter","[attr.aria-valuemin]":'mode === "determinate" ? 0 : null',"[attr.aria-valuemax]":'mode === "determinate" ? 100 : null',"[attr.aria-valuenow]":'mode === "determinate" ? value : null',"[attr.mode]":"mode"},inputs:["color"],template:'\x3c!--\n  preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle\'s\n  center. The center of the circle will remain at the center of the mat-progress-spinner\n  element containing the SVG. `focusable="false"` prevents IE from allowing the user to\n  tab into the SVG element.\n--\x3e\n\x3c!--\n  All children need to be hidden for screen readers in order to support ChromeVox.\n  More context in the issue: https://github.com/angular/components/issues/22165.\n--\x3e\n<svg\n  [style.width.px]="diameter"\n  [style.height.px]="diameter"\n  [attr.viewBox]="_getViewBox()"\n  preserveAspectRatio="xMidYMid meet"\n  focusable="false"\n  [ngSwitch]="mode === \'indeterminate\'"\n  aria-hidden="true">\n\n  \x3c!--\n    Technically we can reuse the same `circle` element, however Safari has an issue that breaks\n    the SVG rendering in determinate mode, after switching between indeterminate and determinate.\n    Using a different element avoids the issue. An alternative to this is adding `display: none`\n    for a split second and then removing it when switching between modes, but it\'s hard to know\n    for how long to hide the element and it can cause the UI to blink.\n  --\x3e\n  <circle\n    *ngSwitchCase="true"\n    cx="50%"\n    cy="50%"\n    [attr.r]="_getCircleRadius()"\n    [style.animation-name]="\'mat-progress-spinner-stroke-rotate-\' + _spinnerAnimationLabel"\n    [style.stroke-dashoffset.px]="_getStrokeDashOffset()"\n    [style.stroke-dasharray.px]="_getStrokeCircumference()"\n    [style.stroke-width.%]="_getCircleStrokeWidth()"></circle>\n\n  <circle\n    *ngSwitchCase="false"\n    cx="50%"\n    cy="50%"\n    [attr.r]="_getCircleRadius()"\n    [style.stroke-dashoffset.px]="_getStrokeDashOffset()"\n    [style.stroke-dasharray.px]="_getStrokeCircumference()"\n    [style.stroke-width.%]="_getCircleStrokeWidth()"></circle>\n</svg>\n',changeDetection:xo.OnPush,encapsulation:Po.None,styles:[".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:currentColor;stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{animation:mat-progress-spinner-stroke-rotate-fallback 10000ms cubic-bezier(0.87, 0.03, 0.33, 1) infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition-property:stroke}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}@keyframes mat-progress-spinner-stroke-rotate-fallback{0%{transform:rotate(0deg)}25%{transform:rotate(1170deg)}50%{transform:rotate(2340deg)}75%{transform:rotate(3510deg)}100%{transform:rotate(4680deg)}}\n"]}]}],(function(){return[{type:ch},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]},{type:void 0,decorators:[{type:ys,args:[v1]}]}]}),{mode:[{type:y_}],diameter:[{type:y_}],strokeWidth:[{type:y_}],value:[{type:y_}]});class P1 extends O1{constructor(t,e,n,o,i){super(t,e,n,o,i),this.mode="indeterminate"}}P1.ɵfac=function t(e){return new(e||P1)(Mu(ch),Mu(fI),Mu(UC,8),Mu(Nw,8),Mu(v1))},P1.ɵcmp=Uo({type:P1,selectors:[["mat-spinner"]],hostAttrs:["role","progressbar","mode","indeterminate",1,"mat-spinner","mat-progress-spinner"],hostVars:6,hostBindings:function t(e,n){2&e&&(of("width",n.diameter,"px")("height",n.diameter,"px"),af("_mat-animation-noopable",n._noopAnimations))},inputs:{color:"color"},features:[gm],decls:3,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function t(e,n){1&e&&(Ha(),Ou(0,"svg",0),Wm(1,y1,1,9,"circle",1),Wm(2,_1,1,7,"circle",2),Pu()),2&e&&(of("width",n.diameter,"px")("height",n.diameter,"px"),vu("ngSwitch","indeterminate"===n.mode),Nm("viewBox",n._getViewBox()),Jc(1),vu("ngSwitchCase",!0),Jc(1),vu("ngSwitchCase",!1))},directives:[cv,dv],styles:[C1],encapsulation:2,changeDetection:0}),P1.ctorParameters=()=>[{type:ch},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]},{type:void 0,decorators:[{type:ys,args:[v1]}]}],("undefined"==typeof ngDevMode||ngDevMode)&&db(P1,[{type:h_,args:[{selector:"mat-spinner",host:{role:"progressbar",mode:"indeterminate",class:"mat-spinner mat-progress-spinner","[class._mat-animation-noopable]":"_noopAnimations","[style.width.px]":"diameter","[style.height.px]":"diameter"},inputs:["color"],template:'\x3c!--\n  preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle\'s\n  center. The center of the circle will remain at the center of the mat-progress-spinner\n  element containing the SVG. `focusable="false"` prevents IE from allowing the user to\n  tab into the SVG element.\n--\x3e\n\x3c!--\n  All children need to be hidden for screen readers in order to support ChromeVox.\n  More context in the issue: https://github.com/angular/components/issues/22165.\n--\x3e\n<svg\n  [style.width.px]="diameter"\n  [style.height.px]="diameter"\n  [attr.viewBox]="_getViewBox()"\n  preserveAspectRatio="xMidYMid meet"\n  focusable="false"\n  [ngSwitch]="mode === \'indeterminate\'"\n  aria-hidden="true">\n\n  \x3c!--\n    Technically we can reuse the same `circle` element, however Safari has an issue that breaks\n    the SVG rendering in determinate mode, after switching between indeterminate and determinate.\n    Using a different element avoids the issue. An alternative to this is adding `display: none`\n    for a split second and then removing it when switching between modes, but it\'s hard to know\n    for how long to hide the element and it can cause the UI to blink.\n  --\x3e\n  <circle\n    *ngSwitchCase="true"\n    cx="50%"\n    cy="50%"\n    [attr.r]="_getCircleRadius()"\n    [style.animation-name]="\'mat-progress-spinner-stroke-rotate-\' + _spinnerAnimationLabel"\n    [style.stroke-dashoffset.px]="_getStrokeDashOffset()"\n    [style.stroke-dasharray.px]="_getStrokeCircumference()"\n    [style.stroke-width.%]="_getCircleStrokeWidth()"></circle>\n\n  <circle\n    *ngSwitchCase="false"\n    cx="50%"\n    cy="50%"\n    [attr.r]="_getCircleRadius()"\n    [style.stroke-dashoffset.px]="_getStrokeDashOffset()"\n    [style.stroke-dasharray.px]="_getStrokeCircumference()"\n    [style.stroke-width.%]="_getCircleStrokeWidth()"></circle>\n</svg>\n',changeDetection:xo.OnPush,encapsulation:Po.None,styles:[".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:currentColor;stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{animation:mat-progress-spinner-stroke-rotate-fallback 10000ms cubic-bezier(0.87, 0.03, 0.33, 1) infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition-property:stroke}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}@keyframes mat-progress-spinner-stroke-rotate-fallback{0%{transform:rotate(0deg)}25%{transform:rotate(1170deg)}50%{transform:rotate(2340deg)}75%{transform:rotate(3510deg)}100%{transform:rotate(4680deg)}}\n"]}]}],(function(){return[{type:ch},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[UC]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]},{type:void 0,decorators:[{type:ys,args:[v1]}]}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class w1{}function k1(t,e){if(1&t&&(ku(0),Ou(1,"li",18),Mf(2),Pu(),Su()),2&t){const t=e.$implicit;Jc(1),vu("title",t.name),Jc(1),vf(t.name)}}function S1(t,e){if(1&t&&(Ou(0,"li",19),Ou(1,"em"),Mf(2),Ob(3,"number"),Pu(),Pu()),2&t){const t=Lu().$implicit;Jc(2),xf("and ",Pb(3,1,t.runs.length-5)," more")}}function D1(t,e){1&t&&(Ou(0,"li",20),Ou(1,"em"),Mf(2,"No runs are in the group"),Pu(),Pu())}w1.ɵfac=function t(e){return new(e||w1)},w1.ɵmod=Zo({type:w1}),w1.ɵinj=co({imports:[[Tz,Bv],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(w1,{declarations:function(){return[O1,P1]},imports:function(){return[Tz,Bv]},exports:function(){return[O1,P1,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(w1,[{type:k_,args:[{imports:[Tz,Bv],exports:[O1,P1,Tz],declarations:[O1,P1]}]}],null,null);const E1=function(t){return{borderColor:t}},A1=function(t){return{backgroundColor:t}};function R1(t,e){if(1&t&&(Ou(0,"ul",12),Ou(1,"li"),Ou(2,"label"),wu(3,"span",13),Ou(4,"code",14),Mf(5),Pu(),Pu(),Ou(6,"ul"),Wm(7,k1,3,2,"ng-container",15),Ob(8,"slice"),Wm(9,S1,4,3,"li",16),Wm(10,D1,3,0,"li",17),Pu(),Pu(),Pu()),2&t){const t=e.$implicit;vu("ngStyle",gb(11,E1,t.color)),Jc(3),vu("ngStyle",gb(13,A1,t.color)),Jc(1),vu("title",t.groupId),Jc(1),vf(t.groupId),Jc(2),vu("ngForOf",kb(8,7,t.runs,0,5)),Jc(2),vu("ngIf",t.runs.length>5),Jc(1),vu("ngIf",0===t.runs.length)}}function T1(t,e){if(1&t&&(Ou(0,"div",9),Ou(1,"h4"),Mf(2,"Color group preview"),Pu(),Ou(3,"div",10),Wm(4,R1,11,15,"ul",11),Pu(),Pu()),2&t){const t=Lu();Jc(4),vu("ngForOf",t.colorRunPairList)}}class N1{constructor(t){this.dialogRef=t,this.onSave=new Ab,this.regexInputOnChange=new Ab}onEnter(t){this.onSaveClick(t),this.dialogRef.close()}onSaveClick(t){this.onSave.emit(t)}fillExample(t){this.regexString=t}regexInputChange(t){this.regexInputOnChange.emit(t)}}N1.ɵfac=function t(e){return new(e||N1)(Mu(DW))},N1.ɵcmp=Uo({type:N1,selectors:[["regex-edit-dialog-component"]],inputs:{regexString:"regexString",colorRunPairList:"colorRunPairList"},outputs:{onSave:"onSave",regexInputOnChange:"regexInputOnChange"},decls:29,vars:2,consts:function(){let t;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Color Runs by Regex Query"):$localize`:Color Runs by Regex Query␟15ed9f6fd2d4906a4803fc1255de3c5db2c56530␟9088985113960312808:Color Runs by Regex Query`,[["mat-dialog-title",""],["matInput","","aria-label",t,"cdkFocusInitial","",3,"value","keydown.enter","input"],["regexStringInput",""],[1,"example-details"],[3,"click"],["class","group-container",4,"ngIf"],["mat-dialog-actions","","align","end"],["mat-button","","mat-dialog-close",""],["mat-raised-button","","color","primary","mat-dialog-close","",3,"click"],[1,"group-container"],[1,"grouping-preview"],["class","group",3,"ngStyle",4,"ngFor","ngForOf"],[1,"group",3,"ngStyle"],[1,"color-swatch",3,"ngStyle"],["name","group-id",3,"title"],[4,"ngFor","ngForOf"],["class","more",4,"ngIf"],["class","no-match",4,"ngIf"],[3,"title"],[1,"more"],[1,"no-match"]]},template:function t(e,n){if(1&e){const t=Eu();Ou(0,"h1",0),Mf(1,"Color runs by regex"),Pu(),Ou(2,"mat-dialog-content"),Ou(3,"p"),Mf(4,"Enter a regex with capturing groups to match against run names:"),Pu(),Ou(5,"mat-form-field"),Ou(6,"input",1,2),Nu("keydown.enter",(function t(e){return n.onEnter(e.target.value)}))("input",(function t(e){return n.regexInputChange(e.target.value)})),Pu(),Pu(),Pu(),Ou(8,"div",3),Ou(9,"p"),Mf(10,' Each matching run will be assigned a color based on the "key" formed by its matches to the capturing groups. '),wu(11,"br"),Ou(12,"button",4),Nu("click",(function t(){return n.fillExample("(train|eval)")})),Mf(13," Try "),Ou(14,"code"),Mf(15,"(train|eval)"),Pu(),Pu(),Mf(16," to assign all runs containing "),Ou(17,"code"),Mf(18,"train"),Pu(),Mf(19," to one color and all runs containing "),Ou(20,"code"),Mf(21,"eval"),Pu(),Mf(22," to another color. "),Pu(),Pu(),Wm(23,T1,5,1,"div",5),Ou(24,"div",6),Ou(25,"button",7),Mf(26,"Cancel"),Pu(),Ou(27,"button",8),Nu("click",(function e(){ra(t);const o=Gm(7);return n.onSaveClick(o.value)})),Mf(28," Save "),Pu(),Pu()}2&e&&(Jc(6),Uu("value",n.regexString),Jc(17),vu("ngIf",n.colorRunPairList.length))},directives:[BW,VW,_V,EY,av,jW,NH,LW,ov,gv],pipes:[Fv,Tv],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.example-details[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{background-color:transparent;padding:0;border:none;cursor:pointer;text-decoration:underline;color:#1976d2}body.dark-mode[_nghost-%COMP%]   .example-details[_ngcontent-%COMP%]   button[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .example-details[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{color:#42a5f5}.example-details[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]:visited{color:#7b1fa2}body.dark-mode[_nghost-%COMP%]   .example-details[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]:visited, body.dark-mode   [_nghost-%COMP%]   .example-details[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]:visited{color:#ba68c8}.group-container[_ngcontent-%COMP%]{margin:10px 0}.group-container[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{margin-bottom:10px}.grouping-preview[_ngcontent-%COMP%]{border:1px solid #ebebeb;align-items:flex-start;display:grid;flex-wrap:wrap;gap:10px;grid-template-columns:repeat(2, minmax(50%, 1fr));max-height:50vh;overflow-y:auto;padding:20px}body.dark-mode[_nghost-%COMP%]   .grouping-preview[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .grouping-preview[_ngcontent-%COMP%]{border:1px solid #555}.color-swatch[_ngcontent-%COMP%]{border-radius:50%;box-shadow:0 0 2px #000;display:inline-block;height:15px;width:15px}ul[_ngcontent-%COMP%]{list-style-type:none;padding:0}.group[_ngcontent-%COMP%]{border:1px solid #ebebeb;border-radius:3px;margin:0;padding:10px}body.dark-mode[_nghost-%COMP%]   .group[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group[_ngcontent-%COMP%]{border:1px solid #555}.group[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{border-bottom:1px solid #ebebeb;align-items:center;display:grid;gap:10px;grid-template-columns:max-content auto;padding:5px 0}body.dark-mode[_nghost-%COMP%]   .group[_ngcontent-%COMP%]   label[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{border-bottom:1px solid #555}.group[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]   .group-id[_ngcontent-%COMP%]{font-size:.95em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]{font-size:.9em}.group[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group[_ngcontent-%COMP%]   .more[_ngcontent-%COMP%], .group[_ngcontent-%COMP%]   .no-match[_ngcontent-%COMP%]{color:#616161;margin-top:5px}body.dark-mode[_nghost-%COMP%]   .group[_ngcontent-%COMP%]   .more[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group[_ngcontent-%COMP%]   .more[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}body.dark-mode[_nghost-%COMP%]   .group[_ngcontent-%COMP%]   .no-match[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group[_ngcontent-%COMP%]   .no-match[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(N1,[{type:h_,args:[{selector:"regex-edit-dialog-component",templateUrl:"regex_edit_dialog.ng.html",styleUrls:["regex_edit_dialog_component.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:DW}]}),{regexString:[{type:y_}],colorRunPairList:[{type:y_}],onSave:[{type:__}],regexInputOnChange:[{type:__}]});class I1{constructor(t,e,n){this.store=t,this.dialogRef=e,this.tentativeRegexString$=new x,this.groupByRegexString$=Ft((()=>Wt(this.store.select(MN).pipe(Ne(1)),this.tentativeRegexString$))).pipe(cn("")),this.colorRunPairList$=Ft((()=>this.groupByRegexString$.pipe(de(500),ce(this.allRuns$,this.runIdToEid$),ht((([t,e,n])=>{var o;const i=oN({key:eN.REGEX,regexString:t},e,n),a=new Map,r=[];for(const[t,e]of Object.entries(i.matches)){const n=null!==(o=a.get(t))&&void 0!==o?o:kN[a.size%kN.length];a.set(t,n),r.push({groupId:t,color:n,runs:e})}return r}))))).pipe(cn([])),this.experimentIds=n.experimentIds,this.runIdToEid$=Dt(this.experimentIds.map((t=>this.store.select(dN,{experimentId:t}).pipe(ht((e=>({experimentId:t,runIds:e}))))))).pipe(ht((t=>{const e={};for(const{runIds:n,experimentId:o}of t)for(const t of n)e[t]=o;return e}))),this.allRuns$=Dt(this.experimentIds.map((t=>this.store.select(cN,{experimentId:t})))).pipe(ht((t=>t.flat())))}onRegexInputOnChange(t){this.tentativeRegexString$.next(t)}onSave(t){this.store.dispatch(IA({experimentIds:this.experimentIds,groupBy:{key:eN.REGEX,regexString:t}}))}}function z1(t,e){1&t&&wu(0,"mat-icon",9)}function H1(t,e){1&t&&wu(0,"mat-icon",9)}function F1(t,e){1&t&&wu(0,"mat-icon",9)}function L1(t,e){if(1&t){const t=Eu();Ou(0,"button",5),Nu("click",(function e(){return ra(t),Lu().onGroupByRegexClick()})),Ou(1,"span"),Wm(2,F1,1,0,"mat-icon",6),Pu(),Ou(3,"label"),Mf(4,"Regex"),Pu(),Pu()}if(2&t){const t=Lu();Nm("aria-checked",t.selectedGroupBy.key===t.GroupByKey.REGEX),Jc(2),vu("ngIf",t.selectedGroupBy.key===t.GroupByKey.REGEX)}}function B1(t,e){if(1&t&&(Ou(0,"label"),Mf(1),Pu()),2&t){const t=Lu(2);Jc(1),vf(t.regexString)}}function V1(t,e){1&t&&(Ou(0,"label",14),Mf(1,"(none set)"),Pu())}function j1(t,e){if(1&t){const t=Eu();Ou(0,"button",10),Nu("click",(function e(){return ra(t),Lu().onRegexStringEdit()})),Ou(1,"span"),wu(2,"mat-icon",11),Pu(),Wm(3,B1,2,1,"label",12),Wm(4,V1,2,0,"label",13),Pu()}if(2&t){const t=Lu();Jc(3),vu("ngIf",t.regexString),Jc(1),vu("ngIf",!t.regexString)}}I1.ɵfac=function t(e){return new(e||I1)(Mu(Ek),Mu(DW),Mu(AW))},I1.ɵcmp=Uo({type:I1,selectors:[["regex-edit-dialog"]],decls:3,vars:6,consts:[[3,"regexString","colorRunPairList","onSave","regexInputOnChange"]],template:function t(e,n){1&e&&(Ou(0,"regex-edit-dialog-component",0),Nu("onSave",(function t(e){return n.onSave(e)}))("regexInputOnChange",(function t(e){return n.onRegexInputOnChange(e)})),Ob(1,"async"),Ob(2,"async"),Pu()),2&e&&vu("regexString",Pb(1,2,n.groupByRegexString$))("colorRunPairList",Pb(2,4,n.colorRunPairList$))},directives:[N1],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(I1,[{type:h_,args:[{selector:"regex-edit-dialog",template:'<regex-edit-dialog-component\n    [regexString]="groupByRegexString$ | async"\n    [colorRunPairList]="colorRunPairList$ | async"\n    (onSave)="onSave($event)"\n    (regexInputOnChange)="onRegexInputOnChange($event)"\n  ></regex-edit-dialog-component>'}]}],(function(){return[{type:Ek},{type:DW},{type:void 0,decorators:[{type:ys,args:[AW]}]}]}),null);class U1{constructor(t){this.dialog=t,this.GroupByKey=eN,this.onGroupByChange=new Ab}onRegexStringEdit(){this.dialog.open(I1,{maxHeight:"95vh",minHeight:"500px",maxWidth:"80vw",minWidth:"600px",data:{experimentIds:this.experimentIds}})}onGroupByRegexClick(){this.regexString?this.onGroupByChange.emit({key:eN.REGEX,regexString:this.regexString}):this.onRegexStringEdit()}}U1.ɵfac=function t(e){return new(e||U1)(Mu(HW))},U1.ɵcmp=Uo({type:U1,selectors:[["runs-group-menu-button-component"]],inputs:{experimentIds:"experimentIds",regexString:"regexString",selectedGroupBy:"selectedGroupBy",showGroupByRegex:"showGroupByRegex"},outputs:{onGroupByChange:"onGroupByChange"},decls:18,vars:7,consts:[["mat-icon-button","","title","Group runs by...",3,"matMenuTriggerFor"],["svgIcon","palette_24px"],[1,"run-table-color-group-by"],["groupByMenu","matMenu"],[1,"label"],["mat-menu-item","","role","menuitemradio",3,"click"],["svgIcon","done_24px",4,"ngIf"],["mat-menu-item","","role","menuitemradio",3,"click",4,"ngIf"],["mat-menu-item","","role","menuitem","class","display-regex-string",3,"click",4,"ngIf"],["svgIcon","done_24px"],["mat-menu-item","","role","menuitem",1,"display-regex-string",3,"click"],["svgIcon","edit_24px"],[4,"ngIf"],["class","none-set-string",4,"ngIf"],[1,"none-set-string"]],template:function t(e,n){1&e&&(Ou(0,"button",0),wu(1,"mat-icon",1),Pu(),Ou(2,"mat-menu",2,3),Ou(4,"div",4),Mf(5,"Color runs by"),Pu(),Ou(6,"button",5),Nu("click",(function t(){return n.onGroupByChange.emit({key:n.GroupByKey.EXPERIMENT})})),Ou(7,"span"),Wm(8,z1,1,0,"mat-icon",6),Pu(),Ou(9,"label"),Mf(10,"Experiment"),Pu(),Pu(),Ou(11,"button",5),Nu("click",(function t(){return n.onGroupByChange.emit({key:n.GroupByKey.RUN})})),Ou(12,"span"),Wm(13,H1,1,0,"mat-icon",6),Pu(),Ou(14,"label"),Mf(15,"Run"),Pu(),Pu(),Wm(16,L1,5,2,"button",7),Wm(17,j1,5,2,"button",8),Pu()),2&e&&(vu("matMenuTriggerFor",Gm(3)),Jc(6),Nm("aria-checked",n.selectedGroupBy.key===n.GroupByKey.EXPERIMENT),Jc(2),vu("ngIf",n.selectedGroupBy.key===n.GroupByKey.EXPERIMENT),Jc(3),Nm("aria-checked",n.selectedGroupBy.key===n.GroupByKey.RUN),Jc(2),vu("ngIf",n.selectedGroupBy.key===n.GroupByKey.RUN),Jc(3),vu("ngIf",n.showGroupByRegex),Jc(1),vu("ngIf",n.showGroupByRegex))},directives:[NH,NG,cG,DG,OG,av],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}  .run-table-color-group-by{font-size:16px}  .run-table-color-group-by .label{color:#616161;font-size:.9em;margin:10px 0;padding:0 16px;pointer-events:none}  .run-table-color-group-by button{display:grid;gap:2px 10px;grid-template-columns:20px auto}  .run-table-color-group-by mat-icon{height:20px;width:20px}  .run-table-color-group-by .display-regex-string{padding-left:40px}  .run-table-color-group-by .display-regex-string .none-set-string{color:#616161}body.dark-mode[_nghost-%COMP%]     .run-table-color-group-by .display-regex-string .none-set-string, body.dark-mode   [_nghost-%COMP%]     .run-table-color-group-by .display-regex-string .none-set-string{color:rgba(255,255,255,.7)}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(U1,[{type:h_,args:[{selector:"runs-group-menu-button-component",templateUrl:"runs_group_menu_button_component.ng.html",styleUrls:["runs_group_menu_button_component.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:HW}]}),{experimentIds:[{type:y_}],regexString:[{type:y_}],selectedGroupBy:[{type:y_}],showGroupByRegex:[{type:y_}],onGroupByChange:[{type:__}]});class W1{constructor(t){this.store=t,this.showGroupByRegex$=this.store.select(wE),this.selectedGroupBy$=this.store.select(gN),this.groupByRegexString$=this.store.select(MN)}onGroupByChange(t){this.store.dispatch(IA({experimentIds:this.experimentIds,groupBy:t}))}}W1.ɵfac=function t(e){return new(e||W1)(Mu(Ek))},W1.ɵcmp=Uo({type:W1,selectors:[["runs-group-menu-button"]],inputs:{experimentIds:"experimentIds"},decls:4,vars:10,consts:[[3,"regexString","selectedGroupBy","showGroupByRegex","experimentIds","onGroupByChange"]],template:function t(e,n){1&e&&(Ou(0,"runs-group-menu-button-component",0),Nu("onGroupByChange",(function t(e){return n.onGroupByChange(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("regexString",Pb(1,4,n.groupByRegexString$))("selectedGroupBy",Pb(2,6,n.selectedGroupBy$))("showGroupByRegex",Pb(3,8,n.showGroupByRegex$))("experimentIds",n.experimentIds)},directives:[U1],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(W1,[{type:h_,args:[{selector:"runs-group-menu-button",template:'\n    <runs-group-menu-button-component\n      [regexString]="groupByRegexString$ | async"\n      [selectedGroupBy]="selectedGroupBy$ | async"\n      [showGroupByRegex]="showGroupByRegex$ | async"\n      [experimentIds]="experimentIds"\n      (onGroupByChange)="onGroupByChange($event)"\n    ></runs-group-menu-button-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{experimentIds:[{type:y_}]});const G1=["container"];var Y1;!(function(t){t[t.NONE=0]="NONE",t[t.LEFT=1]="LEFT",t[t.RIGHT=2]="RIGHT"})(Y1||(Y1={}));class q1{constructor(t){this.changeDetector=t,this.tickCount=20,this.value=new Ab,this.Position=Y1,this.activeThumb=Y1.NONE,this.offsetXFromOriginOfActiveThumb=0,this.ngUnsubscribe=new x}getThumbPosition(t){const e=this.getClippedValue(t),n=this.max-this.min;return n<=0?"50%":(e-this.min)/n*100+"%"}getTrackWidth(){const t=this.max-this.min;return t<=0?"0%":(this.getClippedValue(this.upperValue)-this.getClippedValue(this.lowerValue))/t*100+"%"}getClippedValue(t){return Math.min(Math.max(t,this.min),this.max)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}ngOnInit(){Vt(document,"mousemove",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>{this.handleMouseMove(t)})),Vt(document,"mouseup",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>{this.handleMouseOut(t)}))}handleMouseDown(t,e){this.activeThumb=e,this.offsetXFromOriginOfActiveThumb=6-t.offsetX}calculateValueFromMouseEvent(t){const{left:e,right:n}=this.container.nativeElement.getBoundingClientRect(),o=t.clientX-e+this.offsetXFromOriginOfActiveThumb;let i;if(null!==this.tickCount&&this.tickCount>0){const t=(n-e)/this.tickCount;i=Math.round(o/t)*t/(n-e)}else i=o/(n-e);return this.getClippedValue(this.min+(this.max-this.min)*i)}handleMouseMove(t){if(this.activeThumb===Y1.NONE)return;const e=this.calculateValueFromMouseEvent(t);let n=[this.lowerValue,this.upperValue];this.activeThumb===Y1.LEFT?(e>this.upperValue&&(this.activeThumb=Y1.RIGHT),n=[e,this.upperValue]):(e<this.lowerValue&&(this.activeThumb=Y1.LEFT),n=[this.lowerValue,e]),this.maybeNotifyNextValue(n),this.changeDetector.markForCheck()}maybeNotifyNextValue(t){const[e,n]=t.sort(((t,e)=>t-e));this.lowerValue===e&&this.upperValue===n||this.value.emit({lowerValue:e,upperValue:n})}handleMouseOut(t){this.activeThumb!==Y1.NONE&&(this.activeThumb=Y1.NONE,this.changeDetector.markForCheck())}handleInputChange(t,e){const n=this.getClippedValue(Number(t.target.value));if(isNaN(n))return;let o=[this.lowerValue,this.upperValue];o=e===Y1.LEFT?[n,this.upperValue]:[this.lowerValue,n],this.maybeNotifyNextValue(o)}isThumbActive(t){return this.activeThumb===t}}q1.ɵfac=function t(e){return new(e||q1)(Mu(Hh))},q1.ɵcmp=Uo({type:q1,selectors:[["tb-range-input"]],viewQuery:function t(e,n){if(1&e&&Wb(G1,3,ch),2&e){let t;Ub(t=Yb())&&(n.container=t.first)}},inputs:{min:"min",max:"max",lowerValue:"lowerValue",upperValue:"upperValue",tickCount:"tickCount"},outputs:{value:"value"},decls:8,vars:14,consts:[["type","number",1,"lower-input",3,"value","change"],["type","number",1,"upper-input",3,"value","change"],[1,"container"],["container",""],[1,"slider-track"],[1,"slider-track-fill"],[1,"thumb",3,"mousedown"]],template:function t(e,n){1&e&&(Ou(0,"input",0),Nu("change",(function t(e){return n.handleInputChange(e,n.Position.LEFT)})),Pu(),Ou(1,"input",1),Nu("change",(function t(e){return n.handleInputChange(e,n.Position.RIGHT)})),Pu(),Ou(2,"span",2,3),wu(4,"span",4),wu(5,"span",5),Ou(6,"span",6),Nu("mousedown",(function t(e){return n.handleMouseDown(e,n.Position.LEFT)})),Pu(),Ou(7,"span",6),Nu("mousedown",(function t(e){return n.handleMouseDown(e,n.Position.RIGHT)})),Pu(),Pu()),2&e&&(vu("value",n.lowerValue),Jc(1),vu("value",n.upperValue),Jc(4),of("left",n.getThumbPosition(n.lowerValue))("width",n.getTrackWidth()),Jc(1),of("left",n.getThumbPosition(n.lowerValue)),af("active",n.isThumbActive(n.Position.LEFT)),Jc(1),of("left",n.getThumbPosition(n.upperValue)),af("active",n.isThumbActive(n.Position.RIGHT)))},styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{box-sizing:border-box;display:inline-grid;grid-gap:10px;grid-template-areas:"lower-input upper-input" "slider slider";font-size:0;min-width:100px;padding:6px}input[_ngcontent-%COMP%]{background-color:inherit;border-style:solid;box-sizing:border-box;color:inherit;overflow:hidden;width:100%}.lower-input[_ngcontent-%COMP%]{grid-area:lower-input}.upper-input[_ngcontent-%COMP%]{grid-area:upper-input;justify-self:flex-end}.container[_ngcontent-%COMP%]{grid-area:slider;align-items:center;box-sizing:border-box;display:inline-flex;height:12px;justify-content:center;position:relative;width:100%}.slider-track[_ngcontent-%COMP%]{background:rgba(0,0,0,.26);height:2px;width:100%}body.dark-mode[_nghost-%COMP%]   .slider-track[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .slider-track[_ngcontent-%COMP%]{background:rgba(255,255,255,.3)}.slider-track-fill[_ngcontent-%COMP%]{position:absolute;height:2px}.thumb[_ngcontent-%COMP%]{box-sadhow:0 0 0 1px rgba(0,0,0,.26);border-radius:100%;display:inline-block;height:12px;margin-left:-6px;position:absolute;top:0;transform-origin:center;transition:transform .3s ease;width:12px;will-change:transform}body.dark-mode[_nghost-%COMP%]   .thumb[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .thumb[_ngcontent-%COMP%]{box-sadhow:0 0 0 1px rgba(255,255,255,.3)}.thumb.active[_ngcontent-%COMP%]{transform:scale(1.2)}.slider-track-fill[_ngcontent-%COMP%], .thumb[_ngcontent-%COMP%]{background:#f57c00}body.dark-mode[_nghost-%COMP%]   .slider-track-fill[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .slider-track-fill[_ngcontent-%COMP%]{background:#ef6c00}body.dark-mode[_nghost-%COMP%]   .thumb[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .thumb[_ngcontent-%COMP%]{background:#ef6c00}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(q1,[{type:h_,args:[{selector:"tb-range-input",templateUrl:"./range_input_component.ng.html",styleUrls:["./range_input_component.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:Hh}]}),{container:[{type:Fr,args:["container",{static:!0,read:ch}]}],min:[{type:y_}],max:[{type:y_}],lowerValue:[{type:y_}],upperValue:[{type:y_}],tickCount:[{type:y_}],value:[{type:__}]});const Z1=["dialogPopup"],X1=["hueSlider"],K1=["alphaSlider"];function J1(t,e){if(1&t&&wu(0,"div"),2&t){const t=Lu();wf("arrow arrow-",t.cpUsePosition,""),of("top",t.arrowTop,"px")}}function Q1(t,e){if(1&t){const t=Eu();Ou(0,"div",26),Nu("newValue",(function e(n){return ra(t),Lu().onColorChange(n)}))("dragStart",(function e(){return ra(t),Lu().onDragStart("saturation-lightness")}))("dragEnd",(function e(){return ra(t),Lu().onDragEnd("saturation-lightness")})),wu(1,"div",13),Pu()}if(2&t){const t=Lu();of("background-color",t.hueSliderColor),vu("rgX",1)("rgY",1),Jc(1),of("top",null==t.slider?null:t.slider.v,"px")("left",null==t.slider?null:t.slider.s,"px")}}function $1(t,e){if(1&t){const t=Eu();Ou(0,"button",27),Nu("click",(function e(n){ra(t);const o=Lu();return o.onAddPresetColor(n,o.selectedColor)})),Mf(1),Pu()}if(2&t){const t=Lu();lf(t.cpAddColorButtonClass),vu("disabled",t.cpPresetColors&&t.cpPresetColors.length>=t.cpMaxPresetColorsLength),Jc(1),xf(" ",t.cpAddColorButtonText," ")}}function t3(t,e){1&t&&wu(0,"div",28)}function e3(t,e){if(1&t){const t=Eu();Ou(0,"input",34),Nu("keyup.enter",(function e(n){return ra(t),Lu(2).onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu(2).onAlphaInput(n)})),Pu()}if(2&t){const t=Lu(2);vu("rg",1)("value",null==t.cmykText?null:t.cmykText.a)}}function n3(t,e){1&t&&(Ou(0,"div"),Mf(1,"A"),Pu())}function o3(t,e){if(1&t){const t=Eu();Ou(0,"div",29),Ou(1,"div",30),Ou(2,"input",31),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onCyanInput(n)})),Pu(),Ou(3,"input",31),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onMagentaInput(n)})),Pu(),Ou(4,"input",31),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onYellowInput(n)})),Pu(),Ou(5,"input",31),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onBlackInput(n)})),Pu(),Wm(6,e3,1,2,"input",32),Pu(),Ou(7,"div",30),Ou(8,"div"),Mf(9,"C"),Pu(),Ou(10,"div"),Mf(11,"M"),Pu(),Ou(12,"div"),Mf(13,"Y"),Pu(),Ou(14,"div"),Mf(15,"K"),Pu(),Wm(16,n3,2,0,"div",33),Pu(),Pu()}if(2&t){const t=Lu();of("display",3!==t.format?"none":"block"),Jc(2),vu("rg",100)("value",null==t.cmykText?null:t.cmykText.c),Jc(1),vu("rg",100)("value",null==t.cmykText?null:t.cmykText.m),Jc(1),vu("rg",100)("value",null==t.cmykText?null:t.cmykText.y),Jc(1),vu("rg",100)("value",null==t.cmykText?null:t.cmykText.k),Jc(1),vu("ngIf","disabled"!==t.cpAlphaChannel),Jc(10),vu("ngIf","disabled"!==t.cpAlphaChannel)}}function i3(t,e){if(1&t){const t=Eu();Ou(0,"input",34),Nu("keyup.enter",(function e(n){return ra(t),Lu(2).onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu(2).onAlphaInput(n)})),Pu()}if(2&t){const t=Lu(2);vu("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function a3(t,e){1&t&&(Ou(0,"div"),Mf(1,"A"),Pu())}function r3(t,e){if(1&t){const t=Eu();Ou(0,"div",35),Ou(1,"div",30),Ou(2,"input",36),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onHueInput(n)})),Pu(),Ou(3,"input",31),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onSaturationInput(n)})),Pu(),Ou(4,"input",31),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onLightnessInput(n)})),Pu(),Wm(5,i3,1,2,"input",32),Pu(),Ou(6,"div",30),Ou(7,"div"),Mf(8,"H"),Pu(),Ou(9,"div"),Mf(10,"S"),Pu(),Ou(11,"div"),Mf(12,"L"),Pu(),Wm(13,a3,2,0,"div",33),Pu(),Pu()}if(2&t){const t=Lu();of("display",2!==t.format?"none":"block"),Jc(2),vu("rg",360)("value",null==t.hslaText?null:t.hslaText.h),Jc(1),vu("rg",100)("value",null==t.hslaText?null:t.hslaText.s),Jc(1),vu("rg",100)("value",null==t.hslaText?null:t.hslaText.l),Jc(1),vu("ngIf","disabled"!==t.cpAlphaChannel),Jc(8),vu("ngIf","disabled"!==t.cpAlphaChannel)}}function s3(t,e){if(1&t){const t=Eu();Ou(0,"input",34),Nu("keyup.enter",(function e(n){return ra(t),Lu(2).onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu(2).onAlphaInput(n)})),Pu()}if(2&t){const t=Lu(2);vu("rg",1)("value",null==t.rgbaText?null:t.rgbaText.a)}}function l3(t,e){1&t&&(Ou(0,"div"),Mf(1,"A"),Pu())}function c3(t,e){if(1&t){const t=Eu();Ou(0,"div",37),Ou(1,"div",30),Ou(2,"input",38),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onRedInput(n)})),Pu(),Ou(3,"input",38),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onGreenInput(n)})),Pu(),Ou(4,"input",38),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onBlueInput(n)})),Pu(),Wm(5,s3,1,2,"input",32),Pu(),Ou(6,"div",30),Ou(7,"div"),Mf(8,"R"),Pu(),Ou(9,"div"),Mf(10,"G"),Pu(),Ou(11,"div"),Mf(12,"B"),Pu(),Wm(13,l3,2,0,"div",33),Pu(),Pu()}if(2&t){const t=Lu();of("display",1!==t.format?"none":"block"),Jc(2),vu("rg",255)("value",null==t.rgbaText?null:t.rgbaText.r),Jc(1),vu("rg",255)("value",null==t.rgbaText?null:t.rgbaText.g),Jc(1),vu("rg",255)("value",null==t.rgbaText?null:t.rgbaText.b),Jc(1),vu("ngIf","disabled"!==t.cpAlphaChannel),Jc(8),vu("ngIf","disabled"!==t.cpAlphaChannel)}}function d3(t,e){if(1&t){const t=Eu();Ou(0,"input",34),Nu("keyup.enter",(function e(n){return ra(t),Lu(2).onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu(2).onAlphaInput(n)})),Pu()}if(2&t){const t=Lu(2);vu("rg",1)("value",t.hexAlpha)}}function p3(t,e){1&t&&(Ou(0,"div"),Mf(1,"A"),Pu())}function m3(t,e){if(1&t){const t=Eu();Ou(0,"div",39),Ou(1,"div",30),Ou(2,"input",40),Nu("blur",(function e(){return ra(t),Lu().onHexInput(null)}))("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onHexInput(n)})),Pu(),Wm(3,d3,1,2,"input",32),Pu(),Ou(4,"div",30),Ou(5,"div"),Mf(6,"Hex"),Pu(),Wm(7,p3,2,0,"div",33),Pu(),Pu()}if(2&t){const t=Lu();of("display",0!==t.format?"none":"block"),af("hex-alpha","forced"===t.cpAlphaChannel),Jc(2),vu("value",t.hexText),Jc(1),vu("ngIf","forced"===t.cpAlphaChannel),Jc(4),vu("ngIf","forced"===t.cpAlphaChannel)}}function u3(t,e){if(1&t){const t=Eu();Ou(0,"input",34),Nu("keyup.enter",(function e(n){return ra(t),Lu(2).onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu(2).onAlphaInput(n)})),Pu()}if(2&t){const t=Lu(2);vu("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function f3(t,e){if(1&t){const t=Eu();Ou(0,"div",41),Ou(1,"div",30),Ou(2,"input",31),Nu("keyup.enter",(function e(n){return ra(t),Lu().onAcceptColor(n)}))("newValue",(function e(n){return ra(t),Lu().onValueInput(n)})),Pu(),Wm(3,u3,1,2,"input",32),Pu(),Ou(4,"div",30),Ou(5,"div"),Mf(6,"V"),Pu(),Ou(7,"div"),Mf(8,"A"),Pu(),Pu(),Pu()}if(2&t){const t=Lu();Jc(2),vu("rg",100)("value",null==t.hslaText?null:t.hslaText.l),Jc(1),vu("ngIf","disabled"!==t.cpAlphaChannel)}}function g3(t,e){if(1&t){const t=Eu();Ou(0,"div",42),Ou(1,"span",43),Nu("click",(function e(){return ra(t),Lu().onFormatToggle(-1)})),Pu(),Ou(2,"span",43),Nu("click",(function e(){return ra(t),Lu().onFormatToggle(1)})),Pu(),Pu()}}function h3(t,e){if(1&t){const t=Eu();Ou(0,"span",50),Nu("click",(function e(n){ra(t);const o=Lu().$implicit;return Lu(3).onRemovePresetColor(n,o)})),Pu()}2&t&&lf(Lu(4).cpRemoveColorButtonClass)}function b3(t,e){if(1&t){const t=Eu();Ou(0,"div",48),Nu("click",(function n(){ra(t);const o=e.$implicit;return Lu(3).setColorFromString(o)})),Wm(1,h3,1,3,"span",49),Pu()}if(2&t){const t=e.$implicit,n=Lu(3);of("background-color",t),Jc(1),vu("ngIf",n.cpAddColorButton)}}function y3(t,e){if(1&t&&(Ou(0,"div"),Wm(1,b3,2,3,"div",47),Pu()),2&t){const t=Lu(2);lf(t.cpPresetColorsClass),Jc(1),vu("ngForOf",t.cpPresetColors)}}function _3(t,e){if(1&t&&(Ou(0,"div"),Mf(1),Pu()),2&t){const t=Lu(2);lf(t.cpPresetEmptyMessageClass),Jc(1),vf(t.cpPresetEmptyMessage)}}function C3(t,e){if(1&t&&(Ou(0,"div",44),wu(1,"hr"),Ou(2,"div",45),Mf(3),Pu(),Wm(4,y3,2,4,"div",46),Wm(5,_3,2,4,"div",46),Pu()),2&t){const t=Lu();Jc(3),vf(t.cpPresetLabel),Jc(1),vu("ngIf",null==t.cpPresetColors?null:t.cpPresetColors.length),Jc(1),vu("ngIf",!(null!=t.cpPresetColors&&t.cpPresetColors.length)&&t.cpAddColorButton)}}function M3(t,e){if(1&t){const t=Eu();Ou(0,"button",53),Nu("click",(function e(n){return ra(t),Lu(2).onCancelColor(n)})),Mf(1),Pu()}if(2&t){const t=Lu(2);lf(t.cpCancelButtonClass),Jc(1),vf(t.cpCancelButtonText)}}function v3(t,e){if(1&t){const t=Eu();Ou(0,"button",53),Nu("click",(function e(n){return ra(t),Lu(2).onAcceptColor(n)})),Mf(1),Pu()}if(2&t){const t=Lu(2);lf(t.cpOKButtonClass),Jc(1),vf(t.cpOKButtonText)}}function x3(t,e){if(1&t&&(Ou(0,"div",51),Wm(1,M3,2,4,"button",52),Wm(2,v3,2,4,"button",52),Pu()),2&t){const t=Lu();Jc(1),vu("ngIf",t.cpCancelButton),Jc(1),vu("ngIf",t.cpOKButton)}}var O3;!(function(t){t[t.HEX=0]="HEX",t[t.RGBA=1]="RGBA",t[t.HSLA=2]="HSLA",t[t.CMYK=3]="CMYK"})(O3||(O3={}));class P3{constructor(t,e,n,o){this.r=t,this.g=e,this.b=n,this.a=o}}class w3{constructor(t,e,n,o){this.h=t,this.s=e,this.v=n,this.a=o}}class k3{constructor(t,e,n,o){this.h=t,this.s=e,this.l=n,this.a=o}}class S3{constructor(t,e,n,o,i=1){this.c=t,this.m=e,this.y=n,this.k=o,this.a=i}}class D3{constructor(){this.newValue=new Ab}inputChange(t){const e=t.target.value;if(void 0===this.rg)this.newValue.emit(e);else{const t=parseFloat(e);this.newValue.emit({v:t,rg:this.rg})}}}D3.ɵfac=function t(e){return new(e||D3)},D3.ɵdir=Jo({type:D3,selectors:[["","text",""]],hostBindings:function t(e,n){1&e&&Nu("input",(function t(e){return n.inputChange(e)}))},inputs:{rg:"rg",text:"text"},outputs:{newValue:"newValue"}}),D3.propDecorators={rg:[{type:y_}],text:[{type:y_}],newValue:[{type:__}],inputChange:[{type:M_,args:["input",["$event"]]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(D3,[{type:g_,args:[{selector:"[text]"}]}],(function(){return[]}),{newValue:[{type:__}],inputChange:[{type:M_,args:["input",["$event"]]}],rg:[{type:y_}],text:[{type:y_}]});class E3{constructor(t){this.elRef=t,this.dragEnd=new Ab,this.dragStart=new Ab,this.newValue=new Ab,this.listenerMove=t=>this.move(t),this.listenerStop=()=>this.stop()}mouseDown(t){this.start(t)}touchStart(t){this.start(t)}move(t){t.preventDefault(),this.setCursor(t)}start(t){this.setCursor(t),t.stopPropagation(),document.addEventListener("mouseup",this.listenerStop),document.addEventListener("touchend",this.listenerStop),document.addEventListener("mousemove",this.listenerMove),document.addEventListener("touchmove",this.listenerMove),this.dragStart.emit()}stop(){document.removeEventListener("mouseup",this.listenerStop),document.removeEventListener("touchend",this.listenerStop),document.removeEventListener("mousemove",this.listenerMove),document.removeEventListener("touchmove",this.listenerMove),this.dragEnd.emit()}getX(t){const e=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageX?t.pageX:t.touches[0].pageX)-e.left-window.pageXOffset}getY(t){const e=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageY?t.pageY:t.touches[0].pageY)-e.top-window.pageYOffset}setCursor(t){const e=this.elRef.nativeElement.offsetWidth,n=this.elRef.nativeElement.offsetHeight,o=Math.max(0,Math.min(this.getX(t),e)),i=Math.max(0,Math.min(this.getY(t),n));void 0!==this.rgX&&void 0!==this.rgY?this.newValue.emit({s:o/e,v:1-i/n,rgX:this.rgX,rgY:this.rgY}):void 0===this.rgX&&void 0!==this.rgY?this.newValue.emit({v:i/n,rgY:this.rgY}):void 0!==this.rgX&&void 0===this.rgY&&this.newValue.emit({v:o/e,rgX:this.rgX})}}E3.ɵfac=function t(e){return new(e||E3)(Mu(ch))},E3.ɵdir=Jo({type:E3,selectors:[["","slider",""]],hostBindings:function t(e,n){1&e&&Nu("mousedown",(function t(e){return n.mouseDown(e)}))("touchstart",(function t(e){return n.touchStart(e)}))},inputs:{rgX:"rgX",rgY:"rgY",slider:"slider"},outputs:{dragEnd:"dragEnd",dragStart:"dragStart",newValue:"newValue"}}),E3.ctorParameters=()=>[{type:ch}],E3.propDecorators={rgX:[{type:y_}],rgY:[{type:y_}],slider:[{type:y_}],dragEnd:[{type:__}],dragStart:[{type:__}],newValue:[{type:__}],mouseDown:[{type:M_,args:["mousedown",["$event"]]}],touchStart:[{type:M_,args:["touchstart",["$event"]]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(E3,[{type:g_,args:[{selector:"[slider]"}]}],(function(){return[{type:ch}]}),{dragEnd:[{type:__}],dragStart:[{type:__}],newValue:[{type:__}],mouseDown:[{type:M_,args:["mousedown",["$event"]]}],touchStart:[{type:M_,args:["touchstart",["$event"]]}],rgX:[{type:y_}],rgY:[{type:y_}],slider:[{type:y_}]});class A3{constructor(t,e,n,o){this.h=t,this.s=e,this.v=n,this.a=o}}class R3{constructor(t,e,n,o){this.h=t,this.s=e,this.v=n,this.a=o}}class T3{constructor(){this.active=null}setActive(t){this.active&&this.active!==t&&"inline"!==this.active.cpDialogDisplay&&this.active.closeDialog(),this.active=t}hsva2hsla(t){const e=t.h,n=t.s,o=t.v,i=t.a;if(0===o)return new k3(e,0,0,i);if(0===n&&1===o)return new k3(e,1,1,i);{const t=o*(2-n)/2;return new k3(e,o*n/(1-Math.abs(2*t-1)),t,i)}}hsla2hsva(t){const e=Math.min(t.h,1),n=Math.min(t.s,1),o=Math.min(t.l,1),i=Math.min(t.a,1);if(0===o)return new w3(e,0,0,i);{const t=o+n*(1-Math.abs(2*o-1))/2;return new w3(e,2*(t-o)/t,t,i)}}hsvaToRgba(t){let e,n,o;const i=t.h,a=t.s,r=t.v,s=t.a,l=Math.floor(6*i),c=6*i-l,d=r*(1-a),p=r*(1-c*a),m=r*(1-(1-c)*a);switch(l%6){case 0:e=r,n=m,o=d;break;case 1:e=p,n=r,o=d;break;case 2:e=d,n=r,o=m;break;case 3:e=d,n=p,o=r;break;case 4:e=m,n=d,o=r;break;case 5:e=r,n=d,o=p;break;default:e=0,n=0,o=0}return new P3(e,n,o,s)}cmykToRgb(t){return new P3((1-t.c)*(1-t.k),(1-t.m)*(1-t.k),(1-t.y)*(1-t.k),t.a)}rgbaToCmyk(t){const e=1-Math.max(t.r,t.g,t.b);return 1===e?new S3(0,0,0,1,t.a):new S3((1-t.r-e)/(1-e),(1-t.g-e)/(1-e),(1-t.b-e)/(1-e),e,t.a)}rgbaToHsva(t){let e,n;const o=Math.min(t.r,1),i=Math.min(t.g,1),a=Math.min(t.b,1),r=Math.min(t.a,1),s=Math.max(o,i,a),l=Math.min(o,i,a),c=s,d=s-l;if(n=0===s?0:d/s,s===l)e=0;else{switch(s){case o:e=(i-a)/d+(i<a?6:0);break;case i:e=(a-o)/d+2;break;case a:e=(o-i)/d+4;break;default:e=0}e/=6}return new w3(e,n,c,r)}rgbaToHex(t,e){let n="#"+(1<<24|t.r<<16|t.g<<8|t.b).toString(16).substr(1);return e&&(n+=(256|Math.round(255*t.a)).toString(16).substr(1)),n}normalizeCMYK(t){return new S3(t.c/100,t.m/100,t.y/100,t.k/100,t.a)}denormalizeCMYK(t){return new S3(Math.floor(100*t.c),Math.floor(100*t.m),Math.floor(100*t.y),Math.floor(100*t.k),t.a)}denormalizeRGBA(t){return new P3(Math.round(255*t.r),Math.round(255*t.g),Math.round(255*t.b),t.a)}stringToHsva(t="",e=!1){let n=null;t=(t||"").toLowerCase();const o=[{re:/(rgb)a?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*%?,\s*(\d{1,3})\s*%?(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(t){return new P3(parseInt(t[2],10)/255,parseInt(t[3],10)/255,parseInt(t[4],10)/255,isNaN(parseFloat(t[5]))?1:parseFloat(t[5]))}},{re:/(hsl)a?\(\s*(\d{1,3})\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(t){return new k3(parseInt(t[2],10)/360,parseInt(t[3],10)/100,parseInt(t[4],10)/100,isNaN(parseFloat(t[5]))?1:parseFloat(t[5]))}}];o.push(e?{re:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})?$/,parse:function(t){return new P3(parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255,parseInt(t[4]||"FF",16)/255)}}:{re:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/,parse:function(t){return new P3(parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255,1)}}),o.push({re:/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/,parse:function(t){return new P3(parseInt(t[1]+t[1],16)/255,parseInt(t[2]+t[2],16)/255,parseInt(t[3]+t[3],16)/255,1)}});for(const e in o)if(o.hasOwnProperty(e)){const i=o[e],a=i.re.exec(t),r=a&&i.parse(a);if(r)return r instanceof P3?n=this.rgbaToHsva(r):r instanceof k3&&(n=this.hsla2hsva(r)),n}return n}outputFormat(t,e,n){switch("auto"===e&&(e=t.a<1?"rgba":"hex"),e){case"hsla":const e=this.hsva2hsla(t),o=new k3(Math.round(360*e.h),Math.round(100*e.s),Math.round(100*e.l),Math.round(100*e.a)/100);return t.a<1||"always"===n?"hsla("+o.h+","+o.s+"%,"+o.l+"%,"+o.a+")":"hsl("+o.h+","+o.s+"%,"+o.l+"%)";case"rgba":const i=this.denormalizeRGBA(this.hsvaToRgba(t));return t.a<1||"always"===n?"rgba("+i.r+","+i.g+","+i.b+","+Math.round(100*i.a)/100+")":"rgb("+i.r+","+i.g+","+i.b+")";default:const a="always"===n||"forced"===n;return this.rgbaToHex(this.denormalizeRGBA(this.hsvaToRgba(t)),a)}}}T3.ɵfac=function t(e){return new(e||T3)},T3.ɵprov=lo({token:T3,factory:T3.ɵfac}),T3.ctorParameters=()=>[],("undefined"==typeof ngDevMode||ngDevMode)&&db(T3,[{type:Jm}],(function(){return[]}),null);class N3{constructor(t,e,n){this.elRef=t,this.cdRef=e,this.service=n,this.isIE10=!1,this.dialogArrowSize=10,this.dialogArrowOffset=15,this.dialogInputFields=[O3.HEX,O3.RGBA,O3.HSLA,O3.CMYK],this.useRootViewContainer=!1}handleEsc(t){this.show&&"popup"===this.cpDialogDisplay&&this.onCancelColor(t)}handleEnter(t){this.show&&"popup"===this.cpDialogDisplay&&this.onAcceptColor(t)}ngOnInit(){this.slider=new A3(0,0,0,0),this.sliderDimMax=new R3(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.format=this.cpCmykEnabled?O3.CMYK:"rgba"===this.cpOutputFormat?O3.RGBA:"hsla"===this.cpOutputFormat?O3.HSLA:O3.HEX,this.listenerMouseDown=t=>{this.onMouseDown(t)},this.listenerResize=()=>{this.onResize()},this.openDialog(this.initialColor,!1)}ngOnDestroy(){this.closeDialog()}ngAfterViewInit(){230===this.cpWidth&&"inline"!==this.cpDialogDisplay||(this.sliderDimMax=new R3(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.updateColorPicker(!1),this.cdRef.detectChanges())}openDialog(t,e=!0){this.service.setActive(this),this.width||(this.cpWidth=this.directiveElementRef.nativeElement.offsetWidth),this.height||(this.height=320),this.setInitialColor(t),this.setColorFromString(t,e),this.openColorPicker()}closeDialog(){this.closeColorPicker()}setupDialog(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g,h,b,y,_,C,M,v,x,O,P,w,k,S,D,E,A,R,T,N){this.setInitialColor(n),this.setColorMode(s),this.isIE10=10===(function I(){let t="";"undefined"!=typeof navigator&&(t=navigator.userAgent.toLowerCase());const e=t.indexOf("msie ");return e>0&&parseInt(t.substring(e+5,t.indexOf(".",e)),10)})(),this.directiveInstance=t,this.directiveElementRef=e,this.cpDisableInput=p,this.cpCmykEnabled=l,this.cpAlphaChannel=c,this.cpOutputFormat=d,this.cpDialogDisplay=a,this.cpIgnoredElements=m,this.cpSaveClickOutside=u,this.cpCloseClickOutside=f,this.useRootViewContainer=g,this.width=this.cpWidth=parseInt(o,10),this.height=this.cpHeight=parseInt(i,10),this.cpPosition=h,this.cpPositionOffset=parseInt(b,10),this.cpOKButton=P,this.cpOKButtonText=k,this.cpOKButtonClass=w,this.cpCancelButton=S,this.cpCancelButtonText=E,this.cpCancelButtonClass=D,this.fallbackColor=r||"#fff",this.setPresetConfig(_,C),this.cpPresetColorsClass=M,this.cpMaxPresetColorsLength=v,this.cpPresetEmptyMessage=x,this.cpPresetEmptyMessageClass=O,this.cpAddColorButton=A,this.cpAddColorButtonText=T,this.cpAddColorButtonClass=R,this.cpRemoveColorButtonClass=N,y||(this.dialogArrowOffset=0),"inline"===a&&(this.dialogArrowSize=0,this.dialogArrowOffset=0),"hex"===d&&"always"!==c&&"forced"!==c&&(this.cpAlphaChannel="disabled")}setColorMode(t){switch(t.toString().toUpperCase()){case"1":case"C":case"COLOR":this.cpColorMode=1;break;case"2":case"G":case"GRAYSCALE":this.cpColorMode=2;break;case"3":case"P":case"PRESETS":this.cpColorMode=3;break;default:this.cpColorMode=1}}setInitialColor(t){this.initialColor=t}setPresetConfig(t,e){this.cpPresetLabel=t,this.cpPresetColors=e}setColorFromString(t,e=!0,n=!0){let o;"always"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel?(o=this.service.stringToHsva(t,!0),o||this.hsva||(o=this.service.stringToHsva(t,!1))):o=this.service.stringToHsva(t,!1),o||this.hsva||(o=this.service.stringToHsva(this.fallbackColor,!1)),o&&(this.hsva=o,this.sliderH=this.hsva.h,"hex"===this.cpOutputFormat&&"disabled"===this.cpAlphaChannel&&(this.hsva.a=1),this.updateColorPicker(e,n))}onResize(){"fixed"===this.position?this.setDialogPosition():"inline"!==this.cpDialogDisplay&&this.closeColorPicker()}onDragEnd(t){this.directiveInstance.sliderDragEnd({slider:t,color:this.outputColor})}onDragStart(t){this.directiveInstance.sliderDragStart({slider:t,color:this.outputColor})}onMouseDown(t){!this.show||this.isIE10||"popup"!==this.cpDialogDisplay||t.target===this.directiveElementRef.nativeElement||this.isDescendant(this.elRef.nativeElement,t.target)||this.isDescendant(this.directiveElementRef.nativeElement,t.target)||0!==this.cpIgnoredElements.filter((e=>e===t.target)).length||(this.cpSaveClickOutside?this.directiveInstance.colorSelected(this.outputColor):(this.hsva=null,this.setColorFromString(this.initialColor,!1),this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor),this.directiveInstance.colorCanceled()),this.cpCloseClickOutside&&this.closeColorPicker())}onAcceptColor(t){t.stopPropagation(),this.outputColor&&this.directiveInstance.colorSelected(this.outputColor),"popup"===this.cpDialogDisplay&&this.closeColorPicker()}onCancelColor(t){this.hsva=null,t.stopPropagation(),this.directiveInstance.colorCanceled(),this.setColorFromString(this.initialColor,!0),"popup"===this.cpDialogDisplay&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor,!0),this.closeColorPicker())}onFormatToggle(t){const e=this.dialogInputFields.length-(this.cpCmykEnabled?0:1),n=((this.dialogInputFields.indexOf(this.format)+t)%e+e)%e;this.format=this.dialogInputFields[n]}onColorChange(t){this.hsva.s=t.s/t.rgX,this.hsva.v=t.v/t.rgY,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"lightness",value:this.hsva.v,color:this.outputColor}),this.directiveInstance.sliderChanged({slider:"saturation",value:this.hsva.s,color:this.outputColor})}onHueChange(t){this.hsva.h=t.v/t.rgX,this.sliderH=this.hsva.h,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"hue",value:this.hsva.h,color:this.outputColor})}onValueChange(t){this.hsva.v=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"value",value:this.hsva.v,color:this.outputColor})}onAlphaChange(t){this.hsva.a=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"alpha",value:this.hsva.a,color:this.outputColor})}onHexInput(t){if(null===t)this.updateColorPicker();else{t&&"#"!==t[0]&&(t="#"+t);let e=/^#([a-f0-9]{3}|[a-f0-9]{6})$/gi;"always"===this.cpAlphaChannel&&(e=/^#([a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})$/gi);const n=e.test(t);n&&(t.length<5&&(t="#"+t.substring(1).split("").map((t=>t+t)).join("")),"forced"===this.cpAlphaChannel&&(t+=Math.round(255*this.hsva.a).toString(16)),this.setColorFromString(t,!0,!1)),this.directiveInstance.inputChanged({input:"hex",valid:n,value:t,color:this.outputColor})}}onRedInput(t){const e=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(e.r=t.v/t.rg,this.hsva=this.service.rgbaToHsva(e),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"red",valid:n,value:e.r,color:this.outputColor})}onBlueInput(t){const e=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(e.b=t.v/t.rg,this.hsva=this.service.rgbaToHsva(e),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"blue",valid:n,value:e.b,color:this.outputColor})}onGreenInput(t){const e=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(e.g=t.v/t.rg,this.hsva=this.service.rgbaToHsva(e),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"green",valid:n,value:e.g,color:this.outputColor})}onHueInput(t){const e=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;e&&(this.hsva.h=t.v/t.rg,this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"hue",valid:e,value:this.hsva.h,color:this.outputColor})}onValueInput(t){const e=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;e&&(this.hsva.v=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"value",valid:e,value:this.hsva.v,color:this.outputColor})}onAlphaInput(t){const e=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;e&&(this.hsva.a=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"alpha",valid:e,value:this.hsva.a,color:this.outputColor})}onLightnessInput(t){const e=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(e.l=t.v/t.rg,this.hsva=this.service.hsla2hsva(e),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"lightness",valid:n,value:e.l,color:this.outputColor})}onSaturationInput(t){const e=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(e.s=t.v/t.rg,this.hsva=this.service.hsla2hsva(e),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"saturation",valid:n,value:e.s,color:this.outputColor})}onCyanInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.c=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"cyan",valid:!0,value:this.cmyk.c,color:this.outputColor})}onMagentaInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.m=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"magenta",valid:!0,value:this.cmyk.m,color:this.outputColor})}onYellowInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.y=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"yellow",valid:!0,value:this.cmyk.y,color:this.outputColor})}onBlackInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.k=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"black",valid:!0,value:this.cmyk.k,color:this.outputColor})}onAddPresetColor(t,e){t.stopPropagation(),this.cpPresetColors.filter((t=>t===e)).length||(this.cpPresetColors=this.cpPresetColors.concat(e),this.directiveInstance.presetColorsChanged(this.cpPresetColors))}onRemovePresetColor(t,e){t.stopPropagation(),this.cpPresetColors=this.cpPresetColors.filter((t=>t!==e)),this.directiveInstance.presetColorsChanged(this.cpPresetColors)}openColorPicker(){this.show||(this.show=!0,this.hidden=!0,setTimeout((()=>{this.hidden=!1,this.setDialogPosition(),this.cdRef.detectChanges()}),0),this.directiveInstance.stateChanged(!0),this.isIE10||(document.addEventListener("mousedown",this.listenerMouseDown),document.addEventListener("touchstart",this.listenerMouseDown)),window.addEventListener("resize",this.listenerResize))}closeColorPicker(){this.show&&(this.show=!1,this.directiveInstance.stateChanged(!1),this.isIE10||(document.removeEventListener("mousedown",this.listenerMouseDown),document.removeEventListener("touchstart",this.listenerMouseDown)),window.removeEventListener("resize",this.listenerResize),this.cdRef.destroyed||this.cdRef.detectChanges())}updateColorPicker(t=!0,e=!0,n=!1){if(this.sliderDimMax){let o,i,a;2===this.cpColorMode&&(this.hsva.s=0);const r=this.outputColor;if(i=this.service.hsva2hsla(this.hsva),this.cpCmykEnabled?(n?(a=this.service.cmykToRgb(this.service.normalizeCMYK(this.cmyk)),this.hsva=this.service.rgbaToHsva(a)):(a=this.service.hsvaToRgba(this.hsva),this.cmyk=this.service.denormalizeCMYK(this.service.rgbaToCmyk(a))),a=this.service.denormalizeRGBA(a),this.sliderH=this.hsva.h):a=this.service.denormalizeRGBA(this.service.hsvaToRgba(this.hsva)),o=this.service.denormalizeRGBA(this.service.hsvaToRgba(new w3(this.sliderH||this.hsva.h,1,1,1))),e&&(this.hslaText=new k3(Math.round(360*i.h),Math.round(100*i.s),Math.round(100*i.l),Math.round(100*i.a)/100),this.rgbaText=new P3(a.r,a.g,a.b,Math.round(100*a.a)/100),this.cpCmykEnabled&&(this.cmykText=new S3(this.cmyk.c,this.cmyk.m,this.cmyk.y,this.cmyk.k,Math.round(100*this.cmyk.a)/100)),this.hexText=this.service.rgbaToHex(a,"always"===this.cpAlphaChannel),this.hexAlpha=this.rgbaText.a),"auto"===this.cpOutputFormat&&this.format!==O3.RGBA&&this.format!==O3.CMYK&&this.hsva.a<1&&(this.format=this.hsva.a<1?O3.RGBA:O3.HEX),this.hueSliderColor="rgb("+o.r+","+o.g+","+o.b+")",this.alphaSliderColor="rgb("+a.r+","+a.g+","+a.b+")",this.outputColor=this.service.outputFormat(this.hsva,this.cpOutputFormat,this.cpAlphaChannel),this.selectedColor=this.service.outputFormat(this.hsva,"rgba",null),this.format!==O3.CMYK)this.cmykColor="";else if("always"===this.cpAlphaChannel||"enabled"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel){const t=Math.round(100*this.cmyk.a)/100;this.cmykColor=`cmyka(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k},${t})`}else this.cmykColor=`cmyk(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k})`;this.slider=new A3((this.sliderH||this.hsva.h)*this.sliderDimMax.h-8,this.hsva.s*this.sliderDimMax.s-8,(1-this.hsva.v)*this.sliderDimMax.v-8,this.hsva.a*this.sliderDimMax.a-8),t&&r!==this.outputColor&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.outputColor))}}setDialogPosition(){if("inline"===this.cpDialogDisplay)this.position="relative";else{let t,e="static",n="",o=null,i=null,a=this.directiveElementRef.nativeElement.parentNode;const r=this.dialogElement.nativeElement.offsetHeight;for(;null!==a&&"HTML"!==a.tagName;){if(t=window.getComputedStyle(a),e=t.getPropertyValue("position"),n=t.getPropertyValue("transform"),"static"!==e&&null===o&&(o=a),n&&"none"!==n&&null===i&&(i=a),"fixed"===e){o=i;break}a=a.parentNode}const s=this.createDialogBox(this.directiveElementRef.nativeElement,"fixed"!==e);if(this.useRootViewContainer||"fixed"===e&&(!o||o instanceof HTMLUnknownElement))this.top=s.top,this.left=s.left;else{null===o&&(o=a);const t=this.createDialogBox(o,"fixed"!==e);this.top=s.top-t.top,this.left=s.left-t.left}"fixed"===e&&(this.position="fixed");let l=this.cpPosition;"auto"===this.cpPosition&&(l=(function t(e){let n="right",o="bottom";const{height:i,width:a,top:r,bottom:s,left:l,right:c}=e,d=r-i<0,p=s+i>(window.innerHeight||document.documentElement.clientHeight),m=l-a<0,u=c+a>(window.innerWidth||document.documentElement.clientWidth);return p&&(o="top"),d&&(o="bottom"),m&&(n="right"),u&&(n="left"),d&&p&&m&&u?["left","right","top","bottom"].reduce(((t,n)=>e[t]>e[n]?t:n)):m&&u?d?"bottom":p||r>s?"top":"bottom":d&&p?m?"right":u||l>c?"left":"right":`${o}-${n}`})(this.dialogElement.nativeElement.getBoundingClientRect())),"top"===l?(this.arrowTop=r-1,this.top-=r+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*s.width-this.dialogArrowOffset):"bottom"===l?(this.top+=s.height+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*s.width-this.dialogArrowOffset):"top-left"===l||"left-top"===l?(this.top-=r-s.height+s.height*this.cpPositionOffset/100,this.left-=this.cpWidth+this.dialogArrowSize-2-this.dialogArrowOffset):"top-right"===l||"right-top"===l?(this.top-=r-s.height+s.height*this.cpPositionOffset/100,this.left+=s.width+this.dialogArrowSize-2-this.dialogArrowOffset):"left"===l||"bottom-left"===l||"left-bottom"===l?(this.top+=s.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left-=this.cpWidth+this.dialogArrowSize-2):(this.top+=s.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left+=s.width+this.dialogArrowSize-2)}}isDescendant(t,e){let n=e.parentNode;for(;null!==n;){if(n===t)return!0;n=n.parentNode}return!1}createDialogBox(t,e){return{top:t.getBoundingClientRect().top+(e?window.pageYOffset:0),left:t.getBoundingClientRect().left+(e?window.pageXOffset:0),width:t.offsetWidth,height:t.offsetHeight}}}N3.ɵfac=function t(e){return new(e||N3)(Mu(ch),Mu(Hh),Mu(T3))},N3.ɵcmp=Uo({type:N3,selectors:[["color-picker"]],viewQuery:function t(e,n){if(1&e&&(Wb(Z1,3),Wb(X1,3),Wb(K1,3)),2&e){let t;Ub(t=Yb())&&(n.dialogElement=t.first),Ub(t=Yb())&&(n.hueSlider=t.first),Ub(t=Yb())&&(n.alphaSlider=t.first)}},hostBindings:function t(e,n){1&e&&Nu("keyup.esc",(function t(e){return n.handleEsc(e)}),!1,Zl)("keyup.enter",(function t(e){return n.handleEnter(e)}),!1,Zl)},decls:28,vars:47,consts:[[1,"color-picker",3,"click"],["dialogPopup",""],[3,"class","top",4,"ngIf"],["class","saturation-lightness",3,"slider","rgX","rgY","background-color","newValue","dragStart","dragEnd",4,"ngIf"],[1,"hue-alpha","box"],[1,"left"],[1,"selected-color-background"],[1,"selected-color"],["type","button",3,"class","disabled","click",4,"ngIf"],[1,"right"],["style","height: 16px;",4,"ngIf"],[1,"hue",3,"slider","rgX","newValue","dragStart","dragEnd"],["hueSlider",""],[1,"cursor"],[1,"value",3,"slider","rgX","newValue","dragStart","dragEnd"],["valueSlider",""],[1,"alpha",3,"slider","rgX","newValue","dragStart","dragEnd"],["alphaSlider",""],["class","cmyk-text",3,"display",4,"ngIf"],["class","hsla-text",3,"display",4,"ngIf"],["class","rgba-text",3,"display",4,"ngIf"],["class","hex-text",3,"hex-alpha","display",4,"ngIf"],["class","value-text",4,"ngIf"],["class","type-policy",4,"ngIf"],["class","preset-area",4,"ngIf"],["class","button-area",4,"ngIf"],[1,"saturation-lightness",3,"slider","rgX","rgY","newValue","dragStart","dragEnd"],["type","button",3,"disabled","click"],[2,"height","16px"],[1,"cmyk-text"],[1,"box"],["type","number","pattern","[0-9]*","min","0","max","100",3,"text","rg","value","keyup.enter","newValue"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"text","rg","value","keyup.enter","newValue",4,"ngIf"],[4,"ngIf"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"text","rg","value","keyup.enter","newValue"],[1,"hsla-text"],["type","number","pattern","[0-9]*","min","0","max","360",3,"text","rg","value","keyup.enter","newValue"],[1,"rgba-text"],["type","number","pattern","[0-9]*","min","0","max","255",3,"text","rg","value","keyup.enter","newValue"],[1,"hex-text"],[3,"text","value","blur","keyup.enter","newValue"],[1,"value-text"],[1,"type-policy"],[1,"type-policy-arrow",3,"click"],[1,"preset-area"],[1,"preset-label"],[3,"class",4,"ngIf"],["class","preset-color",3,"backgroundColor","click",4,"ngFor","ngForOf"],[1,"preset-color",3,"click"],[3,"class","click",4,"ngIf"],[3,"click"],[1,"button-area"],["type","button",3,"class","click",4,"ngIf"],["type","button",3,"click"]],template:function t(e,n){1&e&&(Ou(0,"div",0,1),Nu("click",(function t(e){return e.stopPropagation()})),Wm(2,J1,1,5,"div",2),Wm(3,Q1,2,8,"div",3),Ou(4,"div",4),Ou(5,"div",5),wu(6,"div",6),wu(7,"div",7),Wm(8,$1,2,5,"button",8),Pu(),Ou(9,"div",9),Wm(10,t3,1,0,"div",10),Ou(11,"div",11,12),Nu("newValue",(function t(e){return n.onHueChange(e)}))("dragStart",(function t(){return n.onDragStart("hue")}))("dragEnd",(function t(){return n.onDragEnd("hue")})),wu(13,"div",13),Pu(),Ou(14,"div",14,15),Nu("newValue",(function t(e){return n.onValueChange(e)}))("dragStart",(function t(){return n.onDragStart("value")}))("dragEnd",(function t(){return n.onDragEnd("value")})),wu(16,"div",13),Pu(),Ou(17,"div",16,17),Nu("newValue",(function t(e){return n.onAlphaChange(e)}))("dragStart",(function t(){return n.onDragStart("alpha")}))("dragEnd",(function t(){return n.onDragEnd("alpha")})),wu(19,"div",13),Pu(),Pu(),Pu(),Wm(20,o3,17,12,"div",18),Wm(21,r3,14,10,"div",19),Wm(22,c3,14,10,"div",20),Wm(23,m3,8,7,"div",21),Wm(24,f3,9,3,"div",22),Wm(25,g3,3,0,"div",23),Wm(26,C3,6,3,"div",24),Wm(27,x3,3,2,"div",25),Pu()),2&e&&(of("display",n.show?"block":"none")("visibility",n.hidden?"hidden":"visible")("top",n.top,"px")("left",n.left,"px")("position",n.position)("height",n.cpHeight,"px")("width",n.cpWidth,"px"),af("open",n.show),Jc(2),vu("ngIf","popup"==n.cpDialogDisplay),Jc(1),vu("ngIf",1===(n.cpColorMode||1)),Jc(4),of("background-color",n.selectedColor),Jc(1),vu("ngIf",n.cpAddColorButton),Jc(2),vu("ngIf","disabled"===n.cpAlphaChannel),Jc(1),of("display",1===(n.cpColorMode||1)?"block":"none"),vu("rgX",1),Jc(2),of("left",null==n.slider?null:n.slider.h,"px"),Jc(1),of("display",2===(n.cpColorMode||1)?"block":"none"),vu("rgX",1),Jc(2),of("right",null==n.slider?null:n.slider.v,"px"),Jc(1),of("display","disabled"===n.cpAlphaChannel?"none":"block")("background-color",n.alphaSliderColor),vu("rgX",1),Jc(2),of("left",null==n.slider?null:n.slider.a,"px"),Jc(1),vu("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),Jc(1),vu("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),Jc(1),vu("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),Jc(1),vu("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),Jc(1),vu("ngIf",!n.cpDisableInput&&2===(n.cpColorMode||1)),Jc(1),vu("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),Jc(1),vu("ngIf",(null==n.cpPresetColors?null:n.cpPresetColors.length)||n.cpAddColorButton),Jc(1),vu("ngIf",n.cpOKButton||n.cpCancelButton))},directives:[av,E3,D3,ov],styles:['.color-picker{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;border:1px solid #777;cursor:default;height:auto;position:absolute;user-select:none;width:230px;z-index:1000}.color-picker *{box-sizing:border-box;font-size:11px;margin:0}.color-picker input{color:#000;font-size:13px;height:26px;min-width:0;text-align:center;width:0}.color-picker input:-moz-submit-invalid,.color-picker input:-moz-ui-invalid,.color-picker input:invalid{box-shadow:none}.color-picker input::-webkit-inner-spin-button,.color-picker input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.color-picker .arrow{border-style:solid;height:0;position:absolute;width:0;z-index:999999}.color-picker .arrow.arrow-top{border-color:#777 transparent transparent;border-width:10px 5px;left:8px}.color-picker .arrow.arrow-bottom{border-color:transparent transparent #777;border-width:10px 5px;left:8px;top:-20px}.color-picker .arrow.arrow-left-top,.color-picker .arrow.arrow-top-left{border-color:transparent transparent transparent #777;border-width:5px 10px;bottom:8px;right:-21px}.color-picker .arrow.arrow-right-top,.color-picker .arrow.arrow-top-right{border-color:transparent #777 transparent transparent;border-width:5px 10px;bottom:8px;left:-20px}.color-picker .arrow.arrow-bottom-left,.color-picker .arrow.arrow-left,.color-picker .arrow.arrow-left-bottom{border-color:transparent transparent transparent #777;border-width:5px 10px;right:-21px;top:8px}.color-picker .arrow.arrow-bottom-right,.color-picker .arrow.arrow-right,.color-picker .arrow.arrow-right-bottom{border-color:transparent #777 transparent transparent;border-width:5px 10px;left:-20px;top:8px}.color-picker .cursor{border:2px solid #222;border-radius:50%;cursor:default;height:16px;position:relative;width:16px}.color-picker .box{display:flex;padding:4px 8px}.color-picker .left{padding:16px 8px;position:relative}.color-picker .right{flex:1 1 auto;padding:12px 8px}.color-picker .button-area{padding:0 16px 16px;text-align:right}.color-picker .button-area button{margin-left:8px}.color-picker .preset-area{padding:4px 15px}.color-picker .preset-area .preset-label{color:#555;font-size:11px;overflow:hidden;padding:4px;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.color-picker .preset-area .preset-color{border:1px solid #a9a9a9;border-radius:25%;cursor:pointer;display:inline-block;height:18px;margin:4px 6px 8px;position:relative;width:18px}.color-picker .preset-area .preset-empty-message{font-style:italic;margin-bottom:8px;margin-top:4px;min-height:18px;text-align:center}.color-picker .hex-text{font-size:11px;padding:4px 8px;width:100%}.color-picker .hex-text .box{padding:0 24px 8px 8px}.color-picker .hex-text .box div{clear:left;color:#555;flex:1 1 auto;float:left;text-align:center}.color-picker .hex-text .box input{border:1px solid #a9a9a9;flex:1 1 auto;padding:1px}.color-picker .hex-alpha .box div:first-child,.color-picker .hex-alpha .box input:first-child{flex-grow:3;margin-right:8px}.color-picker .cmyk-text,.color-picker .hsla-text,.color-picker .rgba-text,.color-picker .value-text{font-size:11px;padding:4px 8px;width:100%}.color-picker .cmyk-text .box,.color-picker .hsla-text .box,.color-picker .rgba-text .box{padding:0 24px 8px 8px}.color-picker .value-text .box{padding:0 8px 8px}.color-picker .cmyk-text .box div,.color-picker .hsla-text .box div,.color-picker .rgba-text .box div,.color-picker .value-text .box div{color:#555;flex:1 1 auto;margin-right:8px;text-align:center}.color-picker .cmyk-text .box div:last-child,.color-picker .hsla-text .box div:last-child,.color-picker .rgba-text .box div:last-child,.color-picker .value-text .box div:last-child{margin-right:0}.color-picker .cmyk-text .box input,.color-picker .hsla-text .box input,.color-picker .rgba-text .box input,.color-picker .value-text .box input{border:1px solid #a9a9a9;flex:1;float:left;margin:0 8px 0 0;padding:1px}.color-picker .cmyk-text .box input:last-child,.color-picker .hsla-text .box input:last-child,.color-picker .rgba-text .box input:last-child,.color-picker .value-text .box input:last-child{margin-right:0}.color-picker .hue-alpha{align-items:center;margin-bottom:3px}.color-picker .hue{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwkUFWbCCAAAAFxJREFUaN7t0kEKg0AQAME2x83/n2qu5qCgD1iDhCoYdpnbQC9bbY1qVO/jvc6k3ad91s7/7F1/csgPrujuQ17BDYSFsBAWwgJhISyEBcJCWAgLhIWwEBYIi2f7Ar/1TCgFH2X9AAAAAElFTkSuQmCC");direction:ltr}.color-picker .hue,.color-picker .value{background-size:100% 100%;border:none;cursor:pointer;height:16px;margin-bottom:16px;width:100%}.color-picker .value{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAACTklEQVR42u3SYUcrABhA4U2SkmRJMmWSJklKJiWZZpKUJJskKUmaTFImKZOUzMySpGRmliRNJilJSpKSJEtmSpIpmWmSdO736/6D+x7OP3gUCoWCv1cqlSQlJZGcnExKSgqpqamkpaWRnp5ORkYGmZmZqFQqsrKyyM7OJicnh9zcXNRqNXl5eeTn56PRaCgoKKCwsJCioiK0Wi3FxcWUlJRQWlpKWVkZ5eXlVFRUUFlZiU6no6qqiurqampqaqitraWurg69Xk99fT0GgwGj0UhDQwONjY00NTXR3NxMS0sLra2ttLW10d7ejslkwmw209HRQWdnJ11dXXR3d9PT00Nvby99fX309/czMDDA4OAgFouFoaEhrFYrw8PDjIyMMDo6ytjYGDabjfHxcSYmJpicnGRqagq73c709DQzMzPMzs4yNzfH/Pw8DocDp9OJy+XC7XazsLDA4uIiS0tLLC8vs7KywurqKmtra3g8HrxeLz6fD7/fz/r6OhsbG2xubrK1tcX29jaBQICdnR2CwSC7u7vs7e2xv7/PwcEBh4eHHB0dcXx8zMnJCaenp5ydnXF+fs7FxQWXl5dcXV1xfX3Nzc0Nt7e33N3dEQqFuL+/5+HhgXA4TCQS4fHxkaenJ56fn3l5eeH19ZVoNMrb2xvv7+98fHwQi8WIx+N8fn6SSCT4+vri+/ubn58ffn9/+VcKgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsP4/WH8AmJ5Z6jHS4h8AAAAASUVORK5CYII=");direction:rtl}.color-picker .alpha{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwYQlZMa3gAAAWVJREFUaN7tmEGO6jAQRCsOArHgBpyAJYGjcGocxAm4A2IHpmoWE0eBH+ezmFlNvU06shJ3W6VEelWMUQAIIF9f6qZpimsA1LYtS2uF51/u27YVAFZVRUkEoGHdPV/sIcbIEIIkUdI/9Xa7neyv61+SWFUVAVCSct00TWn2fv6u3+Ecfd3tXzy/0+nEUu+SPjo/kqzrmiQpScN6v98XewfA8/lMkiLJ2WxGSUopcT6fM6U0NX9/frfbjev1WtfrlZfLhYfDQQHG/AIOlnGwjINlHCxjHCzjYJm/TJWdCwquJXseFFzGwDNNeiKMOJTO8xQdDQaeB29+K9efeLaBo9J7vdvtJj1RjFFjfiv7qv95tjx/7leSQgh93e1ffMeIp6O+YQjho/N791t1XVOSSI7N//K+4/GoxWLBx+PB5/Op5XLJ+/3OlJJWqxU3m83ovv5iGf8KjYNlHCxjHCzjYBkHy5gf5gusvQU7U37jTAAAAABJRU5ErkJggg==");background-size:100% 100%;border:none;cursor:pointer;direction:ltr;height:16px;width:100%}.color-picker .type-policy{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACewAAAnsB01CO3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIASURBVEiJ7ZY9axRRFIafsxMStrLQJpAgpBFhi+C9w1YSo00I6RZ/g9vZpBf/QOr4GyRgkSKNSrAadsZqQGwCkuAWyRZJsySwvhZ7N/vhzrgbLH3Ld8597jlzz50zJokyxXH8DqDVar0qi6v8BbItqSGpEcfxdlmsFWXkvX8AfAVWg3UKPEnT9GKujMzsAFgZsVaCN1VTQd77XUnrgE1kv+6935268WRpzrnHZvYRWC7YvC3pRZZl3wozqtVqiyH9IgjAspkd1Gq1xUJQtVrdB9ZKIAOthdg/Qc65LUk7wNIMoCVJO865rYFhkqjX6/d7vV4GPJwBMqofURS5JEk6FYBer/eeYb/Mo9WwFnPOvQbeAvfuAAK4BN4sAJtAG/gJIElmNuiJyba3EGNmZiPeZuEVmVell/Y/6N+CzDn3AXhEOOo7Hv/3BeAz8IzQkMPnJbuPx1wC+yYJ7/0nYIP5S/0FHKdp+rwCEEXRS/rf5Hl1Gtb2M0iSpCOpCZzPATmX1EySpHMLAsiy7MjMDoHrGSDXZnaYZdnRwBh7J91utwmczAA6CbG3GgPleX4jqUH/a1CktqRGnuc3hSCAMB32gKspkCtgb3KCQMmkjeP4WNJThrNNZval1WptTIsv7JtQ4tmIdRa8qSoEpWl6YWZNoAN0zKxZNPehpLSBZv2t+Q0CJ9lLnARQLAAAAABJRU5ErkJggg==");background-position:50%;background-repeat:no-repeat;background-size:8px 16px;height:24px;position:absolute;right:12px;top:218px;width:16px}.color-picker .type-policy .type-policy-arrow{display:block;height:50%;width:100%}.color-picker .selected-color{border:1px solid #a9a9a9;border-radius:50%;height:40px;left:8px;position:absolute;top:16px;width:40px}.color-picker .selected-color-background{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYR+2W0QlAMQgD60zdfwOdqa8TmI/wQMr5K0I5bZLIzLOa2nt37VVVbd+dDx5obgCC3KBLwJ2ff4PnVidkf+ucIhw80HQaCLo3DMH3CRK3iFsmAWVl6hPNDwt8EvNE5q+YuEXcMgkonVM6SdyCoEvAnZ8v1Hjx817MilmxSUB5rdLJDycZgUAZUch/AAAAAElFTkSuQmCC");border-radius:50%;height:40px;width:40px}.color-picker .saturation-lightness{background-image:url("data:image/png;base64, ");background-size:100% 100%;border:none;cursor:pointer;direction:ltr;height:130px;touch-action:manipulation;width:100%}.color-picker .cp-add-color-button-class{background:transparent;border:0;cursor:pointer;display:inline;margin:3px -3px;padding:0;position:absolute}.color-picker .cp-add-color-button-class:hover{text-decoration:underline}.color-picker .cp-add-color-button-class:disabled{color:#999;cursor:not-allowed}.color-picker .cp-add-color-button-class:disabled:hover{text-decoration:none}.color-picker .cp-remove-color-button-class{background:#fff;border-radius:50%;box-shadow:1px 1px 5px #333;cursor:pointer;display:block;height:10px;position:absolute;right:-5px;text-align:center;top:-5px;width:10px}.color-picker .cp-remove-color-button-class:before{bottom:3.5px;content:"x";display:inline-block;font-size:10px;position:relative}'],encapsulation:2}),N3.ctorParameters=()=>[{type:ch},{type:Hh},{type:T3}],N3.propDecorators={dialogElement:[{type:Fr,args:["dialogPopup",{static:!0}]}],hueSlider:[{type:Fr,args:["hueSlider",{static:!0}]}],alphaSlider:[{type:Fr,args:["alphaSlider",{static:!0}]}],handleEsc:[{type:M_,args:["document:keyup.esc",["$event"]]}],handleEnter:[{type:M_,args:["document:keyup.enter",["$event"]]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(N3,[{type:h_,args:[{selector:"color-picker",template:'<div #dialogPopup class="color-picker" [class.open]="show" [style.display]="!show ? \'none\' : \'block\'" [style.visibility]="hidden ? \'hidden\' : \'visible\'" [style.top.px]="top" [style.left.px]="left" [style.position]="position" [style.height.px]="cpHeight" [style.width.px]="cpWidth" (click)="$event.stopPropagation()">\n  <div *ngIf="cpDialogDisplay==\'popup\'" class="arrow arrow-{{cpUsePosition}}" [style.top.px]="arrowTop"></div>\n\n  <div *ngIf="(cpColorMode || 1) === 1" class="saturation-lightness" [slider] [rgX]="1" [rgY]="1" [style.background-color]="hueSliderColor" (newValue)="onColorChange($event)" (dragStart)="onDragStart(\'saturation-lightness\')" (dragEnd)="onDragEnd(\'saturation-lightness\')">\n    <div class="cursor" [style.top.px]="slider?.v" [style.left.px]="slider?.s"></div>\n  </div>\n\n  <div class="hue-alpha box">\n    <div class="left">\n      <div class="selected-color-background"></div>\n\n      <div class="selected-color" [style.background-color]="selectedColor"></div>\n\n      <button *ngIf="cpAddColorButton" type="button" class="{{cpAddColorButtonClass}}" [disabled]="cpPresetColors && cpPresetColors.length >= cpMaxPresetColorsLength" (click)="onAddPresetColor($event, selectedColor)">\n        {{cpAddColorButtonText}}\n      </button>\n    </div>\n\n    <div class="right">\n      <div *ngIf="cpAlphaChannel===\'disabled\'" style="height: 16px;"></div>\n\n      <div #hueSlider class="hue" [slider] [rgX]="1" [style.display]="(cpColorMode || 1) === 1 ? \'block\' : \'none\'" (newValue)="onHueChange($event)" (dragStart)="onDragStart(\'hue\')" (dragEnd)="onDragEnd(\'hue\')">\n        <div class="cursor" [style.left.px]="slider?.h"></div>\n      </div>\n\n      <div #valueSlider class="value" [slider] [rgX]="1" [style.display]="(cpColorMode || 1) === 2 ? \'block\': \'none\'" (newValue)="onValueChange($event)" (dragStart)="onDragStart(\'value\')" (dragEnd)="onDragEnd(\'value\')">\n        <div class="cursor" [style.right.px]="slider?.v"></div>\n      </div>\n\n      <div #alphaSlider class="alpha" [slider] [rgX]="1" [style.display]="cpAlphaChannel === \'disabled\' ? \'none\' : \'block\'" [style.background-color]="alphaSliderColor" (newValue)="onAlphaChange($event)" (dragStart)="onDragStart(\'alpha\')" (dragEnd)="onDragEnd(\'alpha\')">\n        <div class="cursor" [style.left.px]="slider?.a"></div>\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf="!cpDisableInput && (cpColorMode || 1) === 1" class="cmyk-text" [style.display]="format !== 3 ? \'none\' : \'block\'">\n    <div class="box">\n      <input type="number" pattern="[0-9]*" min="0" max="100" [text] [rg]="100" [value]="cmykText?.c" (keyup.enter)="onAcceptColor($event)" (newValue)="onCyanInput($event)" />\n      <input type="number" pattern="[0-9]*" min="0" max="100" [text] [rg]="100" [value]="cmykText?.m" (keyup.enter)="onAcceptColor($event)" (newValue)="onMagentaInput($event)" />\n      <input type="number" pattern="[0-9]*" min="0" max="100" [text] [rg]="100" [value]="cmykText?.y" (keyup.enter)="onAcceptColor($event)" (newValue)="onYellowInput($event)" />\n      <input type="number" pattern="[0-9]*" min="0" max="100" [text] [rg]="100" [value]="cmykText?.k" (keyup.enter)="onAcceptColor($event)" (newValue)="onBlackInput($event)" />\n      <input *ngIf="cpAlphaChannel!==\'disabled\'" type="number" pattern="[0-9]+([\\.,][0-9]{1,2})?" min="0" max="1" step="0.1" [text] [rg]="1" [value]="cmykText?.a" (keyup.enter)="onAcceptColor($event)" (newValue)="onAlphaInput($event)" />\n    </div>\n\n     <div class="box">\n      <div>C</div><div>M</div><div>Y</div><div>K</div><div *ngIf="cpAlphaChannel!==\'disabled\'" >A</div>\n    </div>\n  </div>\n\n  <div *ngIf="!cpDisableInput && (cpColorMode || 1) === 1 " class="hsla-text" [style.display]="format !== 2 ? \'none\' : \'block\'">\n    <div class="box">\n      <input type="number" pattern="[0-9]*" min="0" max="360" [text] [rg]="360" [value]="hslaText?.h" (keyup.enter)="onAcceptColor($event)" (newValue)="onHueInput($event)" />\n      <input type="number" pattern="[0-9]*" min="0" max="100" [text] [rg]="100" [value]="hslaText?.s" (keyup.enter)="onAcceptColor($event)" (newValue)="onSaturationInput($event)" />\n      <input type="number" pattern="[0-9]*" min="0" max="100" [text] [rg]="100" [value]="hslaText?.l" (keyup.enter)="onAcceptColor($event)" (newValue)="onLightnessInput($event)" />\n      <input *ngIf="cpAlphaChannel!==\'disabled\'" type="number" pattern="[0-9]+([\\.,][0-9]{1,2})?" min="0" max="1" step="0.1" [text] [rg]="1" [value]="hslaText?.a" (keyup.enter)="onAcceptColor($event)" (newValue)="onAlphaInput($event)" />\n    </div>\n\n    <div class="box">\n      <div>H</div><div>S</div><div>L</div><div *ngIf="cpAlphaChannel!==\'disabled\'">A</div>\n    </div>\n  </div>\n\n  <div *ngIf="!cpDisableInput && (cpColorMode || 1) === 1 " [style.display]="format !== 1 ? \'none\' : \'block\'" class="rgba-text">\n    <div class="box">\n      <input type="number" pattern="[0-9]*" min="0" max="255" [text] [rg]="255" [value]="rgbaText?.r" (keyup.enter)="onAcceptColor($event)" (newValue)="onRedInput($event)" />\n      <input type="number" pattern="[0-9]*" min="0" max="255" [text] [rg]="255" [value]="rgbaText?.g" (keyup.enter)="onAcceptColor($event)" (newValue)="onGreenInput($event)" />\n      <input type="number" pattern="[0-9]*" min="0" max="255" [text] [rg]="255" [value]="rgbaText?.b" (keyup.enter)="onAcceptColor($event)" (newValue)="onBlueInput($event)" />\n      <input *ngIf="cpAlphaChannel!==\'disabled\'" type="number" pattern="[0-9]+([\\.,][0-9]{1,2})?" min="0" max="1" step="0.1" [text] [rg]="1" [value]="rgbaText?.a" (keyup.enter)="onAcceptColor($event)" (newValue)="onAlphaInput($event)" />\n    </div>\n\n    <div class="box">\n      <div>R</div><div>G</div><div>B</div><div *ngIf="cpAlphaChannel!==\'disabled\'" >A</div>\n    </div>\n  </div>\n\n  <div *ngIf="!cpDisableInput && (cpColorMode || 1) === 1" class="hex-text" [class.hex-alpha]="cpAlphaChannel===\'forced\'"\n    [style.display]="format !== 0 ? \'none\' : \'block\'">\n    <div class="box">\n      <input [text] [value]="hexText" (blur)="onHexInput(null)" (keyup.enter)="onAcceptColor($event)" (newValue)="onHexInput($event)"/>\n      <input *ngIf="cpAlphaChannel===\'forced\'" type="number" pattern="[0-9]+([\\.,][0-9]{1,2})?" min="0" max="1" step="0.1" [text] [rg]="1" [value]="hexAlpha" (keyup.enter)="onAcceptColor($event)" (newValue)="onAlphaInput($event)"/>\n    </div>\n\n    <div class="box">\n      <div>Hex</div>\n      <div *ngIf="cpAlphaChannel===\'forced\'">A</div>\n    </div>\n  </div>\n\n  <div *ngIf="!cpDisableInput && (cpColorMode || 1) === 2" class="value-text">\n    <div class="box">\n      <input type="number" pattern="[0-9]*" min="0" max="100" [text] [rg]="100" [value]="hslaText?.l" (keyup.enter)="onAcceptColor($event)" (newValue)="onValueInput($event)" />\n      <input *ngIf="cpAlphaChannel!==\'disabled\'" type="number" pattern="[0-9]+([\\.,][0-9]{1,2})?" min="0" max="1" step="0.1"  [text] [rg]="1" [value]="hslaText?.a" (keyup.enter)="onAcceptColor($event)" (newValue)="onAlphaInput($event)" />\n    </div>\n\n    <div class="box">\n      <div>V</div><div>A</div>\n    </div>\n  </div>\n\n  <div *ngIf="!cpDisableInput && (cpColorMode || 1) === 1" class="type-policy">\n    <span class="type-policy-arrow" (click)="onFormatToggle(-1)"></span>\n    <span class="type-policy-arrow" (click)="onFormatToggle(1)"></span>\n  </div>\n\n  <div *ngIf="cpPresetColors?.length || cpAddColorButton" class="preset-area">\n    <hr>\n\n    <div class="preset-label">{{cpPresetLabel}}</div>\n\n    <div *ngIf="cpPresetColors?.length" class="{{cpPresetColorsClass}}">\n      <div *ngFor="let color of cpPresetColors" class="preset-color" [style.backgroundColor]="color" (click)="setColorFromString(color)">\n        <span *ngIf="cpAddColorButton" class="{{cpRemoveColorButtonClass}}" (click)="onRemovePresetColor($event, color)"></span>\n      </div>\n    </div>\n\n    <div *ngIf="!cpPresetColors?.length && cpAddColorButton" class="{{cpPresetEmptyMessageClass}}">{{cpPresetEmptyMessage}}</div>\n  </div>\n\n  <div *ngIf="cpOKButton || cpCancelButton" class="button-area">\n    <button *ngIf="cpCancelButton" type="button" class="{{cpCancelButtonClass}}" (click)="onCancelColor($event)">{{cpCancelButtonText}}</button>\n\n    <button *ngIf="cpOKButton" type="button" class="{{cpOKButtonClass}}" (click)="onAcceptColor($event)">{{cpOKButtonText}}</button>\n  </div>\n</div>\n',encapsulation:Po.None,styles:['.color-picker{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;border:1px solid #777;cursor:default;height:auto;position:absolute;user-select:none;width:230px;z-index:1000}.color-picker *{box-sizing:border-box;font-size:11px;margin:0}.color-picker input{color:#000;font-size:13px;height:26px;min-width:0;text-align:center;width:0}.color-picker input:-moz-submit-invalid,.color-picker input:-moz-ui-invalid,.color-picker input:invalid{box-shadow:none}.color-picker input::-webkit-inner-spin-button,.color-picker input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.color-picker .arrow{border-style:solid;height:0;position:absolute;width:0;z-index:999999}.color-picker .arrow.arrow-top{border-color:#777 transparent transparent;border-width:10px 5px;left:8px}.color-picker .arrow.arrow-bottom{border-color:transparent transparent #777;border-width:10px 5px;left:8px;top:-20px}.color-picker .arrow.arrow-left-top,.color-picker .arrow.arrow-top-left{border-color:transparent transparent transparent #777;border-width:5px 10px;bottom:8px;right:-21px}.color-picker .arrow.arrow-right-top,.color-picker .arrow.arrow-top-right{border-color:transparent #777 transparent transparent;border-width:5px 10px;bottom:8px;left:-20px}.color-picker .arrow.arrow-bottom-left,.color-picker .arrow.arrow-left,.color-picker .arrow.arrow-left-bottom{border-color:transparent transparent transparent #777;border-width:5px 10px;right:-21px;top:8px}.color-picker .arrow.arrow-bottom-right,.color-picker .arrow.arrow-right,.color-picker .arrow.arrow-right-bottom{border-color:transparent #777 transparent transparent;border-width:5px 10px;left:-20px;top:8px}.color-picker .cursor{border:2px solid #222;border-radius:50%;cursor:default;height:16px;position:relative;width:16px}.color-picker .box{display:flex;padding:4px 8px}.color-picker .left{padding:16px 8px;position:relative}.color-picker .right{flex:1 1 auto;padding:12px 8px}.color-picker .button-area{padding:0 16px 16px;text-align:right}.color-picker .button-area button{margin-left:8px}.color-picker .preset-area{padding:4px 15px}.color-picker .preset-area .preset-label{color:#555;font-size:11px;overflow:hidden;padding:4px;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.color-picker .preset-area .preset-color{border:1px solid #a9a9a9;border-radius:25%;cursor:pointer;display:inline-block;height:18px;margin:4px 6px 8px;position:relative;width:18px}.color-picker .preset-area .preset-empty-message{font-style:italic;margin-bottom:8px;margin-top:4px;min-height:18px;text-align:center}.color-picker .hex-text{font-size:11px;padding:4px 8px;width:100%}.color-picker .hex-text .box{padding:0 24px 8px 8px}.color-picker .hex-text .box div{clear:left;color:#555;flex:1 1 auto;float:left;text-align:center}.color-picker .hex-text .box input{border:1px solid #a9a9a9;flex:1 1 auto;padding:1px}.color-picker .hex-alpha .box div:first-child,.color-picker .hex-alpha .box input:first-child{flex-grow:3;margin-right:8px}.color-picker .cmyk-text,.color-picker .hsla-text,.color-picker .rgba-text,.color-picker .value-text{font-size:11px;padding:4px 8px;width:100%}.color-picker .cmyk-text .box,.color-picker .hsla-text .box,.color-picker .rgba-text .box{padding:0 24px 8px 8px}.color-picker .value-text .box{padding:0 8px 8px}.color-picker .cmyk-text .box div,.color-picker .hsla-text .box div,.color-picker .rgba-text .box div,.color-picker .value-text .box div{color:#555;flex:1 1 auto;margin-right:8px;text-align:center}.color-picker .cmyk-text .box div:last-child,.color-picker .hsla-text .box div:last-child,.color-picker .rgba-text .box div:last-child,.color-picker .value-text .box div:last-child{margin-right:0}.color-picker .cmyk-text .box input,.color-picker .hsla-text .box input,.color-picker .rgba-text .box input,.color-picker .value-text .box input{border:1px solid #a9a9a9;flex:1;float:left;margin:0 8px 0 0;padding:1px}.color-picker .cmyk-text .box input:last-child,.color-picker .hsla-text .box input:last-child,.color-picker .rgba-text .box input:last-child,.color-picker .value-text .box input:last-child{margin-right:0}.color-picker .hue-alpha{align-items:center;margin-bottom:3px}.color-picker .hue{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwkUFWbCCAAAAFxJREFUaN7t0kEKg0AQAME2x83/n2qu5qCgD1iDhCoYdpnbQC9bbY1qVO/jvc6k3ad91s7/7F1/csgPrujuQ17BDYSFsBAWwgJhISyEBcJCWAgLhIWwEBYIi2f7Ar/1TCgFH2X9AAAAAElFTkSuQmCC");direction:ltr}.color-picker .hue,.color-picker .value{background-size:100% 100%;border:none;cursor:pointer;height:16px;margin-bottom:16px;width:100%}.color-picker .value{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAACTklEQVR42u3SYUcrABhA4U2SkmRJMmWSJklKJiWZZpKUJJskKUmaTFImKZOUzMySpGRmliRNJilJSpKSJEtmSpIpmWmSdO736/6D+x7OP3gUCoWCv1cqlSQlJZGcnExKSgqpqamkpaWRnp5ORkYGmZmZqFQqsrKyyM7OJicnh9zcXNRqNXl5eeTn56PRaCgoKKCwsJCioiK0Wi3FxcWUlJRQWlpKWVkZ5eXlVFRUUFlZiU6no6qqiurqampqaqitraWurg69Xk99fT0GgwGj0UhDQwONjY00NTXR3NxMS0sLra2ttLW10d7ejslkwmw209HRQWdnJ11dXXR3d9PT00Nvby99fX309/czMDDA4OAgFouFoaEhrFYrw8PDjIyMMDo6ytjYGDabjfHxcSYmJpicnGRqagq73c709DQzMzPMzs4yNzfH/Pw8DocDp9OJy+XC7XazsLDA4uIiS0tLLC8vs7KywurqKmtra3g8HrxeLz6fD7/fz/r6OhsbG2xubrK1tcX29jaBQICdnR2CwSC7u7vs7e2xv7/PwcEBh4eHHB0dcXx8zMnJCaenp5ydnXF+fs7FxQWXl5dcXV1xfX3Nzc0Nt7e33N3dEQqFuL+/5+HhgXA4TCQS4fHxkaenJ56fn3l5eeH19ZVoNMrb2xvv7+98fHwQi8WIx+N8fn6SSCT4+vri+/ubn58ffn9/+VcKgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsP4/WH8AmJ5Z6jHS4h8AAAAASUVORK5CYII=");direction:rtl}.color-picker .alpha{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwYQlZMa3gAAAWVJREFUaN7tmEGO6jAQRCsOArHgBpyAJYGjcGocxAm4A2IHpmoWE0eBH+ezmFlNvU06shJ3W6VEelWMUQAIIF9f6qZpimsA1LYtS2uF51/u27YVAFZVRUkEoGHdPV/sIcbIEIIkUdI/9Xa7neyv61+SWFUVAVCSct00TWn2fv6u3+Ecfd3tXzy/0+nEUu+SPjo/kqzrmiQpScN6v98XewfA8/lMkiLJ2WxGSUopcT6fM6U0NX9/frfbjev1WtfrlZfLhYfDQQHG/AIOlnGwjINlHCxjHCzjYJm/TJWdCwquJXseFFzGwDNNeiKMOJTO8xQdDQaeB29+K9efeLaBo9J7vdvtJj1RjFFjfiv7qv95tjx/7leSQgh93e1ffMeIp6O+YQjho/N791t1XVOSSI7N//K+4/GoxWLBx+PB5/Op5XLJ+/3OlJJWqxU3m83ovv5iGf8KjYNlHCxjHCzjYBkHy5gf5gusvQU7U37jTAAAAABJRU5ErkJggg==");background-size:100% 100%;border:none;cursor:pointer;direction:ltr;height:16px;width:100%}.color-picker .type-policy{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACewAAAnsB01CO3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIASURBVEiJ7ZY9axRRFIafsxMStrLQJpAgpBFhi+C9w1YSo00I6RZ/g9vZpBf/QOr4GyRgkSKNSrAadsZqQGwCkuAWyRZJsySwvhZ7N/vhzrgbLH3Ld8597jlzz50zJokyxXH8DqDVar0qi6v8BbItqSGpEcfxdlmsFWXkvX8AfAVWg3UKPEnT9GKujMzsAFgZsVaCN1VTQd77XUnrgE1kv+6935268WRpzrnHZvYRWC7YvC3pRZZl3wozqtVqiyH9IgjAspkd1Gq1xUJQtVrdB9ZKIAOthdg/Qc65LUk7wNIMoCVJO865rYFhkqjX6/d7vV4GPJwBMqofURS5JEk6FYBer/eeYb/Mo9WwFnPOvQbeAvfuAAK4BN4sAJtAG/gJIElmNuiJyba3EGNmZiPeZuEVmVell/Y/6N+CzDn3AXhEOOo7Hv/3BeAz8IzQkMPnJbuPx1wC+yYJ7/0nYIP5S/0FHKdp+rwCEEXRS/rf5Hl1Gtb2M0iSpCOpCZzPATmX1EySpHMLAsiy7MjMDoHrGSDXZnaYZdnRwBh7J91utwmczAA6CbG3GgPleX4jqUH/a1CktqRGnuc3hSCAMB32gKspkCtgb3KCQMmkjeP4WNJThrNNZval1WptTIsv7JtQ4tmIdRa8qSoEpWl6YWZNoAN0zKxZNPehpLSBZv2t+Q0CJ9lLnARQLAAAAABJRU5ErkJggg==");background-position:50%;background-repeat:no-repeat;background-size:8px 16px;height:24px;position:absolute;right:12px;top:218px;width:16px}.color-picker .type-policy .type-policy-arrow{display:block;height:50%;width:100%}.color-picker .selected-color{border:1px solid #a9a9a9;border-radius:50%;height:40px;left:8px;position:absolute;top:16px;width:40px}.color-picker .selected-color-background{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYR+2W0QlAMQgD60zdfwOdqa8TmI/wQMr5K0I5bZLIzLOa2nt37VVVbd+dDx5obgCC3KBLwJ2ff4PnVidkf+ucIhw80HQaCLo3DMH3CRK3iFsmAWVl6hPNDwt8EvNE5q+YuEXcMgkonVM6SdyCoEvAnZ8v1Hjx817MilmxSUB5rdLJDycZgUAZUch/AAAAAElFTkSuQmCC");border-radius:50%;height:40px;width:40px}.color-picker .saturation-lightness{background-image:url("data:image/png;base64, ");background-size:100% 100%;border:none;cursor:pointer;direction:ltr;height:130px;touch-action:manipulation;width:100%}.color-picker .cp-add-color-button-class{background:transparent;border:0;cursor:pointer;display:inline;margin:3px -3px;padding:0;position:absolute}.color-picker .cp-add-color-button-class:hover{text-decoration:underline}.color-picker .cp-add-color-button-class:disabled{color:#999;cursor:not-allowed}.color-picker .cp-add-color-button-class:disabled:hover{text-decoration:none}.color-picker .cp-remove-color-button-class{background:#fff;border-radius:50%;box-shadow:1px 1px 5px #333;cursor:pointer;display:block;height:10px;position:absolute;right:-5px;text-align:center;top:-5px;width:10px}.color-picker .cp-remove-color-button-class:before{bottom:3.5px;content:"x";display:inline-block;font-size:10px;position:relative}']}]}],(function(){return[{type:ch},{type:Hh},{type:T3}]}),{handleEsc:[{type:M_,args:["document:keyup.esc",["$event"]]}],handleEnter:[{type:M_,args:["document:keyup.enter",["$event"]]}],dialogElement:[{type:Fr,args:["dialogPopup",{static:!0}]}],hueSlider:[{type:Fr,args:["hueSlider",{static:!0}]}],alphaSlider:[{type:Fr,args:["alphaSlider",{static:!0}]}]});class I3{constructor(t,e,n,o,i,a){this.injector=t,this.cfr=e,this.appRef=n,this.vcRef=o,this.elRef=i,this._service=a,this.dialogCreated=!1,this.ignoreChanges=!1,this.viewAttachedToAppRef=!1,this.cpWidth="230px",this.cpHeight="auto",this.cpToggle=!1,this.cpDisabled=!1,this.cpIgnoredElements=[],this.cpFallbackColor="",this.cpColorMode="color",this.cpCmykEnabled=!1,this.cpOutputFormat="auto",this.cpAlphaChannel="enabled",this.cpDisableInput=!1,this.cpDialogDisplay="popup",this.cpSaveClickOutside=!0,this.cpCloseClickOutside=!0,this.cpUseRootViewContainer=!1,this.cpPosition="auto",this.cpPositionOffset="0%",this.cpPositionRelativeToArrow=!1,this.cpOKButton=!1,this.cpOKButtonText="OK",this.cpOKButtonClass="cp-ok-button-class",this.cpCancelButton=!1,this.cpCancelButtonText="Cancel",this.cpCancelButtonClass="cp-cancel-button-class",this.cpPresetLabel="Preset colors",this.cpPresetColorsClass="cp-preset-colors-class",this.cpMaxPresetColorsLength=6,this.cpPresetEmptyMessage="No colors added",this.cpPresetEmptyMessageClass="preset-empty-message",this.cpAddColorButton=!1,this.cpAddColorButtonText="Add color",this.cpAddColorButtonClass="cp-add-color-button-class",this.cpRemoveColorButtonClass="cp-remove-color-button-class",this.cpInputChange=new Ab(!0),this.cpToggleChange=new Ab(!0),this.cpSliderChange=new Ab(!0),this.cpSliderDragEnd=new Ab(!0),this.cpSliderDragStart=new Ab(!0),this.colorPickerOpen=new Ab(!0),this.colorPickerClose=new Ab(!0),this.colorPickerCancel=new Ab(!0),this.colorPickerSelect=new Ab(!0),this.colorPickerChange=new Ab(!1),this.cpCmykColorChange=new Ab(!0),this.cpPresetColorsChange=new Ab(!0)}handleClick(){this.inputFocus()}handleFocus(){this.inputFocus()}handleInput(t){this.inputChange(t)}ngOnDestroy(){null!=this.cmpRef&&(this.viewAttachedToAppRef&&this.appRef.detachView(this.cmpRef.hostView),this.cmpRef.destroy(),this.cmpRef=null,this.dialog=null)}ngOnChanges(t){t.cpToggle&&!this.cpDisabled&&(t.cpToggle.currentValue?this.openDialog():t.cpToggle.currentValue||this.closeDialog()),t.colorPicker&&(this.dialog&&!this.ignoreChanges&&("inline"===this.cpDialogDisplay&&this.dialog.setInitialColor(t.colorPicker.currentValue),this.dialog.setColorFromString(t.colorPicker.currentValue,!1),this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay&&this.cmpRef.changeDetectorRef.detectChanges()),this.ignoreChanges=!1),(t.cpPresetLabel||t.cpPresetColors)&&this.dialog&&this.dialog.setPresetConfig(this.cpPresetLabel,this.cpPresetColors)}openDialog(){if(this.dialogCreated)this.dialog&&this.dialog.openDialog(this.colorPicker);else{let t=this.vcRef;if(this.dialogCreated=!0,this.viewAttachedToAppRef=!1,this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay){const e=this.injector.get(this.appRef.componentTypes[0],Qp.NULL);e!==Qp.NULL?(t=e.vcRef||e.viewContainerRef||this.vcRef,t===this.vcRef&&console.warn("You are using cpUseRootViewContainer, but the root component is not exposing viewContainerRef!Please expose it by adding 'public vcRef: ViewContainerRef' to the constructor.")):this.viewAttachedToAppRef=!0}const e=this.cfr.resolveComponentFactory(N3);if(this.viewAttachedToAppRef)this.cmpRef=e.create(this.injector),this.appRef.attachView(this.cmpRef.hostView),document.body.appendChild(this.cmpRef.hostView.rootNodes[0]);else{const n=_u.fromResolvedProviders([],t.parentInjector);this.cmpRef=t.createComponent(e,0,n,[])}this.cmpRef.instance.setupDialog(this,this.elRef,this.colorPicker,this.cpWidth,this.cpHeight,this.cpDialogDisplay,this.cpFallbackColor,this.cpColorMode,this.cpCmykEnabled,this.cpAlphaChannel,this.cpOutputFormat,this.cpDisableInput,this.cpIgnoredElements,this.cpSaveClickOutside,this.cpCloseClickOutside,this.cpUseRootViewContainer,this.cpPosition,this.cpPositionOffset,this.cpPositionRelativeToArrow,this.cpPresetLabel,this.cpPresetColors,this.cpPresetColorsClass,this.cpMaxPresetColorsLength,this.cpPresetEmptyMessage,this.cpPresetEmptyMessageClass,this.cpOKButton,this.cpOKButtonClass,this.cpOKButtonText,this.cpCancelButton,this.cpCancelButtonClass,this.cpCancelButtonText,this.cpAddColorButton,this.cpAddColorButtonClass,this.cpAddColorButtonText,this.cpRemoveColorButtonClass),this.dialog=this.cmpRef.instance,this.vcRef!==t&&this.cmpRef.changeDetectorRef.detectChanges()}}closeDialog(){this.dialog&&"popup"===this.cpDialogDisplay&&this.dialog.closeDialog()}cmykChanged(t){this.cpCmykColorChange.emit(t)}stateChanged(t){this.cpToggleChange.emit(t),t?this.colorPickerOpen.emit(this.colorPicker):this.colorPickerClose.emit(this.colorPicker)}colorChanged(t,e=!0){this.ignoreChanges=e,this.colorPickerChange.emit(t)}colorSelected(t){this.colorPickerSelect.emit(t)}colorCanceled(){this.colorPickerCancel.emit()}inputFocus(){const t=this.elRef.nativeElement,e=this.cpIgnoredElements.filter((e=>e===t));this.cpDisabled||e.length||("undefined"!=typeof document&&t===document.activeElement?this.openDialog():this.dialog&&this.dialog.show?this.closeDialog():this.openDialog())}inputChange(t){this.dialog?this.dialog.setColorFromString(t.target.value,!0):(this.colorPicker=t.target.value,this.colorPickerChange.emit(this.colorPicker))}inputChanged(t){this.cpInputChange.emit(t)}sliderChanged(t){this.cpSliderChange.emit(t)}sliderDragEnd(t){this.cpSliderDragEnd.emit(t)}sliderDragStart(t){this.cpSliderDragStart.emit(t)}presetColorsChanged(t){this.cpPresetColorsChange.emit(t)}}I3.ɵfac=function t(e){return new(e||I3)(Mu(Qp),Mu(rh),Mu(_C),Mu(Xh),Mu(ch),Mu(T3))},I3.ɵdir=Jo({type:I3,selectors:[["","colorPicker",""]],hostBindings:function t(e,n){1&e&&Nu("click",(function t(){return n.handleClick()}))("focus",(function t(){return n.handleFocus()}))("input",(function t(e){return n.handleInput(e)}))},inputs:{cpWidth:"cpWidth",cpHeight:"cpHeight",cpToggle:"cpToggle",cpDisabled:"cpDisabled",cpIgnoredElements:"cpIgnoredElements",cpFallbackColor:"cpFallbackColor",cpColorMode:"cpColorMode",cpCmykEnabled:"cpCmykEnabled",cpOutputFormat:"cpOutputFormat",cpAlphaChannel:"cpAlphaChannel",cpDisableInput:"cpDisableInput",cpDialogDisplay:"cpDialogDisplay",cpSaveClickOutside:"cpSaveClickOutside",cpCloseClickOutside:"cpCloseClickOutside",cpUseRootViewContainer:"cpUseRootViewContainer",cpPosition:"cpPosition",cpPositionOffset:"cpPositionOffset",cpPositionRelativeToArrow:"cpPositionRelativeToArrow",cpOKButton:"cpOKButton",cpOKButtonText:"cpOKButtonText",cpOKButtonClass:"cpOKButtonClass",cpCancelButton:"cpCancelButton",cpCancelButtonText:"cpCancelButtonText",cpCancelButtonClass:"cpCancelButtonClass",cpPresetLabel:"cpPresetLabel",cpPresetColorsClass:"cpPresetColorsClass",cpMaxPresetColorsLength:"cpMaxPresetColorsLength",cpPresetEmptyMessage:"cpPresetEmptyMessage",cpPresetEmptyMessageClass:"cpPresetEmptyMessageClass",cpAddColorButton:"cpAddColorButton",cpAddColorButtonText:"cpAddColorButtonText",cpAddColorButtonClass:"cpAddColorButtonClass",cpRemoveColorButtonClass:"cpRemoveColorButtonClass",colorPicker:"colorPicker",cpPresetColors:"cpPresetColors"},outputs:{cpInputChange:"cpInputChange",cpToggleChange:"cpToggleChange",cpSliderChange:"cpSliderChange",cpSliderDragEnd:"cpSliderDragEnd",cpSliderDragStart:"cpSliderDragStart",colorPickerOpen:"colorPickerOpen",colorPickerClose:"colorPickerClose",colorPickerCancel:"colorPickerCancel",colorPickerSelect:"colorPickerSelect",colorPickerChange:"colorPickerChange",cpCmykColorChange:"cpCmykColorChange",cpPresetColorsChange:"cpPresetColorsChange"},exportAs:["ngxColorPicker"],features:[Si]}),I3.ctorParameters=()=>[{type:Qp},{type:rh},{type:_C},{type:Xh},{type:ch},{type:T3}],I3.propDecorators={colorPicker:[{type:y_}],cpWidth:[{type:y_}],cpHeight:[{type:y_}],cpToggle:[{type:y_}],cpDisabled:[{type:y_}],cpIgnoredElements:[{type:y_}],cpFallbackColor:[{type:y_}],cpColorMode:[{type:y_}],cpCmykEnabled:[{type:y_}],cpOutputFormat:[{type:y_}],cpAlphaChannel:[{type:y_}],cpDisableInput:[{type:y_}],cpDialogDisplay:[{type:y_}],cpSaveClickOutside:[{type:y_}],cpCloseClickOutside:[{type:y_}],cpUseRootViewContainer:[{type:y_}],cpPosition:[{type:y_}],cpPositionOffset:[{type:y_}],cpPositionRelativeToArrow:[{type:y_}],cpOKButton:[{type:y_}],cpOKButtonText:[{type:y_}],cpOKButtonClass:[{type:y_}],cpCancelButton:[{type:y_}],cpCancelButtonText:[{type:y_}],cpCancelButtonClass:[{type:y_}],cpPresetLabel:[{type:y_}],cpPresetColors:[{type:y_}],cpPresetColorsClass:[{type:y_}],cpMaxPresetColorsLength:[{type:y_}],cpPresetEmptyMessage:[{type:y_}],cpPresetEmptyMessageClass:[{type:y_}],cpAddColorButton:[{type:y_}],cpAddColorButtonText:[{type:y_}],cpAddColorButtonClass:[{type:y_}],cpRemoveColorButtonClass:[{type:y_}],cpInputChange:[{type:__}],cpToggleChange:[{type:__}],cpSliderChange:[{type:__}],cpSliderDragEnd:[{type:__}],cpSliderDragStart:[{type:__}],colorPickerOpen:[{type:__}],colorPickerClose:[{type:__}],colorPickerCancel:[{type:__}],colorPickerSelect:[{type:__}],colorPickerChange:[{type:__}],cpCmykColorChange:[{type:__}],cpPresetColorsChange:[{type:__}],handleClick:[{type:M_,args:["click"]}],handleFocus:[{type:M_,args:["focus"]}],handleInput:[{type:M_,args:["input",["$event"]]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(I3,[{type:g_,args:[{selector:"[colorPicker]",exportAs:"ngxColorPicker"}]}],(function(){return[{type:Qp},{type:rh},{type:_C},{type:Xh},{type:ch},{type:T3}]}),{cpWidth:[{type:y_}],cpHeight:[{type:y_}],cpToggle:[{type:y_}],cpDisabled:[{type:y_}],cpIgnoredElements:[{type:y_}],cpFallbackColor:[{type:y_}],cpColorMode:[{type:y_}],cpCmykEnabled:[{type:y_}],cpOutputFormat:[{type:y_}],cpAlphaChannel:[{type:y_}],cpDisableInput:[{type:y_}],cpDialogDisplay:[{type:y_}],cpSaveClickOutside:[{type:y_}],cpCloseClickOutside:[{type:y_}],cpUseRootViewContainer:[{type:y_}],cpPosition:[{type:y_}],cpPositionOffset:[{type:y_}],cpPositionRelativeToArrow:[{type:y_}],cpOKButton:[{type:y_}],cpOKButtonText:[{type:y_}],cpOKButtonClass:[{type:y_}],cpCancelButton:[{type:y_}],cpCancelButtonText:[{type:y_}],cpCancelButtonClass:[{type:y_}],cpPresetLabel:[{type:y_}],cpPresetColorsClass:[{type:y_}],cpMaxPresetColorsLength:[{type:y_}],cpPresetEmptyMessage:[{type:y_}],cpPresetEmptyMessageClass:[{type:y_}],cpAddColorButton:[{type:y_}],cpAddColorButtonText:[{type:y_}],cpAddColorButtonClass:[{type:y_}],cpRemoveColorButtonClass:[{type:y_}],cpInputChange:[{type:__}],cpToggleChange:[{type:__}],cpSliderChange:[{type:__}],cpSliderDragEnd:[{type:__}],cpSliderDragStart:[{type:__}],colorPickerOpen:[{type:__}],colorPickerClose:[{type:__}],colorPickerCancel:[{type:__}],colorPickerSelect:[{type:__}],colorPickerChange:[{type:__}],cpCmykColorChange:[{type:__}],cpPresetColorsChange:[{type:__}],handleClick:[{type:M_,args:["click"]}],handleFocus:[{type:M_,args:["focus"]}],handleInput:[{type:M_,args:["input",["$event"]]}],colorPicker:[{type:y_}],cpPresetColors:[{type:y_}]});class z3{}z3.ɵfac=function t(e){return new(e||z3)},z3.ɵmod=Zo({type:z3}),z3.ɵinj=co({providers:[T3],imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(z3,{declarations:function(){return[N3,I3,D3,E3]},imports:function(){return[Bv]},exports:function(){return[I3]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(z3,[{type:k_,args:[{imports:[Bv],exports:[I3],providers:[T3],declarations:[N3,I3,D3,E3],entryComponents:[N3]}]}],null,null);const H3=["filter"];function F3(t,e){1&t&&Du(0)}function L3(t,e){1&t&&Du(0)}function B3(t,e){1&t&&Du(0)}const V3=function(t){return{item:t}};function j3(t,e){if(1&t&&(ku(0),Wm(1,B3,1,0,"ng-container",13),Su()),2&t){const t=e.$implicit;Lu();const n=Gm(17);Jc(1),vu("ngTemplateOutlet",n)("ngTemplateOutletContext",gb(2,V3,t))}}function U3(t,e){1&t&&(Ou(0,"div",14),wu(1,"mat-spinner",15),Pu())}function W3(t,e){1&t&&(Ou(0,"div",16),Mf(1,"No Runs"),Pu())}function G3(t,e){if(1&t&&(Ou(0,"div",16),Ou(1,"span"),Mf(2,'No runs match "'),Ou(3,"code"),Mf(4),Pu(),Mf(5,'"'),Pu(),Pu()),2&t){const t=Lu();Jc(4),vf(t.regexFilter)}}const Y3=function(){return[5,10,20]};function q3(t,e){if(1&t){const t=Eu();Ou(0,"mat-paginator",17),Nu("page",(function e(n){return ra(t),Lu().onPaginationChange.emit(n)})),Pu()}if(2&t){const t=Lu();vu("pageSizeOptions",fb(4,Y3))("pageIndex",t.paginationOption.pageIndex)("pageSize",t.paginationOption.pageSize)("length",t.filteredItemsLength)}}function Z3(t,e){if(1&t){const t=Eu();Ou(0,"div",19),Ou(1,"span",20),Mf(2),Pu(),Ou(3,"button",21),Nu("click",(function e(){return ra(t),Lu(2).onSelectAllPages.emit()})),Mf(4," Select all runs "),Pu(),Pu()}if(2&t){const t=Lu(2);Jc(2),Of("All runs in this page are selected but not all runs (",t.numSelectedItems," of ",t.allItemsLength,") are selected.")}}function X3(t,e){if(1&t&&Wm(0,Z3,5,2,"div",18),2&t){const t=Lu();vu("ngIf",t.allPageItemsSelected()&&t.numSelectedItems!==t.allItemsLength)}}function K3(t,e){if(1&t){const t=Eu();Ou(0,"mat-checkbox",31),Nu("change",(function e(){return ra(t),Lu(3).handlePageToggle()})),Pu()}if(2&t){const t=Lu(3);vu("checked",t.allPageItemsSelected())("indeterminate",!t.allPageItemsSelected()&&t.somePageItemsSelected())}}const J3=function(t){return{type:t}};function Q3(t,e){if(1&t&&(Ou(0,"span",32),Mf(1,"Experiment"),Pu()),2&t){const t=Lu(3);vu("mat-sort-header",gb(1,J3,t.SortType.EXPERIMENT_NAME))}}function $3(t,e){if(1&t&&(Ou(0,"span",32),Mf(1,"Run"),Pu()),2&t){const t=Lu(3);vu("mat-sort-header",gb(1,J3,t.SortType.RUN_NAME))}}function t2(t,e){1&t&&wu(0,"runs-group-menu-button",34),2&t&&vu("experimentIds",Lu(4).experimentIds)}function e2(t,e){if(1&t&&(Ou(0,"span"),Wm(1,t2,1,1,"runs-group-menu-button",33),Pu()),2&t){const t=Lu(3);Jc(1),vu("ngIf",t.showGroupControl)}}const n2=function(t){return["column",t]};function o2(t,e){if(1&t&&(Ou(0,"span",26),ku(1,27),Wm(2,K3,1,2,"mat-checkbox",28),Wm(3,Q3,2,3,"span",29),Wm(4,$3,2,3,"span",29),Wm(5,e2,2,1,"span",30),Su(),Pu()),2&t){const t=e.$implicit,n=Lu(2);vu("ngClass",gb(6,n2,"tb-column-"+t)),Jc(1),vu("ngSwitch",t),Jc(1),vu("ngSwitchCase",n.RunsTableColumn.CHECKBOX),Jc(1),vu("ngSwitchCase",n.RunsTableColumn.EXPERIMENT_NAME),Jc(1),vu("ngSwitchCase",n.RunsTableColumn.RUN_NAME),Jc(1),vu("ngSwitchCase",n.RunsTableColumn.RUN_COLOR)}}function i2(t,e){if(1&t){const t=Eu();ku(0),Ou(1,"div",43),Nu("click",(function t(e){return e.stopPropagation()})),Ou(2,"tb-range-input",44),Nu("value",(function e(n){ra(t);const o=Lu(2).$implicit;return Lu(2).handleHparamIntervalChanged(o,n)})),Pu(),Pu(),Su()}if(2&t){const t=Lu(2).$implicit;Jc(2),vu("min",t.filter.minValue)("max",t.filter.maxValue)("lowerValue",t.filter.filterLowerValue)("upperValue",t.filter.filterUpperValue)}}function a2(t,e){if(1&t){const t=Eu();Ou(0,"div",46),Nu("click",(function t(e){return e.stopPropagation()})),Ou(1,"mat-checkbox",42),Nu("change",(function n(){ra(t);const o=e.$implicit,i=Lu(3).$implicit;return Lu(2).handleHparamDiscreteChanged(i,o)})),Ou(2,"span"),Mf(3),Pu(),Pu(),Pu()}if(2&t){const t=e.$implicit,n=Lu(3).$implicit;Jc(1),vu("checked",n.filter.filterValues.includes(t)),Jc(2),vf(t)}}function r2(t,e){if(1&t&&(ku(0),Wm(1,a2,4,2,"div",45),Su()),2&t){const t=Lu(2).$implicit;Jc(1),vu("ngForOf",t.filter.possibleValues)}}function s2(t,e){if(1&t){const t=Eu();ku(0),Ou(1,"button",38),Nu("click",(function t(e){return e.stopPropagation()})),wu(2,"mat-icon",39),Pu(),Ou(3,"mat-menu",null,40),Ou(5,"div",41),Nu("click",(function t(e){return e.stopPropagation()})),Ou(6,"mat-checkbox",42),Nu("change",(function e(){ra(t);const n=Lu().$implicit;return Lu(2).handleHparamIncludeUndefinedToggled(n)})),Ou(7,"span"),Mf(8,"(show empty value)"),Pu(),Pu(),Pu(),Wm(9,i2,3,4,"ng-container",37),Wm(10,r2,2,1,"ng-container",37),Pu(),Su()}if(2&t){const t=Gm(4),e=Lu().$implicit,n=Lu(2);Jc(1),vu("matMenuTriggerFor",t),Nm("aria-label","Filter hparam "+(e.displayName||e.name)),Jc(5),vu("checked",e.filter.includeUndefined),Jc(3),vu("ngIf",e.filter.type===n.DomainType.INTERVAL),Jc(1),vu("ngIf",e.filter.type===n.DomainType.DISCRETE)}}const l2=function(t,e){return{type:t,name:e}};function c2(t,e){if(1&t&&(Ou(0,"span",35),Ou(1,"span",36),Mf(2),Pu(),Wm(3,s2,11,5,"ng-container",37),Pu()),2&t){const t=e.$implicit,n=Lu(2);vu("mat-sort-header",hb(3,l2,n.SortType.HPARAM,t.name)),Jc(2),vf(t.displayName||t.name),Jc(1),vu("ngIf",t.filter)}}function d2(t,e){if(1&t){const t=Eu();ku(0),Ou(1,"button",38),Nu("click",(function t(e){return e.stopPropagation()})),wu(2,"mat-icon",39),Pu(),Ou(3,"mat-menu",null,40),Ou(5,"div",41),Nu("click",(function t(e){return e.stopPropagation()})),Ou(6,"mat-checkbox",42),Nu("change",(function e(){ra(t);const n=Lu().$implicit;return Lu(2).handleMetricIncludeUndefinedChanged(n)})),Ou(7,"span"),Mf(8,"(show empty value)"),Pu(),Pu(),Pu(),Ou(9,"div",43),Nu("click",(function t(e){return e.stopPropagation()})),Ou(10,"tb-range-input",44),Nu("value",(function e(n){ra(t);const o=Lu().$implicit;return Lu(2).handleMetricFilterChanged(o,n)})),Pu(),Pu(),Pu(),Su()}if(2&t){const t=Gm(4),e=Lu().$implicit;Jc(1),vu("matMenuTriggerFor",t),Nm("aria-label","Filter metric "+(e.displayName||e.tag)),Jc(5),vu("checked",e.filter.includeUndefined),Jc(4),vu("min",e.filter.minValue)("max",e.filter.maxValue)("lowerValue",e.filter.filterLowerValue)("upperValue",e.filter.filterUpperValue)}}const p2=function(t,e){return{type:t,tag:e}};function m2(t,e){if(1&t&&(Ou(0,"span",35),Ou(1,"span",36),Mf(2),Pu(),Wm(3,d2,11,7,"ng-container",37),Pu()),2&t){const t=e.$implicit,n=Lu(2);vu("mat-sort-header",hb(3,p2,n.SortType.METRIC,t.tag)),Jc(2),vf(t.displayName||t.tag),Jc(1),vu("ngIf",t.filter)}}function u2(t,e){if(1&t){const t=Eu();Ou(0,"div",22),Ou(1,"div",23),Nu("matSortChange",(function e(n){return ra(t),Lu().handleSortChange(n)})),Wm(2,o2,6,8,"span",24),Wm(3,c2,4,6,"span",25),Wm(4,m2,4,6,"span",25),Pu(),Pu()}if(2&t){const t=Lu();Jc(1),vu("matSortActive",t.sortOption.column),Jc(1),vu("ngForOf",t.columns),Jc(1),vu("ngForOf",t.hparamColumns)("ngForTrackBy",t.trackByHparamColumn),Jc(1),vu("ngForOf",t.metricColumns)("ngForTrackBy",t.trackByMetricColumn)}}function f2(t,e){if(1&t){const t=Eu();Ou(0,"span"),Ou(1,"mat-checkbox",42),Nu("change",(function e(){ra(t);const n=Lu(2).item;return Lu().onSelectionToggle.emit(n)})),Pu(),Pu()}if(2&t){const t=Lu(2).item;Jc(1),vu("checked",t.selected)}}function g2(t,e){if(1&t&&(Ou(0,"span",36),Mf(1),Pu()),2&t){const t=Lu(2).item;Nm("title",t.experimentName),Jc(1),vf(t.experimentAlias)}}function h2(t,e){if(1&t&&(Ou(0,"span",36),Mf(1),Pu()),2&t){const t=Lu(2).item;Jc(1),vf(t.run.name)}}const b2=function(t){return{"run-color-swatch":!0,"no-color":t}};function y2(t,e){if(1&t){const t=Eu();Ou(0,"span"),Ou(1,"button",52),Nu("colorPickerChange",(function e(n){ra(t);const o=Lu(2).item;return Lu().onRunColorChange.emit({runId:o.run.id,newColor:n})})),Pu(),Pu()}if(2&t){const t=Lu(2).item;Jc(1),of("background",t.runColor),vu("ngClass",gb(9,b2,!t.runColor))("colorPicker",t.runColor)("cpDialogDisplay","popup")("cpPosition","bottom-right")("cpPositionOffset",-20)("cpUseRootViewContainer",!0)("cpOutputFormat","hex")}}function _2(t,e){if(1&t&&(Ou(0,"span",50),ku(1,27),Wm(2,f2,2,1,"span",30),Wm(3,g2,2,2,"span",51),Wm(4,h2,2,1,"span",51),Wm(5,y2,2,11,"span",30),Su(),Pu()),2&t){const t=e.$implicit,n=Lu(2);vu("ngClass",gb(6,n2,"tb-column-"+t)),Jc(1),vu("ngSwitch",t),Jc(1),vu("ngSwitchCase",n.RunsTableColumn.CHECKBOX),Jc(1),vu("ngSwitchCase",n.RunsTableColumn.EXPERIMENT_NAME),Jc(1),vu("ngSwitchCase",n.RunsTableColumn.RUN_NAME),Jc(1),vu("ngSwitchCase",n.RunsTableColumn.RUN_COLOR)}}function C2(t,e){if(1&t&&(Ou(0,"span",53),Mf(1),Pu()),2&t){const t=e.$implicit,n=Lu().item;Jc(1),vf(n.hparams.get(t.name))}}function M2(t,e){if(1&t&&(Ou(0,"span",53),Mf(1),Pu()),2&t){const t=e.$implicit,n=Lu().item;Jc(1),vf(n.metrics.get(t.tag))}}function v2(t,e){if(1&t&&(Ou(0,"div",47),Wm(1,_2,6,8,"span",48),Wm(2,C2,2,1,"span",49),Wm(3,M2,2,1,"span",49),Pu()),2&t){const t=e.item,n=Lu();Nm("data-id",t.run.id),Jc(1),vu("ngForOf",n.columns),Jc(1),vu("ngForOf",n.hparamColumns),Jc(1),vu("ngForOf",n.metricColumns)}}class x2 extends $Q{constructor(){super(...arguments),this.itemsPerPageLabel="Show runs:"}}x2.ɵfac=function t(e){return O2(e||x2)},x2.ɵprov=lo({token:x2,factory:x2.ɵfac});const O2=vr(x2);("undefined"==typeof ngDevMode||ngDevMode)&&db(x2,[{type:Jm}],null,null);class P2{constructor(){this.dataSource=new q0,this.DomainType=LA,this.RunsTableColumn=DQ,this.SortType=tN,this.onRegexFilterChange=new Ab,this.onSelectionToggle=new Ab,this.onPageSelectionToggle=new Ab,this.onSelectAllPages=new Ab,this.onPaginationChange=new Ab,this.onSortChange=new Ab,this.onRunColorChange=new Ab,this.onHparamDiscreteFilterChanged=new Ab,this.onHparamIntervalFilterChanged=new Ab,this.onMetricFilterChanged=new Ab}ngOnChanges(){this.dataSource.data=this.pageItems}getHparamColumnId(t){return`h:${t.name}`}getMetricColumnId(t){return`m:${t.tag}`}getColumnIds(){return[...this.columns,...this.hparamColumns.map(this.getHparamColumnId),...this.metricColumns.map(this.getMetricColumnId)]}allPageItemsSelected(){return Boolean(this.pageItems.length)&&this.pageItems.every((t=>t.selected))}somePageItemsSelected(){return this.pageItems.some((t=>t.selected))}handlePageToggle(){this.onPageSelectionToggle.emit({items:this.pageItems})}handleSortChange(t){let e;switch(t.direction){case"asc":e=PN.ASC;break;case"desc":e=PN.DESC;break;default:e=PN.UNSET}this.onSortChange.emit({key:t.active,direction:e})}onFilterKeyUp(t){this.onRegexFilterChange.emit(t.target.value)}tableTrackBy(t,e){return e.run.id}handleHparamIncludeUndefinedToggled(t){const{name:e,filter:n}=t;if(!n)throw new RangeError("Invariant error: require filter to exist for it to change");n.type===LA.DISCRETE?this.onHparamDiscreteFilterChanged.emit({hparamName:e,includeUndefined:!n.includeUndefined,filterValues:n.filterValues}):this.onHparamIntervalFilterChanged.emit({name:e,includeUndefined:!n.includeUndefined,filterLowerValue:n.filterLowerValue,filterUpperValue:n.filterUpperValue})}handleHparamIntervalChanged(t,e){const{name:n,filter:o}=t;if(!o)throw new RangeError("Invariant error: require filter to exist for it to change");this.onHparamIntervalFilterChanged.emit({name:n,includeUndefined:o.includeUndefined,filterLowerValue:e.lowerValue,filterUpperValue:e.upperValue})}handleHparamDiscreteChanged(t,e){const{name:n,filter:o}=t;if(!o)throw new RangeError("Invariant error: require filter to exist for it to change");if(o.type!==LA.DISCRETE)throw new RangeError(`Invariant error: expected discrete domain for ${n}`);const i=new Set([...o.filterValues]);i.has(e)?i.delete(e):i.add(e),this.onHparamDiscreteFilterChanged.emit({hparamName:n,includeUndefined:o.includeUndefined,filterValues:[...i]})}handleMetricIncludeUndefinedChanged(t){if(!t.filter)throw new RangeError("Invariant error: require filter to exist for it to change");this.onMetricFilterChanged.emit({name:t.tag,includeUndefined:!t.filter.includeUndefined,filterLowerValue:t.filter.filterLowerValue,filterUpperValue:t.filter.filterUpperValue})}handleMetricFilterChanged(t,e){if(!t.filter)throw new RangeError("Invariant error: require filter to exist for it to change");this.onMetricFilterChanged.emit({name:t.tag,includeUndefined:t.filter.includeUndefined,filterLowerValue:e.lowerValue,filterUpperValue:e.upperValue})}trackByHparamColumn(t){return t.name}trackByMetricColumn(t){return t.tag}}P2.ɵfac=function t(e){return new(e||P2)},P2.ɵcmp=Uo({type:P2,selectors:[["runs-table-component"]],viewQuery:function t(e,n){if(1&e&&(Wb(H3,3,ch),Wb(a$,3),Wb(d$,3)),2&e){let t;Ub(t=Yb())&&(n.filter=t.first),Ub(t=Yb())&&(n.paginator=t.first),Ub(t=Yb())&&(n.sort=t.first)}},hostVars:2,hostBindings:function t(e,n){2&e&&af("flex-layout",n.useFlexibleLayout)},inputs:{experimentIds:"experimentIds",showExperimentName:"showExperimentName",columns:"columns",hparamColumns:"hparamColumns",metricColumns:"metricColumns",allItemsLength:"allItemsLength",filteredItemsLength:"filteredItemsLength",useFlexibleLayout:"useFlexibleLayout",usePagination:"usePagination",showGroupControl:"showGroupControl",pageItems:"pageItems",loading:"loading",numSelectedItems:"numSelectedItems",sortOption:"sortOption",paginationOption:"paginationOption",regexFilter:"regexFilter"},outputs:{onRegexFilterChange:"onRegexFilterChange",onSelectionToggle:"onSelectionToggle",onPageSelectionToggle:"onPageSelectionToggle",onSelectAllPages:"onSelectAllPages",onPaginationChange:"onPaginationChange",onSortChange:"onSortChange",onRunColorChange:"onRunColorChange",onHparamDiscreteFilterChanged:"onHparamDiscreteFilterChanged",onHparamIntervalFilterChanged:"onHparamIntervalFilterChanged",onMetricFilterChanged:"onMetricFilterChanged"},features:[ih([{provide:$Q,useClass:x2}]),Si],decls:18,vars:8,consts:[[1,"filter-row"],["placeholder","Filter runs (regex)",1,"run-filter",3,"keyup"],[1,"table-container"],["role","table"],[4,"ngTemplateOutlet"],["role","rowgroup",1,"rows"],[4,"ngFor","ngForOf","ngForTrackBy"],["class","loading",4,"ngIf"],["class","no-runs",4,"ngIf"],["showFirstLastButtons","",3,"pageSizeOptions","pageIndex","pageSize","length","page",4,"ngIf"],["selectAll",""],["header",""],["row",""],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"loading"],["mode","indeterminate","diameter","28"],[1,"no-runs"],["showFirstLastButtons","",3,"pageSizeOptions","pageIndex","pageSize","length","page"],["class","select-all","role","row",4,"ngIf"],["role","row",1,"select-all"],["role","columnheader"],["mat-button","",3,"click"],["role","rowgroup",1,"header"],["matSort","","role","row",3,"matSortActive","matSortChange"],["role","columnheader",3,"ngClass",4,"ngFor","ngForOf"],["role","columnheader","class","column",3,"mat-sort-header",4,"ngFor","ngForOf","ngForTrackBy"],["role","columnheader",3,"ngClass"],[3,"ngSwitch"],[3,"checked","indeterminate","change",4,"ngSwitchCase"],[3,"mat-sort-header",4,"ngSwitchCase"],[4,"ngSwitchCase"],[3,"checked","indeterminate","change"],[3,"mat-sort-header"],[3,"experimentIds",4,"ngIf"],[3,"experimentIds"],["role","columnheader",1,"column",3,"mat-sort-header"],[1,"name"],[4,"ngIf"],["mat-icon-button","",3,"matMenuTriggerFor","click"],["svgIcon","filter_alt_24px"],["filterMenu","matMenu"],["mat-menu-item","","role","menuitemcheckbox","disableRipple","",1,"filter-menu-checkbox-row",3,"click"],[3,"checked","change"],["disableRipple","","mat-menu-item","",1,"range-input-container",3,"click"],[3,"min","max","lowerValue","upperValue","value"],["mat-menu-item","","class","filter-menu-checkbox-row","role","menuitemcheckbox",3,"click",4,"ngFor","ngForOf"],["mat-menu-item","","role","menuitemcheckbox",1,"filter-menu-checkbox-row",3,"click"],["role","row"],["role","cell",3,"ngClass",4,"ngFor","ngForOf"],["role","cell","class","column",4,"ngFor","ngForOf"],["role","cell",3,"ngClass"],["class","name",4,"ngSwitchCase"],[3,"ngClass","colorPicker","cpDialogDisplay","cpPosition","cpPositionOffset","cpUseRootViewContainer","cpOutputFormat","colorPickerChange"],["role","cell",1,"column"]],template:function t(e,n){if(1&e&&(Ou(0,"div",0),Ou(1,"tb-filter-input",1),Nu("keyup",(function t(e){return n.onFilterKeyUp(e)})),Pu(),Pu(),Ou(2,"div",2),Ou(3,"div",3),Wm(4,F3,1,0,"ng-container",4),Wm(5,L3,1,0,"ng-container",4),Ou(6,"div",5),Wm(7,j3,2,4,"ng-container",6),Pu(),Pu(),Wm(8,U3,2,0,"div",7),Wm(9,W3,2,0,"div",8),Wm(10,G3,6,1,"div",8),Pu(),Wm(11,q3,1,5,"mat-paginator",9),Wm(12,X3,1,1,"ng-template",null,10,Kb),Wm(14,u2,5,6,"ng-template",null,11,Kb),Wm(16,v2,4,4,"ng-template",null,12,Kb)),2&e){const t=Gm(13),e=Gm(15);Jc(4),vu("ngTemplateOutlet",e),Jc(1),vu("ngTemplateOutlet",t),Jc(2),vu("ngForOf",n.pageItems)("ngForTrackBy",n.tableTrackBy),Jc(1),vu("ngIf",n.loading),Jc(1),vu("ngIf",!n.loading&&0===n.allItemsLength),Jc(1),vu("ngIf",!n.loading&&n.allItemsLength>0&&0===n.filteredItemsLength),Jc(1),vu("ngIf",n.usePagination)}},directives:[g1,hv,ov,av,P1,a$,NH,d$,tv,cv,dv,uY,b$,W1,NG,cG,DG,OG,q1,I3],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;flex-direction:column;font-size:13px;overflow:hidden}.filter-row[_ngcontent-%COMP%]{flex:none}.table-container[_ngcontent-%COMP%]{contain:layout paint;flex-grow:1;max-width:100%;overflow-x:auto;overflow-y:auto;will-change:scroll-position}.flex-layout[_nghost-%COMP%]   .name[_ngcontent-%COMP%]{word-break:break-word;overflow-wrap:break-word}.flex-layout[_nghost-%COMP%]   mat-paginator[_ngcontent-%COMP%]{border-top:1px solid #ebebeb;padding-bottom:12px}body.dark-mode   .flex-layout[_nghost-%COMP%]   mat-paginator[_ngcontent-%COMP%]{border-top:1px solid #555}[role=table][_ngcontent-%COMP%]{display:table;width:100%}[role=table][_ngcontent-%COMP%]   .header[_ngcontent-%COMP%]{white-space:nowrap}[role=table][_ngcontent-%COMP%]   .header[_ngcontent-%COMP%]   [role=columnheader][_ngcontent-%COMP%]{background-color:#fff;position:sticky;top:0;z-index:1}body.dark-mode[_nghost-%COMP%]   [role=table][_ngcontent-%COMP%]   .header[_ngcontent-%COMP%]   [role=columnheader][_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   [role=table][_ngcontent-%COMP%]   .header[_ngcontent-%COMP%]   [role=columnheader][_ngcontent-%COMP%]{background-color:#303030}[role=table][_ngcontent-%COMP%]   [role=row][_ngcontent-%COMP%]{contain:strict;display:table-row;height:43px}[role=table][_ngcontent-%COMP%]   [role=row][_ngcontent-%COMP%]   .column[_ngcontent-%COMP%]{border-bottom:1px solid #ebebeb;display:table-cell;padding:5px;vertical-align:middle}body.dark-mode[_nghost-%COMP%]   [role=table][_ngcontent-%COMP%]   [role=row][_ngcontent-%COMP%]   .column[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   [role=table][_ngcontent-%COMP%]   [role=row][_ngcontent-%COMP%]   .column[_ngcontent-%COMP%]{border-bottom:1px solid #555}[role=table][_ngcontent-%COMP%]   [role=row][_ngcontent-%COMP%]   .column[_ngcontent-%COMP%]:first-child{padding-left:24px}[role=table][_ngcontent-%COMP%]   [role=row][_ngcontent-%COMP%]   .column[_ngcontent-%COMP%]:last-child{padding-right:24px}[role=rowgroup][_ngcontent-%COMP%]{display:table-row-group}[role=rowgroup].header[_ngcontent-%COMP%]{display:table-header-group}.loading[_ngcontent-%COMP%], .no-runs[_ngcontent-%COMP%]{align-items:center;border:0;border-bottom:1px solid #ebebeb;display:flex;height:48px;padding:0 24px}body.dark-mode[_nghost-%COMP%]   .loading[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .loading[_ngcontent-%COMP%]{border-bottom:1px solid #555}body.dark-mode[_nghost-%COMP%]   .no-runs[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .no-runs[_ngcontent-%COMP%]{border-bottom:1px solid #555}.loading[_ngcontent-%COMP%]{justify-content:center}.select-all[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding-bottom:12px;padding-top:12px}.select-all-content[_ngcontent-%COMP%], .select-all-content[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{font-weight:400;line-height:1.6;text-align:left}.select-all-content[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{font-weight:500;padding:0 4px}.filter-row[_ngcontent-%COMP%]{border-bottom:1px solid #ebebeb;display:flex;align-items:center;height:48px;padding:0 16px 0 21px}body.dark-mode[_nghost-%COMP%]   .filter-row[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .filter-row[_ngcontent-%COMP%]{border-bottom:1px solid #555}.filter-row[_ngcontent-%COMP%]   tb-filter-input[_ngcontent-%COMP%]{flex-grow:1}.tb-column-checkbox[_ngcontent-%COMP%], .tb-column-run_color[_ngcontent-%COMP%]{width:20px}.tb-column-run_color[_ngcontent-%COMP%]{text-align:center}.run-color-swatch[_ngcontent-%COMP%]{border-radius:100%;border:1px solid #ebebeb;height:20px;width:20px;outline:none}.run-color-swatch.no-color[_ngcontent-%COMP%]{border-color:#c6cad1;border-width:2px}.range-input-container[_ngcontent-%COMP%]{height:auto}[_nghost-%COMP%]     mat-paginator mat-form-field{margin:0}.filter-menu-checkbox-row[_ngcontent-%COMP%]   mat-checkbox[_ngcontent-%COMP%]     label{display:flex;height:100%;align-items:center}.filter-menu-checkbox-row[_ngcontent-%COMP%]   mat-checkbox[_ngcontent-%COMP%]     label .mat-checkbox-inner-container{margin-left:0}.filter-menu-checkbox-row[_ngcontent-%COMP%]   mat-checkbox[_ngcontent-%COMP%]     label .mat-checkbox-label{overflow:hidden;text-overflow:ellipsis}body.dark-mode[_nghost-%COMP%]   mat-paginator[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   mat-paginator[_ngcontent-%COMP%]{background-color:#303030}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(P2,[{type:h_,args:[{selector:"runs-table-component",templateUrl:"runs_table_component.ng.html",host:{"[class.flex-layout]":"useFlexibleLayout"},styleUrls:["runs_table_component.css"],changeDetection:xo.OnPush,providers:[{provide:$Q,useClass:x2}]}]}],null,{experimentIds:[{type:y_}],showExperimentName:[{type:y_}],columns:[{type:y_}],hparamColumns:[{type:y_}],metricColumns:[{type:y_}],allItemsLength:[{type:y_}],filteredItemsLength:[{type:y_}],useFlexibleLayout:[{type:y_}],usePagination:[{type:y_}],showGroupControl:[{type:y_}],pageItems:[{type:y_}],loading:[{type:y_}],numSelectedItems:[{type:y_}],sortOption:[{type:y_}],paginationOption:[{type:y_}],regexFilter:[{type:y_}],onRegexFilterChange:[{type:__}],onSelectionToggle:[{type:__}],onPageSelectionToggle:[{type:__}],onSelectAllPages:[{type:__}],onPaginationChange:[{type:__}],onSortChange:[{type:__}],onRunColorChange:[{type:__}],onHparamDiscreteFilterChanged:[{type:__}],onHparamIntervalFilterChanged:[{type:__}],onMetricFilterChanged:[{type:__}],filter:[{type:Fr,args:["filter",{static:!0,read:ch}]}],paginator:[{type:Fr,args:[a$,{static:!0}]}],sort:[{type:Fr,args:[d$,{static:!0}]}]});const w2=zk(mN,(t=>t.state===BE.LOADING));function k2(t,e){switch(e.type){case tN.EXPERIMENT_NAME:return[t.experimentAlias,t.run.name,t.run.id];case tN.RUN_NAME:return[t.run.name,t.experimentAlias,t.run.id];case tN.HPARAM:return[t.hparams.get(e.name),t.run.name,t.experimentAlias,t.run.id];case tN.METRIC:return[t.metrics.get(e.tag),t.run.name,t.experimentAlias,t.run.id];default:throw new Error(`Not yet implemented: ${e}`)}}function S2(t,e){return void 0===e?t.includeUndefined:t.type===LA.DISCRETE?t.filterValues.includes(e):t.type===LA.INTERVAL&&t.filterLowerValue<=e&&e<=t.filterUpperValue}class D2{constructor(t){this.store=t,this.loading$=null,this.hparamColumns$=Z([]),this.metricColumns$=Z([]),this.useFlexibleLayout=!1,this.usePagination=!1,this.columns=[DQ.RUN_NAME],this.showHparamsAndMetrics=!1,this.sortOption$=this.store.select(_N),this.paginationOption$=this.store.select(yN),this.regexFilter$=this.store.select(hN),this.ngUnsubscribe=new x}isExperimentNameVisible(){return this.columns.some((t=>t===DQ.EXPERIMENT_NAME))}ngOnInit(){const t=Dt(this.experimentIds.map((t=>this.getRunTableItemsForExperiment(t)))).pipe(ht((t=>[].concat(...t))));this.allUnsortedRunTableItems$=t.pipe(an(1)),this.allItemsLength$=this.allUnsortedRunTableItems$.pipe(ht((t=>t.length)));const e=this.getFilteredItems$(this.allUnsortedRunTableItems$).pipe(an(1));this.filteredItemsLength$=e.pipe(ht((t=>t.length))),this.pageItems$=this.sortedAndSlicedItems$(e),this.numSelectedItems$=this.allUnsortedRunTableItems$.pipe(ht((t=>t.reduce(((t,e)=>t+Number(e.selected)),0))));const n=this.experimentIds.map((t=>this.store.select(w2,{experimentId:t})));if(this.loading$=Dt(n).pipe(ht((t=>t.some((t=>t))))),this.showHparamsAndMetrics){const t=this.store.select(IQ,{experimentIds:this.experimentIds});this.hparamColumns$=Dt([this.store.select(RQ,this.experimentIds),t]).pipe(ht((([t,{hparams:e}])=>e.map((({name:e,displayName:n})=>{const o=t.get(e);if(!o)throw new RangeError(`Invariant error: a filter for ${e} must exist when the hparam exists`);return{displayName:n,name:e,filter:o}}))))),this.metricColumns$=Dt([this.store.select(NQ,this.experimentIds),t]).pipe(ht((([t,{metrics:e}])=>e.map((({tag:e,displayName:n})=>{const o=t.get(e);if(!o)throw new RangeError(`Invariant error: a filter for ${e} must exist when the metric exists`);return{displayName:n,tag:e,filter:o}})))))}this.columns.includes(DQ.CHECKBOX)&&this.store.select(OD).pipe(un(this.ngUnsubscribe),dn((()=>t.pipe(Gt((t=>t.length>500)),Ne(1))))).subscribe((()=>{this.store.dispatch(KN({localizedMessage:"The number of runs exceeds 500. New runs are unselected for performance reasons."}))})),this.showGroupControl$=this.store.select(PE).pipe(ht((t=>t&&this.columns.includes(DQ.RUN_COLOR)))),this.store.dispatch(NA({experimentIds:this.experimentIds}))}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}getFilteredItems$(t){return Dt([t,this.store.select(hN)]).pipe(ht((([t,e])=>{if(!e)return t;let n=null;try{n=e?new RegExp(e):null}catch(t){}if(!n)return[];const o=this.columns.includes(DQ.EXPERIMENT_NAME);return t.filter((t=>{if(n=n,!o)return n.test(t.run.name);const e=`${t.experimentName}/${t.run.name}`;return n.test(t.run.name)||n.test(t.experimentAlias)||n.test(t.experimentName)||n.test(e)}))})),ce(this.store.select(RQ,this.experimentIds),this.store.select(NQ,this.experimentIds)),ht((([t,e,n])=>this.showHparamsAndMetrics?t.filter((({hparams:t,metrics:o})=>[...e.entries()].every((([e,n])=>S2(n,t.get(e))))&&[...n.entries()].every((([t,e])=>S2(e,o.get(t)))))):t)))}sortedAndSlicedItems$(t){const e=Dt([t,this.store.select(_N)]).pipe(ht((([t,e])=>(function n(t,e){const n=e.key,o=[...t];return null===n||e.direction===PN.UNSET||o.sort(((t,o)=>{const i=k2(t,n),a=k2(o,n);if(i.length!==a.length)throw new Error(`Invariant error: a given sort should result in same number of items: ${e}`);for(let t=0;t<i.length;t++){const n=i[t],o=a[t];if(n!==o){if(void 0===n||void 0===o)return void 0===o?-1:1;if(typeof n!=typeof o)throw new Error(`Cannot compare values of different types: ${typeof n} vs. ${typeof o}`);return n<o==(e.direction===PN.ASC)?-1:1}}return 0})),o})(t,e))));return Dt([e,this.store.select(yN)]).pipe(ht((([t,e])=>{if(!this.usePagination)return t.slice();const{pageSize:n,pageIndex:o}=e;return t.slice(o*n,(o+1)*n)})),cn([]))}getRunTableItemsForExperiment(t){return Dt([this.store.select(cN,{experimentId:t}),this.store.select(iR,{experimentId:t}),this.store.select(vN),this.store.select(CN),this.store.select(PD)]).pipe(ht((([e,n,o,i,a])=>e.map((e=>{const r=new Map;(e.hparams||[]).forEach((t=>{r.set(t.name,t.value)}));const s=new Map;return(e.metrics||[]).forEach((t=>{s.set(t.tag,t.value)})),{run:e,experimentName:(null==n?void 0:n.name)||"",experimentAlias:a[t],selected:Boolean(o&&o.get(e.id)),runColor:i[e.id],hparams:r,metrics:s}})))))}onRunSelectionToggle(t){this.store.dispatch(kA({experimentIds:this.experimentIds,runId:t.run.id}))}onPageSelectionToggle(t){const{items:e}=t,n=e.map((({run:t})=>t.id));this.store.dispatch(SA({experimentIds:this.experimentIds,runIds:n}))}onSelectAllPages(){if(!this.usePagination)throw new Error("Select all events cannot be dispatched when pagination is disabled");this.store.dispatch(DA({experimentIds:this.experimentIds}))}onPaginationChange(t){if(!this.usePagination)throw new Error("Pagination events cannot be dispatched when pagination is disabled");const{pageIndex:e,pageSize:n}=t;this.store.dispatch(EA({pageIndex:e,pageSize:n}))}onSortChange(t){this.store.dispatch(AA(t))}onRegexFilterChange(t){this.store.dispatch(RA({regexString:t}))}onRunColorChange({runId:t,newColor:e}){this.store.dispatch(TA({runId:t,newColor:e}))}onHparamDiscreteFilterChanged(t){const{hparamName:e,filterValues:n,includeUndefined:o}=t;this.store.dispatch(VA({experimentIds:this.experimentIds,hparamName:e,filterValues:n,includeUndefined:o}))}onHparamIntervalFilterChanged(t){const{name:e,filterLowerValue:n,filterUpperValue:o,includeUndefined:i}=t;this.store.dispatch(jA({experimentIds:this.experimentIds,hparamName:e,filterLowerValue:n,filterUpperValue:o,includeUndefined:i}))}onMetricFilterChanged(t){const{name:e,includeUndefined:n,filterLowerValue:o,filterUpperValue:i}=t;this.store.dispatch(UA({experimentIds:this.experimentIds,metricTag:e,includeUndefined:n,filterLowerValue:o,filterUpperValue:i}))}}D2.ɵfac=function t(e){return new(e||D2)(Mu(Ek))},D2.ɵcmp=Uo({type:D2,selectors:[["runs-table"]],hostVars:2,hostBindings:function t(e,n){2&e&&af("flex-layout",n.useFlexibleLayout)},inputs:{useFlexibleLayout:"useFlexibleLayout",usePagination:"usePagination",columns:"columns",experimentIds:"experimentIds",showHparamsAndMetrics:"showHparamsAndMetrics"},decls:12,vars:38,consts:[[3,"experimentIds","useFlexibleLayout","numSelectedItems","columns","hparamColumns","metricColumns","showExperimentName","pageItems","filteredItemsLength","allItemsLength","loading","paginationOption","regexFilter","showGroupControl","sortOption","usePagination","onSelectionToggle","onPageSelectionToggle","onSelectAllPages","onPaginationChange","onRegexFilterChange","onSortChange","onRunColorChange","onHparamIntervalFilterChanged","onHparamDiscreteFilterChanged","onMetricFilterChanged"]],template:function t(e,n){1&e&&(Ou(0,"runs-table-component",0),Nu("onSelectionToggle",(function t(e){return n.onRunSelectionToggle(e)}))("onPageSelectionToggle",(function t(e){return n.onPageSelectionToggle(e)}))("onSelectAllPages",(function t(){return n.onSelectAllPages()}))("onPaginationChange",(function t(e){return n.onPaginationChange(e)}))("onRegexFilterChange",(function t(e){return n.onRegexFilterChange(e)}))("onSortChange",(function t(e){return n.onSortChange(e)}))("onRunColorChange",(function t(e){return n.onRunColorChange(e)}))("onHparamIntervalFilterChanged",(function t(e){return n.onHparamIntervalFilterChanged(e)}))("onHparamDiscreteFilterChanged",(function t(e){return n.onHparamDiscreteFilterChanged(e)}))("onMetricFilterChanged",(function t(e){return n.onMetricFilterChanged(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Ob(7,"async"),Ob(8,"async"),Ob(9,"async"),Ob(10,"async"),Ob(11,"async"),Pu()),2&e&&vu("experimentIds",n.experimentIds)("useFlexibleLayout",n.useFlexibleLayout)("numSelectedItems",Pb(1,16,n.numSelectedItems$))("columns",n.columns)("hparamColumns",Pb(2,18,n.hparamColumns$))("metricColumns",Pb(3,20,n.metricColumns$))("showExperimentName",n.isExperimentNameVisible())("pageItems",Pb(4,22,n.pageItems$))("filteredItemsLength",Pb(5,24,n.filteredItemsLength$))("allItemsLength",Pb(6,26,n.allItemsLength$))("loading",Pb(7,28,n.loading$))("paginationOption",Pb(8,30,n.paginationOption$))("regexFilter",Pb(9,32,n.regexFilter$))("showGroupControl",Pb(10,34,n.showGroupControl$))("sortOption",Pb(11,36,n.sortOption$))("usePagination",n.usePagination)},directives:[P2],pipes:[Mv],styles:[".flex-layout[_nghost-%COMP%] {\n        display: flex;\n      }\n\n      .flex-layout[_nghost-%COMP%]    > runs-table-component[_ngcontent-%COMP%] {\n        width: 100%;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(D2,[{type:h_,args:[{selector:"runs-table",template:'\n    <runs-table-component\n      [experimentIds]="experimentIds"\n      [useFlexibleLayout]="useFlexibleLayout"\n      [numSelectedItems]="numSelectedItems$ | async"\n      [columns]="columns"\n      [hparamColumns]="hparamColumns$ | async"\n      [metricColumns]="metricColumns$ | async"\n      [showExperimentName]="isExperimentNameVisible()"\n      [pageItems]="pageItems$ | async"\n      [filteredItemsLength]="filteredItemsLength$ | async"\n      [allItemsLength]="allItemsLength$ | async"\n      [loading]="loading$ | async"\n      [paginationOption]="paginationOption$ | async"\n      [regexFilter]="regexFilter$ | async"\n      [showGroupControl]="showGroupControl$ | async"\n      [sortOption]="sortOption$ | async"\n      [usePagination]="usePagination"\n      (onSelectionToggle)="onRunSelectionToggle($event)"\n      (onPageSelectionToggle)="onPageSelectionToggle($event)"\n      (onSelectAllPages)="onSelectAllPages()"\n      (onPaginationChange)="onPaginationChange($event)"\n      (onRegexFilterChange)="onRegexFilterChange($event)"\n      (onSortChange)="onSortChange($event)"\n      (onRunColorChange)="onRunColorChange($event)"\n      (onHparamIntervalFilterChanged)="onHparamIntervalFilterChanged($event)"\n      (onHparamDiscreteFilterChanged)="onHparamDiscreteFilterChanged($event)"\n      (onMetricFilterChanged)="onMetricFilterChanged($event)"\n    ></runs-table-component>\n  ',host:{"[class.flex-layout]":"useFlexibleLayout"},styles:["\n      :host.flex-layout {\n        display: flex;\n      }\n\n      :host.flex-layout > runs-table-component {\n        width: 100%;\n      }\n    "],changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{useFlexibleLayout:[{type:y_}],usePagination:[{type:y_}],columns:[{type:y_}],experimentIds:[{type:y_}],showHparamsAndMetrics:[{type:y_}]});class E2{}E2.ɵfac=function t(e){return new(e||E2)},E2.ɵcmp=Uo({type:E2,selectors:[["runs-selector-component"]],inputs:{experimentIds:"experimentIds",showHparamsAndMetrics:"showHparamsAndMetrics",columns:"columns"},decls:1,vars:4,consts:[[3,"useFlexibleLayout","columns","experimentIds","showHparamsAndMetrics"]],template:function t(e,n){1&e&&wu(0,"runs-table",0),2&e&&vu("useFlexibleLayout",!0)("columns",n.columns)("experimentIds",n.experimentIds)("showHparamsAndMetrics",n.showHparamsAndMetrics)},directives:[D2],styles:["runs-table[_ngcontent-%COMP%] {\n        height: 100%;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(E2,[{type:h_,args:[{selector:"runs-selector-component",template:'\n    <runs-table\n      [useFlexibleLayout]="true"\n      [columns]="columns"\n      [experimentIds]="experimentIds"\n      [showHparamsAndMetrics]="showHparamsAndMetrics"\n    ></runs-table>\n  ',styles:["\n      runs-table {\n        height: 100%;\n      }\n    "],changeDetection:xo.OnPush}]}],null,{experimentIds:[{type:y_}],showHparamsAndMetrics:[{type:y_}],columns:[{type:y_}]});class A2{constructor(t){this.store=t,this.experimentIds$=this.store.select(xD).pipe(ht((t=>null!=t?t:[]))),this.columns$=this.store.select(xD).pipe(ht((t=>[DQ.CHECKBOX,DQ.RUN_NAME,t&&t.length>1?DQ.EXPERIMENT_NAME:null,DQ.RUN_COLOR].filter((t=>null!==t)))))}}A2.ɵfac=function t(e){return new(e||A2)(Mu(Ek))},A2.ɵcmp=Uo({type:A2,selectors:[["runs-selector"]],inputs:{showHparamsAndMetrics:"showHparamsAndMetrics"},decls:3,vars:7,consts:[[3,"experimentIds","columns","showHparamsAndMetrics"]],template:function t(e,n){1&e&&(wu(0,"runs-selector-component",0),Ob(1,"async"),Ob(2,"async")),2&e&&vu("experimentIds",Pb(1,3,n.experimentIds$))("columns",Pb(2,5,n.columns$))("showHparamsAndMetrics",n.showHparamsAndMetrics)},directives:[E2],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(A2,[{type:h_,args:[{selector:"runs-selector",template:'\n    <runs-selector-component\n      [experimentIds]="experimentIds$ | async"\n      [columns]="columns$ | async"\n      [showHparamsAndMetrics]="showHparamsAndMetrics"\n    ></runs-selector-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{showHparamsAndMetrics:[{type:y_}]});const R2=new WeakMap;class T2{constructor(t,e){this.root=t,this.buffer=e,this.destroyedTargets=new Set}initialize(t){this.intersectionObserver||(this.intersectionCallback=t,this.intersectionObserver=new IntersectionObserver(this.onCardIntersection.bind(this),{threshold:0,root:this.root,rootMargin:this.buffer}))}add(t){this.ensureInitialized()&&this.intersectionObserver.observe(t)}willDestroy(t){this.ensureInitialized()&&this.destroyedTargets.add(t)}ensureInitialized(){if(!this.intersectionObserver)throw new Error("CardObserver must be initialized before use");return!0}onCardIntersection(t){t.sort(((t,e)=>t.time-e.time));const e=new Set,n=new Set;for(const o of t){const t=o.target,i=R2.get(t);if(!i)throw new Error("A CardObserver element must be associated with a CardId");o.isIntersecting?(e.add(i),n.delete(i)):(e.delete(i),n.add(i)),this.destroyedTargets.has(t)&&!o.isIntersecting&&(this.destroyedTargets.delete(t),this.intersectionObserver.unobserve(t))}this.intersectionCallback(e,n)}onCardIntersectionForTest(t){this.onCardIntersection(t)}}class N2{constructor(t,e){this.host=t,this.store=e}onCardIntersection(t,e){this.store.dispatch(iQ({enteredCards:t,exitedCards:e}))}ngOnInit(){R2.set(this.host.nativeElement,this.cardId),this.cardObserver||(this.cardObserver=new T2),this.cardObserver.initialize(this.onCardIntersection.bind(this)),this.cardObserver.add(this.host.nativeElement)}ngOnDestroy(){this.cardObserver&&this.cardObserver.willDestroy(this.host.nativeElement)}hostForTest(){return this.host}}N2.ɵfac=function t(e){return new(e||N2)(Mu(ch),Mu(Ek))},N2.ɵdir=Jo({type:N2,selectors:[["","cardLazyLoader",""]],inputs:{cardId:["cardLazyLoader","cardId"],cardObserver:"cardObserver"}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(N2,[{type:g_,args:[{selector:"[cardLazyLoader]"}]}],(function(){return[{type:ch},{type:Ek}]}),{cardId:[{type:y_,args:["cardLazyLoader"]}],cardObserver:[{type:y_}]});const I2="/scalar_summary";function z2(t,e){let n=t;return e&&t.startsWith(e+"/")&&(n=t.slice(e.length+1)),n.endsWith(I2)&&(n=n.slice(0,-I2.length)),n||t}function H2(t,e){let n=0,o=0;for(;;){if(n===t.length)return o===e.length?0:-1;if(o===e.length)return 1;if(L2(t[n])&&L2(e[o])){const i=n,a=o;n=F2(t,n+1),o=F2(e,o+1);const r=Number(t.slice(i,n)),s=Number(e.slice(a,o));if(r<s)return-1;if(r>s)return 1}else{if(B2(t[n])){if(!B2(e[o]))return-1}else{if(B2(e[o]))return 1;if(t[n]<e[o])return-1;if(t[n]>e[o])return 1}n++,o++}}}function F2(t,e){let n;!(function(t){t[t.NATURAL=0]="NATURAL",t[t.REAL=1]="REAL",t[t.EXPONENT_SIGN=2]="EXPONENT_SIGN",t[t.EXPONENT=3]="EXPONENT"})(n||(n={}));let o=n.NATURAL,i=e;for(;i<t.length;i++)if(o===n.NATURAL){if("."===t[i])o=n.REAL;else if("e"===t[i]||"E"===t[i])o=n.EXPONENT_SIGN;else if(!L2(t[i]))break}else if(o===n.REAL){if("e"===t[i]||"E"===t[i])o=n.EXPONENT_SIGN;else if(!L2(t[i]))break}else if(o===n.EXPONENT_SIGN){if(!L2(t[i])&&"+"!==t[i]&&"-"!==t[i])break;o=n.EXPONENT}else if(o===n.EXPONENT&&!L2(t[i]))break;return i}function L2(t){return"0"<=t&&t<="9"}function B2(t){return"/"===t||L2(t)}function V2(t,e){1&t&&wu(0,"mat-icon",6)}function j2(t,e){if(1&t&&(Ou(0,"mat-option",7),Mf(1),Pu()),2&t){const t=e.$implicit;vu("value",t),Jc(1),vf(t)}}class U2{constructor(){this.onRegexFilterValueChange=new Ab}onCompletionAccepted(t){this.onRegexFilterValueChange.emit((function e(t){return t.replace(wL,"\\$&")})(t))}}U2.ɵfac=function t(e){return new(e||U2)},U2.ɵcmp=Uo({type:U2,selectors:[["metrics-tag-filter-component"]],hostVars:2,hostBindings:function t(e,n){2&e&&af("valid",n.isRegexFilterValid)},inputs:{regexFilterValue:"regexFilterValue",isRegexFilterValid:"isRegexFilterValid",completions:"completions"},outputs:{onRegexFilterValueChange:"onRegexFilterValueChange"},decls:6,vars:4,consts:[[1,"tag-filter"],["placeholder","Filter tags (regex)",3,"value","matAutocomplete","input"],["svgIcon","error_24px","class","error-icon","title","Invalid regex filter. The result may be stale.",4,"ngIf"],[3,"optionSelected"],["filterMatches","matAutocomplete"],[3,"value",4,"ngFor","ngForOf"],["svgIcon","error_24px","title","Invalid regex filter. The result may be stale.",1,"error-icon"],[3,"value"]],template:function t(e,n){if(1&e&&(Ou(0,"div",0),Ou(1,"tb-filter-input",1),Nu("input",(function t(e){return n.onRegexFilterValueChange.emit(e.target.value)})),Pu(),Wm(2,V2,1,0,"mat-icon",2),Pu(),Ou(3,"mat-autocomplete",3,4),Nu("optionSelected",(function t(e){return n.onCompletionAccepted(e.option.value)})),Wm(5,j2,2,2,"mat-option",5),Pu()),2&e){const t=Gm(4);Jc(1),vu("value",n.regexFilterValue)("matAutocomplete",t),Jc(1),vu("ngIf",!n.isRegexFilterValid),Jc(3),vu("ngForOf",n.completions)}},directives:[g1,av,n1,ov,cG,PH],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.tag-filter[_ngcontent-%COMP%]{display:flex;position:relative}tb-filter-input[_ngcontent-%COMP%]{flex-grow:1}[_nghost-%COMP%]{color:#212121}body.dark-mode   [_nghost-%COMP%]{color:#fff}[_nghost-%COMP%]:not(.valid){color:#c62828}[_nghost-%COMP%]:not(.valid)   .error-icon[_ngcontent-%COMP%]{color:#c62828;position:absolute;right:0}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(U2,[{type:h_,args:[{selector:"metrics-tag-filter-component",templateUrl:"filter_input_component.ng.html",styleUrls:["filter_input_component.css"],changeDetection:xo.OnPush}]}],null,{regexFilterValue:[{type:y_}],isRegexFilterValid:[{type:C_,args:["class.valid"]},{type:y_}],completions:[{type:y_}],onRegexFilterValueChange:[{type:__}]});class W2{constructor(t){this.store=t,this.tagFilter$=this.store.select(XT),this.isTagFilterRegexValid$=this.tagFilter$.pipe(ht((t=>{try{return new RegExp(t),!0}catch(t){return!1}}))),this.completions$=this.store.select(ET).pipe(ht((t=>t.map((({tag:t})=>t)))),dn((t=>Dt([Z(t),this.store.select(XT)]))),ht((([t,e])=>{try{return[t,new RegExp(e)]}catch(e){return[t,null]}})),Gt((([,t])=>null!==t)),ht((([t,e])=>t.filter((t=>e.test(t))).sort(H2))))}onTagFilterChange(t){this.store.dispatch(rQ({tagFilter:t}))}}function G2(t,e){if(1&t&&(Ou(0,"span",2),Mf(1),Pu()),2&t){const t=Lu();Jc(1),vf(t.firstTextPart())}}W2.ɵfac=function t(e){return new(e||W2)(Mu(Ek))},W2.ɵcmp=Uo({type:W2,selectors:[["metrics-tag-filter"]],decls:4,vars:9,consts:[[3,"regexFilterValue","isRegexFilterValid","completions","onRegexFilterValueChange"]],template:function t(e,n){1&e&&(Ou(0,"metrics-tag-filter-component",0),Nu("onRegexFilterValueChange",(function t(e){return n.onTagFilterChange(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("regexFilterValue",Pb(1,3,n.tagFilter$))("isRegexFilterValid",Pb(2,5,n.isTagFilterRegexValid$))("completions",Pb(3,7,n.completions$))},directives:[U2],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(W2,[{type:h_,args:[{selector:"metrics-tag-filter",template:'\n    <metrics-tag-filter-component\n      [regexFilterValue]="tagFilter$ | async"\n      [isRegexFilterValid]="isTagFilterRegexValid$ | async"\n      [completions]="completions$ | async"\n      (onRegexFilterValueChange)="onTagFilterChange($event)"\n    ></metrics-tag-filter-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class Y2{parseValue(){const t=this.value.lastIndexOf("/");return-1===t?{first:"",second:this.value}:{first:this.value.slice(0,t),second:this.value.slice(t)}}firstTextPart(){return this.parseValue().first}secondTextPart(){return this.parseValue().second}}function q2(t,e,n){return e||n?[n,e?e.name:"..."].filter(Boolean).join("/"):t}Y2.ɵfac=function t(e){return new(e||Y2)},Y2.ɵcmp=Uo({type:Y2,selectors:[["tb-truncated-path"]],inputs:{value:"value"},decls:3,vars:2,consts:[["class","first-text-part",4,"ngIf"],[1,"second-text-part"],[1,"first-text-part"]],template:function t(e,n){1&e&&(Wm(0,G2,2,1,"span",0),Ou(1,"span",1),Mf(2),Pu()),2&e&&(vu("ngIf",n.firstTextPart().length>0),Jc(2),vf(n.secondTextPart()))},directives:[av],styles:["[_nghost-%COMP%]{display:inline-flex;white-space:nowrap}.first-text-part[_ngcontent-%COMP%]{flex:1 1 4ch;max-width:max-content}.first-text-part[_ngcontent-%COMP%], .second-text-part[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis}"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Y2,[{type:h_,args:[{selector:"tb-truncated-path",template:'\n    <span *ngIf="firstTextPart().length > 0" class="first-text-part">{{\n      firstTextPart()\n    }}</span>\n    <span class="second-text-part">{{ secondTextPart() }}</span>\n  ',styleUrls:["truncated_path_component.css"]}]}],null,{value:[{type:y_}]});class Z2{}Z2.ɵfac=function t(e){return new(e||Z2)},Z2.ɵcmp=Uo({type:Z2,selectors:[["card-run-name-component"]],inputs:{name:"name"},decls:1,vars:1,template:function t(e,n){1&e&&Mf(0),2&e&&vf(n.name)},styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{color:#616161}body.dark-mode   [_nghost-%COMP%]{color:rgba(255,255,255,.7)}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Z2,[{type:h_,args:[{selector:"card-run-name-component",template:"{{ name }}",styleUrls:["run_name_component.css"],changeDetection:xo.OnPush}]}],null,{name:[{type:y_}]});class X2{constructor(t){this.store=t}ngOnInit(){this.name$=Dt([this.store.select(lN,{runId:this.runId}),this.store.select(sN,{runId:this.runId}),this.store.select(PD)]).pipe(ht((([t,e,n])=>q2(this.runId,t,e?n[e]:null))))}}function K2(t,e){1&t&&wu(0,"mat-spinner",15)}function J2(t,e){if(1&t&&(Ou(0,"div",13),Mf(1),Wm(2,K2,1,0,"mat-spinner",14),Pu()),2&t){const t=Lu();Jc(1),xf(" Step ",t.stepValues[t.stepIndex]," "),Jc(1),vu("ngIf",t.loadState===t.DataLoadState.LOADING)}}X2.ɵfac=function t(e){return new(e||X2)(Mu(Ek))},X2.ɵcmp=Uo({type:X2,selectors:[["card-run-name"]],inputs:{runId:"runId"},decls:3,vars:6,consts:[[3,"name"]],template:function t(e,n){1&e&&(wu(0,"card-run-name-component",0),Ob(1,"async"),Ob(2,"async")),2&e&&(vu("name",Pb(1,2,n.name$)),Nm("title",Pb(2,4,n.name$)))},directives:[Z2],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(X2,[{type:h_,args:[{selector:"card-run-name",template:'\n    <card-run-name-component\n      [name]="name$ | async"\n      [attr.title]="name$ | async"\n    ></card-run-name-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{runId:[{type:y_}]});const Q2=function(t){return{filter:t}};function $2(t,e){if(1&t){const t=Eu();ku(0),Ou(1,"div",16),Ou(2,"mat-slider",17),Nu("input",(function e(n){return ra(t),Lu().onSliderInput(n)})),Pu(),Pu(),Ou(3,"div",18),wu(4,"img",19),Pu(),Su()}if(2&t){const t=Lu();Jc(2),vu("disabled",t.stepValues.length<=1)("min",0)("max",t.stepValues.length-1)("step",1)("tickInterval",1)("value",t.stepIndex),Jc(2),Wu("alt","Image at step ",t.stepValues[t.stepIndex],""),Uu("src",t.imageUrl,Ol),vu("ngStyle",gb(9,Q2,t.cssFilter()))}}function t5(t,e){1&t&&(Ou(0,"div",21),Mf(1," Data failed to load. "),Pu())}function e5(t,e){if(1&t&&Wm(0,t5,2,0,"div",20),2&t){const t=Lu();vu("ngIf",t.loadState===t.DataLoadState.FAILED)}}const n5=function(t){return{backgroundColor:t}};class o5{constructor(){this.DataLoadState=BE,this.onActualSizeToggle=new Ab,this.stepIndexChange=new Ab,this.onPinClicked=new Ab}cssFilter(){return`contrast(${this.contrastInMilli/10}%) brightness(${this.brightnessInMilli/1e3})`}onSliderInput(t){this.stepIndexChange.emit(t.value)}}o5.ɵfac=function t(e){return new(e||o5)},o5.ɵcmp=Uo({type:o5,selectors:[["image-card-component"]],hostVars:2,hostBindings:function t(e,n){2&e&&af("actual-size",n.showActualSize)},inputs:{loadState:"loadState",title:"title",tag:"tag",runId:"runId",sample:"sample",imageUrl:"imageUrl",stepIndex:"stepIndex",stepValues:"stepValues",brightnessInMilli:"brightnessInMilli",contrastInMilli:"contrastInMilli",showActualSize:"showActualSize",runColorScale:"runColorScale",allowToggleActualSize:"allowToggleActualSize",isPinned:"isPinned"},outputs:{onActualSizeToggle:"onActualSizeToggle",stepIndexChange:"stepIndexChange",onPinClicked:"onPinClicked"},decls:14,vars:12,consts:function(){let t,e;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Pin card"):$localize`:A button to pin a card.␟e665dc712bd5f18d4dfa3a29e125d565cc51e2f6␟7284606426234375344:Pin card`,e="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Toggle actual image size"):$localize`:A button on an image card that toggles actual image size.␟3ca05ef3a6e3a37065f5e0f69c5d5a2178d90791␟7635101936664789140:Toggle actual image size`,[[1,"heading"],[1,"tag",3,"title","value"],[1,"run"],[1,"dot",3,"ngStyle"],[1,"run-text",3,"runId"],["class","step",4,"ngIf"],[1,"controls"],["mat-icon-button","","aria-label",t,1,"pin-button",3,"click"],[3,"svgIcon"],["mat-icon-button","","aria-label",e,"title","Toggle actual image size",3,"disabled","click"],["svgIcon","image_search_24px"],[4,"ngIf","ngIfElse"],["noImageData",""],[1,"step"],["diameter","18",4,"ngIf"],["diameter","18"],[1,"slider-row"],["color","primary",1,"step-slider",3,"disabled","min","max","step","tickInterval","value","input"],[1,"img-container"],[3,"alt","src","ngStyle"],["class","empty-message",4,"ngIf"],[1,"empty-message"]]},template:function t(e,n){if(1&e&&(Ou(0,"div",0),wu(1,"tb-truncated-path",1),Ou(2,"div",2),wu(3,"span",3),wu(4,"card-run-name",4),Pu(),Wm(5,J2,3,2,"div",5),Ou(6,"span",6),Ou(7,"button",7),Nu("click",(function t(){return n.onPinClicked.emit(!n.isPinned)})),wu(8,"mat-icon",8),Pu(),Ou(9,"button",9),Nu("click",(function t(){return n.onActualSizeToggle.emit()})),wu(10,"mat-icon",10),Pu(),Pu(),Pu(),Wm(11,$2,5,11,"ng-container",11),Wm(12,e5,1,1,"ng-template",null,12,Kb)),2&e){const t=Gm(13);Jc(1),Uu("title",n.tag),Uu("value",n.title),Jc(2),vu("ngStyle",gb(10,n5,n.runColorScale(n.runId))),Jc(1),vu("runId",n.runId),Jc(1),vu("ngIf",null!==n.stepIndex&&n.stepIndex<n.stepValues.length),Jc(2),Nm("title",n.isPinned?"Unpin card":"Pin card"),Jc(1),vu("svgIcon",n.isPinned?"keep_24px":"keep_outline_24px"),Jc(1),vu("disabled",!n.allowToggleActualSize),Jc(2),vu("ngIf",null!==n.stepIndex&&n.stepIndex<n.stepValues.length)("ngIfElse",t)}},directives:[Y2,gv,X2,av,NH,cG,P1,vX],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;flex-direction:column;box-sizing:border-box;height:100%;overflow:auto;padding:16px;padding-top:4px}.actual-size[_nghost-%COMP%]{height:auto}.heading[_ngcontent-%COMP%]{align-items:center;display:grid;grid-template-areas:"tag controls" "run step";grid-template-columns:1fr auto;font-size:14px;margin-bottom:4px;position:relative}.tag[_ngcontent-%COMP%]{grid-area:tag;overflow:hidden}.pin-button[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{height:18px}.run[_ngcontent-%COMP%]{grid-area:run;display:flex;white-space:nowrap}.run[_ngcontent-%COMP%]   .dot[_ngcontent-%COMP%]{flex:none;display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:4px}.run[_ngcontent-%COMP%]   .run-text[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;max-width:120px}.step[_ngcontent-%COMP%]{grid-area:step;display:flex}.step[_ngcontent-%COMP%]   mat-spinner[_ngcontent-%COMP%]{margin-left:4px;margin-right:0}.run[_ngcontent-%COMP%], .step[_ngcontent-%COMP%]{color:#616161;font-size:13px;height:15px}body.dark-mode[_nghost-%COMP%]   .run[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .run[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}body.dark-mode[_nghost-%COMP%]   .step[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .step[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}.controls[_ngcontent-%COMP%]{color:#616161;white-space:nowrap;grid-area:controls;justify-self:flex-end;flex-shrink:0;margin-right:-12px}body.dark-mode[_nghost-%COMP%]   .controls[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .controls[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}.img-container[_ngcontent-%COMP%]{flex:1 1 0;overflow-y:auto;position:relative}.img-container[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{image-rendering:-moz-crisp-edges;image-rendering:pixelated}.actual-size[_nghost-%COMP%]   .img-container[_ngcontent-%COMP%]{overflow:auto;flex:none}[_nghost-%COMP%]:not(.actual-size)   img[_ngcontent-%COMP%]{position:absolute;max-height:100%;max-width:100%;width:auto;height:100%;object-fit:contain}.slider-row[_ngcontent-%COMP%]{display:flex;align-items:center;height:24px}.step-slider[_ngcontent-%COMP%]{flex:1}[_nghost-%COMP%]     .mat-slider-min-value .mat-slider-thumb{background-color:#f57c00}.empty-message[_ngcontent-%COMP%]{margin-top:1em;font-size:13px}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(o5,[{type:h_,args:[{selector:"image-card-component",templateUrl:"image_card_component.ng.html",styleUrls:["image_card_component.css"],host:{"[class.actual-size]":"showActualSize"},changeDetection:xo.OnPush}]}],null,{loadState:[{type:y_}],title:[{type:y_}],tag:[{type:y_}],runId:[{type:y_}],sample:[{type:y_}],imageUrl:[{type:y_}],stepIndex:[{type:y_}],stepValues:[{type:y_}],brightnessInMilli:[{type:y_}],contrastInMilli:[{type:y_}],showActualSize:[{type:y_}],runColorScale:[{type:y_}],allowToggleActualSize:[{type:y_}],isPinned:[{type:y_}],onActualSizeToggle:[{type:__}],stepIndexChange:[{type:__}],onPinClicked:[{type:__}]});class i5{constructor(t,e){this.store=t,this.dataSource=e,this.fullWidthChanged=new Ab,this.pinStateChanged=new Ab,this.brightnessInMilli$=this.store.select(YT),this.contrastInMilli$=this.store.select(qT),this.actualSizeGlobalSetting$=this.store.select(ZT),this.showActualSize=!1,this.actualSizeUiToggled=!1,this.actualSizeUiToggleSubject=new H(this.actualSizeUiToggled),this.ngUnsubscribe=new x}onStepIndexChanged(t){this.store.dispatch(aQ({cardId:this.cardId,stepIndex:t}))}isImageCardMetadata(t){const{plugin:e}=t;return e===sR.IMAGES}onActualSizeToggle(){this.actualSizeUiToggled=!this.actualSizeUiToggled,this.actualSizeUiToggleSubject.next(this.actualSizeUiToggled)}ngOnInit(){Dt([this.actualSizeGlobalSetting$,this.actualSizeUiToggleSubject]).pipe(un(this.ngUnsubscribe),_n((([t,e])=>{this.showActualSize=t||e,this.fullWidthChanged.emit(this.showActualSize)}))).subscribe((()=>{}));const t=this.store.select(kT,this.cardId).pipe(Gt((t=>!!t&&this.isImageCardMetadata(t))),ht((t=>t)),an(1)),e=Dt([t,this.store.select(PT,this.cardId)]).pipe(ht((([t,e])=>{const n=t.runId;return e&&e.hasOwnProperty(n)?e[n]:[]})),ke(((t,e)=>t.length===e.length&&0===t.length||t===e)),an(1));this.stepIndex$=this.store.select(AT,this.cardId),this.loadState$=this.store.select(OT,this.cardId);const n=Dt([e,this.stepIndex$]).pipe(ht((([t,e])=>null!==e&&t[e]?t[e]:null)));this.tag$=t.pipe(ht((t=>t.tag))),this.title$=this.tag$.pipe(ht((t=>z2(t,this.groupName)))),this.runId$=t.pipe(ht((t=>t.runId))),this.sample$=t.pipe(ht((t=>t.sample))),this.imageUrl$=n.pipe(ht((t=>t?this.dataSource.imageUrl(t.imageId):null))),this.stepValues$=e.pipe(ht((t=>t.map((t=>t.step))))),this.isPinned$=this.store.select(IT,this.cardId)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}var a5,r5,s5;function l5(t,e){1&t&&(Ou(0,"span"),Mf(1,"scalar"),Pu())}function c5(t,e){1&t&&(Ou(0,"span"),Mf(1,"histogram"),Pu())}function d5(t,e){1&t&&(Ou(0,"span"),Mf(1,"unknown"),Pu())}function p5(t,e){if(1&t&&(ku(0,13),Wm(1,l5,2,0,"span",14),Wm(2,c5,2,0,"span",14),Wm(3,d5,2,0,"span",15),Su()),2&t){const t=Lu(2);vu("ngSwitch",t.cardMetadata.plugin),Jc(1),vu("ngSwitchCase",t.PluginType.SCALARS),Jc(1),vu("ngSwitchCase",t.PluginType.HISTOGRAMS)}}function m5(t,e){1&t&&Du(0)}function u5(t,e){if(1&t&&(Ou(0,"option",16),Mf(1),Pu()),2&t){const t=e.$implicit;vu("value",t.id),Jc(1),vf(t.name)}}function f5(t,e){if(1&t){const t=Eu();ku(0),Ou(1,"h2"),Wm(2,p5,4,3,"ng-template",null,2,Kb),Ou(4,"span"),Mf(5,"Download "),Pu(),Wm(6,m5,1,0,"ng-container",3),Ou(7,"span"),Mf(8," data for "),Pu(),Ou(9,"code",4),Mf(10),Pu(),Pu(),Ou(11,"mat-dialog-content"),Ou(12,"mat-form-field",5),Ou(13,"mat-label"),Mf(14,"Select a run to download a data for a series"),Pu(),Ou(15,"select",6),Nu("change",(function e(n){return ra(t),Lu().runSelected.emit(n.target.value)})),Ou(16,"option",7),Mf(17,"-"),Pu(),Wm(18,u5,2,2,"option",8),Pu(),Pu(),Ou(19,"div",9),Ou(20,"span"),Mf(21,"Download as…"),Pu(),Mf(22," "),Ou(23,"a",10),Mf(24,"JSON"),Pu(),Ou(25,"a",10),Mf(26,"CSV"),Pu(),Pu(),Pu(),Ou(27,"mat-dialog-actions",11),Ou(28,"button",12),Mf(29,"Close"),Pu(),Pu(),Su()}if(2&t){const t=Gm(3),e=Lu();Jc(6),vu("ngTemplateOutlet",t),Jc(3),vu("title",e.cardMetadata.tag),Jc(1),vf(e.cardMetadata.tag),Jc(5),vu("value",e.selectedRunId||""),Jc(1),vu("value",""),Jc(2),vu("ngForOf",e.runs),Jc(5),vu("disabled",!e.downloadUrlJson)("download",e.getDownloadName("json")),Nm("href",e.downloadUrlJson,Ol),Jc(2),vu("disabled",!e.downloadUrlCsv)("download",e.getDownloadName("csv")),Nm("href",e.downloadUrlCsv,Ol)}}function g5(t,e){1&t&&Mf(0,"Loading...")}i5.ɵfac=function t(e){return new(e||i5)(Mu(Ek),Mu(hR))},i5.ɵcmp=Uo({type:i5,selectors:[["image-card"]],inputs:{cardId:"cardId",groupName:"groupName",runColorScale:"runColorScale"},outputs:{fullWidthChanged:"fullWidthChanged",pinStateChanged:"pinStateChanged"},decls:13,vars:38,consts:[[3,"loadState","title","tag","runId","sample","imageUrl","stepIndex","stepValues","brightnessInMilli","contrastInMilli","runColorScale","showActualSize","allowToggleActualSize","isPinned","stepIndexChange","onActualSizeToggle","onPinClicked"]],template:function t(e,n){1&e&&(Ou(0,"image-card-component",0),Nu("stepIndexChange",(function t(e){return n.onStepIndexChanged(e)}))("onActualSizeToggle",(function t(){return n.onActualSizeToggle()}))("onPinClicked",(function t(e){return n.pinStateChanged.emit(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Ob(7,"async"),Ob(8,"async"),Ob(9,"async"),Ob(10,"async"),Ob(11,"async"),Ob(12,"async"),Pu()),2&e&&vu("loadState",Pb(1,14,n.loadState$))("title",Pb(2,16,n.title$))("tag",Pb(3,18,n.tag$))("runId",Pb(4,20,n.runId$))("sample",Pb(5,22,n.sample$))("imageUrl",Pb(6,24,n.imageUrl$))("stepIndex",Pb(7,26,n.stepIndex$))("stepValues",Pb(8,28,n.stepValues$))("brightnessInMilli",Pb(9,30,n.brightnessInMilli$))("contrastInMilli",Pb(10,32,n.contrastInMilli$))("runColorScale",n.runColorScale)("showActualSize",n.showActualSize)("allowToggleActualSize",!1===Pb(11,34,n.actualSizeGlobalSetting$))("isPinned",Pb(12,36,n.isPinned$))},directives:[o5],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(i5,[{type:h_,args:[{selector:"image-card",template:'\n    <image-card-component\n      [loadState]="loadState$ | async"\n      [title]="title$ | async"\n      [tag]="tag$ | async"\n      [runId]="runId$ | async"\n      [sample]="sample$ | async"\n      [imageUrl]="imageUrl$ | async"\n      [stepIndex]="stepIndex$ | async"\n      [stepValues]="stepValues$ | async"\n      (stepIndexChange)="onStepIndexChanged($event)"\n      [brightnessInMilli]="brightnessInMilli$ | async"\n      [contrastInMilli]="contrastInMilli$ | async"\n      [runColorScale]="runColorScale"\n      [showActualSize]="showActualSize"\n      [allowToggleActualSize]="(actualSizeGlobalSetting$ | async) === false"\n      [isPinned]="isPinned$ | async"\n      (onActualSizeToggle)="onActualSizeToggle()"\n      (onPinClicked)="pinStateChanged.emit($event)"\n    ></image-card-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek},{type:hR}]}),{cardId:[{type:y_}],groupName:[{type:y_}],runColorScale:[{type:y_}],fullWidthChanged:[{type:__}],pinStateChanged:[{type:__}]}),(function(t){t[t.SVG=0]="SVG",t[t.WEBGL=1]="WEBGL"})(a5||(a5={})),(function(t){t[t.LINEAR=0]="LINEAR",t[t.LOG10=1]="LOG10",t[t.TIME=2]="TIME"})(r5||(r5={}));class h5{constructor(){this.runSelected=new Ab,this.PluginType=sR}getDownloadName(t){const e=this.runs.find((t=>t.id===this.selectedRunId));return e?`${e.name}.${t}`:""}}h5.ɵfac=function t(e){return new(e||h5)},h5.ɵcmp=Uo({type:h5,selectors:[["data_download_dialog_component"]],inputs:{cardMetadata:"cardMetadata",runs:"runs",selectedRunId:"selectedRunId",downloadUrlCsv:"downloadUrlCsv",downloadUrlJson:"downloadUrlJson"},outputs:{runSelected:"runSelected"},decls:3,vars:2,consts:[[4,"ngIf","ngIfElse"],["noCardMetadata",""],["dataName",""],[4,"ngTemplateOutlet"],[1,"tag-name",3,"title"],["appearance","fill",1,"run-selector"],["matNativeControl","","name","run","cdkFocusInitial","","required","",3,"value","change"],["selected","",3,"value"],[3,"value",4,"ngFor","ngForOf"],[1,"download-controls"],["mat-stroked-button","",3,"disabled","download"],["align","end"],["mat-button","","mat-dialog-close",""],[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"NgSwitchDefault"],[3,"value"]],template:function t(e,n){if(1&e&&(Wm(0,f5,30,12,"ng-container",0),Wm(1,g5,1,0,"ng-template",null,1,Kb)),2&e){const t=Gm(2);vu("ngIf",n.cardMetadata)("ngIfElse",t)}},directives:[av,hv,VW,_V,cV,EY,_U,xU,ov,IH,jW,NH,LW,cv,dv],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}h2[_ngcontent-%COMP%]{font-size:1.25em;overflow-wrap:break-word}.run-selector[_ngcontent-%COMP%]{font-size:.9em;width:100%}.download-controls[_ngcontent-%COMP%]{font-size:.9em}.download-controls[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{margin:3px 10px 3px 0}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(h5,[{type:h_,args:[{selector:"data_download_dialog_component",templateUrl:"data_download_dialog_component.ng.html",styleUrls:["data_download_dialog_component.css"],changeDetection:xo.OnPush}]}],null,{cardMetadata:[{type:y_}],runs:[{type:y_}],selectedRunId:[{type:y_}],downloadUrlCsv:[{type:y_}],downloadUrlJson:[{type:y_}],runSelected:[{type:__}]});class b5{constructor(t,e,n){this.selectedRunId$=new H(null),this.cardMetadata$=t.select(kT,n.cardId).pipe(Gt((t=>Boolean(t)))),this.downloadUrlCsv$=Dt([t.select(kT,n.cardId),this.selectedRunId$]).pipe(ht((([t,n])=>t&&n?e.downloadUrl(t.plugin,t.tag,n,"csv"):null)),cn(null)),this.downloadUrlJson$=Dt([t.select(kT,n.cardId),this.selectedRunId$]).pipe(ht((([t,n])=>t&&n?e.downloadUrl(t.plugin,t.tag,n,"json"):null)),cn(null)),this.runs$=Dt([t.select(pN),t.select(PT,n.cardId)]).pipe(ht((([t,e])=>e?Object.keys(e).map((e=>t.get(e))).filter(Boolean):[])))}}function y5(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function _5(t){return 1===t.length&&(t=(function e(t){return function(e,n){return y5(t(e),n)}})(t)),{left:function(e,n,o,i){for(null==o&&(o=0),null==i&&(i=e.length);o<i;){var a=o+i>>>1;t(e[a],n)<0?o=a+1:i=a}return o},right:function(e,n,o,i){for(null==o&&(o=0),null==i&&(i=e.length);o<i;){var a=o+i>>>1;t(e[a],n)>0?i=a:o=a+1}return o}}}b5.ɵfac=function t(e){return new(e||b5)(Mu(Ek),Mu(hR),Mu(AW))},b5.ɵcmp=Uo({type:b5,selectors:[["data_download_dialog"]],decls:6,vars:15,consts:[[3,"cardMetadata","runs","selectedRunId","downloadUrlCsv","downloadUrlJson","runSelected"]],template:function t(e,n){1&e&&(Ou(0,"data_download_dialog_component",0),Nu("runSelected",(function t(e){return n.selectedRunId$.next(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Pu()),2&e&&vu("cardMetadata",Pb(1,5,n.cardMetadata$))("runs",Pb(2,7,n.runs$))("selectedRunId",Pb(3,9,n.selectedRunId$))("downloadUrlCsv",Pb(4,11,n.downloadUrlCsv$))("downloadUrlJson",Pb(5,13,n.downloadUrlJson$))},directives:[h5],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(b5,[{type:h_,args:[{selector:"data_download_dialog",template:'<data_download_dialog_component\n    [cardMetadata]="cardMetadata$ | async"\n    [runs]="runs$ | async"\n    [selectedRunId]="selectedRunId$ | async"\n    [downloadUrlCsv]="downloadUrlCsv$ | async"\n    [downloadUrlJson]="downloadUrlJson$ | async"\n    (runSelected)="selectedRunId$.next($event)"\n  ></data_download_dialog_component>',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek},{type:hR},{type:void 0,decorators:[{type:ys,args:[AW]}]}]}),null),(function(t){t[t.ORIGINAL=0]="ORIGINAL",t[t.DERIVED=1]="DERIVED"})(s5||(s5={}));var C5=_5(y5).right;function M5(t,e){var n,o,i,a=t.length,r=-1;if(null==e){for(;++r<a;)if(null!=(n=t[r])&&n>=n)for(o=i=n;++r<a;)null!=(n=t[r])&&(o>n&&(o=n),i<n&&(i=n))}else for(;++r<a;)if(null!=(n=e(t[r],r,t))&&n>=n)for(o=i=n;++r<a;)null!=(n=e(t[r],r,t))&&(o>n&&(o=n),i<n&&(i=n));return[o,i]}var v5=Array.prototype.slice;function x5(t){return function(){return t}}function O5(t){return t}function P5(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var o=-1,i=0|Math.max(0,Math.ceil((e-t)/n)),a=new Array(i);++o<i;)a[o]=t+o*n;return a}var w5=Math.sqrt(50),k5=Math.sqrt(10),S5=Math.sqrt(2);function D5(t,e,n){var o,i,a,r,s=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((o=e<t)&&(i=t,t=e,e=i),0===(r=E5(t,e,n))||!isFinite(r))return[];if(r>0)for(t=Math.ceil(t/r),e=Math.floor(e/r),a=new Array(i=Math.ceil(e-t+1));++s<i;)a[s]=(t+s)*r;else for(t=Math.floor(t*r),e=Math.ceil(e*r),a=new Array(i=Math.ceil(t-e+1));++s<i;)a[s]=(t-s)/r;return o&&a.reverse(),a}function E5(t,e,n){var o=(e-t)/Math.max(0,n),i=Math.floor(Math.log(o)/Math.LN10),a=o/Math.pow(10,i);return i>=0?(a>=w5?10:a>=k5?5:a>=S5?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=w5?10:a>=k5?5:a>=S5?2:1)}function A5(t,e,n){var o=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(o)/Math.LN10)),a=o/i;return a>=w5?i*=10:a>=k5?i*=5:a>=S5&&(i*=2),e<t?-i:i}function R5(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function T5(){var t=O5,e=M5,n=R5;function o(o){var i,a,r=o.length,s=new Array(r);for(i=0;i<r;++i)s[i]=t(o[i],i,o);var l=e(s),c=l[0],d=l[1],p=n(s,c,d);Array.isArray(p)||(p=A5(c,d,p),p=P5(Math.ceil(c/p)*p,d,p));for(var m=p.length;p[0]<=c;)p.shift(),--m;for(;p[m-1]>d;)p.pop(),--m;var u,f=new Array(m+1);for(i=0;i<=m;++i)(u=f[i]=[]).x0=i>0?p[i-1]:c,u.x1=i<m?p[i]:d;for(i=0;i<r;++i)c<=(a=s[i])&&a<=d&&f[C5(p,a,0,m)].push(o[i]);return f}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:x5(e),o):t},o.domain=function(t){return arguments.length?(e="function"==typeof t?t:x5([t[0],t[1]]),o):e},o.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?x5(v5.call(t)):x5(t),o):n},o}var N5=Array.prototype.slice;function I5(t){return t}var z5=1e-6;function H5(t){return"translate("+(t+.5)+",0)"}function F5(t){return"translate(0,"+(t+.5)+")"}function L5(t){return function(e){return+t(e)}}function B5(t){var e=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function V5(){return!this.__axis}function j5(t,e){var n=[],o=null,i=null,a=6,r=6,s=3,l=1===t||4===t?-1:1,c=4===t||2===t?"x":"y",d=1===t||3===t?H5:F5;function p(p){var m=null==o?e.ticks?e.ticks.apply(e,n):e.domain():o,u=null==i?e.tickFormat?e.tickFormat.apply(e,n):I5:i,f=Math.max(a,0)+s,g=e.range(),h=+g[0]+.5,b=+g[g.length-1]+.5,y=(e.bandwidth?B5:L5)(e.copy()),_=p.selection?p.selection():p,C=_.selectAll(".domain").data([null]),M=_.selectAll(".tick").data(m,e).order(),v=M.exit(),x=M.enter().append("g").attr("class","tick"),O=M.select("line"),P=M.select("text");C=C.merge(C.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),M=M.merge(x),O=O.merge(x.append("line").attr("stroke","currentColor").attr(c+"2",l*a)),P=P.merge(x.append("text").attr("fill","currentColor").attr(c,l*f).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),p!==_&&(C=C.transition(p),M=M.transition(p),O=O.transition(p),P=P.transition(p),v=v.transition(p).attr("opacity",z5).attr("transform",(function(t){return isFinite(t=y(t))?d(t):this.getAttribute("transform")})),x.attr("opacity",z5).attr("transform",(function(t){var e=this.parentNode.__axis;return d(e&&isFinite(e=e(t))?e:y(t))}))),v.remove(),C.attr("d",4===t||2==t?r?"M"+l*r+","+h+"H0.5V"+b+"H"+l*r:"M0.5,"+h+"V"+b:r?"M"+h+","+l*r+"V0.5H"+b+"V"+l*r:"M"+h+",0.5H"+b),M.attr("opacity",1).attr("transform",(function(t){return d(y(t))})),O.attr(c+"2",l*a),P.attr(c,l*f).text(u),_.filter(V5).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),_.each((function(){this.__axis=y}))}return p.scale=function(t){return arguments.length?(e=t,p):e},p.ticks=function(){return n=N5.call(arguments),p},p.tickArguments=function(t){return arguments.length?(n=null==t?[]:N5.call(t),p):n.slice()},p.tickValues=function(t){return arguments.length?(o=null==t?null:N5.call(t),p):o&&o.slice()},p.tickFormat=function(t){return arguments.length?(i=t,p):i},p.tickSize=function(t){return arguments.length?(a=r=+t,p):a},p.tickSizeInner=function(t){return arguments.length?(a=+t,p):a},p.tickSizeOuter=function(t){return arguments.length?(r=+t,p):r},p.tickPadding=function(t){return arguments.length?(s=+t,p):s},p}function U5(t){return j5(2,t)}function W5(t){return j5(3,t)}var G5={value:function(){}};function Y5(){for(var t,e=0,n=arguments.length,o={};e<n;++e){if(!(t=arguments[e]+"")||t in o||/[\s.]/.test(t))throw new Error("illegal type: "+t);o[t]=[]}return new q5(o)}function q5(t){this._=t}function Z5(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",o=t.indexOf(".");if(o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function X5(t,e){for(var n,o=0,i=t.length;o<i;++o)if((n=t[o]).name===e)return n.value}function K5(t,e,n){for(var o=0,i=t.length;o<i;++o)if(t[o].name===e){t[o]=G5,t=t.slice(0,o).concat(t.slice(o+1));break}return null!=n&&t.push({name:e,value:n}),t}q5.prototype=Y5.prototype={constructor:q5,on:function(t,e){var n,o=this._,i=Z5(t+"",o),a=-1,r=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<r;)if(n=(t=i[a]).type)o[n]=K5(o[n],t.name,e);else if(null==e)for(n in o)o[n]=K5(o[n],t.name,null);return this}for(;++a<r;)if((n=(t=i[a]).type)&&(n=X5(o[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new q5(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,o,i=new Array(n),a=0;a<n;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=0,n=(o=this._[t]).length;a<n;++a)o[a].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var o=this._[t],i=0,a=o.length;i<a;++i)o[i].value.apply(e,n)}};var J5="http://www.w3.org/1999/xhtml",Q5={svg:"http://www.w3.org/2000/svg",xhtml:J5,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function $5(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),Q5.hasOwnProperty(e)?{space:Q5[e],local:t}:t}function t4(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===J5&&e.documentElement.namespaceURI===J5?e.createElement(t):e.createElementNS(n,t)}}function e4(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function n4(t){var e=$5(t);return(e.local?e4:t4)(e)}function o4(){}function i4(t){return null==t?o4:function(){return this.querySelector(t)}}function a4(){return[]}function r4(t){return null==t?a4:function(){return this.querySelectorAll(t)}}function s4(t){return function(){return this.matches(t)}}function l4(t){return new Array(t.length)}function c4(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function d4(t,e,n,o,i,a){for(var r,s=0,l=e.length,c=a.length;s<c;++s)(r=e[s])?(r.__data__=a[s],o[s]=r):n[s]=new c4(t,a[s]);for(;s<l;++s)(r=e[s])&&(i[s]=r)}function p4(t,e,n,o,i,a,r){var s,l,c,d={},p=e.length,m=a.length,u=new Array(p);for(s=0;s<p;++s)(l=e[s])&&(u[s]=c="$"+r.call(l,l.__data__,s,e),c in d?i[s]=l:d[c]=l);for(s=0;s<m;++s)(l=d[c="$"+r.call(t,a[s],s,a)])?(o[s]=l,l.__data__=a[s],d[c]=null):n[s]=new c4(t,a[s]);for(s=0;s<p;++s)(l=e[s])&&d[u[s]]===l&&(i[s]=l)}function m4(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function u4(t){return function(){this.removeAttribute(t)}}function f4(t){return function(){this.removeAttributeNS(t.space,t.local)}}function g4(t,e){return function(){this.setAttribute(t,e)}}function h4(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function b4(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function y4(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function _4(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function C4(t){return function(){this.style.removeProperty(t)}}function M4(t,e,n){return function(){this.style.setProperty(t,e,n)}}function v4(t,e,n){return function(){var o=e.apply(this,arguments);null==o?this.style.removeProperty(t):this.style.setProperty(t,o,n)}}function x4(t,e){return t.style.getPropertyValue(e)||_4(t).getComputedStyle(t,null).getPropertyValue(e)}function O4(t){return function(){delete this[t]}}function P4(t,e){return function(){this[t]=e}}function w4(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function k4(t){return t.trim().split(/^|\s+/)}function S4(t){return t.classList||new D4(t)}function D4(t){this._node=t,this._names=k4(t.getAttribute("class")||"")}function E4(t,e){for(var n=S4(t),o=-1,i=e.length;++o<i;)n.add(e[o])}function A4(t,e){for(var n=S4(t),o=-1,i=e.length;++o<i;)n.remove(e[o])}function R4(t){return function(){E4(this,t)}}function T4(t){return function(){A4(this,t)}}function N4(t,e){return function(){(e.apply(this,arguments)?E4:A4)(this,t)}}function I4(){this.textContent=""}function z4(t){return function(){this.textContent=t}}function H4(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function F4(){this.innerHTML=""}function L4(t){return function(){this.innerHTML=t}}function B4(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function V4(){this.nextSibling&&this.parentNode.appendChild(this)}function j4(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function U4(){return null}function W4(){var t=this.parentNode;t&&t.removeChild(this)}function G4(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Y4(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}c4.prototype={constructor:c4,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},D4.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var q4={},Z4=null;function X4(t,e,n){return t=K4(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function K4(t,e,n){return function(o){var i=Z4;Z4=o;try{t.call(this,this.__data__,e,n)}finally{Z4=i}}}function J4(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function Q4(t){return function(){var e=this.__on;if(e){for(var n,o=0,i=-1,a=e.length;o<a;++o)n=e[o],t.type&&n.type!==t.type||n.name!==t.name?e[++i]=n:this.removeEventListener(n.type,n.listener,n.capture);++i?e.length=i:delete this.__on}}}function $4(t,e,n){var o=q4.hasOwnProperty(t.type)?X4:K4;return function(i,a,r){var s,l=this.__on,c=o(e,a,r);if(l)for(var d=0,p=l.length;d<p;++d)if((s=l[d]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=e);this.addEventListener(t.type,c,n),s={type:t.type,name:t.name,value:e,listener:c,capture:n},l?l.push(s):this.__on=[s]}}function t6(t,e,n){var o=_4(t),i=o.CustomEvent;"function"==typeof i?i=new i(e,n):(i=o.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function e6(t,e){return function(){return t6(this,t,e)}}function n6(t,e){return function(){return t6(this,t,e.apply(this,arguments))}}"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(q4={mouseenter:"mouseover",mouseleave:"mouseout"}));var o6=[null];function i6(t,e){this._groups=t,this._parents=e}function a6(){return new i6([[document.documentElement]],o6)}function r6(t){return"string"==typeof t?new i6([[document.querySelector(t)]],[document.documentElement]):new i6([[t]],o6)}function s6(){for(var t,e=Z4;t=e.sourceEvent;)e=t;return e}function l6(t,e){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,[(o=o.matrixTransform(t.getScreenCTM().inverse())).x,o.y]}var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}function c6(t){var e=s6();return e.changedTouches&&(e=e.changedTouches[0]),l6(t,e)}function d6(){Z4.preventDefault(),Z4.stopImmediatePropagation()}function p6(t){var e=t.document.documentElement,n=r6(t).on("dragstart.drag",d6,!0);"onselectstart"in e?n.on("selectstart.drag",d6,!0):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function m6(t,e){var n=t.document.documentElement,o=r6(t).on("dragstart.drag",null);e&&(o.on("click.drag",d6,!0),setTimeout((function(){o.on("click.drag",null)}),0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function u6(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function f6(t,e){var n=Object.create(t.prototype);for(var o in e)n[o]=e[o];return n}function g6(){}i6.prototype=a6.prototype={constructor:i6,select:function h6(t){"function"!=typeof t&&(t=i4(t));for(var e=this._groups,n=e.length,o=new Array(n),i=0;i<n;++i)for(var a,r,s=e[i],l=s.length,c=o[i]=new Array(l),d=0;d<l;++d)(a=s[d])&&(r=t.call(a,a.__data__,d,s))&&("__data__"in a&&(r.__data__=a.__data__),c[d]=r);return new i6(o,this._parents)},selectAll:function b6(t){"function"!=typeof t&&(t=r4(t));for(var e=this._groups,n=e.length,o=[],i=[],a=0;a<n;++a)for(var r,s=e[a],l=s.length,c=0;c<l;++c)(r=s[c])&&(o.push(t.call(r,r.__data__,c,s)),i.push(r));return new i6(o,i)},filter:function y6(t){"function"!=typeof t&&(t=s4(t));for(var e=this._groups,n=e.length,o=new Array(n),i=0;i<n;++i)for(var a,r=e[i],s=r.length,l=o[i]=[],c=0;c<s;++c)(a=r[c])&&t.call(a,a.__data__,c,r)&&l.push(a);return new i6(o,this._parents)},data:function _6(t,e){if(!t)return f=new Array(this.size()),d=-1,this.each((function(t){f[++d]=t})),f;var n=e?p4:d4,o=this._parents,i=this._groups;"function"!=typeof t&&(t=(function a(t){return function(){return t}})(t));for(var r=i.length,s=new Array(r),l=new Array(r),c=new Array(r),d=0;d<r;++d){var p=o[d],m=i[d],u=m.length,f=t.call(p,p&&p.__data__,d,o),g=f.length,h=l[d]=new Array(g),b=s[d]=new Array(g);n(p,m,h,b,c[d]=new Array(u),f,e);for(var y,_,C=0,M=0;C<g;++C)if(y=h[C]){for(C>=M&&(M=C+1);!(_=b[M])&&++M<g;);y._next=_||null}}return(s=new i6(s,o))._enter=l,s._exit=c,s},enter:function C6(){return new i6(this._enter||this._groups.map(l4),this._parents)},exit:function M6(){return new i6(this._exit||this._groups.map(l4),this._parents)},join:function v6(t,e,n){var o=this.enter(),i=this,a=this.exit();return o="function"==typeof t?t(o):o.append(t+""),null!=e&&(i=e(i)),null==n?a.remove():n(a),o&&i?o.merge(i).order():i},merge:function x6(t){for(var e=this._groups,n=t._groups,o=e.length,i=Math.min(o,n.length),a=new Array(o),r=0;r<i;++r)for(var s,l=e[r],c=n[r],d=l.length,p=a[r]=new Array(d),m=0;m<d;++m)(s=l[m]||c[m])&&(p[m]=s);for(;r<o;++r)a[r]=e[r];return new i6(a,this._parents)},order:function O6(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var o,i=t[e],a=i.length-1,r=i[a];--a>=0;)(o=i[a])&&(r&&4^o.compareDocumentPosition(r)&&r.parentNode.insertBefore(o,r),r=o);return this},sort:function P6(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=m4);for(var n=this._groups,o=n.length,i=new Array(o),a=0;a<o;++a){for(var r,s=n[a],l=s.length,c=i[a]=new Array(l),d=0;d<l;++d)(r=s[d])&&(c[d]=r);c.sort(e)}return new i6(i,this._parents).order()},call:function w6(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function k6(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t},node:function S6(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var o=t[e],i=0,a=o.length;i<a;++i){var r=o[i];if(r)return r}return null},size:function D6(){var t=0;return this.each((function(){++t})),t},empty:function E6(){return!this.node()},each:function A6(t){for(var e=this._groups,n=0,o=e.length;n<o;++n)for(var i,a=e[n],r=0,s=a.length;r<s;++r)(i=a[r])&&t.call(i,i.__data__,r,a);return this},attr:function R6(t,e){var n=$5(t);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((null==e?n.local?f4:u4:"function"==typeof e?n.local?y4:b4:n.local?h4:g4)(n,e))},style:function T6(t,e,n){return arguments.length>1?this.each((null==e?C4:"function"==typeof e?v4:M4)(t,e,null==n?"":n)):x4(this.node(),t)},property:function N6(t,e){return arguments.length>1?this.each((null==e?O4:"function"==typeof e?w4:P4)(t,e)):this.node()[t]},classed:function I6(t,e){var n=k4(t+"");if(arguments.length<2){for(var o=S4(this.node()),i=-1,a=n.length;++i<a;)if(!o.contains(n[i]))return!1;return!0}return this.each(("function"==typeof e?N4:e?R4:T4)(n,e))},text:function z6(t){return arguments.length?this.each(null==t?I4:("function"==typeof t?H4:z4)(t)):this.node().textContent},html:function H6(t){return arguments.length?this.each(null==t?F4:("function"==typeof t?B4:L4)(t)):this.node().innerHTML},raise:function F6(){return this.each(V4)},lower:function L6(){return this.each(j4)},append:function B6(t){var e="function"==typeof t?t:n4(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function V6(t,e){var n="function"==typeof t?t:n4(t),o=null==e?U4:"function"==typeof e?e:i4(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)}))},remove:function j6(){return this.each(W4)},clone:function U6(t){return this.select(t?Y4:G4)},datum:function W6(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function G6(t,e,n){var o,i,a=J4(t+""),r=a.length;if(!(arguments.length<2)){for(s=e?$4:Q4,null==n&&(n=!1),o=0;o<r;++o)this.each(s(a[o],e,n));return this}var s=this.node().__on;if(s)for(var l,c=0,d=s.length;c<d;++c)for(o=0,l=s[c];o<r;++o)if((i=a[o]).type===l.type&&i.name===l.name)return l.value},dispatch:function Y6(t,e){return this.each(("function"==typeof e?n6:e6)(t,e))}};var q6=.7,Z6=1/q6,X6="\\s*([+-]?\\d+)\\s*",K6="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",J6="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Q6=/^#([0-9a-f]{3,8})$/,$6=new RegExp("^rgb\\("+[X6,X6,X6]+"\\)$"),t7=new RegExp("^rgb\\("+[J6,J6,J6]+"\\)$"),e7=new RegExp("^rgba\\("+[X6,X6,X6,K6]+"\\)$"),n7=new RegExp("^rgba\\("+[J6,J6,J6,K6]+"\\)$"),o7=new RegExp("^hsl\\("+[K6,J6,J6]+"\\)$"),i7=new RegExp("^hsla\\("+[K6,J6,J6,K6]+"\\)$"),a7={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function r7(){return this.rgb().formatHex()}function s7(){return this.rgb().formatRgb()}function l7(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Q6.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?c7(e):3===n?new u7(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?d7(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?d7(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=$6.exec(t))?new u7(e[1],e[2],e[3],1):(e=t7.exec(t))?new u7(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=e7.exec(t))?d7(e[1],e[2],e[3],e[4]):(e=n7.exec(t))?d7(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=o7.exec(t))?b7(e[1],e[2]/100,e[3]/100,1):(e=i7.exec(t))?b7(e[1],e[2]/100,e[3]/100,e[4]):a7.hasOwnProperty(t)?c7(a7[t]):"transparent"===t?new u7(NaN,NaN,NaN,0):null}function c7(t){return new u7(t>>16&255,t>>8&255,255&t,1)}function d7(t,e,n,o){return o<=0&&(t=e=n=NaN),new u7(t,e,n,o)}function p7(t){return t instanceof g6||(t=l7(t)),t?new u7((t=t.rgb()).r,t.g,t.b,t.opacity):new u7}function m7(t,e,n,o){return 1===arguments.length?p7(t):new u7(t,e,n,null==o?1:o)}function u7(t,e,n,o){this.r=+t,this.g=+e,this.b=+n,this.opacity=+o}function f7(){return"#"+h7(this.r)+h7(this.g)+h7(this.b)}function g7(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function h7(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function b7(t,e,n,o){return o<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new C7(t,e,n,o)}function y7(t){if(t instanceof C7)return new C7(t.h,t.s,t.l,t.opacity);if(t instanceof g6||(t=l7(t)),!t)return new C7;if(t instanceof C7)return t;var e=(t=t.rgb()).r/255,n=t.g/255,o=t.b/255,i=Math.min(e,n,o),a=Math.max(e,n,o),r=NaN,s=a-i,l=(a+i)/2;return s?(r=e===a?(n-o)/s+6*(n<o):n===a?(o-e)/s+2:(e-n)/s+4,s/=l<.5?a+i:2-a-i,r*=60):s=l>0&&l<1?0:r,new C7(r,s,l,t.opacity)}function _7(t,e,n,o){return 1===arguments.length?y7(t):new C7(t,e,n,null==o?1:o)}function C7(t,e,n,o){this.h=+t,this.s=+e,this.l=+n,this.opacity=+o}function M7(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}u6(g6,l7,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:r7,formatHex:r7,formatHsl:function v7(){return y7(this).formatHsl()},formatRgb:s7,toString:s7}),u6(u7,m7,f6(g6,{brighter:function(t){return t=null==t?Z6:Math.pow(Z6,t),new u7(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?q6:Math.pow(q6,t),new u7(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:f7,formatHex:f7,formatRgb:g7,toString:g7})),u6(C7,_7,f6(g6,{brighter:function(t){return t=null==t?Z6:Math.pow(Z6,t),new C7(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?q6:Math.pow(q6,t),new C7(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*e,i=2*n-o;return new u7(M7(t>=240?t-240:t+120,i,o),M7(t,i,o),M7(t<120?t+240:t-120,i,o),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var x7=Math.PI/180,O7=180/Math.PI,P7=.96422,w7=.82521,k7=4/29,S7=6/29,D7=3*S7*S7;function E7(t){if(t instanceof A7)return new A7(t.l,t.a,t.b,t.opacity);if(t instanceof F7)return L7(t);t instanceof u7||(t=p7(t));var e,n,o=I7(t.r),i=I7(t.g),a=I7(t.b),r=R7((.2225045*o+.7168786*i+.0606169*a)/1);return o===i&&i===a?e=n=r:(e=R7((.4360747*o+.3850649*i+.1430804*a)/P7),n=R7((.0139322*o+.0971045*i+.7141733*a)/w7)),new A7(116*r-16,500*(e-r),200*(r-n),t.opacity)}function A7(t,e,n,o){this.l=+t,this.a=+e,this.b=+n,this.opacity=+o}function R7(t){return t>.008856451679035631?Math.pow(t,1/3):t/D7+k7}function T7(t){return t>S7?t*t*t:D7*(t-k7)}function N7(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function I7(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function z7(t){if(t instanceof F7)return new F7(t.h,t.c,t.l,t.opacity);if(t instanceof A7||(t=E7(t)),0===t.a&&0===t.b)return new F7(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*O7;return new F7(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function H7(t,e,n,o){return 1===arguments.length?z7(t):new F7(t,e,n,null==o?1:o)}function F7(t,e,n,o){this.h=+t,this.c=+e,this.l=+n,this.opacity=+o}function L7(t){if(isNaN(t.h))return new A7(t.l,0,0,t.opacity);var e=t.h*x7;return new A7(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}function B7(t){return function(){return t}}function V7(t,e){return function(n){return t+n*e}}function j7(t,e){var n=e-t;return n?V7(t,n>180||n<-180?n-360*Math.round(n/360):n):B7(isNaN(t)?e:t)}function U7(t,e){var n=e-t;return n?V7(t,n):B7(isNaN(t)?e:t)}u6(A7,(function W7(t,e,n,o){return 1===arguments.length?E7(t):new A7(t,e,n,null==o?1:o)}),f6(g6,{brighter:function(t){return new A7(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new A7(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return new u7(N7(3.1338561*(e=P7*T7(e))-1.6168667*(t=1*T7(t))-.4906146*(n=w7*T7(n))),N7(-.9787684*e+1.9161415*t+.033454*n),N7(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),u6(F7,H7,f6(g6,{brighter:function(t){return new F7(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new F7(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return L7(this).rgb()}}));var G7=(function t(e){var n=(function o(t){return 1==(t=+t)?U7:function(e,n){return n-e?(function o(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(o){return Math.pow(t+o*e,n)}})(e,n,t):B7(isNaN(e)?n:e)}})(e);function i(t,e){var o=n((t=m7(t)).r,(e=m7(e)).r),i=n(t.g,e.g),a=n(t.b,e.b),r=U7(t.opacity,e.opacity);return function(e){return t.r=o(e),t.g=i(e),t.b=a(e),t.opacity=r(e),t+""}}return i.gamma=t,i})(1),Y7=(function Z7(t){return function(e){var n,o,i=e.length,a=new Array(i),r=new Array(i),s=new Array(i);for(n=0;n<i;++n)o=m7(e[n]),a[n]=o.r||0,r[n]=o.g||0,s[n]=o.b||0;return a=t(a),r=t(r),s=t(s),o.opacity=1,function(t){return o.r=a(t),o.g=r(t),o.b=s(t),o+""}}})((function q7(t){var e=t.length-1;return function(n){var o=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[o],a=t[o+1];return(function r(t,e,n,o,i){var a=t*t,r=a*t;return((1-3*t+3*a-r)*e+(4-6*a+3*r)*n+(1+3*t+3*a-3*r)*o+r*i)/6})((n-o/e)*e,o>0?t[o-1]:2*i-a,i,a,o<e-1?t[o+2]:2*a-i)}}));function X7(t,e){e||(e=[]);var n,o=t?Math.min(e.length,t.length):0,i=e.slice();return function(a){for(n=0;n<o;++n)i[n]=t[n]*(1-a)+e[n]*a;return i}}function K7(t,e){var n,o=e?e.length:0,i=t?Math.min(o,t.length):0,a=new Array(i),r=new Array(o);for(n=0;n<i;++n)a[n]=o8(t[n],e[n]);for(;n<o;++n)r[n]=e[n];return function(t){for(n=0;n<i;++n)r[n]=a[n](t);return r}}function J7(t,e){var n=new Date;return t=+t,e=+e,function(o){return n.setTime(t*(1-o)+e*o),n}}function Q7(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function $7(t,e){var n,o={},i={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?o[n]=o8(t[n],e[n]):i[n]=e[n];return function(t){for(n in o)i[n]=o[n](t);return i}}var t8=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,e8=new RegExp(t8.source,"g");function n8(t,e){var n,o,i,a=t8.lastIndex=e8.lastIndex=0,r=-1,s=[],l=[];for(t+="",e+="";(n=t8.exec(t))&&(o=e8.exec(e));)(i=o.index)>a&&(i=e.slice(a,i),s[r]?s[r]+=i:s[++r]=i),(n=n[0])===(o=o[0])?s[r]?s[r]+=o:s[++r]=o:(s[++r]=null,l.push({i:r,x:Q7(n,o)})),a=e8.lastIndex;return a<e.length&&(i=e.slice(a),s[r]?s[r]+=i:s[++r]=i),s.length<2?l[0]?(function c(t){return function(e){return t(e)+""}})(l[0].x):(function d(t){return function(){return t}})(e):(e=l.length,function(t){for(var n,o=0;o<e;++o)s[(n=l[o]).i]=n.x(t);return s.join("")})}function o8(t,e){var n,o=typeof e;return null==e||"boolean"===o?B7(e):("number"===o?Q7:"string"===o?(n=l7(e))?(e=n,G7):n8:e instanceof l7?G7:e instanceof Date?J7:(function i(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)})(e)?X7:Array.isArray(e)?K7:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?$7:Q7)(t,e)}function i8(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var a8,r8,s8,l8,c8=180/Math.PI,d8={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function p8(t,e,n,o,i,a){var r,s,l;return(r=Math.sqrt(t*t+e*e))&&(t/=r,e/=r),(l=t*n+e*o)&&(n-=t*l,o-=e*l),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,l/=s),t*o<e*n&&(t=-t,e=-e,l=-l,r=-r),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*c8,skewX:Math.atan(l)*c8,scaleX:r,scaleY:s}}function m8(t,e,n,o){function i(t){return t.length?t.pop()+" ":""}return function(a,r){var s=[],l=[];return a=t(a),r=t(r),(function c(t,o,i,a,r,s){if(t!==i||o!==a){var l=r.push("translate(",null,e,null,n);s.push({i:l-4,x:Q7(t,i)},{i:l-2,x:Q7(o,a)})}else(i||a)&&r.push("translate("+i+e+a+n)})(a.translateX,a.translateY,r.translateX,r.translateY,s,l),(function d(t,e,n,a){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),a.push({i:n.push(i(n)+"rotate(",null,o)-2,x:Q7(t,e)})):e&&n.push(i(n)+"rotate("+e+o)})(a.rotate,r.rotate,s,l),(function p(t,e,n,a){t!==e?a.push({i:n.push(i(n)+"skewX(",null,o)-2,x:Q7(t,e)}):e&&n.push(i(n)+"skewX("+e+o)})(a.skewX,r.skewX,s,l),(function m(t,e,n,o,a,r){if(t!==n||e!==o){var s=a.push(i(a)+"scale(",null,",",null,")");r.push({i:s-4,x:Q7(t,n)},{i:s-2,x:Q7(e,o)})}else 1===n&&1===o||a.push(i(a)+"scale("+n+","+o+")")})(a.scaleX,a.scaleY,r.scaleX,r.scaleY,s,l),a=r=null,function(t){for(var e,n=-1,o=l.length;++n<o;)s[(e=l[n]).i]=e.x(t);return s.join("")}}}var u8,f8,g8=m8((function h8(t){return"none"===t?d8:(a8||(a8=document.createElement("DIV"),r8=document.documentElement,s8=document.defaultView),a8.style.transform=t,t=s8.getComputedStyle(r8.appendChild(a8),null).getPropertyValue("transform"),r8.removeChild(a8),p8(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),b8=m8((function y8(t){return null==t?d8:(l8||(l8=document.createElementNS("http://www.w3.org/2000/svg","g")),l8.setAttribute("transform",t),(t=l8.transform.baseVal.consolidate())?p8((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):d8)}),", ",")",")"),_8=(function C8(t){return function(e,n){var o=t((e=_7(e)).h,(n=_7(n)).h),i=U7(e.s,n.s),a=U7(e.l,n.l),r=U7(e.opacity,n.opacity);return function(t){return e.h=o(t),e.s=i(t),e.l=a(t),e.opacity=r(t),e+""}}})(j7),M8=(function v8(t){return function(e,n){var o=t((e=H7(e)).h,(n=H7(n)).h),i=U7(e.c,n.c),a=U7(e.l,n.l),r=U7(e.opacity,n.opacity);return function(t){return e.h=o(t),e.c=i(t),e.l=a(t),e.opacity=r(t),e+""}}})(j7),x8=0,O8=0,P8=0,w8=0,k8=0,S8=0,D8="object"==typeof performance&&performance.now?performance:Date,E8="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function A8(){return k8||(E8(R8),k8=D8.now()+S8)}function R8(){k8=0}function T8(){this._call=this._time=this._next=null}function N8(t,e,n){var o=new T8;return o.restart(t,e,n),o}function I8(){k8=(w8=D8.now())+S8,x8=O8=0;try{!(function t(){A8(),++x8;for(var t,e=u8;e;)(t=k8-e._time)>=0&&e._call.call(null,t),e=e._next;--x8})()}finally{x8=0,(function e(){for(var t,e,n=u8,o=1/0;n;)n._call?(o>n._time&&(o=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:u8=e);f8=t,H8(o)})(),k8=0}}function z8(){var t=D8.now(),e=t-w8;e>1e3&&(S8-=e,w8=t)}function H8(t){x8||(O8&&(O8=clearTimeout(O8)),t-k8>24?(t<1/0&&(O8=setTimeout(I8,t-D8.now()-S8)),P8&&(P8=clearInterval(P8))):(P8||(w8=D8.now(),P8=setInterval(z8,1e3)),x8=1,E8(I8)))}function F8(t,e,n){var o=new T8;return o.restart((function(n){o.stop(),t(n+e)}),e=null==e?0:+e,n),o}T8.prototype=N8.prototype={constructor:T8,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?A8():+n)+(null==e?0:+e),this._next||f8===this||(f8?f8._next=this:u8=this,f8=this),this._call=t,this._time=n,H8()},stop:function(){this._call&&(this._call=null,this._time=1/0,H8())}};var L8=Y5("start","end","cancel","interrupt"),B8=[];function V8(t,e,n,o,i,a){var r=t.__transition;if(r){if(n in r)return}else t.__transition={};!(function s(t,e,n){var o,i=t.__transition;function a(l){var c,d,p,m;if(1!==n.state)return s();for(c in i)if((m=i[c]).name===n.name){if(3===m.state)return F8(a);4===m.state?(m.state=6,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete i[c]):+c<e&&(m.state=6,m.timer.stop(),m.on.call("cancel",t,t.__data__,m.index,m.group),delete i[c])}if(F8((function(){3===n.state&&(n.state=4,n.timer.restart(r,n.delay,n.time),r(l))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,o=new Array(p=n.tween.length),c=0,d=-1;c<p;++c)(m=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(o[++d]=m);o.length=d+1}}function r(e){for(var i=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(s),n.state=5,1),a=-1,r=o.length;++a<r;)o[a].call(t,i);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),s())}function s(){for(var o in n.state=6,n.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=n,n.timer=N8((function l(t){n.state=1,n.timer.restart(a,n.delay,n.time),n.delay<=t&&a(t-n.delay)}),0,n.time)})(t,n,{name:e,index:o,group:i,on:L8,tween:B8,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function j8(t,e){var n=W8(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function U8(t,e){var n=W8(t,e);if(n.state>3)throw new Error("too late; already running");return n}function W8(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function G8(t,e){var n,o,i,a=t.__transition,r=!0;if(a){for(i in e=null==e?null:e+"",a)(n=a[i]).name===e?(o=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(o?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete a[i]):r=!1;r&&delete t.__transition}}function Y8(t,e){var n,o;return function(){var i=U8(this,t),a=i.tween;if(a!==n)for(var r=0,s=(o=n=a).length;r<s;++r)if(o[r].name===e){(o=o.slice()).splice(r,1);break}i.tween=o}}function q8(t,e,n){var o,i;if("function"!=typeof n)throw new Error;return function(){var a=U8(this,t),r=a.tween;if(r!==o){i=(o=r).slice();for(var s={name:e,value:n},l=0,c=i.length;l<c;++l)if(i[l].name===e){i[l]=s;break}l===c&&i.push(s)}a.tween=i}}function Z8(t,e,n){var o=t._id;return t.each((function(){var t=U8(this,o);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return W8(t,o).value[e]}}function X8(t,e){var n;return("number"==typeof e?Q7:e instanceof l7?G7:(n=l7(e))?(e=n,G7):n8)(t,e)}function K8(t){return function(){this.removeAttribute(t)}}function J8(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Q8(t,e,n){var o,i,a=n+"";return function(){var r=this.getAttribute(t);return r===a?null:r===o?i:i=e(o=r,n)}}function $8(t,e,n){var o,i,a=n+"";return function(){var r=this.getAttributeNS(t.space,t.local);return r===a?null:r===o?i:i=e(o=r,n)}}function t9(t,e,n){var o,i,a;return function(){var r,s,l=n(this);if(null!=l)return(r=this.getAttribute(t))===(s=l+"")?null:r===o&&s===i?a:(i=s,a=e(o=r,l));this.removeAttribute(t)}}function e9(t,e,n){var o,i,a;return function(){var r,s,l=n(this);if(null!=l)return(r=this.getAttributeNS(t.space,t.local))===(s=l+"")?null:r===o&&s===i?a:(i=s,a=e(o=r,l));this.removeAttributeNS(t.space,t.local)}}function n9(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function o9(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function i9(t,e){var n,o;function i(){var i=e.apply(this,arguments);return i!==o&&(n=(o=i)&&o9(t,i)),n}return i._value=e,i}function a9(t,e){var n,o;function i(){var i=e.apply(this,arguments);return i!==o&&(n=(o=i)&&n9(t,i)),n}return i._value=e,i}function r9(t,e){return function(){j8(this,t).delay=+e.apply(this,arguments)}}function s9(t,e){return e=+e,function(){j8(this,t).delay=e}}function l9(t,e){return function(){U8(this,t).duration=+e.apply(this,arguments)}}function c9(t,e){return e=+e,function(){U8(this,t).duration=e}}function d9(t,e){if("function"!=typeof e)throw new Error;return function(){U8(this,t).ease=e}}function p9(t,e,n){var o,i,a=(function r(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))})(e)?j8:U8;return function(){var r=a(this,t),s=r.on;s!==o&&(i=(o=s).copy()).on(e,n),r.on=i}}var m9=a6.prototype.constructor;function u9(t){return function(){this.style.removeProperty(t)}}function f9(t,e,n){return function(o){this.style.setProperty(t,e.call(this,o),n)}}function g9(t,e,n){var o,i;function a(){var a=e.apply(this,arguments);return a!==i&&(o=(i=a)&&f9(t,a,n)),o}return a._value=e,a}function h9(t){return function(e){this.textContent=t.call(this,e)}}function b9(t){var e,n;function o(){var o=t.apply(this,arguments);return o!==n&&(e=(n=o)&&h9(o)),e}return o._value=t,o}var y9=0;function _9(t,e,n,o){this._groups=t,this._parents=e,this._name=n,this._id=o}function C9(){return++y9}var M9=a6.prototype;_9.prototype={constructor:_9,select:function v9(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=i4(t));for(var o=this._groups,i=o.length,a=new Array(i),r=0;r<i;++r)for(var s,l,c=o[r],d=c.length,p=a[r]=new Array(d),m=0;m<d;++m)(s=c[m])&&(l=t.call(s,s.__data__,m,c))&&("__data__"in s&&(l.__data__=s.__data__),p[m]=l,V8(p[m],e,n,m,p,W8(s,n)));return new _9(a,this._parents,e,n)},selectAll:function x9(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=r4(t));for(var o=this._groups,i=o.length,a=[],r=[],s=0;s<i;++s)for(var l,c=o[s],d=c.length,p=0;p<d;++p)if(l=c[p]){for(var m,u=t.call(l,l.__data__,p,c),f=W8(l,n),g=0,h=u.length;g<h;++g)(m=u[g])&&V8(m,e,n,g,u,f);a.push(u),r.push(l)}return new _9(a,r,e,n)},filter:function O9(t){"function"!=typeof t&&(t=s4(t));for(var e=this._groups,n=e.length,o=new Array(n),i=0;i<n;++i)for(var a,r=e[i],s=r.length,l=o[i]=[],c=0;c<s;++c)(a=r[c])&&t.call(a,a.__data__,c,r)&&l.push(a);return new _9(o,this._parents,this._name,this._id)},merge:function P9(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,o=e.length,i=Math.min(o,n.length),a=new Array(o),r=0;r<i;++r)for(var s,l=e[r],c=n[r],d=l.length,p=a[r]=new Array(d),m=0;m<d;++m)(s=l[m]||c[m])&&(p[m]=s);for(;r<o;++r)a[r]=e[r];return new _9(a,this._parents,this._name,this._id)},selection:function w9(){return new m9(this._groups,this._parents)},transition:function k9(){for(var t=this._name,e=this._id,n=C9(),o=this._groups,i=o.length,a=0;a<i;++a)for(var r,s=o[a],l=s.length,c=0;c<l;++c)if(r=s[c]){var d=W8(r,e);V8(r,t,n,c,s,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new _9(o,this._parents,t,n)},call:M9.call,nodes:M9.nodes,node:M9.node,size:M9.size,empty:M9.empty,each:M9.each,on:function S9(t,e){var n=this._id;return arguments.length<2?W8(this.node(),n).on.on(t):this.each(p9(n,t,e))},attr:function D9(t,e){var n=$5(t),o="transform"===n?b8:X8;return this.attrTween(t,"function"==typeof e?(n.local?e9:t9)(n,o,Z8(this,"attr."+t,e)):null==e?(n.local?J8:K8)(n):(n.local?$8:Q8)(n,o,e))},attrTween:function E9(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var o=$5(t);return this.tween(n,(o.local?i9:a9)(o,e))},style:function A9(t,e,n){var o="transform"==(t+="")?g8:X8;return null==e?this.styleTween(t,(function i(t,e){var n,o,i;return function(){var a=x4(this,t),r=(this.style.removeProperty(t),x4(this,t));return a===r?null:a===n&&r===o?i:i=e(n=a,o=r)}})(t,o)).on("end.style."+t,u9(t)):"function"==typeof e?this.styleTween(t,(function r(t,e,n){var o,i,a;return function(){var r=x4(this,t),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(t),l=s=x4(this,t)),r===l?null:r===o&&l===i?a:(i=l,a=e(o=r,s))}})(t,o,Z8(this,"style."+t,e))).each((function a(t,e){var n,o,i,a,r="style."+e,s="end."+r;return function(){var l=U8(this,t),c=l.on,d=null==l.value[r]?a||(a=u9(e)):void 0;c===n&&i===d||(o=(n=c).copy()).on(s,i=d),l.on=o}})(this._id,t)):this.styleTween(t,(function s(t,e,n){var o,i,a=n+"";return function(){var r=x4(this,t);return r===a?null:r===o?i:i=e(o=r,n)}})(t,o,e),n).on("end.style."+t,null)},styleTween:function R9(t,e,n){var o="style."+(t+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==e)return this.tween(o,null);if("function"!=typeof e)throw new Error;return this.tween(o,g9(t,e,null==n?"":n))},text:function T9(t){return this.tween("text","function"==typeof t?(function e(t){return function(){var e=t(this);this.textContent=null==e?"":e}})(Z8(this,"text",t)):(function n(t){return function(){this.textContent=t}})(null==t?"":t+""))},textTween:function N9(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,b9(t))},remove:function I9(){return this.on("end.remove",(function t(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}})(this._id))},tween:function z9(t,e){var n=this._id;if(t+="",arguments.length<2){for(var o,i=W8(this.node(),n).tween,a=0,r=i.length;a<r;++a)if((o=i[a]).name===t)return o.value;return null}return this.each((null==e?Y8:q8)(n,t,e))},delay:function H9(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?r9:s9)(e,t)):W8(this.node(),e).delay},duration:function F9(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?l9:c9)(e,t)):W8(this.node(),e).duration},ease:function L9(t){var e=this._id;return arguments.length?this.each(d9(e,t)):W8(this.node(),e).ease},end:function B9(){var t,e,n=this,o=n._id,i=n.size();return new Promise((function(a,r){var s={value:r},l={value:function(){0==--i&&a()}};n.each((function(){var n=U8(this,o),i=n.on;i!==t&&((e=(t=i).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),n.on=e}))}))}};var V9={time:null,delay:0,duration:250,ease:function j9(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function U9(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))return V9.time=A8(),V9;return n}function W9(t){return function(){return t}}function G9(t,e,n){this.target=t,this.type=e,this.selection=n}function Y9(){Z4.stopImmediatePropagation()}function q9(){Z4.preventDefault(),Z4.stopImmediatePropagation()}a6.prototype.interrupt=function Z9(t){return this.each((function(){G8(this,t)}))},a6.prototype.transition=function X9(t){var e,n;t instanceof _9?(e=t._id,t=t._name):(e=C9(),(n=V9).time=A8(),t=null==t?null:t+"");for(var o=this._groups,i=o.length,a=0;a<i;++a)for(var r,s=o[a],l=s.length,c=0;c<l;++c)(r=s[c])&&V8(r,t,e,c,s,n||U9(r,e));return new _9(o,this._parents,t,e)};var K9={name:"drag"},J9={name:"space"},Q9={name:"handle"},$9={name:"center"};function ttt(t){return[+t[0],+t[1]]}function ett(t){return[ttt(t[0]),ttt(t[1])]}function ntt(t){return function(e){return(function n(t,e,o){arguments.length<3&&(o=e,e=s6().changedTouches);for(var i,a=0,r=e?e.length:0;a<r;++a)if((i=e[a]).identifier===o)return l6(t,i);return null})(e,Z4.touches,t)}}var ott={name:"x",handles:["w","e"].map(dtt),input:function(t,e){return null==t?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},itt={name:"y",handles:["n","s"].map(dtt),input:function(t,e){return null==t?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},att={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},rtt={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},stt={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},ltt={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},ctt={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function dtt(t){return{type:t}}function ptt(){return!Z4.ctrlKey&&!Z4.button}function mtt(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function utt(){return navigator.maxTouchPoints||"ontouchstart"in this}function ftt(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function gtt(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}var htt=Math.PI,btt=2*htt,ytt=1e-6,_tt=btt-ytt;function Ctt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Mtt(){return new Ctt}Ctt.prototype=Mtt.prototype={constructor:Ctt,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,o){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+o)},bezierCurveTo:function(t,e,n,o,i,a){this._+="C"+ +t+","+ +e+","+ +n+","+ +o+","+(this._x1=+i)+","+(this._y1=+a)},arcTo:function(t,e,n,o,i){var a=this._x1,r=this._y1,s=(n=+n)-(t=+t),l=(o=+o)-(e=+e),c=a-t,d=r-e,p=c*c+d*d;if((i=+i)<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(p>ytt)if(Math.abs(d*s-l*c)>ytt&&i){var m=n-a,u=o-r,f=s*s+l*l,g=m*m+u*u,h=Math.sqrt(f),b=Math.sqrt(p),y=i*Math.tan((htt-Math.acos((f+p-g)/(2*h*b)))/2),_=y/b,C=y/h;Math.abs(_-1)>ytt&&(this._+="L"+(t+_*c)+","+(e+_*d)),this._+="A"+i+","+i+",0,0,"+ +(d*m>c*u)+","+(this._x1=t+C*s)+","+(this._y1=e+C*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,o,i,a){t=+t,e=+e,a=!!a;var r=(n=+n)*Math.cos(o),s=n*Math.sin(o),l=t+r,c=e+s,d=1^a,p=a?o-i:i-o;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>ytt||Math.abs(this._y1-c)>ytt)&&(this._+="L"+l+","+c),n&&(p<0&&(p=p%btt+btt),p>_tt?this._+="A"+n+","+n+",0,1,"+d+","+(t-r)+","+(e-s)+"A"+n+","+n+",0,1,"+d+","+(this._x1=l)+","+(this._y1=c):p>ytt&&(this._+="A"+n+","+n+",0,"+ +(p>=htt)+","+d+","+(this._x1=t+n*Math.cos(i))+","+(this._y1=e+n*Math.sin(i))))},rect:function(t,e,n,o){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +o+"h"+-n+"Z"},toString:function(){return this._}};var vtt="$";function xtt(){}function Ott(t,e){var n=new xtt;if(t instanceof xtt)t.each((function(t,e){n.set(e,t)}));else if(Array.isArray(t)){var o,i=-1,a=t.length;if(null==e)for(;++i<a;)n.set(i,t[i]);else for(;++i<a;)n.set(e(o=t[i],i,t),o)}else if(t)for(var r in t)n.set(r,t[r]);return n}function Ptt(){}xtt.prototype=Ott.prototype={constructor:xtt,has:function(t){return vtt+t in this},get:function(t){return this[vtt+t]},set:function(t,e){return this[vtt+t]=e,this},remove:function(t){var e=vtt+t;return e in this&&delete this[e]},clear:function(){for(var t in this)t[0]===vtt&&delete this[t]},keys:function(){var t=[];for(var e in this)e[0]===vtt&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)e[0]===vtt&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)e[0]===vtt&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)e[0]===vtt&&++t;return t},empty:function(){for(var t in this)if(t[0]===vtt)return!1;return!0},each:function(t){for(var e in this)e[0]===vtt&&t(this[e],e.slice(1),this)}};var wtt=Ott.prototype;function ktt(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,o=t.slice(0,n);return[o.length>1?o[0]+o.slice(2):o,+t.slice(n+1)]}function Stt(t){return(t=ktt(Math.abs(t)))?t[1]:NaN}Ptt.prototype={constructor:Ptt,has:wtt.has,add:function(t){return this[vtt+(t+="")]=t,this},remove:wtt.remove,clear:wtt.clear,values:wtt.keys,size:wtt.size,empty:wtt.empty,each:wtt.each};var Dtt,Ett=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Att(t){if(!(e=Ett.exec(t)))throw new Error("invalid format: "+t);var e;return new Rtt({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function Rtt(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Ttt(t,e){var n=ktt(t,e);if(!n)return t+"";var o=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+o:o.length>i+1?o.slice(0,i+1)+"."+o.slice(i+1):o+new Array(i-o.length+2).join("0")}Att.prototype=Rtt.prototype,Rtt.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Ntt={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function Itt(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return Ttt(100*t,e)},r:Ttt,s:function ztt(t,e){var n=ktt(t,e);if(!n)return t+"";var o=n[0],i=n[1],a=i-(Dtt=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,r=o.length;return a===r?o:a>r?o+new Array(a-r+1).join("0"):a>0?o.slice(0,a)+"."+o.slice(a):"0."+new Array(1-a).join("0")+ktt(t,Math.max(0,e+a-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function Htt(t){return t}var Ftt,Ltt,Btt,Vtt=Array.prototype.map,jtt=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Utt(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}!(function Wtt(t){Ftt=(function e(t){var e=void 0===t.grouping||void 0===t.thousands?Htt:(function n(t,e){return function(n,o){for(var i=n.length,a=[],r=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>o&&(s=Math.max(1,o-l)),a.push(n.substring(i-=s,i+s)),!((l+=s+1)>o));)s=t[r=(r+1)%t.length];return a.reverse().join(e)}})(Vtt.call(t.grouping,Number),t.thousands+""),o=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",r=void 0===t.numerals?Htt:(function s(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}})(Vtt.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"-":t.minus+"",d=void 0===t.nan?"NaN":t.nan+"";function p(t){var n=(t=Att(t)).fill,s=t.align,p=t.sign,m=t.symbol,u=t.zero,f=t.width,g=t.comma,h=t.precision,b=t.trim,y=t.type;"n"===y?(g=!0,y="g"):Ntt[y]||(void 0===h&&(h=12),b=!0,y="g"),(u||"0"===n&&"="===s)&&(u=!0,n="0",s="=");var _="$"===m?o:"#"===m&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",C="$"===m?i:/[%p]/.test(y)?l:"",M=Ntt[y],v=/[defgprs%]/.test(y);function x(t){var o,i,l,m=_,x=C;if("c"===y)x=M(t)+x,t="";else{var O=(t=+t)<0||1/t<0;if(t=isNaN(t)?d:M(Math.abs(t),h),b&&(t=(function P(t){t:for(var e,n=t.length,o=1,i=-1;o<n;++o)switch(t[o]){case".":i=e=o;break;case"0":0===i&&(i=o),e=o;break;default:if(!+t[o])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t})(t)),O&&0==+t&&"+"!==p&&(O=!1),m=(O?"("===p?p:c:"-"===p||"("===p?"":p)+m,x=("s"===y?jtt[8+Dtt/3]:"")+x+(O&&"("===p?")":""),v)for(o=-1,i=t.length;++o<i;)if(48>(l=t.charCodeAt(o))||l>57){x=(46===l?a+t.slice(o+1):t.slice(o))+x,t=t.slice(0,o);break}}g&&!u&&(t=e(t,1/0));var w=m.length+t.length+x.length,k=w<f?new Array(f-w+1).join(n):"";switch(g&&u&&(t=e(k+t,k.length?f-x.length:1/0),k=""),s){case"<":t=m+t+x+k;break;case"=":t=m+k+t+x;break;case"^":t=k.slice(0,w=k.length>>1)+m+t+x+k.slice(w);break;default:t=k+m+t+x}return r(t)}return h=void 0===h?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),x.toString=function(){return t+""},x}return{format:p,formatPrefix:function m(t,e){var n=p(((t=Att(t)).type="f",t)),o=3*Math.max(-8,Math.min(8,Math.floor(Stt(e)/3))),i=Math.pow(10,-o),a=jtt[8+o/3];return function(t){return n(i*t)+a}}}})(t),Ltt=Ftt.format,Btt=Ftt.formatPrefix})({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});var Gtt=Array.prototype,Ytt=Gtt.map,qtt=Gtt.slice,Ztt={name:"implicit"};function Xtt(){var t=Ott(),e=[],n=[],o=Ztt;function i(i){var a=i+"",r=t.get(a);if(!r){if(o!==Ztt)return o;t.set(a,r=e.push(i))}return n[(r-1)%n.length]}return i.domain=function(n){if(!arguments.length)return e.slice();e=[],t=Ott();for(var o,a,r=-1,s=n.length;++r<s;)t.has(a=(o=n[r])+"")||t.set(a,e.push(o));return i},i.range=function(t){return arguments.length?(n=qtt.call(t),i):n.slice()},i.unknown=function(t){return arguments.length?(o=t,i):o},i.copy=function(){return Xtt(e,n).unknown(o)},Utt.apply(i,arguments),i}function Ktt(){var t,e,n=Xtt().unknown(void 0),o=n.domain,i=n.range,a=[0,1],r=!1,s=0,l=0,c=.5;function d(){var n=o().length,d=a[1]<a[0],p=a[d-0],m=a[1-d];t=(m-p)/Math.max(1,n-s+2*l),r&&(t=Math.floor(t)),p+=(m-p-t*(n-s))*c,e=t*(1-s),r&&(p=Math.round(p),e=Math.round(e));var u=P5(n).map((function(e){return p+t*e}));return i(d?u.reverse():u)}return delete n.unknown,n.domain=function(t){return arguments.length?(o(t),d()):o()},n.range=function(t){return arguments.length?(a=[+t[0],+t[1]],d()):a.slice()},n.rangeRound=function(t){return a=[+t[0],+t[1]],r=!0,d()},n.bandwidth=function(){return e},n.step=function(){return t},n.round=function(t){return arguments.length?(r=!!t,d()):r},n.padding=function(t){return arguments.length?(s=Math.min(1,l=+t),d()):s},n.paddingInner=function(t){return arguments.length?(s=Math.min(1,t),d()):s},n.paddingOuter=function(t){return arguments.length?(l=+t,d()):l},n.align=function(t){return arguments.length?(c=Math.max(0,Math.min(1,t)),d()):c},n.copy=function(){return Ktt(o(),a).round(r).paddingInner(s).paddingOuter(l).align(c)},Utt.apply(d(),arguments)}function Jtt(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return Jtt(e())},t}function Qtt(){return Jtt(Ktt.apply(null,arguments).paddingInner(1))}function $tt(t){return+t}var tet=[0,1];function eet(t){return t}function net(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:(function n(t){return function(){return t}})(isNaN(e)?NaN:.5)}function oet(t){var e,n=t[0],o=t[t.length-1];return n>o&&(e=n,n=o,o=e),function(t){return Math.max(n,Math.min(o,t))}}function iet(t,e,n){var o=t[0],i=t[1],a=e[0],r=e[1];return i<o?(o=net(i,o),a=n(r,a)):(o=net(o,i),a=n(a,r)),function(t){return a(o(t))}}function aet(t,e,n){var o=Math.min(t.length,e.length)-1,i=new Array(o),a=new Array(o),r=-1;for(t[o]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++r<o;)i[r]=net(t[r],t[r+1]),a[r]=n(e[r],e[r+1]);return function(e){var n=C5(t,e,1,o)-1;return a[n](i[n](e))}}function ret(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function set(){var t,e,n,o,i,a,r=tet,s=tet,l=o8,c=eet;function d(){return o=Math.min(r.length,s.length)>2?aet:iet,i=a=null,p}function p(e){return isNaN(e=+e)?n:(i||(i=o(r.map(t),s,l)))(t(c(e)))}return p.invert=function(n){return c(e((a||(a=o(s,r.map(t),Q7)))(n)))},p.domain=function(t){return arguments.length?(r=Ytt.call(t,$tt),c===eet||(c=oet(r)),d()):r.slice()},p.range=function(t){return arguments.length?(s=qtt.call(t),d()):s.slice()},p.rangeRound=function(t){return s=qtt.call(t),l=i8,d()},p.clamp=function(t){return arguments.length?(c=t?oet(r):eet,p):c!==eet},p.interpolate=function(t){return arguments.length?(l=t,d()):l},p.unknown=function(t){return arguments.length?(n=t,p):n},function(n,o){return t=n,e=o,d()}}function cet(t,e){return set()(t,e)}function det(t){var e=t.domain;return t.ticks=function(t){var n=e();return D5(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var o=e();return(function i(t,e,n,o){var i,a=A5(t,e,n);switch((o=Att(null==o?",f":o)).type){case"s":var r=Math.max(Math.abs(t),Math.abs(e));return null!=o.precision||isNaN(i=(function s(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Stt(e)/3)))-Stt(Math.abs(t)))})(a,r))||(o.precision=i),Btt(o,r);case"":case"e":case"g":case"p":case"r":null!=o.precision||isNaN(i=(function l(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Stt(e)-Stt(t))+1})(a,Math.max(Math.abs(t),Math.abs(e))))||(o.precision=i-("e"===o.type));break;case"f":case"%":null!=o.precision||isNaN(i=(function c(t){return Math.max(0,-Stt(Math.abs(t)))})(a))||(o.precision=i-2*("%"===o.type))}return Ltt(o)})(o[0],o[o.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var o,i=e(),a=0,r=i.length-1,s=i[a],l=i[r];return l<s&&(o=s,s=l,l=o,o=a,a=r,r=o),(o=E5(s,l,n))>0?o=E5(s=Math.floor(s/o)*o,l=Math.ceil(l/o)*o,n):o<0&&(o=E5(s=Math.ceil(s*o)/o,l=Math.floor(l*o)/o,n)),o>0?(i[a]=Math.floor(s/o)*o,i[r]=Math.ceil(l/o)*o,e(i)):o<0&&(i[a]=Math.ceil(s*o)/o,i[r]=Math.floor(l*o)/o,e(i)),t},t}function pet(){var t=cet(eet,eet);return t.copy=function(){return ret(t,pet())},Utt.apply(t,arguments),det(t)}function met(t,e){var n,o=0,i=(t=t.slice()).length-1,a=t[o],r=t[i];return r<a&&(n=o,o=i,i=n,n=a,a=r,r=n),t[o]=e.floor(a),t[i]=e.ceil(r),t}function uet(t){return Math.log(t)}function fet(t){return Math.exp(t)}function get(t){return-Math.log(-t)}function het(t){return-Math.exp(-t)}function bet(t){return isFinite(t)?+("1e"+t):t<0?0:t}function yet(t){return function(e){return-t(-e)}}function _et(t){var e,n,o=t(uet,fet),i=o.domain,a=10;function r(){return e=(function r(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(e){return Math.log(e)/t})})(a),n=(function s(t){return 10===t?bet:t===Math.E?Math.exp:function(e){return Math.pow(t,e)}})(a),i()[0]<0?(e=yet(e),n=yet(n),t(get,het)):t(uet,fet),o}return o.base=function(t){return arguments.length?(a=+t,r()):a},o.domain=function(t){return arguments.length?(i(t),r()):i()},o.ticks=function(t){var o,r=i(),s=r[0],l=r[r.length-1];(o=l<s)&&(m=s,s=l,l=m);var c,d,p,m=e(s),u=e(l),f=null==t?10:+t,g=[];if(!(a%1)&&u-m<f){if(m=Math.round(m)-1,u=Math.round(u)+1,s>0){for(;m<u;++m)for(d=1,c=n(m);d<a;++d)if(!((p=c*d)<s)){if(p>l)break;g.push(p)}}else for(;m<u;++m)for(d=a-1,c=n(m);d>=1;--d)if(!((p=c*d)<s)){if(p>l)break;g.push(p)}}else g=D5(m,u,Math.min(u-m,f)).map(n);return o?g.reverse():g},o.tickFormat=function(t,i){if(null==i&&(i=10===a?".0e":","),"function"!=typeof i&&(i=Ltt(i)),t===1/0)return i;null==t&&(t=10);var r=Math.max(1,a*t/o.ticks().length);return function(t){var o=t/n(Math.round(e(t)));return o*a<a-.5&&(o*=a),o<=r?i(t):""}},o.nice=function(){return i(met(i(),{floor:function(t){return n(Math.floor(e(t)))},ceil:function(t){return n(Math.ceil(e(t)))}}))},o}function Cet(){var t=_et(set()).domain([1,10]);return t.copy=function(){return ret(t,Cet()).base(t.base())},Utt.apply(t,arguments),t}var Met=new Date,vet=new Date;function xet(t,e,n,o){function i(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return i.floor=function(e){return t(e=new Date(+e)),e},i.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},i.round=function(t){var e=i(t),n=i.ceil(t);return t-e<n-t?e:n},i.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},i.range=function(n,o,a){var r,s=[];if(n=i.ceil(n),a=null==a?1:Math.floor(a),!(n<o&&a>0))return s;do{s.push(r=new Date(+n)),e(n,a),t(n)}while(r<n&&n<o);return s},i.filter=function(n){return xet((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,o){if(t>=t)if(o<0)for(;++o<=0;)for(;e(t,-1),!n(t););else for(;--o>=0;)for(;e(t,1),!n(t););}))},n&&(i.count=function(e,o){return Met.setTime(+e),vet.setTime(+o),t(Met),t(vet),Math.floor(n(Met,vet))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(o?function(e){return o(e)%t==0}:function(e){return i.count(0,e)%t==0}):i:null}),i}var Oet=xet((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));Oet.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?xet((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):Oet:null};var Pet=1e3,wet=6e4,ket=36e5,Det=864e5,Eet=6048e5,Aet=xet((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*Pet)}),(function(t,e){return(e-t)/Pet}),(function(t){return t.getUTCSeconds()})),Ret=xet((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Pet)}),(function(t,e){t.setTime(+t+e*wet)}),(function(t,e){return(e-t)/wet}),(function(t){return t.getMinutes()})),Tet=xet((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Pet-t.getMinutes()*wet)}),(function(t,e){t.setTime(+t+e*ket)}),(function(t,e){return(e-t)/ket}),(function(t){return t.getHours()})),Net=xet((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*wet)/Det}),(function(t){return t.getDate()-1}));function Iet(t){return xet((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*wet)/Eet}))}var zet=Iet(0),Het=Iet(1);Iet(2),Iet(3);var Fet=Iet(4);Iet(5),Iet(6);var Let=xet((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),Bet=xet((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));Bet.every=function(t){return isFinite(t=Math.floor(t))&&t>0?xet((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var Vet=xet((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/Det}),(function(t){return t.getUTCDate()-1}));function jet(t){return xet((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/Eet}))}var Uet=jet(0),Wet=jet(1);jet(2),jet(3);var Get=jet(4);jet(5),jet(6);var Yet=xet((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));function qet(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Zet(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Xet(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}Yet.every=function(t){return isFinite(t=Math.floor(t))&&t>0?xet((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var Ket,Jet,Qet={"-":"",_:" ",0:"0"},$et=/^\s*\d+/,tnt=/^%/,ent=/[\\^$*+?|[\]().{}]/g;function nnt(t,e,n){var o=t<0?"-":"",i=(o?-t:t)+"",a=i.length;return o+(a<n?new Array(n-a+1).join(e)+i:i)}function ont(t){return t.replace(ent,"\\$&")}function int(t){return new RegExp("^(?:"+t.map(ont).join("|")+")","i")}function ant(t){for(var e={},n=-1,o=t.length;++n<o;)e[t[n].toLowerCase()]=n;return e}function rnt(t,e,n){var o=$et.exec(e.slice(n,n+1));return o?(t.w=+o[0],n+o[0].length):-1}function snt(t,e,n){var o=$et.exec(e.slice(n,n+1));return o?(t.u=+o[0],n+o[0].length):-1}function lnt(t,e,n){var o=$et.exec(e.slice(n,n+2));return o?(t.U=+o[0],n+o[0].length):-1}function cnt(t,e,n){var o=$et.exec(e.slice(n,n+2));return o?(t.V=+o[0],n+o[0].length):-1}function dnt(t,e,n){var o=$et.exec(e.slice(n,n+2));return o?(t.W=+o[0],n+o[0].length):-1}function pnt(t,e,n){var o=$et.exec(e.slice(n,n+4));return o?(t.y=+o[0],n+o[0].length):-1}function mnt(t,e,n){var o=$et.exec(e.slice(n,n+2));return o?(t.y=+o[0]+(+o[0]>68?1900:2e3),n+o[0].length):-1}function unt(t,e,n){var o=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return o?(t.Z=o[1]?0:-(o[2]+(o[3]||"00")),n+o[0].length):-1}function fnt(t,e,n){var o=$et.exec(e.slice(n,n+1));return o?(t.q=3*o[0]-3,n+o[0].length):-1}function gnt(t,e,n){var o=$et.exec(e.slice(n,n+2));return o?(t.m=o[0]-1,n+o[0].length):-1}function hnt(t,e,n){var o=$et.exec(e.slice(n,n+2));return o?(t.d=+o[0],n+o[0].length):-1}function bnt(t,e,n){var o=$et.exec(e.slice(n,n+3));return o?(t.m=0,t.d=+o[0],n+o[0].length):-1}function ynt(t,e,n){var o=$et.exec(e.slice(n,n+2));return o?(t.H=+o[0],n+o[0].length):-1}function _nt(t,e,n){var o=$et.exec(e.slice(n,n+2));return o?(t.M=+o[0],n+o[0].length):-1}function Cnt(t,e,n){var o=$et.exec(e.slice(n,n+2));return o?(t.S=+o[0],n+o[0].length):-1}function Mnt(t,e,n){var o=$et.exec(e.slice(n,n+3));return o?(t.L=+o[0],n+o[0].length):-1}function vnt(t,e,n){var o=$et.exec(e.slice(n,n+6));return o?(t.L=Math.floor(o[0]/1e3),n+o[0].length):-1}function xnt(t,e,n){var o=tnt.exec(e.slice(n,n+1));return o?n+o[0].length:-1}function Ont(t,e,n){var o=$et.exec(e.slice(n));return o?(t.Q=+o[0],n+o[0].length):-1}function Pnt(t,e,n){var o=$et.exec(e.slice(n));return o?(t.s=+o[0],n+o[0].length):-1}function wnt(t,e){return nnt(t.getDate(),e,2)}function knt(t,e){return nnt(t.getHours(),e,2)}function Snt(t,e){return nnt(t.getHours()%12||12,e,2)}function Dnt(t,e){return nnt(1+Net.count(Bet(t),t),e,3)}function Ent(t,e){return nnt(t.getMilliseconds(),e,3)}function Ant(t,e){return Ent(t,e)+"000"}function Rnt(t,e){return nnt(t.getMonth()+1,e,2)}function Tnt(t,e){return nnt(t.getMinutes(),e,2)}function Nnt(t,e){return nnt(t.getSeconds(),e,2)}function Int(t){var e=t.getDay();return 0===e?7:e}function znt(t,e){return nnt(zet.count(Bet(t)-1,t),e,2)}function Hnt(t){var e=t.getDay();return e>=4||0===e?Fet(t):Fet.ceil(t)}function Fnt(t,e){return t=Hnt(t),nnt(Fet.count(Bet(t),t)+(4===Bet(t).getDay()),e,2)}function Lnt(t){return t.getDay()}function Bnt(t,e){return nnt(Het.count(Bet(t)-1,t),e,2)}function Vnt(t,e){return nnt(t.getFullYear()%100,e,2)}function jnt(t,e){return nnt((t=Hnt(t)).getFullYear()%100,e,2)}function Unt(t,e){return nnt(t.getFullYear()%1e4,e,4)}function Wnt(t,e){var n=t.getDay();return nnt((t=n>=4||0===n?Fet(t):Fet.ceil(t)).getFullYear()%1e4,e,4)}function Gnt(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+nnt(e/60|0,"0",2)+nnt(e%60,"0",2)}function Ynt(t,e){return nnt(t.getUTCDate(),e,2)}function qnt(t,e){return nnt(t.getUTCHours(),e,2)}function Znt(t,e){return nnt(t.getUTCHours()%12||12,e,2)}function Xnt(t,e){return nnt(1+Vet.count(Yet(t),t),e,3)}function Knt(t,e){return nnt(t.getUTCMilliseconds(),e,3)}function Jnt(t,e){return Knt(t,e)+"000"}function Qnt(t,e){return nnt(t.getUTCMonth()+1,e,2)}function $nt(t,e){return nnt(t.getUTCMinutes(),e,2)}function tot(t,e){return nnt(t.getUTCSeconds(),e,2)}function eot(t){var e=t.getUTCDay();return 0===e?7:e}function not(t,e){return nnt(Uet.count(Yet(t)-1,t),e,2)}function oot(t){var e=t.getUTCDay();return e>=4||0===e?Get(t):Get.ceil(t)}function iot(t,e){return t=oot(t),nnt(Get.count(Yet(t),t)+(4===Yet(t).getUTCDay()),e,2)}function aot(t){return t.getUTCDay()}function rot(t,e){return nnt(Wet.count(Yet(t)-1,t),e,2)}function sot(t,e){return nnt(t.getUTCFullYear()%100,e,2)}function lot(t,e){return nnt((t=oot(t)).getUTCFullYear()%100,e,2)}function cot(t,e){return nnt(t.getUTCFullYear()%1e4,e,4)}function dot(t,e){var n=t.getUTCDay();return nnt((t=n>=4||0===n?Get(t):Get.ceil(t)).getUTCFullYear()%1e4,e,4)}function pot(){return"+0000"}function mot(){return"%"}function uot(t){return+t}function fot(t){return Math.floor(+t/1e3)}!(function got(t){Ket=(function e(t){var e=t.dateTime,n=t.date,o=t.time,i=t.periods,a=t.days,r=t.shortDays,s=t.months,l=t.shortMonths,c=int(i),d=ant(i),p=int(a),m=ant(a),u=int(r),f=ant(r),g=int(s),h=ant(s),b=int(l),y=ant(l),_={a:function C(t){return r[t.getDay()]},A:function M(t){return a[t.getDay()]},b:function v(t){return l[t.getMonth()]},B:function x(t){return s[t.getMonth()]},c:null,d:wnt,e:wnt,f:Ant,g:jnt,G:Wnt,H:knt,I:Snt,j:Dnt,L:Ent,m:Rnt,M:Tnt,p:function O(t){return i[+(t.getHours()>=12)]},q:function P(t){return 1+~~(t.getMonth()/3)},Q:uot,s:fot,S:Nnt,u:Int,U:znt,V:Fnt,w:Lnt,W:Bnt,x:null,X:null,y:Vnt,Y:Unt,Z:Gnt,"%":mot},w={a:function k(t){return r[t.getUTCDay()]},A:function S(t){return a[t.getUTCDay()]},b:function D(t){return l[t.getUTCMonth()]},B:function E(t){return s[t.getUTCMonth()]},c:null,d:Ynt,e:Ynt,f:Jnt,g:lot,G:dot,H:qnt,I:Znt,j:Xnt,L:Knt,m:Qnt,M:$nt,p:function A(t){return i[+(t.getUTCHours()>=12)]},q:function R(t){return 1+~~(t.getUTCMonth()/3)},Q:uot,s:fot,S:tot,u:eot,U:not,V:iot,w:aot,W:rot,x:null,X:null,y:sot,Y:cot,Z:pot,"%":mot},T={a:function N(t,e,n){var o=u.exec(e.slice(n));return o?(t.w=f[o[0].toLowerCase()],n+o[0].length):-1},A:function I(t,e,n){var o=p.exec(e.slice(n));return o?(t.w=m[o[0].toLowerCase()],n+o[0].length):-1},b:function z(t,e,n){var o=b.exec(e.slice(n));return o?(t.m=y[o[0].toLowerCase()],n+o[0].length):-1},B:function H(t,e,n){var o=g.exec(e.slice(n));return o?(t.m=h[o[0].toLowerCase()],n+o[0].length):-1},c:function F(t,n,o){return W(t,e,n,o)},d:hnt,e:hnt,f:vnt,g:mnt,G:pnt,H:ynt,I:ynt,j:bnt,L:Mnt,m:gnt,M:_nt,p:function L(t,e,n){var o=c.exec(e.slice(n));return o?(t.p=d[o[0].toLowerCase()],n+o[0].length):-1},q:fnt,Q:Ont,s:Pnt,S:Cnt,u:snt,U:lnt,V:cnt,w:rnt,W:dnt,x:function B(t,e,o){return W(t,n,e,o)},X:function V(t,e,n){return W(t,o,e,n)},y:mnt,Y:pnt,Z:unt,"%":xnt};function j(t,e){return function(n){var o,i,a,r=[],s=-1,l=0,c=t.length;for(n instanceof Date||(n=new Date(+n));++s<c;)37===t.charCodeAt(s)&&(r.push(t.slice(l,s)),null!=(i=Qet[o=t.charAt(++s)])?o=t.charAt(++s):i="e"===o?" ":"0",(a=e[o])&&(o=a(n,i)),r.push(o),l=s+1);return r.push(t.slice(l,s)),r.join("")}}function U(t,e){return function(n){var o,i,a=Xet(1900,void 0,1);if(W(a,t,n+="",0)!=n.length)return null;if("Q"in a)return new Date(a.Q);if("s"in a)return new Date(1e3*a.s+("L"in a?a.L:0));if(e&&!("Z"in a)&&(a.Z=0),"p"in a&&(a.H=a.H%12+12*a.p),void 0===a.m&&(a.m="q"in a?a.q:0),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(o=Zet(Xet(a.y,0,1))).getUTCDay(),o=i>4||0===i?Wet.ceil(o):Wet(o),o=Vet.offset(o,7*(a.V-1)),a.y=o.getUTCFullYear(),a.m=o.getUTCMonth(),a.d=o.getUTCDate()+(a.w+6)%7):(i=(o=qet(Xet(a.y,0,1))).getDay(),o=i>4||0===i?Het.ceil(o):Het(o),o=Net.offset(o,7*(a.V-1)),a.y=o.getFullYear(),a.m=o.getMonth(),a.d=o.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?Zet(Xet(a.y,0,1)).getUTCDay():qet(Xet(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,Zet(a)):qet(a)}}function W(t,e,n,o){for(var i,a,r=0,s=e.length,l=n.length;r<s;){if(o>=l)return-1;if(37===(i=e.charCodeAt(r++))){if(i=e.charAt(r++),!(a=T[i in Qet?e.charAt(r++):i])||(o=a(t,n,o))<0)return-1}else if(i!=n.charCodeAt(o++))return-1}return o}return _.x=j(n,_),_.X=j(o,_),_.c=j(e,_),w.x=j(n,w),w.X=j(o,w),w.c=j(e,w),{format:function(t){var e=j(t+="",_);return e.toString=function(){return t},e},parse:function(t){var e=U(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=j(t+="",w);return e.toString=function(){return t},e},utcParse:function(t){var e=U(t+="",!0);return e.toString=function(){return t},e}}})(t),Jet=Ket.format})({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var hot=31536e6;function bot(t){return new Date(t)}function yot(t){return t instanceof Date?+t:+new Date(+t)}function _ot(t,e,n,o,i,a,r,s,l){var c=cet(eet,eet),d=c.invert,p=c.domain,m=l(".%L"),u=l(":%S"),f=l("%I:%M"),g=l("%I %p"),h=l("%a %d"),b=l("%b %d"),y=l("%B"),_=l("%Y"),C=[[r,1,1e3],[r,5,5e3],[r,15,15e3],[r,30,3e4],[a,1,6e4],[a,5,3e5],[a,15,9e5],[a,30,18e5],[i,1,36e5],[i,3,108e5],[i,6,216e5],[i,12,432e5],[o,1,864e5],[o,2,1728e5],[n,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,hot]];function M(s){return(r(s)<s?m:a(s)<s?u:i(s)<s?f:o(s)<s?g:e(s)<s?n(s)<s?h:b:t(s)<s?y:_)(s)}function v(e,n,o,i){if(null==e&&(e=10),"number"==typeof e){var a=Math.abs(o-n)/e,r=_5((function(t){return t[2]})).right(C,a);r===C.length?(i=A5(n/hot,o/hot,e),e=t):r?(i=(r=C[a/C[r-1][2]<C[r][2]/a?r-1:r])[1],e=r[0]):(i=Math.max(A5(n,o,e),1),e=s)}return null==i?e:e.every(i)}return c.invert=function(t){return new Date(d(t))},c.domain=function(t){return arguments.length?p(Ytt.call(t,yot)):p().map(bot)},c.ticks=function(t,e){var n,o=p(),i=o[0],a=o[o.length-1],r=a<i;return r&&(n=i,i=a,a=n),n=(n=v(t,i,a,e))?n.range(i,a+1):[],r?n.reverse():n},c.tickFormat=function(t,e){return null==e?M:l(e)},c.nice=function(t,e){var n=p();return(t=v(t,n[0],n[n.length-1],e))?p(met(n,t)):c},c.copy=function(){return ret(c,_ot(t,e,n,o,i,a,r,s,l))},c}function Cot(){return Utt.apply(_ot(Bet,Let,zet,Net,Tet,Ret,Aet,Oet,Jet).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Mot(t){for(var e=t.length/6|0,n=new Array(e),o=0;o<e;)n[o]="#"+t.slice(6*o,6*++o);return n}function vot(t){return Y7(t[t.length-1])}var xot=vot(new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Mot)),Oot=vot(new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Mot)),Pot=vot(new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Mot));function wot(t){return function e(){return t}}function kot(t){this._context=t}function Sot(t){return new kot(t)}function Dot(t){return t[0]}function Eot(t){return t[1]}function Aot(){var t=Dot,e=Eot,n=wot(!0),o=null,i=Sot,a=null;function r(r){var s,l,c,d=r.length,p=!1;for(null==o&&(a=i(c=Mtt())),s=0;s<=d;++s)!(s<d&&n(l=r[s],s,r))===p&&((p=!p)?a.lineStart():a.lineEnd()),p&&a.point(+t(l,s,r),+e(l,s,r));if(c)return a=null,c+""||null}return r.x=function(e){return arguments.length?(t="function"==typeof e?e:wot(+e),r):t},r.y=function(t){return arguments.length?(e="function"==typeof t?t:wot(+t),r):e},r.defined=function(t){return arguments.length?(n="function"==typeof t?t:wot(!!t),r):n},r.curve=function(t){return arguments.length?(i=t,null!=o&&(a=i(o)),r):i},r.context=function(t){return arguments.length?(null==t?o=a=null:a=i(o=t),r):o},r}function Rot(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function Tot(t,e){this._context=t,this._k=(1-e)/6}function Not(t,e){this._context=t,this._alpha=e}kot.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},Tot.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Rot(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Rot(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},Not.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,o=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+o*o,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:!(function i(t,e,n){var o=t._x1,i=t._y1,a=t._x2,r=t._y2;if(t._l01_a>1e-12){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);o=(o*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>1e-12){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,d=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*c+t._x1*t._l23_2a-e*t._l12_2a)/d,r=(r*c+t._y1*t._l23_2a-n*t._l12_2a)/d}t._context.bezierCurveTo(o,i,a,r,t._x2,t._y2)})(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Iot=(function t(e){function n(t){return e?new Not(t,e):new Tot(t,0)}return n.alpha=function(e){return t(+e)},n})(.5);const zot=1e4,Hot=.001,Fot=Ltt(".2~e"),Lot=Ltt(".4~r"),Bot=Ltt(",~");function Vot(t){if(0===t)return"0";const e=Math.abs(t);return e>=zot||e<Hot?Fot(t):Lot(t)}const jot={formatTick:Vot,formatShort:Vot,formatReadable(t){const e=Math.abs(t);return e>=zot||e<Hot?Fot(t):Bot(t)},formatLong:Bot},Uot=Ltt("0.3~s"),Wot=Ltt(",.3~f");function Got(t){const e=Math.abs(t);return e>=zot||e<Hot?Uot(t):Wot(t)}const Yot={formatTick:Got,formatShort:Got,formatReadable:Got,formatLong:Got},qot=36e5,Zot=864e5,Xot=31536e6,Kot=Ltt(".4~");function Jot(t){if(0===t)return"0";let e=Math.sign(t)>0?"":"-";const n=Math.abs(t);return e+=n<1e3?`${Kot(n)} ms`:n<6e4?`${Kot(n/1e3)} sec`:n<qot?`${Kot(n/6e4)} min`:n<Zot?`${Kot(n/qot)} hr`:n<Xot?`${Kot(n/Zot)} day`:`${Kot(n/Xot)} yr`,e}const Qot={formatTick:Jot,formatShort:Jot,formatReadable:Jot,formatLong:Jot},$ot=Cot().tickFormat();let tit;const eit={formatTick:t=>$ot(new Date(t)),formatShort:t=>new Date(t).toLocaleString(tit,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"}),formatReadable:t=>new Date(t).toLocaleString(tit,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}),formatLong:t=>new Date(t).toLocaleString(tit,{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short",fractionalSecondDigits:3})};function nit(t){switch(t){case r5.LINEAR:return new oit;case r5.LOG10:return new iit;case r5.TIME:return new ait;default:throw new RangeError(`ScaleType ${t} not supported.`)}}class oit{constructor(){this.defaultFormatter=jot}transform(t,e,n){const[o,i]=t,a=i-o,[r,s]=e;return 0===a?r:(s-r)/a*(n-o)+r}forward(t,e,n){return this.transform(t,e,n)}reverse(t,e,n){return this.transform(e,t,n)}niceDomain(t){let[e,n]=t;if(n<e)throw new Error("Unexpected input: min is larger than max");if(n===e)return 0===e?[-1,1]:e<0?[2*e,0]:[0,2*e];const o=pet(),i=.05*(n-e+Number.EPSILON),[a,r]=o.domain([e-i,n+i]).nice().domain();return[a,r]}ticks(t,e){return pet().domain(t).ticks(e)}isSafeNumber(t){return Number.isFinite(t)}}class iit{constructor(){this.defaultFormatter=jot}transform(t){return Math.log10(t>0?t:Number.MIN_VALUE)}untransform(t){return Math.exp(t/Math.LOG10E)}forward(t,e,n){if(n<=0)return e[0];const[o,i]=t,[a,r]=e,s=this.transform(o),l=this.transform(i)-s,c=r-a;return n=this.transform(n),c/(l+Number.EPSILON)*(n-s)+a}reverse(t,e,n){const[o,i]=t,[a,r]=e,s=this.transform(o),l=this.transform(i);return this.untransform((l-s)/(r-a+Number.EPSILON)*(n-a)+s)}niceDomain(t){const[e,n]=t;if(e>n)throw new Error("Unexpected input: min is larger than max");const o=Math.max(e,Number.MIN_VALUE),i=Math.max(n,Number.MIN_VALUE);return n<=0?[Number.MIN_VALUE,1]:[Math.max(Number.MIN_VALUE,.5*o),2*i]}ticks(t,e){const n=t[0]<=0?Number.MIN_VALUE:t[0],o=t[1]<=0?Number.MIN_VALUE:t[1],i=Cet().domain([n,o]).ticks(e);return i.length?i:t}isSafeNumber(t){return Number.isFinite(t)&&t>0}}class ait{constructor(){this.scale=Cot(),this.defaultFormatter=eit}forward(t,e,n){return this.scale.domain(t).range(e)(n)}reverse(t,e,n){return this.scale.domain(t).range(e).invert(n).getTime()}niceDomain(t){const[e,n]=this.scale.domain(t).nice().domain();return[e.getTime(),n.getTime()]}ticks(t,e){return this.scale.domain(t).ticks(e).map((t=>t.getTime()))}isSafeNumber(t){return Number.isFinite(t)}}const rit=Boolean(self.hasOwnProperty("document")&&document.createElement("canvas").getContext("webgl2"));function sit(){return self.hasOwnProperty("OffscreenCanvas")}function lit(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}class cit{constructor(){this.xScale=nit(r5.LINEAR),this.yScale=nit(r5.LINEAR),this.domContainerRect={x:0,width:1,y:0,height:1},this.lastUpdated=0,this.currentViewBoxRect={x:0,width:1,y:0,height:1}}getUpdateIdentifier(){return this.lastUpdated}updateIdentifier(){this.lastUpdated++}isYAxisPointedDown(){return!0}setXScale(t){this.xScale=t,this.updateIdentifier()}setYScale(t){this.yScale=t,this.updateIdentifier()}getCurrentViewBoxRect(){return this.currentViewBoxRect}setViewBoxRect(t){this.currentViewBoxRect=t,this.updateIdentifier()}setDomContainerRect(t){this.domContainerRect=t,this.updateIdentifier()}transformDataToUiCoord(t,e){const n=t,o=(function i(t){return{x:[t.x,t.x+t.width],y:[t.y,t.y+t.height]}})(this.currentViewBoxRect);return[this.xScale.forward(o.x,[n.x,n.x+n.width],e[0]),this.yScale.forward(o.y,this.isYAxisPointedDown()?[n.y+n.height,n.y]:[n.y,n.y+n.height],e[1])]}}function dit(t,e,n,o){const{color:i,visible:a,opacity:r}=o;let s=t;if(s){if(!a)return s.style.display="none",s}else{if(!a)return null;s=e()}return s=n(s),s.style.display="",s.style.stroke=i,s.style.opacity=String(null!=r?r:1),s}class pit{constructor(t){this.svg=t}flush(){}onResize(t){}destroyObject(t){this.svg.removeChild(t.dom)}setUseDarkMode(t){}createPathDString(t){if(!t.length)return"";const e=new Array(t.length/2);e[0]=`M${t[0]},${t[1]}`;for(let n=1;n<t.length/2;n++)e[n]=`L${t[2*n]},${t[2*n+1]}`;return e.join("")}createOrUpdateLineObject(t,e,n){const o=dit(null==t?void 0:t.dom,(()=>{const t=document.createElementNS("http://www.w3.org/2000/svg","path");t.style.fill="none";const n=this.createPathDString(e);return t.setAttribute("d",n),this.svg.appendChild(t),t}),(n=>{if(!(null==t?void 0:t.data)||!lit(e,null==t?void 0:t.data)){const t=this.createPathDString(e);n.setAttribute("d",t)}return n}),n);return null===o?null:(o.style.strokeWidth=String(n.width),{dom:o,data:e})}createOrUpdateTriangleObject(t,e,n){const{size:o,color:i}=n,a=o*Math.sqrt(3)/2,r=new Float32Array([e.x-o/2,e.y+a/3,e.x+o/2,e.y+a/3,e.x,e.y-2*a/3]),s=dit(null==t?void 0:t.dom,(()=>{const t=document.createElementNS("http://www.w3.org/2000/svg","path");t.classList.add("triangle"),t.style.fill="none";const e=this.createPathDString(r);return t.setAttribute("d",e+"Z"),this.svg.appendChild(t),t}),(t=>{const e=this.createPathDString(r);return t.setAttribute("d",e+"Z"),t}),n);return null===s?null:(s.style.fill=i,{dom:s,data:r})}createOrUpdateCircleObject(t,e,n){const{color:o,radius:i}=n,a=dit(null==t?void 0:t.dom,(()=>{const t=document.createElementNS("http://www.w3.org/2000/svg","circle");return t.style.fill=o,t.setAttribute("cx",String(e.x)),t.setAttribute("cy",String(e.y)),t.setAttribute("r",String(i)),this.svg.appendChild(t),t}),(t=>(t.style.fill=o,t.setAttribute("cx",String(e.x)),t.setAttribute("cy",String(e.y)),t.setAttribute("r",String(i)),t)),n);return null===a?null:{dom:a,data:e}}createOrUpdateTrapezoidObject(t,e,n,o){if(e.y!==n.y)throw new RangeError("Input error: start.y != end.y.");const{altitude:i,color:a}=o,r=2/Math.sqrt(3)*i,s=new Float32Array([e.x-r/2,e.y+i/2,e.x,e.y-i/2,n.x,n.y-i/2,n.x+r/2,n.y+i/2]),l=dit(null==t?void 0:t.dom,(()=>{const t=document.createElementNS("http://www.w3.org/2000/svg","path");t.classList.add("trapezoid"),t.style.fill="none";const e=this.createPathDString(s);return t.setAttribute("d",e+"Z"),this.svg.appendChild(t),t}),(t=>{const e=this.createPathDString(s);return t.setAttribute("d",e+"Z"),t}),o);return null===l?null:(l.style.fill=a,{dom:l,data:s})}}const mit=100,uit=1e3,fit=1001,git=1002,hit=1003,bit=1006,yit=1008,_it=1012,Cit=1014,Mit=1015,vit=1016,xit=1020,Oit=1022,Pit=1023,wit=1026,kit=1027,Sit=2300,Dit=2301,Eit=2302,Ait=2400,Rit=2401,Tit=2402,Nit=3e3,Iit=7680,zit=35044,Hit=35048,Fit="300 es";function Lit(){}Object.assign(Lit.prototype,{addEventListener:function(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)},hasEventListener:function(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)},removeEventListener:function(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}},dispatchEvent:function(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,o=n.length;e<o;e++)n[e].call(this,t)}}});const Bit=[];for(let t=0;t<256;t++)Bit[t]=(t<16?"0":"")+t.toString(16);let Vit=1234567;const jit={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,o=4294967295*Math.random()|0;return(Bit[255&t]+Bit[t>>8&255]+Bit[t>>16&255]+Bit[t>>24&255]+"-"+Bit[255&e]+Bit[e>>8&255]+"-"+Bit[e>>16&15|64]+Bit[e>>24&255]+"-"+Bit[63&n|128]+Bit[n>>8&255]+"-"+Bit[n>>16&255]+Bit[n>>24&255]+Bit[255&o]+Bit[o>>8&255]+Bit[o>>16&255]+Bit[o>>24&255]).toUpperCase()},clamp:function(t,e,n){return Math.max(e,Math.min(n,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,n,o,i){return o+(t-e)*(i-o)/(n-e)},lerp:function(t,e,n){return(1-n)*t+n*e},damp:function(t,e,n,o){return jit.lerp(t,e,1-Math.exp(-n*o))},pingpong:function(t,e=1){return e-Math.abs(jit.euclideanModulo(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(Vit=t%2147483647),Vit=16807*Vit%2147483647,(Vit-1)/2147483646},degToRad:function(t){return t*jit.DEG2RAD},radToDeg:function(t){return t*jit.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))},setQuaternionFromProperEuler:function(t,e,n,o,i){const a=Math.cos,r=Math.sin,s=a(n/2),l=r(n/2),c=a((e+o)/2),d=r((e+o)/2),p=a((e-o)/2),m=r((e-o)/2),u=a((o-e)/2),f=r((o-e)/2);switch(i){case"XYX":t.set(s*d,l*p,l*m,s*c);break;case"YZY":t.set(l*m,s*d,l*p,s*c);break;case"ZXZ":t.set(l*p,l*m,s*d,s*c);break;case"XZX":t.set(s*d,l*f,l*u,s*c);break;case"YXY":t.set(l*u,s*d,l*f,s*c);break;case"ZYZ":t.set(l*f,l*u,s*d,s*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}};class Uit{constructor(t=0,e=0){Object.defineProperty(this,"isVector2",{value:!0}),this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,o=t.elements;return this.x=o[0]*e+o[3]*n+o[6],this.y=o[1]*e+o[4]*n+o[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),o=Math.sin(e),i=this.x-t.x,a=this.y-t.y;return this.x=i*n-a*o+t.x,this.y=i*o+a*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}class Wit{constructor(){Object.defineProperty(this,"isMatrix3",{value:!0}),this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,o,i,a,r,s,l){const c=this.elements;return c[0]=t,c[1]=o,c[2]=r,c[3]=e,c[4]=i,c[5]=s,c[6]=n,c[7]=a,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}clone(){return(new this.constructor).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,o=e.elements,i=this.elements,a=n[0],r=n[3],s=n[6],l=n[1],c=n[4],d=n[7],p=n[2],m=n[5],u=n[8],f=o[0],g=o[3],h=o[6],b=o[1],y=o[4],_=o[7],C=o[2],M=o[5],v=o[8];return i[0]=a*f+r*b+s*C,i[3]=a*g+r*y+s*M,i[6]=a*h+r*_+s*v,i[1]=l*f+c*b+d*C,i[4]=l*g+c*y+d*M,i[7]=l*h+c*_+d*v,i[2]=p*f+m*b+u*C,i[5]=p*g+m*y+u*M,i[8]=p*h+m*_+u*v,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],o=t[2],i=t[3],a=t[4],r=t[5],s=t[6],l=t[7],c=t[8];return e*a*c-e*r*l-n*i*c+n*r*s+o*i*l-o*a*s}invert(){const t=this.elements,e=t[0],n=t[1],o=t[2],i=t[3],a=t[4],r=t[5],s=t[6],l=t[7],c=t[8],d=c*a-r*l,p=r*s-c*i,m=l*i-a*s,u=e*d+n*p+o*m;if(0===u)return this.set(0,0,0,0,0,0,0,0,0);const f=1/u;return t[0]=d*f,t[1]=(o*l-c*n)*f,t[2]=(r*n-o*a)*f,t[3]=p*f,t[4]=(c*e-o*s)*f,t[5]=(o*i-r*e)*f,t[6]=m*f,t[7]=(n*s-l*e)*f,t[8]=(a*e-n*i)*f,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).copy(this).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,o,i,a,r){const s=Math.cos(i),l=Math.sin(i);return this.set(n*s,n*l,-n*(s*a+l*r)+a+t,-o*l,o*s,-o*(-l*a+s*r)+r+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),o=this.elements,i=o[0],a=o[3],r=o[6],s=o[1],l=o[4],c=o[7];return o[0]=e*i+n*s,o[3]=e*a+n*l,o[6]=e*r+n*c,o[1]=-n*i+e*s,o[4]=-n*a+e*l,o[7]=-n*r+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}}let Git;const Yit={getDataURL:function(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===Git&&(Git=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),Git.width=t.width,Git.height=t.height;const n=Git.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=Git}return e.width>2048||e.height>2048?e.toDataURL("image/jpeg",.6):e.toDataURL("image/png")}};let qit=0;function Zit(t=Zit.DEFAULT_IMAGE,e=Zit.DEFAULT_MAPPING,n=1001,o=1001,i=1006,a=1008,r=1023,s=1009,l=1,c=3e3){Object.defineProperty(this,"id",{value:qit++}),this.uuid=jit.generateUUID(),this.name="",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=o,this.magFilter=i,this.minFilter=a,this.anisotropy=l,this.format=r,this.internalFormat=null,this.type=s,this.offset=new Uit(0,0),this.repeat=new Uit(1,1),this.center=new Uit(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Wit,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}function Xit(t){return"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap?Yit.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}Zit.DEFAULT_IMAGE=void 0,Zit.DEFAULT_MAPPING=300,Zit.prototype=Object.assign(Object.create(Lit.prototype),{constructor:Zit,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},toJSON:function(t){const e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const o=this.image;if(void 0===o.uuid&&(o.uuid=jit.generateUUID()),!e&&void 0===t.images[o.uuid]){let e;if(Array.isArray(o)){e=[];for(let t=0,n=o.length;t<n;t++)e.push(Xit(o[t].isDataTexture?o[t].image:o[t]))}else e=Xit(o);t.images[o.uuid]={uuid:o.uuid,url:e}}n.image=o.uuid}return e||(t.textures[this.uuid]=n),n},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case uit:t.x=t.x-Math.floor(t.x);break;case fit:t.x=t.x<0?0:1;break;case git:t.x=1===Math.abs(Math.floor(t.x)%2)?Math.ceil(t.x)-t.x:t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case uit:t.y=t.y-Math.floor(t.y);break;case fit:t.y=t.y<0?0:1;break;case git:t.y=1===Math.abs(Math.floor(t.y)%2)?Math.ceil(t.y)-t.y:t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}}),Object.defineProperty(Zit.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}});class Kit{constructor(t=0,e=0,n=0,o=1){Object.defineProperty(this,"isVector4",{value:!0}),this.x=t,this.y=e,this.z=n,this.w=o}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,o){return this.x=t,this.y=e,this.z=n,this.w=o,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,o=this.z,i=this.w,a=t.elements;return this.x=a[0]*e+a[4]*n+a[8]*o+a[12]*i,this.y=a[1]*e+a[5]*n+a[9]*o+a[13]*i,this.z=a[2]*e+a[6]*n+a[10]*o+a[14]*i,this.w=a[3]*e+a[7]*n+a[11]*o+a[15]*i,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,o,i;const a=.01,r=.1,s=t.elements,l=s[0],c=s[4],d=s[8],p=s[1],m=s[5],u=s[9],f=s[2],g=s[6],h=s[10];if(Math.abs(c-p)<a&&Math.abs(d-f)<a&&Math.abs(u-g)<a){if(Math.abs(c+p)<r&&Math.abs(d+f)<r&&Math.abs(u+g)<r&&Math.abs(l+m+h-3)<r)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,s=(m+1)/2,b=(h+1)/2,y=(c+p)/4,_=(d+f)/4,C=(u+g)/4;return t>s&&t>b?t<a?(n=0,o=.707106781,i=.707106781):(n=Math.sqrt(t),o=y/n,i=_/n):s>b?s<a?(n=.707106781,o=0,i=.707106781):(o=Math.sqrt(s),n=y/o,i=C/o):b<a?(n=.707106781,o=.707106781,i=0):(i=Math.sqrt(b),n=_/i,o=C/i),this.set(n,o,i,e),this}let b=Math.sqrt((g-u)*(g-u)+(d-f)*(d-f)+(p-c)*(p-c));return Math.abs(b)<.001&&(b=1),this.x=(g-u)/b,this.y=(d-f)/b,this.z=(p-c)/b,this.w=Math.acos((l+m+h-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}}class Jit extends Lit{constructor(t,e,n){super(),Object.defineProperty(this,"isWebGLRenderTarget",{value:!0}),this.width=t,this.height=e,this.scissor=new Kit(0,0,t,e),this.scissorTest=!1,this.viewport=new Kit(0,0,t,e),this.texture=new Zit(void 0,(n=n||{}).mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.image={},this.texture.image.width=t,this.texture.image.height=e,this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:bit,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setSize(t,e){this.width===t&&this.height===e||(this.width=t,this.height=e,this.texture.image.width=t,this.texture.image.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Qit{constructor(t=0,e=0,n=0,o=1){Object.defineProperty(this,"isQuaternion",{value:!0}),this._x=t,this._y=e,this._z=n,this._w=o}static slerp(t,e,n,o){return n.copy(t).slerp(e,o)}static slerpFlat(t,e,n,o,i,a,r){let s=n[o+0],l=n[o+1],c=n[o+2],d=n[o+3];const p=i[a+0],m=i[a+1],u=i[a+2],f=i[a+3];if(d!==f||s!==p||l!==m||c!==u){let t=1-r;const e=s*p+l*m+c*u+d*f,n=e>=0?1:-1,o=1-e*e;if(o>Number.EPSILON){const i=Math.sqrt(o),a=Math.atan2(i,e*n);t=Math.sin(t*a)/i,r=Math.sin(r*a)/i}const i=r*n;if(s=s*t+p*i,l=l*t+m*i,c=c*t+u*i,d=d*t+f*i,t===1-r){const t=1/Math.sqrt(s*s+l*l+c*c+d*d);s*=t,l*=t,c*=t,d*=t}}t[e]=s,t[e+1]=l,t[e+2]=c,t[e+3]=d}static multiplyQuaternionsFlat(t,e,n,o,i,a){const r=n[o],s=n[o+1],l=n[o+2],c=n[o+3],d=i[a],p=i[a+1],m=i[a+2],u=i[a+3];return t[e]=r*u+c*d+s*m-l*p,t[e+1]=s*u+c*p+l*d-r*m,t[e+2]=l*u+c*m+r*p-s*d,t[e+3]=c*u-r*d-s*p-l*m,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,o){return this._x=t,this._y=e,this._z=n,this._w=o,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=t._x,o=t._y,i=t._z,a=t._order,r=Math.cos,s=Math.sin,l=r(n/2),c=r(o/2),d=r(i/2),p=s(n/2),m=s(o/2),u=s(i/2);switch(a){case"XYZ":this._x=p*c*d+l*m*u,this._y=l*m*d-p*c*u,this._z=l*c*u+p*m*d,this._w=l*c*d-p*m*u;break;case"YXZ":this._x=p*c*d+l*m*u,this._y=l*m*d-p*c*u,this._z=l*c*u-p*m*d,this._w=l*c*d+p*m*u;break;case"ZXY":this._x=p*c*d-l*m*u,this._y=l*m*d+p*c*u,this._z=l*c*u+p*m*d,this._w=l*c*d-p*m*u;break;case"ZYX":this._x=p*c*d-l*m*u,this._y=l*m*d+p*c*u,this._z=l*c*u-p*m*d,this._w=l*c*d+p*m*u;break;case"YZX":this._x=p*c*d+l*m*u,this._y=l*m*d+p*c*u,this._z=l*c*u-p*m*d,this._w=l*c*d-p*m*u;break;case"XZY":this._x=p*c*d-l*m*u,this._y=l*m*d-p*c*u,this._z=l*c*u+p*m*d,this._w=l*c*d+p*m*u;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,o=Math.sin(n);return this._x=t.x*o,this._y=t.y*o,this._z=t.z*o,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],o=e[4],i=e[8],a=e[1],r=e[5],s=e[9],l=e[2],c=e[6],d=e[10],p=n+r+d;if(p>0){const t=.5/Math.sqrt(p+1);this._w=.25/t,this._x=(c-s)*t,this._y=(i-l)*t,this._z=(a-o)*t}else if(n>r&&n>d){const t=2*Math.sqrt(1+n-r-d);this._w=(c-s)/t,this._x=.25*t,this._y=(o+a)/t,this._z=(i+l)/t}else if(r>d){const t=2*Math.sqrt(1+r-n-d);this._w=(i-l)/t,this._x=(o+a)/t,this._y=.25*t,this._z=(s+c)/t}else{const t=2*Math.sqrt(1+d-n-r);this._w=(a-o)/t,this._x=(i+l)/t,this._y=(s+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<1e-6?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(jit.clamp(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const o=Math.min(1,e/n);return this.slerp(t,o),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,o=t._y,i=t._z,a=t._w,r=e._x,s=e._y,l=e._z,c=e._w;return this._x=n*c+a*r+o*l-i*s,this._y=o*c+a*s+i*r-n*l,this._z=i*c+a*l+n*s-o*r,this._w=a*c-n*r-o*s-i*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,o=this._y,i=this._z,a=this._w;let r=a*t._w+n*t._x+o*t._y+i*t._z;if(r<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,r=-r):this.copy(t),r>=1)return this._w=a,this._x=n,this._y=o,this._z=i,this;const s=1-r*r;if(s<=Number.EPSILON){const t=1-e;return this._w=t*a+e*this._w,this._x=t*n+e*this._x,this._y=t*o+e*this._y,this._z=t*i+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(s),c=Math.atan2(l,r),d=Math.sin((1-e)*c)/l,p=Math.sin(e*c)/l;return this._w=a*d+this._w*p,this._x=n*d+this._x*p,this._y=o*d+this._y*p,this._z=i*d+this._z*p,this._onChangeCallback(),this}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}class $it{constructor(t=0,e=0,n=0){Object.defineProperty(this,"isVector3",{value:!0}),this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(eat.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(eat.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,o=this.z,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6]*o,this.y=i[1]*e+i[4]*n+i[7]*o,this.z=i[2]*e+i[5]*n+i[8]*o,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,o=this.z,i=t.elements,a=1/(i[3]*e+i[7]*n+i[11]*o+i[15]);return this.x=(i[0]*e+i[4]*n+i[8]*o+i[12])*a,this.y=(i[1]*e+i[5]*n+i[9]*o+i[13])*a,this.z=(i[2]*e+i[6]*n+i[10]*o+i[14])*a,this}applyQuaternion(t){const e=this.x,n=this.y,o=this.z,i=t.x,a=t.y,r=t.z,s=t.w,l=s*e+a*o-r*n,c=s*n+r*e-i*o,d=s*o+i*n-a*e,p=-i*e-a*n-r*o;return this.x=l*s+p*-i+c*-r-d*-a,this.y=c*s+p*-a+d*-i-l*-r,this.z=d*s+p*-r+l*-a-c*-i,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,o=this.z,i=t.elements;return this.x=i[0]*e+i[4]*n+i[8]*o,this.y=i[1]*e+i[5]*n+i[9]*o,this.z=i[2]*e+i[6]*n+i[10]*o,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,o=t.y,i=t.z,a=e.x,r=e.y,s=e.z;return this.x=o*s-i*r,this.y=i*a-n*s,this.z=n*r-o*a,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return tat.copy(this).projectOnVector(t),this.sub(tat)}reflect(t){return this.sub(tat.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(jit.clamp(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,o=this.z-t.z;return e*e+n*n+o*o}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const o=Math.sin(e)*t;return this.x=o*Math.sin(n),this.y=Math.cos(e)*t,this.z=o*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),o=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=o,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}const tat=new $it,eat=new Qit;class nat{constructor(t,e){Object.defineProperty(this,"isBox3",{value:!0}),this.min=void 0!==t?t:new $it(1/0,1/0,1/0),this.max=void 0!==e?e:new $it(-1/0,-1/0,-1/0)}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,o=1/0,i=-1/0,a=-1/0,r=-1/0;for(let s=0,l=t.length;s<l;s+=3){const l=t[s],c=t[s+1],d=t[s+2];l<e&&(e=l),c<n&&(n=c),d<o&&(o=d),l>i&&(i=l),c>a&&(a=c),d>r&&(r=d)}return this.min.set(e,n,o),this.max.set(i,a,r),this}setFromBufferAttribute(t){let e=1/0,n=1/0,o=1/0,i=-1/0,a=-1/0,r=-1/0;for(let s=0,l=t.count;s<l;s++){const l=t.getX(s),c=t.getY(s),d=t.getZ(s);l<e&&(e=l),c<n&&(n=c),d<o&&(o=d),l>i&&(i=l),c>a&&(a=c),d>r&&(r=d)}return this.min.set(e,n,o),this.max.set(i,a,r),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=aat.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return void 0===t&&(console.warn("THREE.Box3: .getCenter() target is now required"),t=new $it),this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return void 0===t&&(console.warn("THREE.Box3: .getSize() target is now required"),t=new $it),this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),rat.copy(e.boundingBox),rat.applyMatrix4(t.matrixWorld),this.union(rat));const n=t.children;for(let t=0,e=n.length;t<e;t++)this.expandByObject(n[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return void 0===e&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new $it),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,aat),aat.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(uat),fat.subVectors(this.max,uat),sat.subVectors(t.a,uat),lat.subVectors(t.b,uat),cat.subVectors(t.c,uat),dat.subVectors(lat,sat),pat.subVectors(cat,lat),mat.subVectors(sat,cat);let e=[0,-dat.z,dat.y,0,-pat.z,pat.y,0,-mat.z,mat.y,dat.z,0,-dat.x,pat.z,0,-pat.x,mat.z,0,-mat.x,-dat.y,dat.x,0,-pat.y,pat.x,0,-mat.y,mat.x,0];return!!oat(e,sat,lat,cat,fat)&&(e=[1,0,0,0,1,0,0,0,1],!!oat(e,sat,lat,cat,fat)&&(gat.crossVectors(dat,pat),e=[gat.x,gat.y,gat.z],oat(e,sat,lat,cat,fat)))}clampPoint(t,e){return void 0===e&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new $it),e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return aat.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return void 0===t&&console.error("THREE.Box3: .getBoundingSphere() target is now required"),this.getCenter(t.center),t.radius=.5*this.getSize(aat).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(iat[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),iat[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),iat[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),iat[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),iat[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),iat[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),iat[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),iat[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(iat)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}function oat(t,e,n,o,i){for(let a=0,r=t.length-3;a<=r;a+=3){hat.fromArray(t,a);const r=i.x*Math.abs(hat.x)+i.y*Math.abs(hat.y)+i.z*Math.abs(hat.z),s=e.dot(hat),l=n.dot(hat),c=o.dot(hat);if(Math.max(-Math.max(s,l,c),Math.min(s,l,c))>r)return!1}return!0}const iat=[new $it,new $it,new $it,new $it,new $it,new $it,new $it,new $it],aat=new $it,rat=new nat,sat=new $it,lat=new $it,cat=new $it,dat=new $it,pat=new $it,mat=new $it,uat=new $it,fat=new $it,gat=new $it,hat=new $it,bat=new nat;class yat{constructor(t,e){this.center=void 0!==t?t:new $it,this.radius=void 0!==e?e:-1}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):bat.setFromPoints(t).getCenter(n);let o=0;for(let e=0,i=t.length;e<i;e++)o=Math.max(o,n.distanceToSquared(t[e]));return this.radius=Math.sqrt(o),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return void 0===e&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),e=new $it),e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return void 0===t&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new nat),this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}}const _at=new $it,Cat=new $it,Mat=new $it,vat=new $it,xat=new $it,Oat=new $it,Pat=new $it;class wat{constructor(t,e){this.origin=void 0!==t?t:new $it,this.direction=void 0!==e?e:new $it(0,0,-1)}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return void 0===e&&(console.warn("THREE.Ray: .at() target is now required"),e=new $it),e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,_at)),this}closestPointToPoint(t,e){void 0===e&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),e=new $it),e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=_at.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(_at.copy(this.direction).multiplyScalar(e).add(this.origin),_at.distanceToSquared(t))}distanceSqToSegment(t,e,n,o){Cat.copy(t).add(e).multiplyScalar(.5),Mat.copy(e).sub(t).normalize(),vat.copy(this.origin).sub(Cat);const i=.5*t.distanceTo(e),a=-this.direction.dot(Mat),r=vat.dot(this.direction),s=-vat.dot(Mat),l=vat.lengthSq(),c=Math.abs(1-a*a);let d,p,m,u;if(c>0)if(d=a*s-r,p=a*r-s,u=i*c,d>=0)if(p>=-u)if(p<=u){const t=1/c;d*=t,p*=t,m=d*(d+a*p+2*r)+p*(a*d+p+2*s)+l}else p=i,d=Math.max(0,-(a*p+r)),m=-d*d+p*(p+2*s)+l;else p=-i,d=Math.max(0,-(a*p+r)),m=-d*d+p*(p+2*s)+l;else p<=-u?(d=Math.max(0,-(-a*i+r)),p=d>0?-i:Math.min(Math.max(-i,-s),i),m=-d*d+p*(p+2*s)+l):p<=u?(d=0,p=Math.min(Math.max(-i,-s),i),m=p*(p+2*s)+l):(d=Math.max(0,-(a*i+r)),p=d>0?i:Math.min(Math.max(-i,-s),i),m=-d*d+p*(p+2*s)+l);else p=a>0?-i:i,d=Math.max(0,-(a*p+r)),m=-d*d+p*(p+2*s)+l;return n&&n.copy(this.direction).multiplyScalar(d).add(this.origin),o&&o.copy(Mat).multiplyScalar(p).add(Cat),m}intersectSphere(t,e){_at.subVectors(t.center,this.origin);const n=_at.dot(this.direction),o=_at.dot(_at)-n*n,i=t.radius*t.radius;if(o>i)return null;const a=Math.sqrt(i-o),r=n-a,s=n+a;return r<0&&s<0?null:this.at(r<0?s:r,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,o,i,a,r,s;const l=1/this.direction.x,c=1/this.direction.y,d=1/this.direction.z,p=this.origin;return l>=0?(n=(t.min.x-p.x)*l,o=(t.max.x-p.x)*l):(n=(t.max.x-p.x)*l,o=(t.min.x-p.x)*l),c>=0?(i=(t.min.y-p.y)*c,a=(t.max.y-p.y)*c):(i=(t.max.y-p.y)*c,a=(t.min.y-p.y)*c),n>a||i>o?null:((i>n||n!=n)&&(n=i),(a<o||o!=o)&&(o=a),d>=0?(r=(t.min.z-p.z)*d,s=(t.max.z-p.z)*d):(r=(t.max.z-p.z)*d,s=(t.min.z-p.z)*d),n>s||r>o?null:((r>n||n!=n)&&(n=r),(s<o||o!=o)&&(o=s),o<0?null:this.at(n>=0?n:o,e)))}intersectsBox(t){return null!==this.intersectBox(t,_at)}intersectTriangle(t,e,n,o,i){xat.subVectors(e,t),Oat.subVectors(n,t),Pat.crossVectors(xat,Oat);let a,r=this.direction.dot(Pat);if(r>0){if(o)return null;a=1}else{if(!(r<0))return null;a=-1,r=-r}vat.subVectors(this.origin,t);const s=a*this.direction.dot(Oat.crossVectors(vat,Oat));if(s<0)return null;const l=a*this.direction.dot(xat.cross(vat));if(l<0)return null;if(s+l>r)return null;const c=-a*vat.dot(Pat);return c<0?null:this.at(c/r,i)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}}class kat{constructor(){Object.defineProperty(this,"isMatrix4",{value:!0}),this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,o,i,a,r,s,l,c,d,p,m,u,f,g){const h=this.elements;return h[0]=t,h[4]=e,h[8]=n,h[12]=o,h[1]=i,h[5]=a,h[9]=r,h[13]=s,h[2]=l,h[6]=c,h[10]=d,h[14]=p,h[3]=m,h[7]=u,h[11]=f,h[15]=g,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new kat).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,o=1/Sat.setFromMatrixColumn(t,0).length(),i=1/Sat.setFromMatrixColumn(t,1).length(),a=1/Sat.setFromMatrixColumn(t,2).length();return e[0]=n[0]*o,e[1]=n[1]*o,e[2]=n[2]*o,e[3]=0,e[4]=n[4]*i,e[5]=n[5]*i,e[6]=n[6]*i,e[7]=0,e[8]=n[8]*a,e[9]=n[9]*a,e[10]=n[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const e=this.elements,n=t.x,o=t.y,i=t.z,a=Math.cos(n),r=Math.sin(n),s=Math.cos(o),l=Math.sin(o),c=Math.cos(i),d=Math.sin(i);if("XYZ"===t.order){const t=a*c,n=a*d,o=r*c,i=r*d;e[0]=s*c,e[4]=-s*d,e[8]=l,e[1]=n+o*l,e[5]=t-i*l,e[9]=-r*s,e[2]=i-t*l,e[6]=o+n*l,e[10]=a*s}else if("YXZ"===t.order){const t=s*c,n=s*d,o=l*c,i=l*d;e[0]=t+i*r,e[4]=o*r-n,e[8]=a*l,e[1]=a*d,e[5]=a*c,e[9]=-r,e[2]=n*r-o,e[6]=i+t*r,e[10]=a*s}else if("ZXY"===t.order){const t=s*c,n=s*d,o=l*c,i=l*d;e[0]=t-i*r,e[4]=-a*d,e[8]=o+n*r,e[1]=n+o*r,e[5]=a*c,e[9]=i-t*r,e[2]=-a*l,e[6]=r,e[10]=a*s}else if("ZYX"===t.order){const t=a*c,n=a*d,o=r*c,i=r*d;e[0]=s*c,e[4]=o*l-n,e[8]=t*l+i,e[1]=s*d,e[5]=i*l+t,e[9]=n*l-o,e[2]=-l,e[6]=r*s,e[10]=a*s}else if("YZX"===t.order){const t=a*s,n=a*l,o=r*s,i=r*l;e[0]=s*c,e[4]=i-t*d,e[8]=o*d+n,e[1]=d,e[5]=a*c,e[9]=-r*c,e[2]=-l*c,e[6]=n*d+o,e[10]=t-i*d}else if("XZY"===t.order){const t=a*s,n=a*l,o=r*s,i=r*l;e[0]=s*c,e[4]=-d,e[8]=l*c,e[1]=t*d+i,e[5]=a*c,e[9]=n*d-o,e[2]=o*d-n,e[6]=r*c,e[10]=i*d+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Eat,t,Aat)}lookAt(t,e,n){const o=this.elements;return Nat.subVectors(t,e),0===Nat.lengthSq()&&(Nat.z=1),Nat.normalize(),Rat.crossVectors(n,Nat),0===Rat.lengthSq()&&(1===Math.abs(n.z)?Nat.x+=1e-4:Nat.z+=1e-4,Nat.normalize(),Rat.crossVectors(n,Nat)),Rat.normalize(),Tat.crossVectors(Nat,Rat),o[0]=Rat.x,o[4]=Tat.x,o[8]=Nat.x,o[1]=Rat.y,o[5]=Tat.y,o[9]=Nat.y,o[2]=Rat.z,o[6]=Tat.z,o[10]=Nat.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,o=e.elements,i=this.elements,a=n[0],r=n[4],s=n[8],l=n[12],c=n[1],d=n[5],p=n[9],m=n[13],u=n[2],f=n[6],g=n[10],h=n[14],b=n[3],y=n[7],_=n[11],C=n[15],M=o[0],v=o[4],x=o[8],O=o[12],P=o[1],w=o[5],k=o[9],S=o[13],D=o[2],E=o[6],A=o[10],R=o[14],T=o[3],N=o[7],I=o[11],z=o[15];return i[0]=a*M+r*P+s*D+l*T,i[4]=a*v+r*w+s*E+l*N,i[8]=a*x+r*k+s*A+l*I,i[12]=a*O+r*S+s*R+l*z,i[1]=c*M+d*P+p*D+m*T,i[5]=c*v+d*w+p*E+m*N,i[9]=c*x+d*k+p*A+m*I,i[13]=c*O+d*S+p*R+m*z,i[2]=u*M+f*P+g*D+h*T,i[6]=u*v+f*w+g*E+h*N,i[10]=u*x+f*k+g*A+h*I,i[14]=u*O+f*S+g*R+h*z,i[3]=b*M+y*P+_*D+C*T,i[7]=b*v+y*w+_*E+C*N,i[11]=b*x+y*k+_*A+C*I,i[15]=b*O+y*S+_*R+C*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],o=t[8],i=t[12],a=t[1],r=t[5],s=t[9],l=t[13],c=t[2],d=t[6],p=t[10],m=t[14];return t[3]*(+i*s*d-o*l*d-i*r*p+n*l*p+o*r*m-n*s*m)+t[7]*(+e*s*m-e*l*p+i*a*p-o*a*m+o*l*c-i*s*c)+t[11]*(+e*l*d-e*r*m-i*a*d+n*a*m+i*r*c-n*l*c)+t[15]*(-o*r*c-e*s*d+e*r*p+o*a*d-n*a*p+n*s*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const o=this.elements;return t.isVector3?(o[12]=t.x,o[13]=t.y,o[14]=t.z):(o[12]=t,o[13]=e,o[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],o=t[2],i=t[3],a=t[4],r=t[5],s=t[6],l=t[7],c=t[8],d=t[9],p=t[10],m=t[11],u=t[12],f=t[13],g=t[14],h=t[15],b=d*g*l-f*p*l+f*s*m-r*g*m-d*s*h+r*p*h,y=u*p*l-c*g*l-u*s*m+a*g*m+c*s*h-a*p*h,_=c*f*l-u*d*l+u*r*m-a*f*m-c*r*h+a*d*h,C=u*d*s-c*f*s-u*r*p+a*f*p+c*r*g-a*d*g,M=e*b+n*y+o*_+i*C;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const v=1/M;return t[0]=b*v,t[1]=(f*p*i-d*g*i-f*o*m+n*g*m+d*o*h-n*p*h)*v,t[2]=(r*g*i-f*s*i+f*o*l-n*g*l-r*o*h+n*s*h)*v,t[3]=(d*s*i-r*p*i-d*o*l+n*p*l+r*o*m-n*s*m)*v,t[4]=y*v,t[5]=(c*g*i-u*p*i+u*o*m-e*g*m-c*o*h+e*p*h)*v,t[6]=(u*s*i-a*g*i-u*o*l+e*g*l+a*o*h-e*s*h)*v,t[7]=(a*p*i-c*s*i+c*o*l-e*p*l-a*o*m+e*s*m)*v,t[8]=_*v,t[9]=(u*d*i-c*f*i-u*n*m+e*f*m+c*n*h-e*d*h)*v,t[10]=(a*f*i-u*r*i+u*n*l-e*f*l-a*n*h+e*r*h)*v,t[11]=(c*r*i-a*d*i-c*n*l+e*d*l+a*n*m-e*r*m)*v,t[12]=C*v,t[13]=(c*f*o-u*d*o+u*n*p-e*f*p-c*n*g+e*d*g)*v,t[14]=(u*r*o-a*f*o-u*n*s+e*f*s+a*n*g-e*r*g)*v,t[15]=(a*d*o-c*r*o+c*n*s-e*d*s-a*n*p+e*r*p)*v,this}scale(t){const e=this.elements,n=t.x,o=t.y,i=t.z;return e[0]*=n,e[4]*=o,e[8]*=i,e[1]*=n,e[5]*=o,e[9]*=i,e[2]*=n,e[6]*=o,e[10]*=i,e[3]*=n,e[7]*=o,e[11]*=i,this}getMaxScaleOnAxis(){const t=this.elements;return Math.sqrt(Math.max(t[0]*t[0]+t[1]*t[1]+t[2]*t[2],t[4]*t[4]+t[5]*t[5]+t[6]*t[6],t[8]*t[8]+t[9]*t[9]+t[10]*t[10]))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),o=Math.sin(e),i=1-n,a=t.x,r=t.y,s=t.z,l=i*a,c=i*r;return this.set(l*a+n,l*r-o*s,l*s+o*r,0,l*r+o*s,c*r+n,c*s-o*a,0,l*s-o*r,c*s+o*a,i*s*s+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n){return this.set(1,e,n,0,t,1,n,0,t,e,1,0,0,0,0,1),this}compose(t,e,n){const o=this.elements,i=e._x,a=e._y,r=e._z,s=e._w,l=i+i,c=a+a,d=r+r,p=i*l,m=i*c,u=i*d,f=a*c,g=a*d,h=r*d,b=s*l,y=s*c,_=s*d,C=n.x,M=n.y,v=n.z;return o[0]=(1-(f+h))*C,o[1]=(m+_)*C,o[2]=(u-y)*C,o[3]=0,o[4]=(m-_)*M,o[5]=(1-(p+h))*M,o[6]=(g+b)*M,o[7]=0,o[8]=(u+y)*v,o[9]=(g-b)*v,o[10]=(1-(p+f))*v,o[11]=0,o[12]=t.x,o[13]=t.y,o[14]=t.z,o[15]=1,this}decompose(t,e,n){const o=this.elements;let i=Sat.set(o[0],o[1],o[2]).length();const a=Sat.set(o[4],o[5],o[6]).length(),r=Sat.set(o[8],o[9],o[10]).length();this.determinant()<0&&(i=-i),t.x=o[12],t.y=o[13],t.z=o[14],Dat.copy(this);const s=1/i,l=1/a,c=1/r;return Dat.elements[0]*=s,Dat.elements[1]*=s,Dat.elements[2]*=s,Dat.elements[4]*=l,Dat.elements[5]*=l,Dat.elements[6]*=l,Dat.elements[8]*=c,Dat.elements[9]*=c,Dat.elements[10]*=c,e.setFromRotationMatrix(Dat),n.x=i,n.y=a,n.z=r,this}makePerspective(t,e,n,o,i,a){void 0===a&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const r=this.elements,s=2*i/(n-o),l=(e+t)/(e-t),c=(n+o)/(n-o),d=-(a+i)/(a-i),p=-2*a*i/(a-i);return r[0]=2*i/(e-t),r[4]=0,r[8]=l,r[12]=0,r[1]=0,r[5]=s,r[9]=c,r[13]=0,r[2]=0,r[6]=0,r[10]=d,r[14]=p,r[3]=0,r[7]=0,r[11]=-1,r[15]=0,this}makeOrthographic(t,e,n,o,i,a){const r=this.elements,s=1/(e-t),l=1/(n-o),c=1/(a-i),d=(e+t)*s,p=(n+o)*l,m=(a+i)*c;return r[0]=2*s,r[4]=0,r[8]=0,r[12]=-d,r[1]=0,r[5]=2*l,r[9]=0,r[13]=-p,r[2]=0,r[6]=0,r[10]=-2*c,r[14]=-m,r[3]=0,r[7]=0,r[11]=0,r[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const Sat=new $it,Dat=new kat,Eat=new $it(0,0,0),Aat=new $it(1,1,1),Rat=new $it,Tat=new $it,Nat=new $it;class Iat{constructor(t=0,e=0,n=0,o=Iat.DefaultOrder){Object.defineProperty(this,"isEuler",{value:!0}),this._x=t,this._y=e,this._z=n,this._order=o}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,o){return this._x=t,this._y=e,this._z=n,this._order=o||this._order,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e,n){const o=jit.clamp,i=t.elements,a=i[0],r=i[4],s=i[8],l=i[1],c=i[5],d=i[9],p=i[2],m=i[6],u=i[10];switch(e=e||this._order){case"XYZ":this._y=Math.asin(o(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-d,u),this._z=Math.atan2(-r,a)):(this._x=Math.atan2(m,c),this._z=0);break;case"YXZ":this._x=Math.asin(-o(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(s,u),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-p,a),this._z=0);break;case"ZXY":this._x=Math.asin(o(m,-1,1)),Math.abs(m)<.9999999?(this._y=Math.atan2(-p,u),this._z=Math.atan2(-r,c)):(this._y=0,this._z=Math.atan2(l,a));break;case"ZYX":this._y=Math.asin(-o(p,-1,1)),Math.abs(p)<.9999999?(this._x=Math.atan2(m,u),this._z=Math.atan2(l,a)):(this._x=0,this._z=Math.atan2(-r,c));break;case"YZX":this._z=Math.asin(o(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-d,c),this._y=Math.atan2(-p,a)):(this._x=0,this._y=Math.atan2(s,u));break;case"XZY":this._z=Math.asin(-o(r,-1,1)),Math.abs(r)<.9999999?(this._x=Math.atan2(m,c),this._y=Math.atan2(s,a)):(this._x=Math.atan2(-d,u),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!1!==n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return zat.makeRotationFromQuaternion(t),this.setFromRotationMatrix(zat,e,n)}setFromVector3(t,e){return this.set(t.x,t.y,t.z,e||this._order)}reorder(t){return Hat.setFromEuler(this),this.setFromQuaternion(Hat,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new $it(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}Iat.DefaultOrder="XYZ",Iat.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];const zat=new kat,Hat=new Qit;class Fat{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}let Lat=0;const Bat=new $it,Vat=new Qit,jat=new kat,Uat=new $it,Wat=new $it,Gat=new $it,Yat=new Qit,qat=new $it(1,0,0),Zat=new $it(0,1,0),Xat=new $it(0,0,1),Kat={type:"added"},Jat={type:"removed"};function Qat(){Object.defineProperty(this,"id",{value:Lat++}),this.uuid=jit.generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Qat.DefaultUp.clone();const t=new $it,e=new Iat,n=new Qit,o=new $it(1,1,1);e._onChange((function i(){n.setFromEuler(e,!1)})),n._onChange((function a(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:o},modelViewMatrix:{value:new kat},normalMatrix:{value:new Wit}}),this.matrix=new kat,this.matrixWorld=new kat,this.matrixAutoUpdate=Qat.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new Fat,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}Qat.DefaultUp=new $it(0,1,0),Qat.DefaultMatrixAutoUpdate=!0,Qat.prototype=Object.assign(Object.create(Lit.prototype),{constructor:Qat,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix4:function(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(t){return this.quaternion.premultiply(t),this},setRotationFromAxisAngle:function(t,e){this.quaternion.setFromAxisAngle(t,e)},setRotationFromEuler:function(t){this.quaternion.setFromEuler(t,!0)},setRotationFromMatrix:function(t){this.quaternion.setFromRotationMatrix(t)},setRotationFromQuaternion:function(t){this.quaternion.copy(t)},rotateOnAxis:function(t,e){return Vat.setFromAxisAngle(t,e),this.quaternion.multiply(Vat),this},rotateOnWorldAxis:function(t,e){return Vat.setFromAxisAngle(t,e),this.quaternion.premultiply(Vat),this},rotateX:function(t){return this.rotateOnAxis(qat,t)},rotateY:function(t){return this.rotateOnAxis(Zat,t)},rotateZ:function(t){return this.rotateOnAxis(Xat,t)},translateOnAxis:function(t,e){return Bat.copy(t).applyQuaternion(this.quaternion),this.position.add(Bat.multiplyScalar(e)),this},translateX:function(t){return this.translateOnAxis(qat,t)},translateY:function(t){return this.translateOnAxis(Zat,t)},translateZ:function(t){return this.translateOnAxis(Xat,t)},localToWorld:function(t){return t.applyMatrix4(this.matrixWorld)},worldToLocal:function(t){return t.applyMatrix4(jat.copy(this.matrixWorld).invert())},lookAt:function(t,e,n){t.isVector3?Uat.copy(t):Uat.set(t,e,n);const o=this.parent;this.updateWorldMatrix(!0,!1),Wat.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?jat.lookAt(Wat,Uat,this.up):jat.lookAt(Uat,Wat,this.up),this.quaternion.setFromRotationMatrix(jat),o&&(jat.extractRotation(o.matrixWorld),Vat.setFromRotationMatrix(jat),this.quaternion.premultiply(Vat.invert()))},add:function(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(Kat)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)},remove:function(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(Jat)),this},clear:function(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(Jat)}return this.children.length=0,this},attach:function(t){return this.updateWorldMatrix(!0,!1),jat.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),jat.multiply(t.parent.matrixWorld)),t.applyMatrix4(jat),t.updateWorldMatrix(!1,!1),this.add(t),this},getObjectById:function(t){return this.getObjectByProperty("id",t)},getObjectByName:function(t){return this.getObjectByProperty("name",t)},getObjectByProperty:function(t,e){if(this[t]===e)return this;for(let n=0,o=this.children.length;n<o;n++){const o=this.children[n].getObjectByProperty(t,e);if(void 0!==o)return o}},getWorldPosition:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),t=new $it),this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),t=new Qit),this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Wat,t,Gat),t},getWorldScale:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),t=new $it),this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Wat,Yat,t),t},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),t=new $it),this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()},raycast:function(){},traverse:function(t){t(this);const e=this.children;for(let n=0,o=e.length;n<o;n++)e[n].traverse(t)},traverseVisible:function(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,o=e.length;n<o;n++)e[n].traverseVisible(t)},traverseAncestors:function(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,o=e.length;n<o;n++)e[n].updateMatrixWorld(t)},updateWorldMatrix:function(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}},toJSON:function(t){const e=void 0===t||"string"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});const o={};function i(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(o.uuid=this.uuid,o.type=this.type,""!==this.name&&(o.name=this.name),!0===this.castShadow&&(o.castShadow=!0),!0===this.receiveShadow&&(o.receiveShadow=!0),!1===this.visible&&(o.visible=!1),!1===this.frustumCulled&&(o.frustumCulled=!1),0!==this.renderOrder&&(o.renderOrder=this.renderOrder),"{}"!==JSON.stringify(this.userData)&&(o.userData=this.userData),o.layers=this.layers.mask,o.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(o.matrixAutoUpdate=!1),this.isInstancedMesh&&(o.type="InstancedMesh",o.count=this.count,o.instanceMatrix=this.instanceMatrix.toJSON()),this.isMesh||this.isLine||this.isPoints){o.geometry=i(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,o=n.length;e<o;e++)i(t.shapes,n[e]);else i(t.shapes,n)}}if(this.isSkinnedMesh&&(o.bindMode=this.bindMode,o.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(i(t.skeletons,this.skeleton),o.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,o=this.material.length;n<o;n++)e.push(i(t.materials,this.material[n]));o.material=e}else o.material=i(t.materials,this.material);if(this.children.length>0){o.children=[];for(let e=0;e<this.children.length;e++)o.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){o.animations=[];for(let e=0;e<this.animations.length;e++)o.animations.push(i(t.animations,this.animations[e]))}if(e){const e=a(t.geometries),o=a(t.materials),i=a(t.textures),r=a(t.images),s=a(t.shapes),l=a(t.skeletons),c=a(t.animations);e.length>0&&(n.geometries=e),o.length>0&&(n.materials=o),i.length>0&&(n.textures=i),r.length>0&&(n.images=r),s.length>0&&(n.shapes=s),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=o,n;function a(t){const e=[];for(const n in t){const o=t[n];delete o.metadata,e.push(o)}return e}},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++)this.add(t.children[e].clone());return this}});const $at=new $it,trt=new $it,ert=new Wit;class nrt{constructor(t,e){Object.defineProperty(this,"isPlane",{value:!0}),this.normal=void 0!==t?t:new $it(1,0,0),this.constant=void 0!==e?e:0}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,o){return this.normal.set(t,e,n),this.constant=o,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const o=$at.subVectors(n,e).cross(trt.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(o,t),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return void 0===e&&(console.warn("THREE.Plane: .projectPoint() target is now required"),e=new $it),e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){void 0===e&&(console.warn("THREE.Plane: .intersectLine() target is now required"),e=new $it);const n=t.delta($at),o=this.normal.dot(n);if(0===o)return 0===this.distanceToPoint(t.start)?e.copy(t.start):void 0;const i=-(t.start.dot(this.normal)+this.constant)/o;return i<0||i>1?void 0:e.copy(n).multiplyScalar(i).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return void 0===t&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new $it),t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||ert.getNormalMatrix(t),o=this.coplanarPoint($at).applyMatrix4(t),i=this.normal.applyMatrix3(n).normalize();return this.constant=-o.dot(i),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}}const ort=new $it,irt=new $it,art=new $it,rrt=new $it,srt=new $it,lrt=new $it,crt=new $it,drt=new $it,prt=new $it,mrt=new $it;class urt{constructor(t,e,n){this.a=void 0!==t?t:new $it,this.b=void 0!==e?e:new $it,this.c=void 0!==n?n:new $it}static getNormal(t,e,n,o){void 0===o&&(console.warn("THREE.Triangle: .getNormal() target is now required"),o=new $it),o.subVectors(n,e),ort.subVectors(t,e),o.cross(ort);const i=o.lengthSq();return i>0?o.multiplyScalar(1/Math.sqrt(i)):o.set(0,0,0)}static getBarycoord(t,e,n,o,i){ort.subVectors(o,e),irt.subVectors(n,e),art.subVectors(t,e);const a=ort.dot(ort),r=ort.dot(irt),s=ort.dot(art),l=irt.dot(irt),c=irt.dot(art),d=a*l-r*r;if(void 0===i&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),i=new $it),0===d)return i.set(-2,-1,-1);const p=1/d,m=(l*s-r*c)*p,u=(a*c-r*s)*p;return i.set(1-m-u,u,m)}static containsPoint(t,e,n,o){return this.getBarycoord(t,e,n,o,rrt),rrt.x>=0&&rrt.y>=0&&rrt.x+rrt.y<=1}static getUV(t,e,n,o,i,a,r,s){return this.getBarycoord(t,e,n,o,rrt),s.set(0,0),s.addScaledVector(i,rrt.x),s.addScaledVector(a,rrt.y),s.addScaledVector(r,rrt.z),s}static isFrontFacing(t,e,n,o){return ort.subVectors(n,e),irt.subVectors(t,e),ort.cross(irt).dot(o)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,o){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[o]),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return ort.subVectors(this.c,this.b),irt.subVectors(this.a,this.b),.5*ort.cross(irt).length()}getMidpoint(t){return void 0===t&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),t=new $it),t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return urt.getNormal(this.a,this.b,this.c,t)}getPlane(t){return void 0===t&&(console.warn("THREE.Triangle: .getPlane() target is now required"),t=new nrt),t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return urt.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,o,i){return urt.getUV(t,this.a,this.b,this.c,e,n,o,i)}containsPoint(t){return urt.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return urt.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){void 0===e&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),e=new $it);const n=this.a,o=this.b,i=this.c;let a,r;srt.subVectors(o,n),lrt.subVectors(i,n),drt.subVectors(t,n);const s=srt.dot(drt),l=lrt.dot(drt);if(s<=0&&l<=0)return e.copy(n);prt.subVectors(t,o);const c=srt.dot(prt),d=lrt.dot(prt);if(c>=0&&d<=c)return e.copy(o);const p=s*d-c*l;if(p<=0&&s>=0&&c<=0)return a=s/(s-c),e.copy(n).addScaledVector(srt,a);mrt.subVectors(t,i);const m=srt.dot(mrt),u=lrt.dot(mrt);if(u>=0&&m<=u)return e.copy(i);const f=m*l-s*u;if(f<=0&&l>=0&&u<=0)return r=l/(l-u),e.copy(n).addScaledVector(lrt,r);const g=c*u-m*d;if(g<=0&&d-c>=0&&m-u>=0)return crt.subVectors(i,o),r=(d-c)/(d-c+(m-u)),e.copy(o).addScaledVector(crt,r);const h=1/(g+f+p);return a=f*h,r=p*h,e.copy(n).addScaledVector(srt,a).addScaledVector(lrt,r)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const frt={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},grt={h:0,s:0,l:0},hrt={h:0,s:0,l:0};function brt(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function yrt(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function _rt(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class Crt{constructor(t,e,n){return Object.defineProperty(this,"isColor",{value:!0}),void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=jit.euclideanModulo(t,1),e=jit.clamp(e,0,1),n=jit.clamp(n,0,1),0===e)this.r=this.g=this.b=n;else{const o=n<=.5?n*(1+e):n+e-n*e,i=2*n-o;this.r=brt(i,o,t+1/3),this.g=brt(i,o,t),this.b=brt(i,o,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let t;const o=n[2];switch(n[1]){case"rgb":case"rgba":if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case"hsl":case"hsla":if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o)){const n=parseFloat(t[1])/360,o=parseInt(t[2],10)/100,i=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,o,i)}}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=frt[t];return void 0!==e?this.setHex(e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=yrt(t.r),this.g=yrt(t.g),this.b=yrt(t.b),this}copyLinearToSRGB(t){return this.r=_rt(t.r),this.g=_rt(t.g),this.b=_rt(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(t){void 0===t&&(console.warn("THREE.Color: .getHSL() target is now required"),t={h:0,s:0,l:0});const e=this.r,n=this.g,o=this.b,i=Math.max(e,n,o),a=Math.min(e,n,o);let r,s;const l=(a+i)/2;if(a===i)r=0,s=0;else{const t=i-a;switch(s=l<=.5?t/(i+a):t/(2-i-a),i){case e:r=(n-o)/t+(n<o?6:0);break;case n:r=(o-e)/t+2;break;case o:r=(e-n)/t+4}r/=6}return t.h=r,t.s=s,t.l=l,t}getStyle(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"}offsetHSL(t,e,n){return this.getHSL(grt),grt.h+=t,grt.s+=e,grt.l+=n,this.setHSL(grt.h,grt.s,grt.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(grt),t.getHSL(hrt);const n=jit.lerp(grt.h,hrt.h,e),o=jit.lerp(grt.s,hrt.s,e),i=jit.lerp(grt.l,hrt.l,e);return this.setHSL(n,o,i),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}Crt.NAMES=frt,Crt.prototype.r=1,Crt.prototype.g=1,Crt.prototype.b=1;class Mrt{constructor(t,e,n,o,i,a=0){this.a=t,this.b=e,this.c=n,this.normal=o&&o.isVector3?o:new $it,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new Crt,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=a}clone(){return(new this.constructor).copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,n=t.vertexNormals.length;e<n;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,n=t.vertexColors.length;e<n;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}}let vrt=0;function xrt(){Object.defineProperty(this,"id",{value:vrt++}),this.uuid=jit.generateUUID(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.flatShading=!1,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=mit,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Iit,this.stencilZFail=Iit,this.stencilZPass=Iit,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}function Ort(t){xrt.call(this),this.type="MeshBasicMaterial",this.color=new Crt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.setValues(t)}xrt.prototype=Object.assign(Object.create(Lit.prototype),{constructor:xrt,isMaterial:!0,onBeforeCompile:function(){},customProgramCacheKey:function(){return this.onBeforeCompile.toString()},setValues:function(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}if("shading"===e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===n;continue}const o=this[e];void 0!==o?o&&o.isColor?o.set(n):o&&o.isVector3&&n&&n.isVector3?o.copy(n):this[e]=n:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}},toJSON:function(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function o(t){const e=[];for(const n in t){const o=t[n];delete o.metadata,e.push(o)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,n.reflectivity=this.reflectivity,n.refractionRatio=this.refractionRatio,void 0!==this.combine&&(n.combine=this.combine),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity)),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(n.size=this.size),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),!0===this.flatShading&&(n.flatShading=this.flatShading),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.skinning&&(n.skinning=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=o(t.textures),i=o(t.images);e.length>0&&(n.textures=e),i.length>0&&(n.images=i)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.flatShading=t.flatShading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let o=0;o!==t;++o)n[o]=e[o].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(xrt.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),(Ort.prototype=Object.create(xrt.prototype)).constructor=Ort,Ort.prototype.isMeshBasicMaterial=!0,Ort.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this};const Prt=new $it,wrt=new Uit;function krt(t,e,n){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=zit,this.updateRange={offset:0,count:-1},this.version=0}function Srt(t,e,n){krt.call(this,new Int8Array(t),e,n)}function Drt(t,e,n){krt.call(this,new Uint8Array(t),e,n)}function Ert(t,e,n){krt.call(this,new Uint8ClampedArray(t),e,n)}function Art(t,e,n){krt.call(this,new Int16Array(t),e,n)}function Rrt(t,e,n){krt.call(this,new Uint16Array(t),e,n)}function Trt(t,e,n){krt.call(this,new Int32Array(t),e,n)}function Nrt(t,e,n){krt.call(this,new Uint32Array(t),e,n)}function Irt(t,e,n){krt.call(this,new Uint16Array(t),e,n)}function zrt(t,e,n){krt.call(this,new Float32Array(t),e,n)}function Hrt(t,e,n){krt.call(this,new Float64Array(t),e,n)}function Frt(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,o=t.length;n<o;++n)t[n]>e&&(e=t[n]);return e}Object.defineProperty(krt.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(krt.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this},copyAt:function(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let o=0,i=this.itemSize;o<i;o++)this.array[t+o]=e.array[n+o];return this},copyArray:function(t){return this.array.set(t),this},copyColorsArray:function(t){const e=this.array;let n=0;for(let o=0,i=t.length;o<i;o++){let i=t[o];void 0===i&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",o),i=new Crt),e[n++]=i.r,e[n++]=i.g,e[n++]=i.b}return this},copyVector2sArray:function(t){const e=this.array;let n=0;for(let o=0,i=t.length;o<i;o++){let i=t[o];void 0===i&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",o),i=new Uit),e[n++]=i.x,e[n++]=i.y}return this},copyVector3sArray:function(t){const e=this.array;let n=0;for(let o=0,i=t.length;o<i;o++){let i=t[o];void 0===i&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",o),i=new $it),e[n++]=i.x,e[n++]=i.y,e[n++]=i.z}return this},copyVector4sArray:function(t){const e=this.array;let n=0;for(let o=0,i=t.length;o<i;o++){let i=t[o];void 0===i&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",o),i=new Kit),e[n++]=i.x,e[n++]=i.y,e[n++]=i.z,e[n++]=i.w}return this},applyMatrix3:function(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)wrt.fromBufferAttribute(this,e),wrt.applyMatrix3(t),this.setXY(e,wrt.x,wrt.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)Prt.fromBufferAttribute(this,e),Prt.applyMatrix3(t),this.setXYZ(e,Prt.x,Prt.y,Prt.z);return this},applyMatrix4:function(t){for(let e=0,n=this.count;e<n;e++)Prt.x=this.getX(e),Prt.y=this.getY(e),Prt.z=this.getZ(e),Prt.applyMatrix4(t),this.setXYZ(e,Prt.x,Prt.y,Prt.z);return this},applyNormalMatrix:function(t){for(let e=0,n=this.count;e<n;e++)Prt.x=this.getX(e),Prt.y=this.getY(e),Prt.z=this.getZ(e),Prt.applyNormalMatrix(t),this.setXYZ(e,Prt.x,Prt.y,Prt.z);return this},transformDirection:function(t){for(let e=0,n=this.count;e<n;e++)Prt.x=this.getX(e),Prt.y=this.getY(e),Prt.z=this.getZ(e),Prt.transformDirection(t),this.setXYZ(e,Prt.x,Prt.y,Prt.z);return this},set:function(t,e=0){return this.array.set(t,e),this},getX:function(t){return this.array[t*this.itemSize]},setX:function(t,e){return this.array[t*this.itemSize]=e,this},getY:function(t){return this.array[t*this.itemSize+1]},setY:function(t,e){return this.array[t*this.itemSize+1]=e,this},getZ:function(t){return this.array[t*this.itemSize+2]},setZ:function(t,e){return this.array[t*this.itemSize+2]=e,this},getW:function(t){return this.array[t*this.itemSize+3]},setW:function(t,e){return this.array[t*this.itemSize+3]=e,this},setXY:function(t,e,n){return this.array[0+(t*=this.itemSize)]=e,this.array[t+1]=n,this},setXYZ:function(t,e,n,o){return this.array[0+(t*=this.itemSize)]=e,this.array[t+1]=n,this.array[t+2]=o,this},setXYZW:function(t,e,n,o,i){return this.array[0+(t*=this.itemSize)]=e,this.array[t+1]=n,this.array[t+2]=o,this.array[t+3]=i,this},onUpload:function(t){return this.onUploadCallback=t,this},clone:function(){return new this.constructor(this.array,this.itemSize).copy(this)},toJSON:function(){return{itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized}}}),(Srt.prototype=Object.create(krt.prototype)).constructor=Srt,(Drt.prototype=Object.create(krt.prototype)).constructor=Drt,(Ert.prototype=Object.create(krt.prototype)).constructor=Ert,(Art.prototype=Object.create(krt.prototype)).constructor=Art,(Rrt.prototype=Object.create(krt.prototype)).constructor=Rrt,(Trt.prototype=Object.create(krt.prototype)).constructor=Trt,(Nrt.prototype=Object.create(krt.prototype)).constructor=Nrt,(Irt.prototype=Object.create(krt.prototype)).constructor=Irt,Irt.prototype.isFloat16BufferAttribute=!0,(zrt.prototype=Object.create(krt.prototype)).constructor=zrt,(Hrt.prototype=Object.create(krt.prototype)).constructor=Hrt;const Lrt={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!=typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Brt(t,e){return new Lrt[t](e)}let Vrt=0;const jrt=new kat,Urt=new Qat,Wrt=new $it,Grt=new nat,Yrt=new nat,qrt=new $it;function Zrt(){Object.defineProperty(this,"id",{value:Vrt++}),this.uuid=jit.generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}Zrt.prototype=Object.assign(Object.create(Lit.prototype),{constructor:Zrt,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(t){return this.index=Array.isArray(t)?new(Frt(t)>65535?Nrt:Rrt)(t,1):t,this},getAttribute:function(t){return this.attributes[t]},setAttribute:function(t,e){return this.attributes[t]=e,this},deleteAttribute:function(t){return delete this.attributes[t],this},hasAttribute:function(t){return void 0!==this.attributes[t]},addGroup:function(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,e){this.drawRange.start=t,this.drawRange.count=e},applyMatrix4:function(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new Wit).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const o=this.attributes.tangent;return void 0!==o&&(o.transformDirection(t),o.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(t){return jrt.makeRotationX(t),this.applyMatrix4(jrt),this},rotateY:function(t){return jrt.makeRotationY(t),this.applyMatrix4(jrt),this},rotateZ:function(t){return jrt.makeRotationZ(t),this.applyMatrix4(jrt),this},translate:function(t,e,n){return jrt.makeTranslation(t,e,n),this.applyMatrix4(jrt),this},scale:function(t,e,n){return jrt.makeScale(t,e,n),this.applyMatrix4(jrt),this},lookAt:function(t){return Urt.lookAt(t),Urt.updateMatrix(),this.applyMatrix4(Urt.matrix),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter(Wrt).negate(),this.translate(Wrt.x,Wrt.y,Wrt.z),this},setFromPoints:function(t){const e=[];for(let n=0,o=t.length;n<o;n++){const o=t[n];e.push(o.x,o.y,o.z||0)}return this.setAttribute("position",new zrt(e,3)),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new nat);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingBox.set(new $it(-1/0,-1/0,-1/0),new $it(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++)Grt.setFromBufferAttribute(e[t]),this.morphTargetsRelative?(qrt.addVectors(this.boundingBox.min,Grt.min),this.boundingBox.expandByPoint(qrt),qrt.addVectors(this.boundingBox.max,Grt.max),this.boundingBox.expandByPoint(qrt)):(this.boundingBox.expandByPoint(Grt.min),this.boundingBox.expandByPoint(Grt.max))}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new yat);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingSphere.set(new $it,1/0);if(t){const n=this.boundingSphere.center;if(Grt.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++)Yrt.setFromBufferAttribute(e[t]),this.morphTargetsRelative?(qrt.addVectors(Grt.min,Yrt.min),Grt.expandByPoint(qrt),qrt.addVectors(Grt.max,Yrt.max),Grt.expandByPoint(qrt)):(Grt.expandByPoint(Yrt.min),Grt.expandByPoint(Yrt.max));Grt.getCenter(n);let o=0;for(let e=0,i=t.count;e<i;e++)qrt.fromBufferAttribute(t,e),o=Math.max(o,n.distanceToSquared(qrt));if(e)for(let i=0,a=e.length;i<a;i++){const a=e[i],r=this.morphTargetsRelative;for(let e=0,i=a.count;e<i;e++)qrt.fromBufferAttribute(a,e),r&&(Wrt.fromBufferAttribute(t,e),qrt.add(Wrt)),o=Math.max(o,n.distanceToSquared(qrt))}this.boundingSphere.radius=Math.sqrt(o),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}},computeFaceNormals:function(){},computeTangents:function(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");const n=t.array,o=e.position.array,i=e.normal.array,a=e.uv.array,r=o.length/3;void 0===e.tangent&&this.setAttribute("tangent",new krt(new Float32Array(4*r),4));const s=e.tangent.array,l=[],c=[];for(let t=0;t<r;t++)l[t]=new $it,c[t]=new $it;const d=new $it,p=new $it,m=new $it,u=new Uit,f=new Uit,g=new Uit,h=new $it,b=new $it;function y(t,e,n){d.fromArray(o,3*t),p.fromArray(o,3*e),m.fromArray(o,3*n),u.fromArray(a,2*t),f.fromArray(a,2*e),g.fromArray(a,2*n),p.sub(d),m.sub(d),f.sub(u),g.sub(u);const i=1/(f.x*g.y-g.x*f.y);isFinite(i)&&(h.copy(p).multiplyScalar(g.y).addScaledVector(m,-f.y).multiplyScalar(i),b.copy(m).multiplyScalar(f.x).addScaledVector(p,-g.x).multiplyScalar(i),l[t].add(h),l[e].add(h),l[n].add(h),c[t].add(b),c[e].add(b),c[n].add(b))}let _=this.groups;0===_.length&&(_=[{start:0,count:n.length}]);for(let t=0,e=_.length;t<e;++t){const e=_[t],o=e.start;for(let t=o,i=o+e.count;t<i;t+=3)y(n[t+0],n[t+1],n[t+2])}const C=new $it,M=new $it,v=new $it,x=new $it;function O(t){v.fromArray(i,3*t),x.copy(v);const e=l[t];C.copy(e),C.sub(v.multiplyScalar(v.dot(e))).normalize(),M.crossVectors(x,e);const n=M.dot(c[t])<0?-1:1;s[4*t]=C.x,s[4*t+1]=C.y,s[4*t+2]=C.z,s[4*t+3]=n}for(let t=0,e=_.length;t<e;++t){const e=_[t],o=e.start;for(let t=o,i=o+e.count;t<i;t+=3)O(n[t+0]),O(n[t+1]),O(n[t+2])}},computeVertexNormals:function(){const t=this.index,e=this.getAttribute("position");if(void 0!==e){let n=this.getAttribute("normal");if(void 0===n)n=new krt(new Float32Array(3*e.count),3),this.setAttribute("normal",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const o=new $it,i=new $it,a=new $it,r=new $it,s=new $it,l=new $it,c=new $it,d=new $it;if(t)for(let p=0,m=t.count;p<m;p+=3){const m=t.getX(p+0),u=t.getX(p+1),f=t.getX(p+2);o.fromBufferAttribute(e,m),i.fromBufferAttribute(e,u),a.fromBufferAttribute(e,f),c.subVectors(a,i),d.subVectors(o,i),c.cross(d),r.fromBufferAttribute(n,m),s.fromBufferAttribute(n,u),l.fromBufferAttribute(n,f),r.add(c),s.add(c),l.add(c),n.setXYZ(m,r.x,r.y,r.z),n.setXYZ(u,s.x,s.y,s.z),n.setXYZ(f,l.x,l.y,l.z)}else for(let t=0,r=e.count;t<r;t+=3)o.fromBufferAttribute(e,t+0),i.fromBufferAttribute(e,t+1),a.fromBufferAttribute(e,t+2),c.subVectors(a,i),d.subVectors(o,i),c.cross(d),n.setXYZ(t+0,c.x,c.y,c.z),n.setXYZ(t+1,c.x,c.y,c.z),n.setXYZ(t+2,c.x,c.y,c.z);this.normalizeNormals(),n.needsUpdate=!0}},merge:function(t,e){if(!t||!t.isBufferGeometry)return void console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",t);void 0===e&&(e=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));const n=this.attributes;for(const o in n){if(void 0===t.attributes[o])continue;const i=n[o].array,a=t.attributes[o],r=a.array,s=a.itemSize*e,l=Math.min(r.length,i.length-s);for(let t=0,e=s;t<l;t++,e++)i[e]=r[t]}return this},normalizeNormals:function(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)qrt.fromBufferAttribute(t,e),qrt.normalize(),t.setXYZ(e,qrt.x,qrt.y,qrt.z)},toNonIndexed:function(){function t(t,e){const n=t.array,o=t.itemSize,i=t.normalized,a=new n.constructor(e.length*o);let r=0,s=0;for(let t=0,i=e.length;t<i;t++){r=e[t]*o;for(let t=0;t<o;t++)a[s++]=n[r++]}return new krt(a,o,i)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const e=new Zrt,n=this.index.array,o=this.attributes;for(const i in o){const a=t(o[i],n);e.setAttribute(i,a)}const i=this.morphAttributes;for(const o in i){const a=[],r=i[o];for(let e=0,o=r.length;e<o;e++){const o=t(r[e],n);a.push(o)}e.morphAttributes[o]=a}e.morphTargetsRelative=this.morphTargetsRelative;const a=this.groups;for(let t=0,n=a.length;t<n;t++){const n=a[t];e.addGroup(n.start,n.count,n.materialIndex)}return e},toJSON:function(){const t={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const o=n[e],i=o.toJSON(t.data);""!==o.name&&(i.name=o.name),t.data.attributes[e]=i}const o={};let i=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],a=[];for(let e=0,o=n.length;e<o;e++){const o=n[e],i=o.toJSON(t.data);""!==o.name&&(i.name=o.name),a.push(i)}a.length>0&&(o[e]=a,i=!0)}i&&(t.data.morphAttributes=o,t.data.morphTargetsRelative=this.morphTargetsRelative);const a=this.groups;a.length>0&&(t.data.groups=JSON.parse(JSON.stringify(a)));const r=this.boundingSphere;return null!==r&&(t.data.boundingSphere={center:r.center.toArray(),radius:r.radius}),t},clone:function(){return(new Zrt).copy(this)},copy:function(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const o=t.attributes;for(const t in o)this.setAttribute(t,o[t].clone(e));const i=t.morphAttributes;for(const t in i){const n=[],o=i[t];for(let t=0,i=o.length;t<i;t++)n.push(o[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const a=t.groups;for(let t=0,e=a.length;t<e;t++){const e=a[t];this.addGroup(e.start,e.count,e.materialIndex)}const r=t.boundingBox;null!==r&&(this.boundingBox=r.clone());const s=t.boundingSphere;return null!==s&&(this.boundingSphere=s.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this},dispose:function(){this.dispatchEvent({type:"dispose"})}});const Xrt=new kat,Krt=new wat,Jrt=new yat,Qrt=new $it,$rt=new $it,tst=new $it,est=new $it,nst=new $it,ost=new $it,ist=new $it,ast=new $it,rst=new $it,sst=new Uit,lst=new Uit,cst=new Uit,dst=new $it,pst=new $it;function mst(t=new Zrt,e=new Ort){Qat.call(this),this.type="Mesh",this.geometry=t,this.material=e,this.updateMorphTargets()}function ust(t,e,n,o,i,a,r,s,l,c,d,p){Qrt.fromBufferAttribute(i,c),$rt.fromBufferAttribute(i,d),tst.fromBufferAttribute(i,p);const m=t.morphTargetInfluences;if(e.morphTargets&&a&&m){ist.set(0,0,0),ast.set(0,0,0),rst.set(0,0,0);for(let t=0,e=a.length;t<e;t++){const e=m[t],n=a[t];0!==e&&(est.fromBufferAttribute(n,c),nst.fromBufferAttribute(n,d),ost.fromBufferAttribute(n,p),r?(ist.addScaledVector(est,e),ast.addScaledVector(nst,e),rst.addScaledVector(ost,e)):(ist.addScaledVector(est.sub(Qrt),e),ast.addScaledVector(nst.sub($rt),e),rst.addScaledVector(ost.sub(tst),e)))}Qrt.add(ist),$rt.add(ast),tst.add(rst)}t.isSkinnedMesh&&(t.boneTransform(c,Qrt),t.boneTransform(d,$rt),t.boneTransform(p,tst));const u=(function f(t,e,n,o,i,a,r,s){let l;if(l=1===e.side?o.intersectTriangle(r,a,i,!0,s):o.intersectTriangle(i,a,r,2!==e.side,s),null===l)return null;pst.copy(s),pst.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(pst);return c<n.near||c>n.far?null:{distance:c,point:pst.clone(),object:t}})(t,e,n,o,Qrt,$rt,tst,dst);if(u){s&&(sst.fromBufferAttribute(s,c),lst.fromBufferAttribute(s,d),cst.fromBufferAttribute(s,p),u.uv=urt.getUV(dst,Qrt,$rt,tst,sst,lst,cst,new Uit)),l&&(sst.fromBufferAttribute(l,c),lst.fromBufferAttribute(l,d),cst.fromBufferAttribute(l,p),u.uv2=urt.getUV(dst,Qrt,$rt,tst,sst,lst,cst,new Uit));const t=new Mrt(c,d,p);urt.getNormal(Qrt,$rt,tst,t.normal),u.face=t}return u}mst.prototype=Object.assign(Object.create(Qat.prototype),{constructor:mst,isMesh:!0,copy:function(t){return Qat.prototype.copy.call(this,t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this},updateMorphTargets:function(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}},raycast:function(t,e){const n=this.geometry,o=this.material,i=this.matrixWorld;if(void 0===o)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),Jrt.copy(n.boundingSphere),Jrt.applyMatrix4(i),!1===t.ray.intersectsSphere(Jrt))return;if(Xrt.copy(i).invert(),Krt.copy(t.ray).applyMatrix4(Xrt),null!==n.boundingBox&&!1===Krt.intersectsBox(n.boundingBox))return;let a;if(n.isBufferGeometry){const i=n.index,r=n.attributes.position,s=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,d=n.attributes.uv2,p=n.groups,m=n.drawRange;if(null!==i)if(Array.isArray(o))for(let n=0,u=p.length;n<u;n++){const u=p[n],f=o[u.materialIndex];for(let n=Math.max(u.start,m.start),o=Math.min(u.start+u.count,m.start+m.count);n<o;n+=3){const o=i.getX(n),p=i.getX(n+1),m=i.getX(n+2);a=ust(this,f,t,Krt,r,s,l,c,d,o,p,m),a&&(a.faceIndex=Math.floor(n/3),a.face.materialIndex=u.materialIndex,e.push(a))}}else for(let n=Math.max(0,m.start),p=Math.min(i.count,m.start+m.count);n<p;n+=3){const p=i.getX(n),m=i.getX(n+1),u=i.getX(n+2);a=ust(this,o,t,Krt,r,s,l,c,d,p,m,u),a&&(a.faceIndex=Math.floor(n/3),e.push(a))}else if(void 0!==r)if(Array.isArray(o))for(let n=0,i=p.length;n<i;n++){const i=p[n],u=o[i.materialIndex];for(let n=Math.max(i.start,m.start),o=Math.min(i.start+i.count,m.start+m.count);n<o;n+=3)a=ust(this,u,t,Krt,r,s,l,c,d,n,n+1,n+2),a&&(a.faceIndex=Math.floor(n/3),a.face.materialIndex=i.materialIndex,e.push(a))}else for(let n=Math.max(0,m.start),i=Math.min(r.count,m.start+m.count);n<i;n+=3)a=ust(this,o,t,Krt,r,s,l,c,d,n,n+1,n+2),a&&(a.faceIndex=Math.floor(n/3),e.push(a))}else n.isGeometry&&console.error("THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}});class fst extends Zrt{constructor(t=1,e=1,n=1,o=1,i=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:o,heightSegments:i,depthSegments:a};const r=this;o=Math.floor(o),i=Math.floor(i),a=Math.floor(a);const s=[],l=[],c=[],d=[];let p=0,m=0;function u(t,e,n,o,i,a,u,f,g,h,b){const y=a/g,_=u/h,C=a/2,M=u/2,v=f/2,x=g+1,O=h+1;let P=0,w=0;const k=new $it;for(let a=0;a<O;a++){const r=a*_-M;for(let s=0;s<x;s++)k[t]=(s*y-C)*o,k[e]=r*i,k[n]=v,l.push(k.x,k.y,k.z),k[t]=0,k[e]=0,k[n]=f>0?1:-1,c.push(k.x,k.y,k.z),d.push(s/g),d.push(1-a/h),P+=1}for(let t=0;t<h;t++)for(let e=0;e<g;e++){const n=p+e+x*(t+1),o=p+(e+1)+x*(t+1),i=p+(e+1)+x*t;s.push(p+e+x*t,n,i),s.push(n,o,i),w+=6}r.addGroup(m,w,b),m+=w,p+=P}u("z","y","x",-1,-1,n,e,t,a,i,0),u("z","y","x",1,-1,n,e,-t,a,i,1),u("x","z","y",1,1,t,n,e,o,a,2),u("x","z","y",1,-1,t,n,-e,o,a,3),u("x","y","z",1,-1,t,e,n,o,i,4),u("x","y","z",-1,-1,t,e,-n,o,i,5),this.setIndex(s),this.setAttribute("position",new zrt(l,3)),this.setAttribute("normal",new zrt(c,3)),this.setAttribute("uv",new zrt(d,2))}}function gst(t){const e={};for(const n in t){e[n]={};for(const o in t[n]){const i=t[n][o];e[n][o]=i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture)?i.clone():Array.isArray(i)?i.slice():i}}return e}function hst(t){const e={};for(let n=0;n<t.length;n++){const o=gst(t[n]);for(const t in o)e[t]=o[t]}return e}const bst={clone:gst,merge:hst};function yst(t){xrt.call(this),this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(t))}function _st(){Qat.call(this),this.type="Camera",this.matrixWorldInverse=new kat,this.projectionMatrix=new kat,this.projectionMatrixInverse=new kat}function Cst(t=50,e=1,n=.1,o=2e3){_st.call(this),this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=o,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}(yst.prototype=Object.create(xrt.prototype)).constructor=yst,yst.prototype.isShaderMaterial=!0,yst.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=gst(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this},yst.prototype.toJSON=function(t){const e=xrt.prototype.toJSON.call(this,t);e.glslVersion=this.glslVersion,e.uniforms={};for(const n in this.uniforms){const o=this.uniforms[n].value;e.uniforms[n]=o&&o.isTexture?{type:"t",value:o.toJSON(t).uuid}:o&&o.isColor?{type:"c",value:o.getHex()}:o&&o.isVector2?{type:"v2",value:o.toArray()}:o&&o.isVector3?{type:"v3",value:o.toArray()}:o&&o.isVector4?{type:"v4",value:o.toArray()}:o&&o.isMatrix3?{type:"m3",value:o.toArray()}:o&&o.isMatrix4?{type:"m4",value:o.toArray()}:{value:o}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e},_st.prototype=Object.assign(Object.create(Qat.prototype),{constructor:_st,isCamera:!0,copy:function(t,e){return Qat.prototype.copy.call(this,t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),t=new $it),this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()},updateMatrixWorld:function(t){Qat.prototype.updateMatrixWorld.call(this,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()},updateWorldMatrix:function(t,e){Qat.prototype.updateWorldMatrix.call(this,t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()},clone:function(){return(new this.constructor).copy(this)}}),Cst.prototype=Object.assign(Object.create(_st.prototype),{constructor:Cst,isPerspectiveCamera:!0,copy:function(t,e){return _st.prototype.copy.call(this,t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this},setFocalLength:function(t){const e=.5*this.getFilmHeight()/t;this.fov=2*jit.RAD2DEG*Math.atan(e),this.updateProjectionMatrix()},getFocalLength:function(){const t=Math.tan(.5*jit.DEG2RAD*this.fov);return.5*this.getFilmHeight()/t},getEffectiveFOV:function(){return 2*jit.RAD2DEG*Math.atan(Math.tan(.5*jit.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(t,e,n,o,i,a){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=o,this.view.width=i,this.view.height=a,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){const t=this.near;let e=t*Math.tan(.5*jit.DEG2RAD*this.fov)/this.zoom,n=2*e,o=this.aspect*n,i=-.5*o;const a=this.view;if(null!==this.view&&this.view.enabled){const t=a.fullWidth,r=a.fullHeight;i+=a.offsetX*o/t,e-=a.offsetY*n/r,o*=a.width/t,n*=a.height/r}const r=this.filmOffset;0!==r&&(i+=t*r/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+o,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()},toJSON:function(t){const e=Qat.prototype.toJSON.call(this,t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}});const Mst=90;function vst(t,e,n){if(Qat.call(this),this.type="CubeCamera",!0!==n.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=n;const o=new Cst(Mst,1,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new $it(1,0,0)),this.add(o);const i=new Cst(Mst,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new $it(-1,0,0)),this.add(i);const a=new Cst(Mst,1,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(new $it(0,1,0)),this.add(a);const r=new Cst(Mst,1,t,e);r.layers=this.layers,r.up.set(0,0,-1),r.lookAt(new $it(0,-1,0)),this.add(r);const s=new Cst(Mst,1,t,e);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new $it(0,0,1)),this.add(s);const l=new Cst(Mst,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new $it(0,0,-1)),this.add(l),this.update=function(t,e){null===this.parent&&this.updateMatrixWorld();const c=t.xr.enabled,d=t.getRenderTarget();t.xr.enabled=!1;const p=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,o),t.setRenderTarget(n,1),t.render(e,i),t.setRenderTarget(n,2),t.render(e,a),t.setRenderTarget(n,3),t.render(e,r),t.setRenderTarget(n,4),t.render(e,s),n.texture.generateMipmaps=p,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(d),t.xr.enabled=c}}function xst(t,e,n,o,i,a,r,s,l,c){Zit.call(this,t=void 0!==t?t:[],e=void 0!==e?e:301,n,o,i,a,r=void 0!==r?r:Oit,s,l,c),this.flipY=!1,this._needsFlipEnvMap=!0}(vst.prototype=Object.create(Qat.prototype)).constructor=vst,(xst.prototype=Object.create(Zit.prototype)).constructor=xst,xst.prototype.isCubeTexture=!0,Object.defineProperty(xst.prototype,"images",{get:function(){return this.image},set:function(t){this.image=t}});class Ost extends Jit{constructor(t,e,n){Number.isInteger(e)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),e=n),super(t,t,e),Object.defineProperty(this,"isWebGLCubeRenderTarget",{value:!0}),this.texture=new xst(void 0,(e=e||{}).mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=Pit,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n=new fst(5,5,5),o=new yst({name:"CubemapFromEquirect",uniforms:gst({tEquirect:{value:null}}),vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",side:1,blending:0});o.uniforms.tEquirect.value=e;const i=new mst(n,o),a=e.minFilter;return e.minFilter===yit&&(e.minFilter=bit),new vst(1,10,this).update(t,i),e.minFilter=a,i.geometry.dispose(),i.material.dispose(),this}clear(t,e,n,o){const i=t.getRenderTarget();for(let i=0;i<6;i++)t.setRenderTarget(this,i),t.clear(e,n,o);t.setRenderTarget(i)}}function Pst(t,e,n,o,i,a,r,s,l,c,d,p){Zit.call(this,null,a,r,s,l,c,o,i,d,p),this.image={data:t||null,width:e||1,height:n||1},this.magFilter=void 0!==l?l:hit,this.minFilter=void 0!==c?c:hit,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}(Pst.prototype=Object.create(Zit.prototype)).constructor=Pst,Pst.prototype.isDataTexture=!0;const wst=new yat,kst=new $it;class Sst{constructor(t,e,n,o,i,a){this.planes=[void 0!==t?t:new nrt,void 0!==e?e:new nrt,void 0!==n?n:new nrt,void 0!==o?o:new nrt,void 0!==i?i:new nrt,void 0!==a?a:new nrt]}set(t,e,n,o,i,a){const r=this.planes;return r[0].copy(t),r[1].copy(e),r[2].copy(n),r[3].copy(o),r[4].copy(i),r[5].copy(a),this}clone(){return(new this.constructor).copy(this)}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,o=n[0],i=n[1],a=n[2],r=n[3],s=n[4],l=n[5],c=n[6],d=n[7],p=n[8],m=n[9],u=n[10],f=n[11],g=n[12],h=n[13],b=n[14],y=n[15];return e[0].setComponents(r-o,d-s,f-p,y-g).normalize(),e[1].setComponents(r+o,d+s,f+p,y+g).normalize(),e[2].setComponents(r+i,d+l,f+m,y+h).normalize(),e[3].setComponents(r-i,d-l,f-m,y-h).normalize(),e[4].setComponents(r-a,d-c,f-u,y-b).normalize(),e[5].setComponents(r+a,d+c,f+u,y+b).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),wst.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(wst)}intersectsSprite(t){return wst.center.set(0,0,0),wst.radius=.7071067811865476,wst.applyMatrix4(t.matrixWorld),this.intersectsSphere(wst)}intersectsSphere(t){const e=this.planes,n=t.center,o=-t.radius;for(let t=0;t<6;t++)if(e[t].distanceToPoint(n)<o)return!1;return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const o=e[n];if(kst.x=o.normal.x>0?t.max.x:t.min.x,kst.y=o.normal.y>0?t.max.y:t.min.y,kst.z=o.normal.z>0?t.max.z:t.min.z,o.distanceToPoint(kst)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}}function Dst(){let t=null,e=!1,n=null,o=null;function i(e,a){n(e,a),o=t.requestAnimationFrame(i)}return{start:function(){!0!==e&&null!==n&&(o=t.requestAnimationFrame(i),e=!0)},stop:function(){t.cancelAnimationFrame(o),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function Est(t,e){const n=e.isWebGL2,o=new WeakMap;return{get:function i(t){return t.isInterleavedBufferAttribute&&(t=t.data),o.get(t)},remove:function a(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=o.get(e);n&&(t.deleteBuffer(n.buffer),o.delete(e))},update:function r(e,i){if(e.isGLBufferAttribute){const t=o.get(e);return void((!t||t.version<e.version)&&o.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const a=o.get(e);void 0===a?o.set(e,(function r(e,o){const i=e.array,a=e.usage,r=t.createBuffer();t.bindBuffer(o,r),t.bufferData(o,i,a),e.onUploadCallback();let s=5126;return i instanceof Float32Array?s=5126:i instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):i instanceof Uint16Array?e.isFloat16BufferAttribute?n?s=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):s=5123:i instanceof Int16Array?s=5122:i instanceof Uint32Array?s=5125:i instanceof Int32Array?s=5124:i instanceof Int8Array?s=5120:i instanceof Uint8Array&&(s=5121),{buffer:r,type:s,bytesPerElement:i.BYTES_PER_ELEMENT,version:e.version}})(e,i)):a.version<e.version&&((function s(e,o,i){const a=o.array,r=o.updateRange;t.bindBuffer(i,e),-1===r.count?t.bufferSubData(i,0,a):(n?t.bufferSubData(i,r.offset*a.BYTES_PER_ELEMENT,a,r.offset,r.count):t.bufferSubData(i,r.offset*a.BYTES_PER_ELEMENT,a.subarray(r.offset,r.offset+r.count)),r.count=-1)})(a.buffer,e,i),a.version=e.version)}}}class Ast extends Zrt{constructor(t=1,e=1,n=1,o=1){super(),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:o};const i=t/2,a=e/2,r=Math.floor(n),s=Math.floor(o),l=r+1,c=s+1,d=t/r,p=e/s,m=[],u=[],f=[],g=[];for(let t=0;t<c;t++){const e=t*p-a;for(let n=0;n<l;n++)u.push(n*d-i,-e,0),f.push(0,0,1),g.push(n/r),g.push(1-t/s)}for(let t=0;t<s;t++)for(let e=0;e<r;e++){const n=e+l*(t+1),o=e+1+l*(t+1),i=e+1+l*t;m.push(e+l*t,n,i),m.push(n,o,i)}this.setIndex(m),this.setAttribute("position",new zrt(u,3)),this.setAttribute("normal",new zrt(f,3)),this.setAttribute("uv",new zrt(g,2))}}const Rst={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor.xyz *= color.xyz;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_maxMipLevel 8.0\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_maxTileSize 256.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tif ( mipInt < cubeUV_maxMipLevel ) {\n\t\t\tuv.y += 2.0 * cubeUV_maxTileSize;\n\t\t}\n\t\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\n\t\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\n\t\tuv *= texelSize;\n\t\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tfogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat specularRoughness;\n\tvec3 specularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(    0, 1,    0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\t\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\t\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",normal_fragment_begin:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\tvec3 N = normalize( surf_norm );\n\t\tmat3 tsn = mat3( S, T, N );\n\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t  f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t  f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3(  1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,  1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,  1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmissionmap_fragment:"#ifdef USE_TRANSMISSIONMAP\n\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\n#endif",transmissionmap_pars_fragment:"#ifdef USE_TRANSMISSIONMAP\n\tuniform sampler2D transmissionMap;\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",cube_frag:"#include <envmap_common_pars_fragment>\nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include <envmap_fragment>\n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",cube_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <transmissionmap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <transmissionmap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",shadow_vert:"#include <common>\n#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}"},Tst={common:{diffuse:{value:new Crt(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new Wit},uv2Transform:{value:new Wit},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Uit(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Crt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Crt(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new Wit}},sprite:{diffuse:{value:new Crt(15658734)},opacity:{value:1},center:{value:new Uit(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new Wit}}},Nst={basic:{uniforms:hst([Tst.common,Tst.specularmap,Tst.envmap,Tst.aomap,Tst.lightmap,Tst.fog]),vertexShader:Rst.meshbasic_vert,fragmentShader:Rst.meshbasic_frag},lambert:{uniforms:hst([Tst.common,Tst.specularmap,Tst.envmap,Tst.aomap,Tst.lightmap,Tst.emissivemap,Tst.fog,Tst.lights,{emissive:{value:new Crt(0)}}]),vertexShader:Rst.meshlambert_vert,fragmentShader:Rst.meshlambert_frag},phong:{uniforms:hst([Tst.common,Tst.specularmap,Tst.envmap,Tst.aomap,Tst.lightmap,Tst.emissivemap,Tst.bumpmap,Tst.normalmap,Tst.displacementmap,Tst.fog,Tst.lights,{emissive:{value:new Crt(0)},specular:{value:new Crt(1118481)},shininess:{value:30}}]),vertexShader:Rst.meshphong_vert,fragmentShader:Rst.meshphong_frag},standard:{uniforms:hst([Tst.common,Tst.envmap,Tst.aomap,Tst.lightmap,Tst.emissivemap,Tst.bumpmap,Tst.normalmap,Tst.displacementmap,Tst.roughnessmap,Tst.metalnessmap,Tst.fog,Tst.lights,{emissive:{value:new Crt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Rst.meshphysical_vert,fragmentShader:Rst.meshphysical_frag},toon:{uniforms:hst([Tst.common,Tst.aomap,Tst.lightmap,Tst.emissivemap,Tst.bumpmap,Tst.normalmap,Tst.displacementmap,Tst.gradientmap,Tst.fog,Tst.lights,{emissive:{value:new Crt(0)}}]),vertexShader:Rst.meshtoon_vert,fragmentShader:Rst.meshtoon_frag},matcap:{uniforms:hst([Tst.common,Tst.bumpmap,Tst.normalmap,Tst.displacementmap,Tst.fog,{matcap:{value:null}}]),vertexShader:Rst.meshmatcap_vert,fragmentShader:Rst.meshmatcap_frag},points:{uniforms:hst([Tst.points,Tst.fog]),vertexShader:Rst.points_vert,fragmentShader:Rst.points_frag},dashed:{uniforms:hst([Tst.common,Tst.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Rst.linedashed_vert,fragmentShader:Rst.linedashed_frag},depth:{uniforms:hst([Tst.common,Tst.displacementmap]),vertexShader:Rst.depth_vert,fragmentShader:Rst.depth_frag},normal:{uniforms:hst([Tst.common,Tst.bumpmap,Tst.normalmap,Tst.displacementmap,{opacity:{value:1}}]),vertexShader:Rst.normal_vert,fragmentShader:Rst.normal_frag},sprite:{uniforms:hst([Tst.sprite,Tst.fog]),vertexShader:Rst.sprite_vert,fragmentShader:Rst.sprite_frag},background:{uniforms:{uvTransform:{value:new Wit},t2D:{value:null}},vertexShader:Rst.background_vert,fragmentShader:Rst.background_frag},cube:{uniforms:hst([Tst.envmap,{opacity:{value:1}}]),vertexShader:Rst.cube_vert,fragmentShader:Rst.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Rst.equirect_vert,fragmentShader:Rst.equirect_frag},distanceRGBA:{uniforms:hst([Tst.common,Tst.displacementmap,{referencePosition:{value:new $it},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Rst.distanceRGBA_vert,fragmentShader:Rst.distanceRGBA_frag},shadow:{uniforms:hst([Tst.lights,Tst.fog,{color:{value:new Crt(0)},opacity:{value:1}}]),vertexShader:Rst.shadow_vert,fragmentShader:Rst.shadow_frag}};function Ist(t,e,n,o,i){const a=new Crt(0);let r,s,l=0,c=null,d=0,p=null;function m(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,i)}return{getClearColor:function(){return a},setClearColor:function(t,e=1){a.set(t),l=e,m(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(t){l=t,m(a,l)},render:function u(n,i,f,g){let h=!0===i.isScene?i.background:null;h&&h.isTexture&&(h=e.get(h));const b=t.xr,y=b.getSession&&b.getSession();y&&"additive"===y.environmentBlendMode&&(h=null),null===h?m(a,l):h&&h.isColor&&(m(h,1),g=!0),(t.autoClear||g)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),h&&(h.isCubeTexture||h.isWebGLCubeRenderTarget||306===h.mapping)?(void 0===s&&(s=new mst(new fst(1,1,1),new yst({name:"BackgroundCubeMaterial",uniforms:gst(Nst.cube.uniforms),vertexShader:Nst.cube.vertexShader,fragmentShader:Nst.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),s.geometry.deleteAttribute("normal"),s.geometry.deleteAttribute("uv"),s.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(s.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),o.update(s)),h.isWebGLCubeRenderTarget&&(h=h.texture),s.material.uniforms.envMap.value=h,s.material.uniforms.flipEnvMap.value=h.isCubeTexture&&h._needsFlipEnvMap?-1:1,c===h&&d===h.version&&p===t.toneMapping||(s.material.needsUpdate=!0,c=h,d=h.version,p=t.toneMapping),n.unshift(s,s.geometry,s.material,0,0,null)):h&&h.isTexture&&(void 0===r&&(r=new mst(new Ast(2,2),new yst({name:"BackgroundMaterial",uniforms:gst(Nst.background.uniforms),vertexShader:Nst.background.vertexShader,fragmentShader:Nst.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),r.geometry.deleteAttribute("normal"),Object.defineProperty(r.material,"map",{get:function(){return this.uniforms.t2D.value}}),o.update(r)),r.material.uniforms.t2D.value=h,!0===h.matrixAutoUpdate&&h.updateMatrix(),r.material.uniforms.uvTransform.value.copy(h.matrix),c===h&&d===h.version&&p===t.toneMapping||(r.material.needsUpdate=!0,c=h,d=h.version,p=t.toneMapping),n.unshift(r,r.geometry,r.material,0,0,null))}}}function zst(t,e,n,o){const i=t.getParameter(34921),a=o.isWebGL2?null:e.get("OES_vertex_array_object"),r=o.isWebGL2||null!==a,s={},l=m(null);let c=l;function d(e){return o.isWebGL2?t.bindVertexArray(e):a.bindVertexArrayOES(e)}function p(e){return o.isWebGL2?t.deleteVertexArray(e):a.deleteVertexArrayOES(e)}function m(t){const e=[],n=[],o=[];for(let t=0;t<i;t++)e[t]=0,n[t]=0,o[t]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:o,object:t,attributes:{},index:null}}function u(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function f(t){g(t,0)}function g(n,i){const a=c.enabledAttributes,r=c.attributeDivisors;c.newAttributes[n]=1,0===a[n]&&(t.enableVertexAttribArray(n),a[n]=1),r[n]!==i&&((o.isWebGL2?t:e.get("ANGLE_instanced_arrays"))[o.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](n,i),r[n]=i)}function h(){const e=c.newAttributes,n=c.enabledAttributes;for(let o=0,i=n.length;o<i;o++)n[o]!==e[o]&&(t.disableVertexAttribArray(o),n[o]=0)}function b(e,n,i,a,r,s){!0!==o.isWebGL2||5124!==i&&5125!==i?t.vertexAttribPointer(e,n,i,a,r,s):t.vertexAttribIPointer(e,n,i,r,s)}function y(){_(),c!==l&&(c=l,d(c.object))}function _(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function C(i,l,p,y,_){let C=!1;if(r){const e=(function M(e,n,i){const r=!0===i.wireframe;let l=s[e.id];void 0===l&&(l={},s[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let d=c[r];return void 0===d&&(d=m((function p(){return o.isWebGL2?t.createVertexArray():a.createVertexArrayOES()})()),c[r]=d),d})(y,p,l);c!==e&&(c=e,d(c.object)),C=(function v(t,e){const n=c.attributes,o=t.attributes;let i=0;for(const t in o){const e=n[t],a=o[t];if(void 0===e)return!0;if(e.attribute!==a)return!0;if(e.data!==a.data)return!0;i++}return c.attributesNum!==i||c.index!==e})(y,_),C&&(function x(t,e){const n={},o=t.attributes;let i=0;for(const t in o){const e=o[t],a={};a.attribute=e,e.data&&(a.data=e.data),n[t]=a,i++}c.attributes=n,c.attributesNum=i,c.index=e})(y,_)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===p.id&&c.wireframe===t||(c.geometry=y.id,c.program=p.id,c.wireframe=t,C=!0)}!0===i.isInstancedMesh&&(C=!0),null!==_&&n.update(_,34963),C&&((function O(i,a,r,s){if(!1===o.isWebGL2&&(i.isInstancedMesh||s.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;u();const l=s.attributes,c=r.getAttributes(),d=a.defaultAttributeValues;for(const e in c){const o=c[e];if(o>=0){const a=l[e];if(void 0!==a){const e=a.normalized,i=a.itemSize,r=n.get(a);if(void 0===r)continue;const l=r.buffer,c=r.type,d=r.bytesPerElement;if(a.isInterleavedBufferAttribute){const n=a.data,r=n.stride,p=a.offset;n&&n.isInstancedInterleavedBuffer?(g(o,n.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=n.meshPerAttribute*n.count)):f(o),t.bindBuffer(34962,l),b(o,i,c,e,r*d,p*d)}else a.isInstancedBufferAttribute?(g(o,a.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=a.meshPerAttribute*a.count)):f(o),t.bindBuffer(34962,l),b(o,i,c,e,0,0)}else if("instanceMatrix"===e){const e=n.get(i.instanceMatrix);if(void 0===e)continue;const a=e.buffer,r=e.type;g(o+0,1),g(o+1,1),g(o+2,1),g(o+3,1),t.bindBuffer(34962,a),t.vertexAttribPointer(o+0,4,r,!1,64,0),t.vertexAttribPointer(o+1,4,r,!1,64,16),t.vertexAttribPointer(o+2,4,r,!1,64,32),t.vertexAttribPointer(o+3,4,r,!1,64,48)}else if("instanceColor"===e){const e=n.get(i.instanceColor);if(void 0===e)continue;const a=e.buffer,r=e.type;g(o,1),t.bindBuffer(34962,a),t.vertexAttribPointer(o,3,r,!1,12,0)}else if(void 0!==d){const n=d[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(o,n);break;case 3:t.vertexAttrib3fv(o,n);break;case 4:t.vertexAttrib4fv(o,n);break;default:t.vertexAttrib1fv(o,n)}}}}h()})(i,l,p,y),null!==_&&t.bindBuffer(34963,n.get(_).buffer))},reset:y,resetDefaultState:_,dispose:function M(){y();for(const t in s){const e=s[t];for(const t in e){const n=e[t];for(const t in n)p(n[t].object),delete n[t];delete e[t]}delete s[t]}},releaseStatesOfGeometry:function v(t){if(void 0===s[t.id])return;const e=s[t.id];for(const t in e){const n=e[t];for(const t in n)p(n[t].object),delete n[t];delete e[t]}delete s[t.id]},releaseStatesOfProgram:function x(t){for(const e in s){const n=s[e];if(void 0===n[t.id])continue;const o=n[t.id];for(const t in o)p(o[t].object),delete o[t];delete n[t.id]}},initAttributes:u,enableAttribute:f,disableUnusedAttributes:h}}function Hst(t,e,n,o){const i=o.isWebGL2;let a;this.setMode=function r(t){a=t},this.render=function s(e,o){t.drawArrays(a,e,o),n.update(o,a,1)},this.renderInstances=function l(o,r,s){if(0===s)return;let l,c;if(i)l=t,c="drawArraysInstanced";else if(l=e.get("ANGLE_instanced_arrays"),c="drawArraysInstancedANGLE",null===l)return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");l[c](a,o,r,s),n.update(r,a,s)}}function Fst(t,e,n){let o;function i(e){if("highp"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const a="undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let r=void 0!==n.precision?n.precision:"highp";const s=i(r);s!==r&&(console.warn("THREE.WebGLRenderer:",r,"not supported, using",s,"instead."),r=s);const l=!0===n.logarithmicDepthBuffer,c=t.getParameter(34930),d=t.getParameter(35660),p=t.getParameter(3379),m=t.getParameter(34076),u=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),h=t.getParameter(36349),b=d>0,y=a||!!e.get("OES_texture_float");return{isWebGL2:a,getMaxAnisotropy:function _(){if(void 0!==o)return o;const n=e.get("EXT_texture_filter_anisotropic");return o=null!==n?t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,o},getMaxPrecision:i,precision:r,logarithmicDepthBuffer:l,maxTextures:c,maxVertexTextures:d,maxTextureSize:p,maxCubemapSize:m,maxAttributes:u,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:h,vertexTextures:b,floatFragmentTextures:y,floatVertexTextures:b&&y,maxSamples:a?t.getParameter(36183):0}}function Lst(t){const e=this;let n=null,o=0,i=!1,a=!1;const r=new nrt,s=new Wit,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=o>0),e.numPlanes=o,e.numIntersection=0}function d(t,n,o,i){const a=null!==t?t.length:0;let c=null;if(0!==a){if(c=l.value,!0!==i||null===c){const e=o+4*a,i=n.matrixWorldInverse;s.getNormalMatrix(i),(null===c||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=o;e!==a;++e,n+=4)r.copy(t[e]).applyMatrix4(i,s),r.normal.toArray(c,n),c[n+3]=r.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=a,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,a){const r=0!==t.length||e||0!==o||i;return i=e,n=d(t,a,0),o=t.length,r},this.beginShadows=function(){a=!0,d(null)},this.endShadows=function(){a=!1,c()},this.setState=function(e,r,s){const p=e.clippingPlanes,m=e.clipIntersection,u=e.clipShadows,f=t.get(e);if(!i||null===p||0===p.length||a&&!u)a?d(null):c();else{const t=a?0:o,e=4*t;let i=f.clippingState||null;l.value=i,i=d(p,r,e,s);for(let t=0;t!==e;++t)i[t]=n[t];f.clippingState=i,this.numIntersection=m?this.numPlanes:0,this.numPlanes+=t}}}function Bst(t){let e=new WeakMap;function n(t,e){return 303===e?t.mapping=301:304===e&&(t.mapping=302),t}function o(t){const n=t.target;n.removeEventListener("dispose",o);const i=e.get(n);void 0!==i&&(e.delete(n),i.dispose())}return{get:function i(a){if(a&&a.isTexture){const i=a.mapping;if(303===i||304===i){if(e.has(a))return n(e.get(a).texture,a.mapping);{const i=a.image;if(i&&i.height>0){const r=t.getRenderList(),s=t.getRenderTarget(),l=new Ost(i.height/2);return l.fromEquirectangularTexture(t,a),e.set(a,l),t.setRenderTarget(s),t.setRenderList(r),a.addEventListener("dispose",o),n(l.texture,a.mapping)}return null}}}return a},dispose:function a(){e=new WeakMap}}}function Vst(t){const e={};function n(n){if(void 0!==e[n])return e[n];let o;switch(n){case"WEBGL_depth_texture":o=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":o=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":o=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":o=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:o=t.getExtension(n)}return e[n]=o,o}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float")},get:function(t){const e=n(t);return null===e&&console.warn("THREE.WebGLRenderer: "+t+" extension not supported."),e}}}function jst(t,e,n,o){const i={},a=new WeakMap;function r(t){const s=t.target;null!==s.index&&e.remove(s.index);for(const t in s.attributes)e.remove(s.attributes[t]);s.removeEventListener("dispose",r),delete i[s.id];const l=a.get(s);l&&(e.remove(l),a.delete(s)),o.releaseStatesOfGeometry(s),!0===s.isInstancedBufferGeometry&&delete s._maxInstanceCount,n.memory.geometries--}function s(t){const n=[],o=t.index,i=t.attributes.position;let r=0;if(null!==o){const t=o.array;r=o.version;for(let e=0,o=t.length;e<o;e+=3){const o=t[e+0],i=t[e+1],a=t[e+2];n.push(o,i,i,a,a,o)}}else{r=i.version;for(let t=0,e=i.array.length/3-1;t<e;t+=3){const e=t+0,o=t+1,i=t+2;n.push(e,o,o,i,i,e)}}const s=new(Frt(n)>65535?Nrt:Rrt)(n,1);s.version=r;const l=a.get(t);l&&e.remove(l),a.set(t,s)}return{get:function l(t,e){return!0===i[e.id]||(e.addEventListener("dispose",r),i[e.id]=!0,n.memory.geometries++),e},update:function c(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const o=t.morphAttributes;for(const t in o){const n=o[t];for(let t=0,o=n.length;t<o;t++)e.update(n[t],34962)}},getWireframeAttribute:function d(t){const e=a.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&s(t)}else s(t);return a.get(t)}}}function Ust(t,e,n,o){const i=o.isWebGL2;let a,r,s;this.setMode=function l(t){a=t},this.setIndex=function c(t){r=t.type,s=t.bytesPerElement},this.render=function d(e,o){t.drawElements(a,o,r,e*s),n.update(o,a,1)},this.renderInstances=function p(o,l,c){if(0===c)return;let d,p;if(i)d=t,p="drawElementsInstanced";else if(d=e.get("ANGLE_instanced_arrays"),p="drawElementsInstancedANGLE",null===d)return void console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");d[p](a,l,r,o*s,c),n.update(l,a,c)}}function Wst(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function n(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function o(t,n,i){switch(e.calls++,n){case 4:e.triangles+=i*(t/3);break;case 1:e.lines+=i*(t/2);break;case 3:e.lines+=i*(t-1);break;case 2:e.lines+=i*t;break;case 0:e.points+=i*t;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",n)}}}}function Gst(t,e){return t[0]-e[0]}function Yst(t,e){return Math.abs(e[1])-Math.abs(t[1])}function qst(t){const e={},n=new Float32Array(8),o=[];for(let t=0;t<8;t++)o[t]=[t,0];return{update:function i(a,r,s,l){const c=a.morphTargetInfluences,d=void 0===c?0:c.length;let p=e[r.id];if(void 0===p){p=[];for(let t=0;t<d;t++)p[t]=[t,0];e[r.id]=p}for(let t=0;t<d;t++){const e=p[t];e[0]=t,e[1]=c[t]}p.sort(Yst);for(let t=0;t<8;t++)t<d&&p[t][1]?(o[t][0]=p[t][0],o[t][1]=p[t][1]):(o[t][0]=Number.MAX_SAFE_INTEGER,o[t][1]=0);o.sort(Gst);const m=s.morphTargets&&r.morphAttributes.position,u=s.morphNormals&&r.morphAttributes.normal;let f=0;for(let t=0;t<8;t++){const e=o[t],i=e[0],a=e[1];i!==Number.MAX_SAFE_INTEGER&&a?(m&&r.getAttribute("morphTarget"+t)!==m[i]&&r.setAttribute("morphTarget"+t,m[i]),u&&r.getAttribute("morphNormal"+t)!==u[i]&&r.setAttribute("morphNormal"+t,u[i]),n[t]=a,f+=a):(m&&!0===r.hasAttribute("morphTarget"+t)&&r.deleteAttribute("morphTarget"+t),u&&!0===r.hasAttribute("morphNormal"+t)&&r.deleteAttribute("morphNormal"+t),n[t]=0)}const g=r.morphTargetsRelative?1:1-f;l.getUniforms().setValue(t,"morphTargetBaseInfluence",g),l.getUniforms().setValue(t,"morphTargetInfluences",n)}}}function Zst(t,e,n,o){let i=new WeakMap;function a(t){const e=t.target;e.removeEventListener("dispose",a),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function r(t){const r=o.render.frame,s=e.get(t,t.geometry);return i.get(s)!==r&&(e.update(s),i.set(s,r)),t.isInstancedMesh&&(!1===t.hasEventListener("dispose",a)&&t.addEventListener("dispose",a),n.update(t.instanceMatrix,34962),null!==t.instanceColor&&n.update(t.instanceColor,34962)),s},dispose:function s(){i=new WeakMap}}}function Xst(t=null,e=1,n=1,o=1){Zit.call(this,null),this.image={data:t,width:e,height:n,depth:o},this.magFilter=hit,this.minFilter=hit,this.wrapR=fit,this.generateMipmaps=!1,this.flipY=!1,this.needsUpdate=!0}function Kst(t=null,e=1,n=1,o=1){Zit.call(this,null),this.image={data:t,width:e,height:n,depth:o},this.magFilter=hit,this.minFilter=hit,this.wrapR=fit,this.generateMipmaps=!1,this.flipY=!1,this.needsUpdate=!0}Nst.physical={uniforms:hst([Nst.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Uit(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new Crt(0)},transmission:{value:0},transmissionMap:{value:null}}]),vertexShader:Rst.meshphysical_vert,fragmentShader:Rst.meshphysical_frag},(Xst.prototype=Object.create(Zit.prototype)).constructor=Xst,Xst.prototype.isDataTexture2DArray=!0,(Kst.prototype=Object.create(Zit.prototype)).constructor=Kst,Kst.prototype.isDataTexture3D=!0;const Jst=new Zit,Qst=new Xst,$st=new Kst,tlt=new xst,elt=[],nlt=[],olt=new Float32Array(16),ilt=new Float32Array(9),alt=new Float32Array(4);function rlt(t,e,n){const o=t[0];if(o<=0||o>0)return t;const i=e*n;let a=elt[i];if(void 0===a&&(a=new Float32Array(i),elt[i]=a),0!==e){o.toArray(a,0);for(let o=1,i=0;o!==e;++o)i+=n,t[o].toArray(a,i)}return a}function slt(t,e){if(t.length!==e.length)return!1;for(let n=0,o=t.length;n<o;n++)if(t[n]!==e[n])return!1;return!0}function llt(t,e){for(let n=0,o=e.length;n<o;n++)t[n]=e[n]}function clt(t,e){let n=nlt[e];void 0===n&&(n=new Int32Array(e),nlt[e]=n);for(let o=0;o!==e;++o)n[o]=t.allocateTextureUnit();return n}function dlt(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function plt(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(slt(n,e))return;t.uniform2fv(this.addr,e),llt(n,e)}}function mlt(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(slt(n,e))return;t.uniform3fv(this.addr,e),llt(n,e)}}function ult(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(slt(n,e))return;t.uniform4fv(this.addr,e),llt(n,e)}}function flt(t,e){const n=this.cache,o=e.elements;if(void 0===o){if(slt(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),llt(n,e)}else{if(slt(n,o))return;alt.set(o),t.uniformMatrix2fv(this.addr,!1,alt),llt(n,o)}}function glt(t,e){const n=this.cache,o=e.elements;if(void 0===o){if(slt(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),llt(n,e)}else{if(slt(n,o))return;ilt.set(o),t.uniformMatrix3fv(this.addr,!1,ilt),llt(n,o)}}function hlt(t,e){const n=this.cache,o=e.elements;if(void 0===o){if(slt(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),llt(n,e)}else{if(slt(n,o))return;olt.set(o),t.uniformMatrix4fv(this.addr,!1,olt),llt(n,o)}}function blt(t,e,n){const o=this.cache,i=n.allocateTextureUnit();o[0]!==i&&(t.uniform1i(this.addr,i),o[0]=i),n.safeSetTexture2D(e||Jst,i)}function ylt(t,e,n){const o=this.cache,i=n.allocateTextureUnit();o[0]!==i&&(t.uniform1i(this.addr,i),o[0]=i),n.setTexture2DArray(e||Qst,i)}function _lt(t,e,n){const o=this.cache,i=n.allocateTextureUnit();o[0]!==i&&(t.uniform1i(this.addr,i),o[0]=i),n.setTexture3D(e||$st,i)}function Clt(t,e,n){const o=this.cache,i=n.allocateTextureUnit();o[0]!==i&&(t.uniform1i(this.addr,i),o[0]=i),n.safeSetTextureCube(e||tlt,i)}function Mlt(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function vlt(t,e){const n=this.cache;slt(n,e)||(t.uniform2iv(this.addr,e),llt(n,e))}function xlt(t,e){const n=this.cache;slt(n,e)||(t.uniform3iv(this.addr,e),llt(n,e))}function Olt(t,e){const n=this.cache;slt(n,e)||(t.uniform4iv(this.addr,e),llt(n,e))}function Plt(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function wlt(t,e){t.uniform1fv(this.addr,e)}function klt(t,e){t.uniform1iv(this.addr,e)}function Slt(t,e){t.uniform2iv(this.addr,e)}function Dlt(t,e){t.uniform3iv(this.addr,e)}function Elt(t,e){t.uniform4iv(this.addr,e)}function Alt(t,e){const n=rlt(e,this.size,2);t.uniform2fv(this.addr,n)}function Rlt(t,e){const n=rlt(e,this.size,3);t.uniform3fv(this.addr,n)}function Tlt(t,e){const n=rlt(e,this.size,4);t.uniform4fv(this.addr,n)}function Nlt(t,e){const n=rlt(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function Ilt(t,e){const n=rlt(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function zlt(t,e){const n=rlt(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function Hlt(t,e,n){const o=e.length,i=clt(n,o);t.uniform1iv(this.addr,i);for(let t=0;t!==o;++t)n.safeSetTexture2D(e[t]||Jst,i[t])}function Flt(t,e,n){const o=e.length,i=clt(n,o);t.uniform1iv(this.addr,i);for(let t=0;t!==o;++t)n.safeSetTextureCube(e[t]||tlt,i[t])}function Llt(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=(function o(t){switch(t){case 5126:return dlt;case 35664:return plt;case 35665:return mlt;case 35666:return ult;case 35674:return flt;case 35675:return glt;case 35676:return hlt;case 5124:case 35670:return Mlt;case 35667:case 35671:return vlt;case 35668:case 35672:return xlt;case 35669:case 35673:return Olt;case 5125:return Plt;case 35678:case 36198:case 36298:case 36306:case 35682:return blt;case 35679:case 36299:case 36307:return _lt;case 35680:case 36300:case 36308:case 36293:return Clt;case 36289:case 36303:case 36311:case 36292:return ylt}})(e.type)}function Blt(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=(function o(t){switch(t){case 5126:return wlt;case 35664:return Alt;case 35665:return Rlt;case 35666:return Tlt;case 35674:return Nlt;case 35675:return Ilt;case 35676:return zlt;case 5124:case 35670:return klt;case 35667:case 35671:return Slt;case 35668:case 35672:return Dlt;case 35669:case 35673:return Elt;case 35678:case 36198:case 36298:case 36306:case 35682:return Hlt;case 35680:case 36300:case 36308:case 36293:return Flt}})(e.type)}function Vlt(t){this.id=t,this.seq=[],this.map={}}Blt.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),llt(e,t)},Vlt.prototype.setValue=function(t,e,n){const o=this.seq;for(let i=0,a=o.length;i!==a;++i){const a=o[i];a.setValue(t,e[a.id],n)}};const jlt=/(\w+)(\])?(\[|\.)?/g;function Ult(t,e){t.seq.push(e),t.map[e.id]=e}function Wlt(t,e,n){const o=t.name,i=o.length;for(jlt.lastIndex=0;;){const a=jlt.exec(o),r=jlt.lastIndex;let s=a[1];const l=a[3];if("]"===a[2]&&(s|=0),void 0===l||"["===l&&r+2===i){Ult(n,void 0===l?new Llt(s,t,e):new Blt(s,t,e));break}{let t=n.map[s];void 0===t&&(t=new Vlt(s),Ult(n,t)),n=t}}}function Glt(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,35718);for(let o=0;o<n;++o){const n=t.getActiveUniform(e,o);Wlt(n,t.getUniformLocation(e,n.name),this)}}function Ylt(t,e,n){const o=t.createShader(e);return t.shaderSource(o,n),t.compileShader(o),o}Glt.prototype.setValue=function(t,e,n,o){const i=this.map[e];void 0!==i&&i.setValue(t,n,o)},Glt.prototype.setOptional=function(t,e,n){const o=e[n];void 0!==o&&this.setValue(t,n,o)},Glt.upload=function(t,e,n,o){for(let i=0,a=e.length;i!==a;++i){const a=e[i],r=n[a.id];!1!==r.needsUpdate&&a.setValue(t,r.value,o)}},Glt.seqWithValue=function(t,e){const n=[];for(let o=0,i=t.length;o!==i;++o){const i=t[o];i.id in e&&n.push(i)}return n};let qlt=0;function Zlt(t){switch(t){case Nit:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];case 3003:return["LogLuv","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",t),["Linear","( value )"]}}function Xlt(t,e,n){const o=t.getShaderParameter(e,35713),i=t.getShaderInfoLog(e).trim();return o&&""===i?"":"THREE.WebGLShader: gl.getShaderInfoLog() "+n+"\n"+i+(function a(t){const e=t.split("\n");for(let t=0;t<e.length;t++)e[t]=t+1+": "+e[t];return e.join("\n")})(t.getShaderSource(e))}function Klt(t,e){const n=Zlt(e);return"vec4 "+t+"( vec4 value ) { return "+n[0]+"ToLinear"+n[1]+"; }"}function Jlt(t,e){const n=Zlt(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Qlt(t,e){let n;switch(e){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="OptimizedCineon";break;case 4:n="ACESFilmic";break;case 5:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function $lt(t){return""!==t}function tct(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function ect(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const nct=/^[ \t]*#include +<([\w\d./]+)>/gm;function oct(t){return t.replace(nct,ict)}function ict(t,e){const n=Rst[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return oct(n)}const act=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,rct=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function sct(t){return t.replace(rct,cct).replace(act,lct)}function lct(t,e,n,o){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),cct(0,e,n,o)}function cct(t,e,n,o){let i="";for(let t=parseInt(e);t<parseInt(n);t++)i+=o.replace(/\[\s*i\s*\]/g,"[ "+t+" ]").replace(/UNROLLED_LOOP_INDEX/g,t);return i}function dct(t){let e="precision "+t.precision+" float;\nprecision "+t.precision+" int;";return"highp"===t.precision?e+="\n#define HIGH_PRECISION":"mediump"===t.precision?e+="\n#define MEDIUM_PRECISION":"lowp"===t.precision&&(e+="\n#define LOW_PRECISION"),e}function pct(t,e,n,o){const i=t.getContext(),a=n.defines;let r=n.vertexShader,s=n.fragmentShader;const l=(function c(t){let e="SHADOWMAP_TYPE_BASIC";return 1===t.shadowMapType?e="SHADOWMAP_TYPE_PCF":2===t.shadowMapType?e="SHADOWMAP_TYPE_PCF_SOFT":3===t.shadowMapType&&(e="SHADOWMAP_TYPE_VSM"),e})(n),d=(function p(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case 301:case 302:e="ENVMAP_TYPE_CUBE";break;case 306:case 307:e="ENVMAP_TYPE_CUBE_UV"}return e})(n),m=(function u(t){let e="ENVMAP_MODE_REFLECTION";if(t.envMap)switch(t.envMapMode){case 302:case 307:e="ENVMAP_MODE_REFRACTION"}return e})(n),f=(function g(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case 0:e="ENVMAP_BLENDING_MULTIPLY";break;case 1:e="ENVMAP_BLENDING_MIX";break;case 2:e="ENVMAP_BLENDING_ADD"}return e})(n),h=t.gammaFactor>0?t.gammaFactor:1,b=n.isWebGL2?"":(function y(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||"physical"===t.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter($lt).join("\n")})(n),_=(function C(t){const e=[];for(const n in t){const o=t[n];!1!==o&&e.push("#define "+n+" "+o)}return e.join("\n")})(a),M=i.createProgram();let v,x,O=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?(v=[_].filter($lt).join("\n"),v.length>0&&(v+="\n"),x=[b,_].filter($lt).join("\n"),x.length>0&&(x+="\n")):(v=[dct(n),"#define SHADER_NAME "+n.shaderName,_,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+h,"#define MAX_BONES "+n.maxBones,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.useVertexTexture?"#define BONE_TEXTURE":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter($lt).join("\n"),x=[b,dct(n),"#define SHADER_NAME "+n.shaderName,_,n.alphaTest?"#define ALPHATEST "+n.alphaTest+(n.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+h,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+m:"",n.envMap?"#define "+f:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.sheen?"#define USE_SHEEN":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?Rst.tonemapping_pars_fragment:"",0!==n.toneMapping?Qlt("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",Rst.encodings_pars_fragment,n.map?Klt("mapTexelToLinear",n.mapEncoding):"",n.matcap?Klt("matcapTexelToLinear",n.matcapEncoding):"",n.envMap?Klt("envMapTexelToLinear",n.envMapEncoding):"",n.emissiveMap?Klt("emissiveMapTexelToLinear",n.emissiveMapEncoding):"",n.lightMap?Klt("lightMapTexelToLinear",n.lightMapEncoding):"",Jlt("linearToOutputTexel",n.outputEncoding),n.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter($lt).join("\n")),r=oct(r),r=tct(r,n),r=ect(r,n),s=oct(s),s=tct(s,n),s=ect(s,n),r=sct(r),s=sct(s),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(O="#version 300 es\n",v=["#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+v,x=["#define varying in",n.glslVersion===Fit?"":"out highp vec4 pc_fragColor;",n.glslVersion===Fit?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+x);const P=O+x+s,w=Ylt(i,35633,O+v+r),k=Ylt(i,35632,P);if(i.attachShader(M,w),i.attachShader(M,k),void 0!==n.index0AttributeName?i.bindAttribLocation(M,0,n.index0AttributeName):!0===n.morphTargets&&i.bindAttribLocation(M,0,"position"),i.linkProgram(M),t.debug.checkShaderErrors){const t=i.getProgramInfoLog(M).trim(),e=i.getShaderInfoLog(w).trim(),n=i.getShaderInfoLog(k).trim();let o=!0,a=!0;if(!1===i.getProgramParameter(M,35714)){o=!1;const e=Xlt(i,w,"vertex"),n=Xlt(i,k,"fragment");console.error("THREE.WebGLProgram: shader error: ",i.getError(),"35715",i.getProgramParameter(M,35715),"gl.getProgramInfoLog",t,e,n)}else""!==t?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",t):""!==e&&""!==n||(a=!1);a&&(this.diagnostics={runnable:o,programLog:t,vertexShader:{log:e,prefix:v},fragmentShader:{log:n,prefix:x}})}let S,D;return i.deleteShader(w),i.deleteShader(k),this.getUniforms=function(){return void 0===S&&(S=new Glt(i,M)),S},this.getAttributes=function(){return void 0===D&&(D=(function t(e,n){const o={},i=e.getProgramParameter(n,35721);for(let t=0;t<i;t++){const i=e.getActiveAttrib(n,t).name;o[i]=e.getAttribLocation(n,i)}return o})(i,M)),D},this.destroy=function(){o.releaseStatesOfProgram(this),i.deleteProgram(M),this.program=void 0},this.name=n.shaderName,this.id=qlt++,this.cacheKey=e,this.usedTimes=1,this.program=M,this.vertexShader=w,this.fragmentShader=k,this}function mct(t,e,n,o,i,a){const r=[],s=o.isWebGL2,l=o.logarithmicDepthBuffer,c=o.floatVertexTextures,d=o.maxVertexUniforms,p=o.vertexTextures;let m=o.precision;const u={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},f=["precision","isWebGL2","supportsVertexTextures","outputEncoding","instancing","instancingColor","map","mapEncoding","matcap","matcapEncoding","envMap","envMapMode","envMapEncoding","envMapCubeUV","lightMap","lightMapEncoding","aoMap","emissiveMap","emissiveMapEncoding","bumpMap","normalMap","objectSpaceNormalMap","tangentSpaceNormalMap","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","displacementMap","specularMap","roughnessMap","metalnessMap","gradientMap","alphaMap","combine","vertexColors","vertexTangents","vertexUvs","uvsVertexOnly","fog","useFog","fogExp2","flatShading","sizeAttenuation","logarithmicDepthBuffer","skinning","maxBones","useVertexTexture","morphTargets","morphNormals","maxMorphTargets","maxMorphNormals","premultipliedAlpha","numDirLights","numPointLights","numSpotLights","numHemiLights","numRectAreaLights","numDirLightShadows","numPointLightShadows","numSpotLightShadows","shadowMapEnabled","shadowMapType","toneMapping","physicallyCorrectLights","alphaTest","doubleSided","flipSided","numClippingPlanes","numClipIntersection","depthPacking","dithering","sheen","transmissionMap"];function g(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),e=t.texture.encoding):e=Nit,e}return{getParameters:function h(i,r,f,b,y){const _=b.fog,C=e.get(i.envMap||(i.isMeshStandardMaterial?b.environment:null)),M=u[i.type],v=y.isSkinnedMesh?(function x(t){const e=t.skeleton.bones;if(c)return 1024;{const t=Math.floor((d-20)/4),n=Math.min(t,e.length);return n<e.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+e.length+" bones. This GPU supports "+n+"."),0):n}})(y):0;let O,P;if(null!==i.precision&&(m=o.getMaxPrecision(i.precision),m!==i.precision&&console.warn("THREE.WebGLProgram.getParameters:",i.precision,"not supported, using",m,"instead.")),M){const t=Nst[M];O=t.vertexShader,P=t.fragmentShader}else O=i.vertexShader,P=i.fragmentShader;const w=t.getRenderTarget();return{isWebGL2:s,shaderID:M,shaderName:i.type,vertexShader:O,fragmentShader:P,defines:i.defines,isRawShaderMaterial:!0===i.isRawShaderMaterial,glslVersion:i.glslVersion,precision:m,instancing:!0===y.isInstancedMesh,instancingColor:!0===y.isInstancedMesh&&null!==y.instanceColor,supportsVertexTextures:p,outputEncoding:null!==w?g(w.texture):t.outputEncoding,map:!!i.map,mapEncoding:g(i.map),matcap:!!i.matcap,matcapEncoding:g(i.matcap),envMap:!!C,envMapMode:C&&C.mapping,envMapEncoding:g(C),envMapCubeUV:!!C&&(306===C.mapping||307===C.mapping),lightMap:!!i.lightMap,lightMapEncoding:g(i.lightMap),aoMap:!!i.aoMap,emissiveMap:!!i.emissiveMap,emissiveMapEncoding:g(i.emissiveMap),bumpMap:!!i.bumpMap,normalMap:!!i.normalMap,objectSpaceNormalMap:1===i.normalMapType,tangentSpaceNormalMap:0===i.normalMapType,clearcoatMap:!!i.clearcoatMap,clearcoatRoughnessMap:!!i.clearcoatRoughnessMap,clearcoatNormalMap:!!i.clearcoatNormalMap,displacementMap:!!i.displacementMap,roughnessMap:!!i.roughnessMap,metalnessMap:!!i.metalnessMap,specularMap:!!i.specularMap,alphaMap:!!i.alphaMap,gradientMap:!!i.gradientMap,sheen:!!i.sheen,transmissionMap:!!i.transmissionMap,combine:i.combine,vertexTangents:i.normalMap&&i.vertexTangents,vertexColors:i.vertexColors,vertexUvs:!!(i.map||i.bumpMap||i.normalMap||i.specularMap||i.alphaMap||i.emissiveMap||i.roughnessMap||i.metalnessMap||i.clearcoatMap||i.clearcoatRoughnessMap||i.clearcoatNormalMap||i.displacementMap||i.transmissionMap),uvsVertexOnly:!(i.map||i.bumpMap||i.normalMap||i.specularMap||i.alphaMap||i.emissiveMap||i.roughnessMap||i.metalnessMap||i.clearcoatNormalMap||i.transmissionMap||!i.displacementMap),fog:!!_,useFog:i.fog,fogExp2:_&&_.isFogExp2,flatShading:i.flatShading,sizeAttenuation:i.sizeAttenuation,logarithmicDepthBuffer:l,skinning:i.skinning&&v>0,maxBones:v,useVertexTexture:c,morphTargets:i.morphTargets,morphNormals:i.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:r.directional.length,numPointLights:r.point.length,numSpotLights:r.spot.length,numRectAreaLights:r.rectArea.length,numHemiLights:r.hemi.length,numDirLightShadows:r.directionalShadowMap.length,numPointLightShadows:r.pointShadowMap.length,numSpotLightShadows:r.spotShadowMap.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:i.dithering,shadowMapEnabled:t.shadowMap.enabled&&f.length>0,shadowMapType:t.shadowMap.type,toneMapping:i.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:i.premultipliedAlpha,alphaTest:i.alphaTest,doubleSided:2===i.side,flipSided:1===i.side,depthPacking:void 0!==i.depthPacking&&i.depthPacking,index0AttributeName:i.index0AttributeName,extensionDerivatives:i.extensions&&i.extensions.derivatives,extensionFragDepth:i.extensions&&i.extensions.fragDepth,extensionDrawBuffers:i.extensions&&i.extensions.drawBuffers,extensionShaderTextureLOD:i.extensions&&i.extensions.shaderTextureLOD,rendererExtensionFragDepth:s||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:s||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:s||n.has("EXT_shader_texture_lod"),customProgramCacheKey:i.customProgramCacheKey()}},getProgramCacheKey:function b(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<f.length;t++)n.push(e[f[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function y(t){const e=u[t.type];let n;return n=e?bst.clone(Nst[e].uniforms):t.uniforms,n},acquireProgram:function _(e,n){let o;for(let t=0,e=r.length;t<e;t++){const e=r[t];if(e.cacheKey===n){o=e,++o.usedTimes;break}}return void 0===o&&(o=new pct(t,n,e,i),r.push(o)),o},releaseProgram:function C(t){if(0==--t.usedTimes){const e=r.indexOf(t);r[e]=r[r.length-1],r.pop(),t.destroy()}},programs:r}}function uct(){let t=new WeakMap;return{get:function e(n){let o=t.get(n);return void 0===o&&(o={},t.set(n,o)),o},remove:function n(e){t.delete(e)},update:function o(e,n,i){t.get(e)[n]=i},dispose:function i(){t=new WeakMap}}}function fct(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function gct(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function hct(t){const e=[];let n=0;const o=[],i=[],a={id:-1};function r(o,i,r,s,l,c){let d=e[n];const p=t.get(r);return void 0===d?(d={id:o.id,object:o,geometry:i,material:r,program:p.program||a,groupOrder:s,renderOrder:o.renderOrder,z:l,group:c},e[n]=d):(d.id=o.id,d.object=o,d.geometry=i,d.material=r,d.program=p.program||a,d.groupOrder=s,d.renderOrder=o.renderOrder,d.z=l,d.group=c),n++,d}return{opaque:o,transparent:i,init:function s(){n=0,o.length=0,i.length=0},push:function l(t,e,n,a,s,c){const d=r(t,e,n,a,s,c);(!0===n.transparent?i:o).push(d)},unshift:function c(t,e,n,a,s,l){const c=r(t,e,n,a,s,l);(!0===n.transparent?i:o).unshift(c)},finish:function d(){for(let t=n,o=e.length;t<o;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function p(t,e){o.length>1&&o.sort(t||fct),i.length>1&&i.sort(e||gct)}}}function bct(t){let e=new WeakMap;return{get:function n(o,i){const a=e.get(o);let r;return void 0===a?(r=new hct(t),e.set(o,new WeakMap),e.get(o).set(i,r)):(r=a.get(i),void 0===r&&(r=new hct(t),a.set(i,r))),r},dispose:function o(){e=new WeakMap}}}function yct(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new $it,color:new Crt};break;case"SpotLight":n={position:new $it,direction:new $it,color:new Crt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new $it,color:new Crt,distance:0,decay:0};break;case"HemisphereLight":n={direction:new $it,skyColor:new Crt,groundColor:new Crt};break;case"RectAreaLight":n={color:new Crt,position:new $it,halfWidth:new $it,halfHeight:new $it}}return t[e.id]=n,n}}}let _ct=0;function Cct(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function Mct(t,e){const n=new yct,o=(function i(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Uit};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Uit,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}})(),a={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)a.probe.push(new $it);const r=new $it,s=new kat,l=new kat;return{setup:function c(i){let r=0,s=0,l=0;for(let t=0;t<9;t++)a.probe[t].set(0,0,0);let c=0,d=0,p=0,m=0,u=0,f=0,g=0,h=0;i.sort(Cct);for(let t=0,e=i.length;t<e;t++){const e=i[t],b=e.color,y=e.intensity,_=e.distance,C=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)r+=b.r*y,s+=b.g*y,l+=b.b*y;else if(e.isLightProbe)for(let t=0;t<9;t++)a.probe[t].addScaledVector(e.sh.coefficients[t],y);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),e.castShadow){const t=e.shadow,n=o.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,a.directionalShadow[c]=n,a.directionalShadowMap[c]=C,a.directionalShadowMatrix[c]=e.shadow.matrix,f++}a.directional[c]=t,c++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(b).multiplyScalar(y),t.distance=_,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=o.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,a.spotShadow[p]=n,a.spotShadowMap[p]=C,a.spotShadowMatrix[p]=e.shadow.matrix,h++}a.spot[p]=t,p++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(b).multiplyScalar(y),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),a.rectArea[m]=t,m++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=o.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,a.pointShadow[d]=n,a.pointShadowMap[d]=C,a.pointShadowMatrix[d]=e.shadow.matrix,g++}a.point[d]=t,d++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(y),t.groundColor.copy(e.groundColor).multiplyScalar(y),a.hemi[u]=t,u++}}m>0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(a.rectAreaLTC1=Tst.LTC_FLOAT_1,a.rectAreaLTC2=Tst.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(a.rectAreaLTC1=Tst.LTC_HALF_1,a.rectAreaLTC2=Tst.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),a.ambient[0]=r,a.ambient[1]=s,a.ambient[2]=l;const b=a.hash;b.directionalLength===c&&b.pointLength===d&&b.spotLength===p&&b.rectAreaLength===m&&b.hemiLength===u&&b.numDirectionalShadows===f&&b.numPointShadows===g&&b.numSpotShadows===h||(a.directional.length=c,a.spot.length=p,a.rectArea.length=m,a.point.length=d,a.hemi.length=u,a.directionalShadow.length=f,a.directionalShadowMap.length=f,a.pointShadow.length=g,a.pointShadowMap.length=g,a.spotShadow.length=h,a.spotShadowMap.length=h,a.directionalShadowMatrix.length=f,a.pointShadowMatrix.length=g,a.spotShadowMatrix.length=h,b.directionalLength=c,b.pointLength=d,b.spotLength=p,b.rectAreaLength=m,b.hemiLength=u,b.numDirectionalShadows=f,b.numPointShadows=g,b.numSpotShadows=h,a.version=_ct++)},setupView:function d(t,e){let n=0,o=0,i=0,c=0,d=0;const p=e.matrixWorldInverse;for(let e=0,m=t.length;e<m;e++){const m=t[e];if(m.isDirectionalLight){const t=a.directional[n];t.direction.setFromMatrixPosition(m.matrixWorld),r.setFromMatrixPosition(m.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(p),n++}else if(m.isSpotLight){const t=a.spot[i];t.position.setFromMatrixPosition(m.matrixWorld),t.position.applyMatrix4(p),t.direction.setFromMatrixPosition(m.matrixWorld),r.setFromMatrixPosition(m.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(p),i++}else if(m.isRectAreaLight){const t=a.rectArea[c];t.position.setFromMatrixPosition(m.matrixWorld),t.position.applyMatrix4(p),l.identity(),s.copy(m.matrixWorld),s.premultiply(p),l.extractRotation(s),t.halfWidth.set(.5*m.width,0,0),t.halfHeight.set(0,.5*m.height,0),t.halfWidth.applyMatrix4(l),t.halfHeight.applyMatrix4(l),c++}else if(m.isPointLight){const t=a.point[o];t.position.setFromMatrixPosition(m.matrixWorld),t.position.applyMatrix4(p),o++}else if(m.isHemisphereLight){const t=a.hemi[d];t.direction.setFromMatrixPosition(m.matrixWorld),t.direction.transformDirection(p),t.direction.normalize(),d++}}},state:a}}function vct(t,e){const n=new Mct(t,e),o=[],i=[];return{init:function a(){o.length=0,i.length=0},state:{lightsArray:o,shadowsArray:i,lights:n},setupLights:function r(){n.setup(o)},setupLightsView:function s(t){n.setupView(o,t)},pushLight:function l(t){o.push(t)},pushShadow:function c(t){i.push(t)}}}function xct(t,e){let n=new WeakMap;return{get:function o(i,a=0){let r;return!1===n.has(i)?(r=new vct(t,e),n.set(i,[]),n.get(i).push(r)):a>=n.get(i).length?(r=new vct(t,e),n.get(i).push(r)):r=n.get(i)[a],r},dispose:function i(){n=new WeakMap}}}function Oct(t){xrt.call(this),this.type="MeshDepthMaterial",this.depthPacking=3200,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}function Pct(t){xrt.call(this),this.type="MeshDistanceMaterial",this.referencePosition=new $it,this.nearDistance=1,this.farDistance=1e3,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}function wct(t,e,n){let o=new Sst;const i=new Uit,a=new Uit,r=new Kit,s=[],l=[],c={},d={0:1,1:0,2:2},p=new yst({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new Uit},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean * HALF_SAMPLE_RATE;\n\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),m=p.clone();m.defines.HORIZONTAL_PASS=1;const u=new Zrt;u.setAttribute("position",new krt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const f=new mst(u,p),g=this;function h(n,o){const i=e.update(f);p.uniforms.shadow_pass.value=n.map.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(o,null,i,p,f,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(o,null,i,m,f,null)}function b(t,e,n){const o=t<<0|e<<1|n<<2;let i=s[o];return void 0===i&&(i=new Oct({depthPacking:3201,morphTargets:t,skinning:e}),s[o]=i),i}function y(t,e,n){const o=t<<0|e<<1|n<<2;let i=l[o];return void 0===i&&(i=new Pct({morphTargets:t,skinning:e}),l[o]=i),i}function _(e,n,o,i,a,r,s){let l=null,p=b,m=e.customDepthMaterial;if(!0===i.isPointLight&&(p=y,m=e.customDistanceMaterial),void 0===m){let t=!1;!0===o.morphTargets&&(t=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0);let i=!1;!0===e.isSkinnedMesh&&(!0===o.skinning?i=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",e)),l=p(t,i,!0===e.isInstancedMesh)}else l=m;if(t.localClippingEnabled&&!0===o.clipShadows&&0!==o.clippingPlanes.length){const t=l.uuid,e=o.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let i=n[e];void 0===i&&(i=l.clone(),n[e]=i),l=i}return l.visible=o.visible,l.wireframe=o.wireframe,l.side=3===s?null!==o.shadowSide?o.shadowSide:o.side:null!==o.shadowSide?o.shadowSide:d[o.side],l.clipShadows=o.clipShadows,l.clippingPlanes=o.clippingPlanes,l.clipIntersection=o.clipIntersection,l.wireframeLinewidth=o.wireframeLinewidth,l.linewidth=o.linewidth,!0===i.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(i.matrixWorld),l.nearDistance=a,l.farDistance=r),l}function C(n,i,a,r,s){if(!1===n.visible)return;if(n.layers.test(i.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===s)&&(!n.frustumCulled||o.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(a.matrixWorldInverse,n.matrixWorld);const o=e.update(n),i=n.material;if(Array.isArray(i)){const e=o.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],d=i[c.materialIndex];if(d&&d.visible){const e=_(n,o,d,r,a.near,a.far,s);t.renderBufferDirect(a,null,o,e,n,c)}}}else if(i.visible){const e=_(n,o,i,r,a.near,a.far,s);t.renderBufferDirect(a,null,o,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)C(l[t],i,a,r,s)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,s,l){if(!1===g.enabled)return;if(!1===g.autoUpdate&&!1===g.needsUpdate)return;if(0===e.length)return;const c=t.getRenderTarget(),d=t.getActiveCubeFace(),p=t.getActiveMipmapLevel(),m=t.state;m.setBlending(0),m.buffers.color.setClear(1,1,1,1),m.buffers.depth.setTest(!0),m.setScissorTest(!1);for(let c=0,d=e.length;c<d;c++){const d=e[c],p=d.shadow;if(void 0===p){console.warn("THREE.WebGLShadowMap:",d,"has no shadow.");continue}if(!1===p.autoUpdate&&!1===p.needsUpdate)continue;i.copy(p.mapSize);const u=p.getFrameExtents();if(i.multiply(u),a.copy(p.mapSize),(i.x>n||i.y>n)&&(i.x>n&&(a.x=Math.floor(n/u.x),i.x=a.x*u.x,p.mapSize.x=a.x),i.y>n&&(a.y=Math.floor(n/u.y),i.y=a.y*u.y,p.mapSize.y=a.y)),null===p.map&&!p.isPointLightShadow&&3===this.type){const t={minFilter:bit,magFilter:bit,format:Pit};p.map=new Jit(i.x,i.y,t),p.map.texture.name=d.name+".shadowMap",p.mapPass=new Jit(i.x,i.y,t),p.camera.updateProjectionMatrix()}null===p.map&&(p.map=new Jit(i.x,i.y,{minFilter:hit,magFilter:hit,format:Pit}),p.map.texture.name=d.name+".shadowMap",p.camera.updateProjectionMatrix()),t.setRenderTarget(p.map),t.clear();const f=p.getViewportCount();for(let t=0;t<f;t++){const e=p.getViewport(t);r.set(a.x*e.x,a.y*e.y,a.x*e.z,a.y*e.w),m.viewport(r),p.updateMatrices(d,t),o=p.getFrustum(),C(s,l,p.camera,d,this.type)}p.isPointLightShadow||3!==this.type||h(p,l),p.needsUpdate=!1}g.needsUpdate=!1,t.setRenderTarget(c,d,p)}}function kct(t,e,n){const o=n.isWebGL2,i=new(function a(){let e=!1;const n=new Kit;let o=null;const i=new Kit(0,0,0,0);return{setMask:function(n){o===n||e||(t.colorMask(n,n,n,n),o=n)},setLocked:function(t){e=t},setClear:function(e,o,a,r,s){!0===s&&(e*=r,o*=r,a*=r),n.set(e,o,a,r),!1===i.equals(n)&&(t.clearColor(e,o,a,r),i.copy(n))},reset:function(){e=!1,o=null,i.set(-1,0,0,0)}}}),r=new(function s(){let e=!1,n=null,o=null,i=null;return{setTest:function(t){t?z(2929):H(2929)},setMask:function(o){n===o||e||(t.depthMask(o),n=o)},setFunc:function(e){if(o!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);o=e}},setLocked:function(t){e=t},setClear:function(e){i!==e&&(t.clearDepth(e),i=e)},reset:function(){e=!1,n=null,o=null,i=null}}}),l=new(function c(){let e=!1,n=null,o=null,i=null,a=null,r=null,s=null,l=null,c=null;return{setTest:function(t){e||(t?z(2960):H(2960))},setMask:function(o){n===o||e||(t.stencilMask(o),n=o)},setFunc:function(e,n,r){o===e&&i===n&&a===r||(t.stencilFunc(e,n,r),o=e,i=n,a=r)},setOp:function(e,n,o){r===e&&s===n&&l===o||(t.stencilOp(e,n,o),r=e,s=n,l=o)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,o=null,i=null,a=null,r=null,s=null,l=null,c=null}}});let d={},p=null,m=null,u=null,f=null,g=null,h=null,b=null,y=null,_=null,C=!1,M=null,v=null,x=null,O=null,P=null;const w=t.getParameter(35661);let k=!1,S=0;const D=t.getParameter(7938);-1!==D.indexOf("WebGL")?(S=parseFloat(/^WebGL (\d)/.exec(D)[1]),k=S>=1):-1!==D.indexOf("OpenGL ES")&&(S=parseFloat(/^OpenGL ES (\d)/.exec(D)[1]),k=S>=2);let E=null,A={};const R=new Kit,T=new Kit;function N(e,n,o){const i=new Uint8Array(4),a=t.createTexture();t.bindTexture(e,a),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;e<o;e++)t.texImage2D(n+e,0,6408,1,1,0,6408,5121,i);return a}const I={};function z(e){!0!==d[e]&&(t.enable(e),d[e]=!0)}function H(e){!1!==d[e]&&(t.disable(e),d[e]=!1)}I[3553]=N(3553,3553,1),I[34067]=N(34067,34069,6),i.setClear(0,0,0,1),r.setClear(1),l.setClear(0),z(2929),r.setFunc(3),V(!1),j(1),z(2884),B(0);const F={[mit]:32774,101:32778,102:32779};if(o)F[103]=32775,F[104]=32776;else{const t=e.get("EXT_blend_minmax");null!==t&&(F[103]=t.MIN_EXT,F[104]=t.MAX_EXT)}const L={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function B(e,n,o,i,a,r,s,l){if(0!==e){if(m||(z(3042),m=!0),5===e)a=a||n,r=r||o,s=s||i,n===f&&a===b||(t.blendEquationSeparate(F[n],F[a]),f=n,b=a),o===g&&i===h&&r===y&&s===_||(t.blendFuncSeparate(L[o],L[i],L[r],L[s]),g=o,h=i,y=r,_=s),u=e,C=null;else if(e!==u||l!==C){if(f===mit&&b===mit||(t.blendEquation(32774),f=mit,b=mit),l)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}g=null,h=null,y=null,_=null,u=e,C=l}}else m&&(H(3042),m=!1)}function V(e){M!==e&&(t.frontFace(e?2304:2305),M=e)}function j(e){0!==e?(z(2884),e!==v&&t.cullFace(1===e?1029:2===e?1028:1032)):H(2884),v=e}function U(e,n,o){e?(z(32823),O===n&&P===o||(t.polygonOffset(n,o),O=n,P=o)):H(32823)}function W(e){void 0===e&&(e=33984+w-1),E!==e&&(t.activeTexture(e),E=e)}return{buffers:{color:i,depth:r,stencil:l},enable:z,disable:H,useProgram:function G(e){return p!==e&&(t.useProgram(e),p=e,!0)},setBlending:B,setMaterial:function Y(t,e){2===t.side?H(2884):z(2884);let n=1===t.side;e&&(n=!n),V(n),1===t.blending&&!1===t.transparent?B(0):B(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),r.setFunc(t.depthFunc),r.setTest(t.depthTest),r.setMask(t.depthWrite),i.setMask(t.colorWrite);const o=t.stencilWrite;l.setTest(o),o&&(l.setMask(t.stencilWriteMask),l.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),l.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),U(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits)},setFlipSided:V,setCullFace:j,setLineWidth:function q(e){e!==x&&(k&&t.lineWidth(e),x=e)},setPolygonOffset:U,setScissorTest:function Z(t){t?z(3089):H(3089)},activeTexture:W,bindTexture:function X(e,n){null===E&&W();let o=A[E];void 0===o&&(o={type:void 0,texture:void 0},A[E]=o),o.type===e&&o.texture===n||(t.bindTexture(e,n||I[e]),o.type=e,o.texture=n)},unbindTexture:function K(){const e=A[E];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function J(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texImage2D:function Q(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texImage3D:function $(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},scissor:function tt(e){!1===R.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),R.copy(e))},viewport:function et(e){!1===T.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),T.copy(e))},reset:function nt(){d={},E=null,A={},p=null,m=null,u=null,f=null,g=null,h=null,b=null,y=null,_=null,C=!1,M=null,v=null,x=null,O=null,P=null,i.reset(),r.reset(),l.reset()}}}function Sct(t,e,n,o,i,a,r){const s=i.isWebGL2,l=i.maxTextures,c=i.maxCubemapSize,d=i.maxTextureSize,p=i.maxSamples,m=new WeakMap;let u,f=!1;try{f="undefined"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(t){}function g(t,e){return f?new OffscreenCanvas(t,e):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function h(t,e,n,o){let i=1;if((t.width>o||t.height>o)&&(i=o/Math.max(t.width,t.height)),i<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const o=e?jit.floorPowerOfTwo:Math.floor,a=o(i*t.width),r=o(i*t.height);void 0===u&&(u=g(a,r));const s=n?g(a,r):u;return s.width=a,s.height=r,s.getContext("2d").drawImage(t,0,0,a,r),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+a+"x"+r+")."),s}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function b(t){return jit.isPowerOfTwo(t.width)&&jit.isPowerOfTwo(t.height)}function y(t,e){return t.generateMipmaps&&e&&t.minFilter!==hit&&t.minFilter!==bit}function _(e,n,i,a){t.generateMipmap(e),o.get(n).__maxMipLevel=Math.log(Math.max(i,a))*Math.LOG2E}function C(n,o,i){if(!1===s)return o;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let a=o;return 6403===o&&(5126===i&&(a=33326),5131===i&&(a=33325),5121===i&&(a=33321)),6407===o&&(5126===i&&(a=34837),5131===i&&(a=34843),5121===i&&(a=32849)),6408===o&&(5126===i&&(a=34836),5131===i&&(a=34842),5121===i&&(a=32856)),33325!==a&&33326!==a&&34842!==a&&34836!==a||e.get("EXT_color_buffer_float"),a}function M(t){return t===hit||1004===t||1005===t?9728:9729}function v(e){const n=e.target;n.removeEventListener("dispose",v),(function i(e){const n=o.get(e);void 0!==n.__webglInit&&(t.deleteTexture(n.__webglTexture),o.remove(e))})(n),n.isVideoTexture&&m.delete(n),r.memory.textures--}function x(e){const n=e.target;n.removeEventListener("dispose",x),(function i(e){const n=o.get(e),i=o.get(e.texture);if(e){if(void 0!==i.__webglTexture&&t.deleteTexture(i.__webglTexture),e.depthTexture&&e.depthTexture.dispose(),e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(n.__webglFramebuffer[e]),n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer[e]);else t.deleteFramebuffer(n.__webglFramebuffer),n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer),n.__webglMultisampledFramebuffer&&t.deleteFramebuffer(n.__webglMultisampledFramebuffer),n.__webglColorRenderbuffer&&t.deleteRenderbuffer(n.__webglColorRenderbuffer),n.__webglDepthRenderbuffer&&t.deleteRenderbuffer(n.__webglDepthRenderbuffer);o.remove(e.texture),o.remove(e)}})(n),r.memory.textures--}let O=0;function P(t,e){const i=o.get(t);if(t.isVideoTexture&&(function a(t){const e=r.render.frame;m.get(t)!==e&&(m.set(t,e),t.update())})(t),t.version>0&&i.__version!==t.version){const n=t.image;if(void 0===n)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==n.complete)return void A(i,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+e),n.bindTexture(3553,i.__webglTexture)}function w(e,i){const r=o.get(e);e.version>0&&r.__version!==e.version?(function l(e,o,i){if(6!==o.image.length)return;E(e,o),n.activeTexture(33984+i),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,o.flipY),t.pixelStorei(37441,o.premultiplyAlpha),t.pixelStorei(3317,o.unpackAlignment);const r=o&&(o.isCompressedTexture||o.image[0].isCompressedTexture),l=o.image[0]&&o.image[0].isDataTexture,d=[];for(let t=0;t<6;t++)d[t]=r||l?l?o.image[t].image:o.image[t]:h(o.image[t],!1,!0,c);const p=d[0],m=b(p)||s,u=a.convert(o.format),f=a.convert(o.type),g=C(o.internalFormat,u,f);let M;if(D(34067,o,m),r){for(let t=0;t<6;t++){M=d[t].mipmaps;for(let e=0;e<M.length;e++){const i=M[e];o.format!==Pit&&o.format!==Oit?null!==u?n.compressedTexImage2D(34069+t,e,g,i.width,i.height,0,i.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):n.texImage2D(34069+t,e,g,i.width,i.height,0,u,f,i.data)}}e.__maxMipLevel=M.length-1}else{M=o.mipmaps;for(let t=0;t<6;t++)if(l){n.texImage2D(34069+t,0,g,d[t].width,d[t].height,0,u,f,d[t].data);for(let e=0;e<M.length;e++){const o=M[e].image[t].image;n.texImage2D(34069+t,e+1,g,o.width,o.height,0,u,f,o.data)}}else{n.texImage2D(34069+t,0,g,u,f,d[t]);for(let e=0;e<M.length;e++)n.texImage2D(34069+t,e+1,g,u,f,M[e].image[t])}e.__maxMipLevel=M.length}y(o,m)&&_(34067,o,p.width,p.height),e.__version=o.version,o.onUpdate&&o.onUpdate(o)})(r,e,i):(n.activeTexture(33984+i),n.bindTexture(34067,r.__webglTexture))}const k={[uit]:10497,[fit]:33071,[git]:33648},S={[hit]:9728,1004:9984,1005:9986,[bit]:9729,1007:9985,[yit]:9987};function D(n,a,r){r?(t.texParameteri(n,10242,k[a.wrapS]),t.texParameteri(n,10243,k[a.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,k[a.wrapR]),t.texParameteri(n,10240,S[a.magFilter]),t.texParameteri(n,10241,S[a.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),a.wrapS===fit&&a.wrapT===fit||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,M(a.magFilter)),t.texParameteri(n,10241,M(a.minFilter)),a.minFilter!==hit&&a.minFilter!==bit&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));const l=e.get("EXT_texture_filter_anisotropic");if(l){if(a.type===Mit&&null===e.get("OES_texture_float_linear"))return;if(a.type===vit&&null===(s||e.get("OES_texture_half_float_linear")))return;(a.anisotropy>1||o.get(a).__currentAnisotropy)&&(t.texParameterf(n,l.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,i.getMaxAnisotropy())),o.get(a).__currentAnisotropy=a.anisotropy)}}function E(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",v),e.__webglTexture=t.createTexture(),r.memory.textures++)}function A(e,o,i){let r=3553;o.isDataTexture2DArray&&(r=35866),o.isDataTexture3D&&(r=32879),E(e,o),n.activeTexture(33984+i),n.bindTexture(r,e.__webglTexture),t.pixelStorei(37440,o.flipY),t.pixelStorei(37441,o.premultiplyAlpha),t.pixelStorei(3317,o.unpackAlignment);const l=(function c(t){return!s&&(t.wrapS!==fit||t.wrapT!==fit||t.minFilter!==hit&&t.minFilter!==bit)})(o)&&!1===b(o.image),p=h(o.image,l,!1,d),m=b(p)||s,u=a.convert(o.format);let f,g=a.convert(o.type),M=C(o.internalFormat,u,g);D(r,o,m);const v=o.mipmaps;if(o.isDepthTexture)M=6402,s?M=o.type===Mit?36012:o.type===Cit?33190:o.type===xit?35056:33189:o.type===Mit&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),o.format===wit&&6402===M&&o.type!==_it&&o.type!==Cit&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),o.type=_it,g=a.convert(o.type)),o.format===kit&&6402===M&&(M=34041,o.type!==xit&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),o.type=xit,g=a.convert(o.type))),n.texImage2D(3553,0,M,p.width,p.height,0,u,g,null);else if(o.isDataTexture)if(v.length>0&&m){for(let t=0,e=v.length;t<e;t++)f=v[t],n.texImage2D(3553,t,M,f.width,f.height,0,u,g,f.data);o.generateMipmaps=!1,e.__maxMipLevel=v.length-1}else n.texImage2D(3553,0,M,p.width,p.height,0,u,g,p.data),e.__maxMipLevel=0;else if(o.isCompressedTexture){for(let t=0,e=v.length;t<e;t++)f=v[t],o.format!==Pit&&o.format!==Oit?null!==u?n.compressedTexImage2D(3553,t,M,f.width,f.height,0,f.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):n.texImage2D(3553,t,M,f.width,f.height,0,u,g,f.data);e.__maxMipLevel=v.length-1}else if(o.isDataTexture2DArray)n.texImage3D(35866,0,M,p.width,p.height,p.depth,0,u,g,p.data),e.__maxMipLevel=0;else if(o.isDataTexture3D)n.texImage3D(32879,0,M,p.width,p.height,p.depth,0,u,g,p.data),e.__maxMipLevel=0;else if(v.length>0&&m){for(let t=0,e=v.length;t<e;t++)f=v[t],n.texImage2D(3553,t,M,u,g,f);o.generateMipmaps=!1,e.__maxMipLevel=v.length-1}else n.texImage2D(3553,0,M,u,g,p),e.__maxMipLevel=0;y(o,m)&&_(r,o,p.width,p.height),e.__version=o.version,o.onUpdate&&o.onUpdate(o)}function R(e,i,r,s){const l=a.convert(i.texture.format),c=a.convert(i.texture.type),d=C(i.texture.internalFormat,l,c);n.texImage2D(s,0,d,i.width,i.height,0,l,c,null),t.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,r,s,o.get(i.texture).__webglTexture,0),t.bindFramebuffer(36160,null)}function T(e,n,o){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let i=33189;if(o){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===Mit?i=36012:e.type===Cit&&(i=33190));const o=N(n);t.renderbufferStorageMultisample(36161,o,i,n.width,n.height)}else t.renderbufferStorage(36161,i,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){if(o){const e=N(n);t.renderbufferStorageMultisample(36161,e,35056,n.width,n.height)}else t.renderbufferStorage(36161,34041,n.width,n.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=a.convert(n.texture.format),i=a.convert(n.texture.type),r=C(n.texture.internalFormat,e,i);if(o){const e=N(n);t.renderbufferStorageMultisample(36161,e,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height)}t.bindRenderbuffer(36161,null)}function N(t){return s&&t.isWebGLMultisampleRenderTarget?Math.min(p,t.samples):0}let I=!1,z=!1;this.allocateTextureUnit=function H(){const t=O;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),O+=1,t},this.resetTextureUnits=function F(){O=0},this.setTexture2D=P,this.setTexture2DArray=function L(t,e){const i=o.get(t);t.version>0&&i.__version!==t.version?A(i,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,i.__webglTexture))},this.setTexture3D=function B(t,e){const i=o.get(t);t.version>0&&i.__version!==t.version?A(i,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,i.__webglTexture))},this.setTextureCube=w,this.setupRenderTarget=function V(e){const i=o.get(e),l=o.get(e.texture);e.addEventListener("dispose",x),l.__webglTexture=t.createTexture(),r.memory.textures++;const c=!0===e.isWebGLCubeRenderTarget,d=!0===e.isWebGLMultisampleRenderTarget,p=b(e)||s;if(!s||e.texture.format!==Oit||e.texture.type!==Mit&&e.texture.type!==vit||(e.texture.format=Pit,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.")),c){i.__webglFramebuffer=[];for(let e=0;e<6;e++)i.__webglFramebuffer[e]=t.createFramebuffer()}else if(i.__webglFramebuffer=t.createFramebuffer(),d)if(s){i.__webglMultisampledFramebuffer=t.createFramebuffer(),i.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,i.__webglColorRenderbuffer);const n=a.convert(e.texture.format),o=a.convert(e.texture.type),r=C(e.texture.internalFormat,n,o),s=N(e);t.renderbufferStorageMultisample(36161,s,r,e.width,e.height),t.bindFramebuffer(36160,i.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,i.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(i.__webglDepthRenderbuffer=t.createRenderbuffer(),T(i.__webglDepthRenderbuffer,e,!0)),t.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(c){n.bindTexture(34067,l.__webglTexture),D(34067,e.texture,p);for(let t=0;t<6;t++)R(i.__webglFramebuffer[t],e,36064,34069+t);y(e.texture,p)&&_(34067,e.texture,e.width,e.height),n.bindTexture(34067,null)}else n.bindTexture(3553,l.__webglTexture),D(3553,e.texture,p),R(i.__webglFramebuffer,e,36064,3553),y(e.texture,p)&&_(3553,e.texture,e.width,e.height),n.bindTexture(3553,null);e.depthBuffer&&(function m(e){const n=o.get(e),i=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(i)throw new Error("target.depthTexture not supported in Cube render targets");!(function a(e,n){if(n&&n.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,e),!n.depthTexture||!n.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");o.get(n.depthTexture).__webglTexture&&n.depthTexture.image.width===n.width&&n.depthTexture.image.height===n.height||(n.depthTexture.image.width=n.width,n.depthTexture.image.height=n.height,n.depthTexture.needsUpdate=!0),P(n.depthTexture,0);const i=o.get(n.depthTexture).__webglTexture;if(n.depthTexture.format===wit)t.framebufferTexture2D(36160,36096,3553,i,0);else{if(n.depthTexture.format!==kit)throw new Error("Unknown depthTexture format");t.framebufferTexture2D(36160,33306,3553,i,0)}})(n.__webglFramebuffer,e)}else if(i){n.__webglDepthbuffer=[];for(let o=0;o<6;o++)t.bindFramebuffer(36160,n.__webglFramebuffer[o]),n.__webglDepthbuffer[o]=t.createRenderbuffer(),T(n.__webglDepthbuffer[o],e,!1)}else t.bindFramebuffer(36160,n.__webglFramebuffer),n.__webglDepthbuffer=t.createRenderbuffer(),T(n.__webglDepthbuffer,e,!1);t.bindFramebuffer(36160,null)})(e)},this.updateRenderTargetMipmap=function j(t){const e=t.texture;if(y(e,b(t)||s)){const i=t.isWebGLCubeRenderTarget?34067:3553,a=o.get(e).__webglTexture;n.bindTexture(i,a),_(i,e,t.width,t.height),n.bindTexture(i,null)}},this.updateMultisampleRenderTarget=function U(e){if(e.isWebGLMultisampleRenderTarget)if(s){const n=o.get(e);t.bindFramebuffer(36008,n.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,n.__webglFramebuffer);const i=e.width,a=e.height;let r=16384;e.depthBuffer&&(r|=256),e.stencilBuffer&&(r|=1024),t.blitFramebuffer(0,0,i,a,0,0,i,a,r,9728),t.bindFramebuffer(36160,n.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")},this.safeSetTexture2D=function W(t,e){t&&t.isWebGLRenderTarget&&(!1===I&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),I=!0),t=t.texture),P(t,e)},this.safeSetTextureCube=function G(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===z&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),z=!0),t=t.texture),w(t,e)}}function Dct(t,e,n){const o=n.isWebGL2;return{convert:function i(t){let n;if(1009===t)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===_it)return 5123;if(1013===t)return 5124;if(t===Cit)return 5125;if(t===Mit)return 5126;if(t===vit)return o?5131:(n=e.get("OES_texture_half_float"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===Oit)return 6407;if(t===Pit)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===wit)return 6402;if(t===kit)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(33776===t||33777===t||33778===t||33779===t){if(n=e.get("WEBGL_compressed_texture_s3tc"),null===n)return null;if(33776===t)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===t)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===t)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===t)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===t||35841===t||35842===t||35843===t){if(n=e.get("WEBGL_compressed_texture_pvrtc"),null===n)return null;if(35840===t)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===t)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===t)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===t)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get("WEBGL_compressed_texture_etc1"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((37492===t||37496===t)&&(n=e.get("WEBGL_compressed_texture_etc"),null!==n)){if(37492===t)return n.COMPRESSED_RGB8_ETC2;if(37496===t)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get("WEBGL_compressed_texture_astc"),null!==n?t:null):36492===t?(n=e.get("EXT_texture_compression_bptc"),null!==n?t:null):t===xit?o?34042:(n=e.get("WEBGL_depth_texture"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}function Ect(t=[]){Cst.call(this),this.cameras=t}function Act(){Qat.call(this),this.type="Group"}function Rct(){this._targetRay=null,this._grip=null,this._hand=null}function Tct(t,e){const n=this;let o=null,i=1,a=null,r="local-floor",s=null;const l=[],c=new Map,d=new Cst;d.layers.enable(1),d.viewport=new Kit;const p=new Cst;p.layers.enable(2),p.viewport=new Kit;const m=[d,p],u=new Ect;u.layers.enable(1),u.layers.enable(2);let f=null,g=null;function h(t){const e=c.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function b(){c.forEach((function(t,e){t.disconnect(e)})),c.clear(),f=null,g=null,t.setFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),x.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}function y(t){const e=o.inputSources;for(let t=0;t<l.length;t++)c.set(e[t],l[t]);for(let e=0;e<t.removed.length;e++){const n=t.removed[e],o=c.get(n);o&&(o.dispatchEvent({type:"disconnected",data:n}),c.delete(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e],o=c.get(n);o&&o.dispatchEvent({type:"connected",data:n})}}this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=l[t];return void 0===e&&(e=new Rct,l[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=l[t];return void 0===e&&(e=new Rct,l[t]=e),e.getGripSpace()},this.getHand=function(t){let e=l[t];return void 0===e&&(e=new Rct,l[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){i=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return a},this.getSession=function(){return o},this.setSession=async function(t){if(o=t,null!==o){o.addEventListener("select",h),o.addEventListener("selectstart",h),o.addEventListener("selectend",h),o.addEventListener("squeeze",h),o.addEventListener("squeezestart",h),o.addEventListener("squeezeend",h),o.addEventListener("end",b),o.addEventListener("inputsourceschange",y);const t=e.getContextAttributes();!0!==t.xrCompatible&&await e.makeXRCompatible();const s=new XRWebGLLayer(o,e,{antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:i});o.updateRenderState({baseLayer:s}),a=await o.requestReferenceSpace(r),x.setContext(o),x.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};const _=new $it,C=new $it;function M(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.getCamera=function(t){u.near=p.near=d.near=t.near,u.far=p.far=d.far=t.far,f===u.near&&g===u.far||(o.updateRenderState({depthNear:u.near,depthFar:u.far}),f=u.near,g=u.far);const e=t.parent,n=u.cameras;M(u,e);for(let t=0;t<n.length;t++)M(n[t],e);t.matrixWorld.copy(u.matrixWorld),t.matrix.copy(u.matrix),t.matrix.decompose(t.position,t.quaternion,t.scale);const i=t.children;for(let t=0,e=i.length;t<e;t++)i[t].updateMatrixWorld(!0);return 2===n.length?(function a(t,e,n){_.setFromMatrixPosition(e.matrixWorld),C.setFromMatrixPosition(n.matrixWorld);const o=_.distanceTo(C),i=e.projectionMatrix.elements,a=n.projectionMatrix.elements,r=i[14]/(i[10]-1),s=i[14]/(i[10]+1),l=(i[9]+1)/i[5],c=(i[9]-1)/i[5],d=(i[8]-1)/i[0],p=(a[8]+1)/a[0],m=r*d,u=r*p,f=o/(-d+p),g=f*-d;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(g),t.translateZ(f),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const h=r+f,b=s+f;t.projectionMatrix.makePerspective(m-g,u+(o-g),l*s/b*h,c*s/b*h,h,b)})(u,d,p):u.projectionMatrix.copy(d.projectionMatrix),u};let v=null;const x=new Dst;x.setAnimationLoop((function O(e,n){if(s=n.getViewerPose(a),null!==s){const e=s.views,n=o.renderState.baseLayer;t.setFramebuffer(n.framebuffer);let i=!1;e.length!==u.cameras.length&&(u.cameras.length=0,i=!0);for(let t=0;t<e.length;t++){const o=e[t],a=n.getViewport(o),r=m[t];r.matrix.fromArray(o.transform.matrix),r.projectionMatrix.fromArray(o.projectionMatrix),r.viewport.set(a.x,a.y,a.width,a.height),0===t&&u.matrix.copy(r.matrix),!0===i&&u.cameras.push(r)}}const i=o.inputSources;for(let t=0;t<l.length;t++)l[t].update(i[t],n,a);v&&v(e,n)})),this.setAnimationLoop=function(t){v=t},this.dispose=function(){}}function Nct(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap);const o=t.get(n).envMap;if(o){e.envMap.value=o,e.flipEnvMap.value=o.isCubeTexture&&o._needsFlipEnvMap?-1:1,e.reflectivity.value=n.reflectivity,e.refractionRatio.value=n.refractionRatio;const i=t.get(o).__maxMipLevel;void 0!==i&&(e.maxMipLevel.value=i)}let i,a;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?i=n.map:n.specularMap?i=n.specularMap:n.displacementMap?i=n.displacementMap:n.normalMap?i=n.normalMap:n.bumpMap?i=n.bumpMap:n.roughnessMap?i=n.roughnessMap:n.metalnessMap?i=n.metalnessMap:n.alphaMap?i=n.alphaMap:n.emissiveMap?i=n.emissiveMap:n.clearcoatMap?i=n.clearcoatMap:n.clearcoatNormalMap?i=n.clearcoatNormalMap:n.clearcoatRoughnessMap&&(i=n.clearcoatRoughnessMap),void 0!==i&&(i.isWebGLRenderTarget&&(i=i.texture),!0===i.matrixAutoUpdate&&i.updateMatrix(),e.uvTransform.value.copy(i.matrix)),n.aoMap?a=n.aoMap:n.lightMap&&(a=n.lightMap),void 0!==a&&(a.isWebGLRenderTarget&&(a=a.texture),!0===a.matrixAutoUpdate&&a.updateMatrix(),e.uv2Transform.value.copy(a.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias),t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function o(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function i(t,o,a,r){o.isMeshBasicMaterial?e(t,o):o.isMeshLambertMaterial?(e(t,o),(function s(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)})(t,o)):o.isMeshToonMaterial?(e(t,o),(function l(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,o)):o.isMeshPhongMaterial?(e(t,o),(function c(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,o)):o.isMeshStandardMaterial?(e(t,o),o.isMeshPhysicalMaterial?(function d(t,e){n(t,e),t.reflectivity.value=e.reflectivity,t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&t.sheen.value.copy(e.sheen),e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap),e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate()),t.transmission.value=e.transmission,e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap)})(t,o):n(t,o)):o.isMeshMatcapMaterial?(e(t,o),(function p(t,e){e.matcap&&(t.matcap.value=e.matcap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,o)):o.isMeshDepthMaterial?(e(t,o),(function m(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,o)):o.isMeshDistanceMaterial?(e(t,o),(function u(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance})(t,o)):o.isMeshNormalMaterial?(e(t,o),(function f(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)})(t,o)):o.isLineBasicMaterial?((function g(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity})(t,o),o.isLineDashedMaterial&&(function h(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale})(t,o)):o.isPointsMaterial?(function b(t,e,n,o){let i;t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*o,e.map&&(t.map.value=e.map),e.alphaMap&&(t.alphaMap.value=e.alphaMap),e.map?i=e.map:e.alphaMap&&(i=e.alphaMap),void 0!==i&&(!0===i.matrixAutoUpdate&&i.updateMatrix(),t.uvTransform.value.copy(i.matrix))})(t,o,a,r):o.isSpriteMaterial?(function y(t,e){let n;t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map),e.alphaMap&&(t.alphaMap.value=e.alphaMap),e.map?n=e.map:e.alphaMap&&(n=e.alphaMap),void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))})(t,o):o.isShadowMaterial?(t.color.value.copy(o.color),t.opacity.value=o.opacity):o.isShaderMaterial&&(o.uniformsNeedUpdate=!1)}}}function Ict(t){const e=void 0!==(t=t||{}).canvas?t.canvas:(function n(){const t=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return t.style.display="block",t})(),o=void 0!==t.context?t.context:null,i=void 0!==t.alpha&&t.alpha,a=void 0===t.depth||t.depth,r=void 0===t.stencil||t.stencil,s=void 0!==t.antialias&&t.antialias,l=void 0===t.premultipliedAlpha||t.premultipliedAlpha,c=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,d=void 0!==t.powerPreference?t.powerPreference:"default",p=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let m=null,u=null;const f=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=Nit,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1,this.maxMorphTargets=8,this.maxMorphNormals=4;const g=this;let h=!1,b=null,y=0,_=0,C=null,M=null,v=-1,x=null;const O=new Kit,P=new Kit;let w=null,k=e.width,S=e.height,D=1,E=null,A=null;const R=new Kit(0,0,k,S),T=new Kit(0,0,k,S);let N=!1;const I=new Sst;let z=!1,H=!1;const F=new kat,L=new $it,B={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function V(){return null===C?D:1}let j,U,W,G,Y,q,Z,X,K,J,Q,$,tt,et,nt,ot,it,at,rt,st,lt,ct=o;function dt(t,n){for(let o=0;o<t.length;o++){const i=e.getContext(t[o],n);if(null!==i)return i}return null}try{const t={alpha:i,depth:a,stencil:r,antialias:s,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:d,failIfMajorPerformanceCaveat:p};if(e.addEventListener("webglcontextlost",ft,!1),e.addEventListener("webglcontextrestored",gt,!1),null===ct){const e=["webgl2","webgl","experimental-webgl"];if(!0===g.isWebGL1Renderer&&e.shift(),ct=dt(e,t),null===ct)throw dt(e)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}void 0===ct.getShaderPrecisionFormat&&(ct.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw console.error("THREE.WebGLRenderer: "+t.message),t}function pt(){j=new Vst(ct),U=new Fst(ct,j,t),j.init(U),st=new Dct(ct,j,U),W=new kct(ct,j,U),W.scissor(P.copy(T).multiplyScalar(D).floor()),W.viewport(O.copy(R).multiplyScalar(D).floor()),G=new Wst(ct),Y=new uct,q=new Sct(ct,j,W,Y,U,st,G),Z=new Bst(g),X=new Est(ct,U),lt=new zst(ct,j,X,U),K=new jst(ct,X,G,lt),J=new Zst(ct,K,X,G),it=new qst(ct),nt=new Lst(Y),Q=new mct(g,Z,j,U,lt,nt),$=new Nct(Y),tt=new bct(Y),et=new xct(j,U),ot=new Ist(g,Z,W,J,l),at=new Hst(ct,j,G,U),rt=new Ust(ct,j,G,U),G.programs=Q.programs,g.capabilities=U,g.extensions=j,g.properties=Y,g.renderLists=tt,g.state=W,g.info=G}pt();const mt=new Tct(g,ct);this.xr=mt;const ut=new wct(g,J,U.maxTextureSize);function ft(t){t.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),h=!0}function gt(){console.log("THREE.WebGLRenderer: Context Restored."),h=!1,pt()}function ht(t){const e=t.target;e.removeEventListener("dispose",ht),(function n(t){bt(t),Y.remove(t)})(e)}function bt(t){const e=Y.get(t).program;void 0!==e&&Q.releaseProgram(e)}this.shadowMap=ut,this.getContext=function(){return ct},this.getContextAttributes=function(){return ct.getContextAttributes()},this.forceContextLoss=function(){const t=j.get("WEBGL_lose_context");t&&t.loseContext()},this.forceContextRestore=function(){const t=j.get("WEBGL_lose_context");t&&t.restoreContext()},this.getPixelRatio=function(){return D},this.setPixelRatio=function(t){void 0!==t&&(D=t,this.setSize(k,S,!1))},this.getSize=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),t=new Uit),t.set(k,S)},this.setSize=function(t,n,o){mt.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(k=t,S=n,e.width=Math.floor(t*D),e.height=Math.floor(n*D),!1!==o&&(e.style.width=t+"px",e.style.height=n+"px"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),t=new Uit),t.set(k*D,S*D).floor()},this.setDrawingBufferSize=function(t,n,o){k=t,S=n,D=o,e.width=Math.floor(t*o),e.height=Math.floor(n*o),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),t=new Kit),t.copy(O)},this.getViewport=function(t){return t.copy(R)},this.setViewport=function(t,e,n,o){t.isVector4?R.set(t.x,t.y,t.z,t.w):R.set(t,e,n,o),W.viewport(O.copy(R).multiplyScalar(D).floor())},this.getScissor=function(t){return t.copy(T)},this.setScissor=function(t,e,n,o){t.isVector4?T.set(t.x,t.y,t.z,t.w):T.set(t,e,n,o),W.scissor(P.copy(T).multiplyScalar(D).floor())},this.getScissorTest=function(){return N},this.setScissorTest=function(t){W.setScissorTest(N=t)},this.setOpaqueSort=function(t){E=t},this.setTransparentSort=function(t){A=t},this.getClearColor=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getClearColor() now requires a Color as an argument"),t=new Crt),t.copy(ot.getClearColor())},this.setClearColor=function(){ot.setClearColor.apply(ot,arguments)},this.getClearAlpha=function(){return ot.getClearAlpha()},this.setClearAlpha=function(){ot.setClearAlpha.apply(ot,arguments)},this.clear=function(t,e,n){let o=0;(void 0===t||t)&&(o|=16384),(void 0===e||e)&&(o|=256),(void 0===n||n)&&(o|=1024),ct.clear(o)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",ft,!1),e.removeEventListener("webglcontextrestored",gt,!1),tt.dispose(),et.dispose(),Y.dispose(),Z.dispose(),J.dispose(),lt.dispose(),mt.dispose(),_t.stop()},this.renderBufferImmediate=function(t,e){lt.initAttributes();const n=Y.get(t);t.hasPositions&&!n.position&&(n.position=ct.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=ct.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=ct.createBuffer()),t.hasColors&&!n.color&&(n.color=ct.createBuffer());const o=e.getAttributes();t.hasPositions&&(ct.bindBuffer(34962,n.position),ct.bufferData(34962,t.positionArray,35048),lt.enableAttribute(o.position),ct.vertexAttribPointer(o.position,3,5126,!1,0,0)),t.hasNormals&&(ct.bindBuffer(34962,n.normal),ct.bufferData(34962,t.normalArray,35048),lt.enableAttribute(o.normal),ct.vertexAttribPointer(o.normal,3,5126,!1,0,0)),t.hasUvs&&(ct.bindBuffer(34962,n.uv),ct.bufferData(34962,t.uvArray,35048),lt.enableAttribute(o.uv),ct.vertexAttribPointer(o.uv,2,5126,!1,0,0)),t.hasColors&&(ct.bindBuffer(34962,n.color),ct.bufferData(34962,t.colorArray,35048),lt.enableAttribute(o.color),ct.vertexAttribPointer(o.color,3,5126,!1,0,0)),lt.disableUnusedAttributes(),ct.drawArrays(4,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,o,i,a){null===e&&(e=B);const r=i.isMesh&&i.matrixWorld.determinant()<0,s=Ot(t,e,o,i);W.setMaterial(o,r);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let d,p=1;!0===o.wireframe&&(l=K.getWireframeAttribute(n),p=2),(o.morphTargets||o.morphNormals)&&it.update(i,n,o,s),lt.setup(i,o,s,n,l);let m=at;null!==l&&(d=X.get(l),m=rt,m.setIndex(d));const u=null!==l?l.count:c.count,f=n.drawRange.start*p,g=n.drawRange.count*p,h=null!==a?a.start*p:0,b=null!==a?a.count*p:1/0,y=Math.max(f,h),_=Math.min(u,f+g,h+b)-1,C=Math.max(0,_-y+1);if(0!==C){if(i.isMesh)!0===o.wireframe?(W.setLineWidth(o.wireframeLinewidth*V()),m.setMode(1)):m.setMode(4);else if(i.isLine){let t=o.linewidth;void 0===t&&(t=1),W.setLineWidth(t*V()),m.setMode(i.isLineSegments?1:i.isLineLoop?2:3)}else i.isPoints?m.setMode(0):i.isSprite&&m.setMode(4);if(i.isInstancedMesh)m.renderInstances(y,C,i.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);m.renderInstances(y,C,t)}else m.render(y,C)}},this.compile=function(t,e){u=et.get(t),u.init(),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(u.pushLight(t),t.castShadow&&u.pushShadow(t))})),u.setupLights();const n=new WeakMap;t.traverse((function(e){const o=e.material;if(o)if(Array.isArray(o))for(let i=0;i<o.length;i++){const a=o[i];!1===n.has(a)&&(xt(a,t,e),n.set(a))}else!1===n.has(o)&&(xt(o,t,e),n.set(o))}))};let yt=null;const _t=new Dst;function Ct(t,e,n,o){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)u.pushLight(t),t.castShadow&&u.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||I.intersectsSprite(t)){o&&L.setFromMatrixPosition(t.matrixWorld).applyMatrix4(F);const e=J.update(t),i=t.material;i.visible&&m.push(t,e,i,n,L.z,null)}}else if(t.isImmediateRenderObject)o&&L.setFromMatrixPosition(t.matrixWorld).applyMatrix4(F),m.push(t,null,t.material,n,L.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==G.render.frame&&(t.skeleton.update(),t.skeleton.frame=G.render.frame),!t.frustumCulled||I.intersectsObject(t))){o&&L.setFromMatrixPosition(t.matrixWorld).applyMatrix4(F);const e=J.update(t),i=t.material;if(Array.isArray(i)){const o=e.groups;for(let a=0,r=o.length;a<r;a++){const r=o[a],s=i[r.materialIndex];s&&s.visible&&m.push(t,e,s,n,L.z,r)}}else i.visible&&m.push(t,e,i,n,L.z,null)}const i=t.children;for(let t=0,a=i.length;t<a;t++)Ct(i[t],e,n,o)}function Mt(t,e,n){const o=!0===e.isScene?e.overrideMaterial:null;for(let i=0,a=t.length;i<a;i++){const a=t[i],r=a.object,s=a.geometry,l=null===o?a.material:o,c=a.group;if(n.isArrayCamera){const t=n.cameras;for(let n=0,o=t.length;n<o;n++){const o=t[n];r.layers.test(o.layers)&&(W.viewport(O.copy(o.viewport)),u.setupLightsView(o),vt(r,e,o,s,l,c))}}else vt(r,e,n,s,l,c)}}function vt(t,e,n,o,i,a){if(t.onBeforeRender(g,e,n,o,i,a),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),t.isImmediateRenderObject){const o=Ot(n,e,i,t);W.setMaterial(i),lt.reset(),(function r(t,e){t.render((function(t){g.renderBufferImmediate(t,e)}))})(t,o)}else g.renderBufferDirect(n,e,o,i,t,a);t.onAfterRender(g,e,n,o,i,a)}function xt(t,e,n){!0!==e.isScene&&(e=B);const o=Y.get(t),i=u.state.lights,a=i.state.version,r=Q.getParameters(t,i.state,u.state.shadowsArray,e,n),s=Q.getProgramCacheKey(r);let l=o.program,c=!0;if(o.environment=t.isMeshStandardMaterial?e.environment:null,o.fog=e.fog,o.envMap=Z.get(t.envMap||o.environment),void 0===l)t.addEventListener("dispose",ht);else if(l.cacheKey!==s)bt(t);else if(o.lightsStateVersion!==a)c=!1;else{if(void 0!==r.shaderID)return;c=!1}c&&(r.uniforms=Q.getUniforms(t),t.onBeforeCompile(r,g),l=Q.acquireProgram(r,s),o.program=l,o.uniforms=r.uniforms,o.outputEncoding=r.outputEncoding);const d=o.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(o.numClippingPlanes=nt.numPlanes,o.numIntersection=nt.numIntersection,d.clippingPlanes=nt.uniform),o.needsLights=(function p(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights})(t),o.lightsStateVersion=a,o.needsLights&&(d.ambientLightColor.value=i.state.ambient,d.lightProbe.value=i.state.probe,d.directionalLights.value=i.state.directional,d.directionalLightShadows.value=i.state.directionalShadow,d.spotLights.value=i.state.spot,d.spotLightShadows.value=i.state.spotShadow,d.rectAreaLights.value=i.state.rectArea,d.ltc_1.value=i.state.rectAreaLTC1,d.ltc_2.value=i.state.rectAreaLTC2,d.pointLights.value=i.state.point,d.pointLightShadows.value=i.state.pointShadow,d.hemisphereLights.value=i.state.hemi,d.directionalShadowMap.value=i.state.directionalShadowMap,d.directionalShadowMatrix.value=i.state.directionalShadowMatrix,d.spotShadowMap.value=i.state.spotShadowMap,d.spotShadowMatrix.value=i.state.spotShadowMatrix,d.pointShadowMap.value=i.state.pointShadowMap,d.pointShadowMatrix.value=i.state.pointShadowMatrix);const m=o.program.getUniforms(),f=Glt.seqWithValue(m.seq,d);o.uniformsList=f}function Ot(t,e,n,o){!0!==e.isScene&&(e=B),q.resetTextureUnits();const i=e.fog,a=n.isMeshStandardMaterial?e.environment:null,r=null===C?g.outputEncoding:C.texture.encoding,s=Z.get(n.envMap||a),l=Y.get(n),c=u.state.lights;!0!==z||!0!==H&&t===x||nt.setState(n,t,t===x&&n.id===v),n.version===l.__version?n.fog&&l.fog!==i||l.environment!==a||l.needsLights&&l.lightsStateVersion!==c.state.version?xt(n,e,o):void 0===l.numClippingPlanes||l.numClippingPlanes===nt.numPlanes&&l.numIntersection===nt.numIntersection?(l.outputEncoding!==r||l.envMap!==s)&&xt(n,e,o):xt(n,e,o):(xt(n,e,o),l.__version=n.version);let d=!1,p=!1,m=!1;const f=l.program,h=f.getUniforms(),b=l.uniforms;if(W.useProgram(f.program)&&(d=!0,p=!0,m=!0),n.id!==v&&(v=n.id,p=!0),d||x!==t){if(h.setValue(ct,"projectionMatrix",t.projectionMatrix),U.logarithmicDepthBuffer&&h.setValue(ct,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),x!==t&&(x=t,p=!0,m=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshStandardMaterial||n.envMap){const e=h.map.cameraPosition;void 0!==e&&e.setValue(ct,L.setFromMatrixPosition(t.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial)&&h.setValue(ct,"isOrthographic",!0===t.isOrthographicCamera),(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.isShadowMaterial||n.skinning)&&h.setValue(ct,"viewMatrix",t.matrixWorldInverse)}if(n.skinning){h.setOptional(ct,o,"bindMatrix"),h.setOptional(ct,o,"bindMatrixInverse");const t=o.skeleton;if(t){const e=t.bones;if(U.floatVertexTextures){if(null===t.boneTexture){let n=Math.sqrt(4*e.length);n=jit.ceilPowerOfTwo(n),n=Math.max(n,4);const o=new Float32Array(n*n*4);o.set(t.boneMatrices);const i=new Pst(o,n,n,Pit,Mit);t.boneMatrices=o,t.boneTexture=i,t.boneTextureSize=n}h.setValue(ct,"boneTexture",t.boneTexture,q),h.setValue(ct,"boneTextureSize",t.boneTextureSize)}else h.setOptional(ct,t,"boneMatrices")}}return(p||l.receiveShadow!==o.receiveShadow)&&(l.receiveShadow=o.receiveShadow,h.setValue(ct,"receiveShadow",o.receiveShadow)),p&&(h.setValue(ct,"toneMappingExposure",g.toneMappingExposure),l.needsLights&&(function y(t,e){t.ambientLightColor.needsUpdate=e,t.lightProbe.needsUpdate=e,t.directionalLights.needsUpdate=e,t.directionalLightShadows.needsUpdate=e,t.pointLights.needsUpdate=e,t.pointLightShadows.needsUpdate=e,t.spotLights.needsUpdate=e,t.spotLightShadows.needsUpdate=e,t.rectAreaLights.needsUpdate=e,t.hemisphereLights.needsUpdate=e})(b,m),i&&n.fog&&$.refreshFogUniforms(b,i),$.refreshMaterialUniforms(b,n,D,S),Glt.upload(ct,l.uniformsList,b,q)),n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&(Glt.upload(ct,l.uniformsList,b,q),n.uniformsNeedUpdate=!1),n.isSpriteMaterial&&h.setValue(ct,"center",o.center),h.setValue(ct,"modelViewMatrix",o.modelViewMatrix),h.setValue(ct,"normalMatrix",o.normalMatrix),h.setValue(ct,"modelMatrix",o.matrixWorld),f}_t.setAnimationLoop((function Pt(t){mt.isPresenting||yt&&yt(t)})),"undefined"!=typeof window&&_t.setContext(window),this.setAnimationLoop=function(t){yt=t,mt.setAnimationLoop(t),null===t?_t.stop():_t.start()},this.render=function(t,e){let n,o;if(void 0!==arguments[2]&&(console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead."),n=arguments[2]),void 0!==arguments[3]&&(console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead."),o=arguments[3]),void 0!==e&&!0!==e.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===h)return;lt.resetDefaultState(),v=-1,x=null,!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===mt.enabled&&!0===mt.isPresenting&&(e=mt.getCamera(e)),!0===t.isScene&&t.onBeforeRender(g,t,e,n||C),u=et.get(t,f.length),u.init(),f.push(u),F.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),I.setFromProjectionMatrix(F),H=this.localClippingEnabled,z=nt.init(this.clippingPlanes,H,e),m=tt.get(t,e),m.init(),Ct(t,e,0,g.sortObjects),m.finish(),!0===g.sortObjects&&m.sort(E,A),!0===z&&nt.beginShadows();const i=u.state.shadowsArray;ut.render(i,t,e),u.setupLights(),u.setupLightsView(e),!0===z&&nt.endShadows(),!0===this.info.autoReset&&this.info.reset(),void 0!==n&&this.setRenderTarget(n),ot.render(m,t,e,o);const a=m.opaque,r=m.transparent;a.length>0&&Mt(a,t,e),r.length>0&&Mt(r,t,e),!0===t.isScene&&t.onAfterRender(g,t,e),null!==C&&(q.updateRenderTargetMipmap(C),q.updateMultisampleRenderTarget(C)),W.buffers.depth.setTest(!0),W.buffers.depth.setMask(!0),W.buffers.color.setMask(!0),W.setPolygonOffset(!1),f.pop(),u=f.length>0?f[f.length-1]:null,m=null},this.setFramebuffer=function(t){b!==t&&null===C&&ct.bindFramebuffer(36160,t),b=t},this.getActiveCubeFace=function(){return y},this.getActiveMipmapLevel=function(){return _},this.getRenderList=function(){return m},this.setRenderList=function(t){m=t},this.getRenderTarget=function(){return C},this.setRenderTarget=function(t,e=0,n=0){C=t,y=e,_=n,t&&void 0===Y.get(t).__webglFramebuffer&&q.setupRenderTarget(t);let o=b,i=!1;if(t){const n=Y.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(o=n[e],i=!0):o=t.isWebGLMultisampleRenderTarget?Y.get(t).__webglMultisampledFramebuffer:n,O.copy(t.viewport),P.copy(t.scissor),w=t.scissorTest}else O.copy(R).multiplyScalar(D).floor(),P.copy(T).multiplyScalar(D).floor(),w=N;if(M!==o&&(ct.bindFramebuffer(36160,o),M=o),W.viewport(O),W.scissor(P),W.setScissorTest(w),i){const o=Y.get(t.texture);ct.framebufferTexture2D(36160,36064,34069+e,o.__webglTexture,n)}},this.readRenderTargetPixels=function(t,e,n,o,i,a,r){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let s=Y.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==r&&(s=s[r]),s){let r=!1;s!==M&&(ct.bindFramebuffer(36160,s),r=!0);try{const s=t.texture,l=s.format,c=s.type;if(l!==Pit&&st.convert(l)!==ct.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const d=c===vit&&(j.has("EXT_color_buffer_half_float")||U.isWebGL2&&j.has("EXT_color_buffer_float"));if(!(1009===c||st.convert(c)===ct.getParameter(35738)||c===Mit&&(U.isWebGL2||j.has("OES_texture_float")||j.has("WEBGL_color_buffer_float"))||d))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===ct.checkFramebufferStatus(36160)?e>=0&&e<=t.width-o&&n>=0&&n<=t.height-i&&ct.readPixels(e,n,o,i,st.convert(l),st.convert(c),a):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{r&&ct.bindFramebuffer(36160,M)}}},this.copyFramebufferToTexture=function(t,e,n=0){const o=Math.pow(2,-n),i=Math.floor(e.image.width*o),a=Math.floor(e.image.height*o),r=st.convert(e.format);q.setTexture2D(e,0),ct.copyTexImage2D(3553,n,r,t.x,t.y,i,a,0),W.unbindTexture()},this.copyTextureToTexture=function(t,e,n,o=0){const i=e.image.width,a=e.image.height,r=st.convert(n.format),s=st.convert(n.type);q.setTexture2D(n,0),ct.pixelStorei(37440,n.flipY),ct.pixelStorei(37441,n.premultiplyAlpha),ct.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?ct.texSubImage2D(3553,o,t.x,t.y,i,a,r,s,e.image.data):e.isCompressedTexture?ct.compressedTexSubImage2D(3553,o,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,r,e.mipmaps[0].data):ct.texSubImage2D(3553,o,t.x,t.y,r,s,e.image),0===o&&n.generateMipmaps&&ct.generateMipmap(3553),W.unbindTexture()},this.initTexture=function(t){q.setTexture2D(t,0),W.unbindTexture()},this.resetState=function(){W.reset(),lt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function zct(t){Ict.call(this,t)}(Oct.prototype=Object.create(xrt.prototype)).constructor=Oct,Oct.prototype.isMeshDepthMaterial=!0,Oct.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.depthPacking=t.depthPacking,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this},(Pct.prototype=Object.create(xrt.prototype)).constructor=Pct,Pct.prototype.isMeshDistanceMaterial=!0,Pct.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this},Ect.prototype=Object.assign(Object.create(Cst.prototype),{constructor:Ect,isArrayCamera:!0}),Act.prototype=Object.assign(Object.create(Qat.prototype),{constructor:Act,isGroup:!0}),Object.assign(Rct.prototype,{constructor:Rct,getHandSpace:function(){return null===this._hand&&(this._hand=new Act,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},getTargetRaySpace:function(){return null===this._targetRay&&(this._targetRay=new Act,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1),this._targetRay},getGripSpace:function(){return null===this._grip&&(this._grip=new Act,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1),this._grip},dispatchEvent:function(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this},disconnect:function(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this},update:function(t,e,n){let o=null,i=null,a=null;const r=this._targetRay,s=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState)if(l&&t.hand){a=!0;for(const o of t.hand.values()){const t=e.getJointPose(o,n);if(void 0===l.joints[o.jointName]){const t=new Act;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[o.jointName]=t,l.add(t)}const i=l.joints[o.jointName];null!==t&&(i.matrix.fromArray(t.transform.matrix),i.matrix.decompose(i.position,i.rotation,i.scale),i.jointRadius=t.radius),i.visible=null!==t}const o=l.joints["index-finger-tip"].position.distanceTo(l.joints["thumb-tip"].position),i=.02,r=.005;l.inputState.pinching&&o>i+r?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&o<=i-r&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==r&&(o=e.getPose(t.targetRaySpace,n),null!==o&&(r.matrix.fromArray(o.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale))),null!==s&&t.gripSpace&&(i=e.getPose(t.gripSpace,n),null!==i&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale)));return null!==r&&(r.visible=null!==o),null!==s&&(s.visible=null!==i),null!==l&&(l.visible=null!==a),this}}),Object.assign(Tct.prototype,Lit.prototype),zct.prototype=Object.assign(Object.create(Ict.prototype),{constructor:zct,isWebGL1Renderer:!0});class Hct extends Qat{constructor(){super(),Object.defineProperty(this,"isScene",{value:!0}),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.background&&(e.object.background=this.background.toJSON(t)),null!==this.environment&&(e.object.environment=this.environment.toJSON(t)),null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}function Fct(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=zit,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=jit.generateUUID()}Object.defineProperty(Fct.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(Fct.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this},copyAt:function(t,e,n){t*=this.stride,n*=e.stride;for(let o=0,i=this.stride;o<i;o++)this.array[t+o]=e.array[n+o];return this},set:function(t,e=0){return this.array.set(t,e),this},clone:function(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=jit.generateUUID()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new Fct(new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),this.stride);return e.setUsage(this.usage),e},onUpload:function(t){return this.onUploadCallback=t,this},toJSON:function(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=jit.generateUUID()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}});const Lct=new $it;function Bct(t,e,n,o){this.name="",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===o}function Vct(t){xrt.call(this),this.type="SpriteMaterial",this.color=new Crt(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}let jct;Object.defineProperties(Bct.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}},needsUpdate:{set:function(t){this.data.needsUpdate=t}}}),Object.assign(Bct.prototype,{isInterleavedBufferAttribute:!0,applyMatrix4:function(t){for(let e=0,n=this.data.count;e<n;e++)Lct.x=this.getX(e),Lct.y=this.getY(e),Lct.z=this.getZ(e),Lct.applyMatrix4(t),this.setXYZ(e,Lct.x,Lct.y,Lct.z);return this},setX:function(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this},setY:function(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this},setZ:function(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this},setW:function(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this},getX:function(t){return this.data.array[t*this.data.stride+this.offset]},getY:function(t){return this.data.array[t*this.data.stride+this.offset+1]},getZ:function(t){return this.data.array[t*this.data.stride+this.offset+2]},getW:function(t){return this.data.array[t*this.data.stride+this.offset+3]},setXY:function(t,e,n){return this.data.array[(t=t*this.data.stride+this.offset)+0]=e,this.data.array[t+1]=n,this},setXYZ:function(t,e,n,o){return this.data.array[(t=t*this.data.stride+this.offset)+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=o,this},setXYZW:function(t,e,n,o,i){return this.data.array[(t=t*this.data.stride+this.offset)+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=o,this.data.array[t+3]=i,this},clone:function(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new krt(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new Bct(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)},toJSON:function(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}),(Vct.prototype=Object.create(xrt.prototype)).constructor=Vct,Vct.prototype.isSpriteMaterial=!0,Vct.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this};const Uct=new $it,Wct=new $it,Gct=new $it,Yct=new Uit,qct=new Uit,Zct=new kat,Xct=new $it,Kct=new $it,Jct=new $it,Qct=new Uit,$ct=new Uit,tdt=new Uit;function edt(t){if(Qat.call(this),this.type="Sprite",void 0===jct){jct=new Zrt;const t=new Fct(new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),5);jct.setIndex([0,1,2,0,2,3]),jct.setAttribute("position",new Bct(t,3,0,!1)),jct.setAttribute("uv",new Bct(t,2,3,!1))}this.geometry=jct,this.material=void 0!==t?t:new Vct,this.center=new Uit(.5,.5)}function ndt(t,e,n,o,i,a){Yct.subVectors(t,n).addScalar(.5).multiply(o),void 0!==i?(qct.x=a*Yct.x-i*Yct.y,qct.y=i*Yct.x+a*Yct.y):qct.copy(Yct),t.copy(e),t.x+=qct.x,t.y+=qct.y,t.applyMatrix4(Zct)}edt.prototype=Object.assign(Object.create(Qat.prototype),{constructor:edt,isSprite:!0,raycast:function(t,e){null===t.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),Wct.setFromMatrixScale(this.matrixWorld),Zct.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),Gct.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&Wct.multiplyScalar(-Gct.z);const n=this.material.rotation;let o,i;0!==n&&(i=Math.cos(n),o=Math.sin(n));const a=this.center;ndt(Xct.set(-.5,-.5,0),Gct,a,Wct,o,i),ndt(Kct.set(.5,-.5,0),Gct,a,Wct,o,i),ndt(Jct.set(.5,.5,0),Gct,a,Wct,o,i),Qct.set(0,0),$ct.set(1,0),tdt.set(1,1);let r=t.ray.intersectTriangle(Xct,Kct,Jct,!1,Uct);if(null===r&&(ndt(Kct.set(-.5,.5,0),Gct,a,Wct,o,i),$ct.set(0,1),r=t.ray.intersectTriangle(Xct,Jct,Kct,!1,Uct),null===r))return;const s=t.ray.origin.distanceTo(Uct);s<t.near||s>t.far||e.push({distance:s,point:Uct.clone(),uv:urt.getUV(Uct,Xct,Kct,Jct,Qct,$ct,tdt,new Uit),face:null,object:this})},copy:function(t){return Qat.prototype.copy.call(this,t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}});const odt=new $it,idt=new $it;function adt(){Qat.call(this),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}adt.prototype=Object.assign(Object.create(Qat.prototype),{constructor:adt,isLOD:!0,copy:function(t){Qat.prototype.copy.call(this,t,!1);const e=t.levels;for(let t=0,n=e.length;t<n;t++){const n=e[t];this.addLevel(n.object.clone(),n.distance)}return this.autoUpdate=t.autoUpdate,this},addLevel:function(t,e=0){e=Math.abs(e);const n=this.levels;let o;for(o=0;o<n.length&&!(e<n[o].distance);o++);return n.splice(o,0,{distance:e,object:t}),this.add(t),this},getCurrentLevel:function(){return this._currentLevel},getObjectForDistance:function(t){const e=this.levels;if(e.length>0){let n,o;for(n=1,o=e.length;n<o&&!(t<e[n].distance);n++);return e[n-1].object}return null},raycast:function(t,e){if(this.levels.length>0){odt.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(odt);this.getObjectForDistance(n).raycast(t,e)}},update:function(t){const e=this.levels;if(e.length>1){odt.setFromMatrixPosition(t.matrixWorld),idt.setFromMatrixPosition(this.matrixWorld);const n=odt.distanceTo(idt)/t.zoom;let o,i;for(e[0].object.visible=!0,o=1,i=e.length;o<i&&n>=e[o].distance;o++)e[o-1].object.visible=!1,e[o].object.visible=!0;for(this._currentLevel=o-1;o<i;o++)e[o].object.visible=!1}},toJSON:function(t){const e=Qat.prototype.toJSON.call(this,t);!1===this.autoUpdate&&(e.object.autoUpdate=!1),e.object.levels=[];const n=this.levels;for(let t=0,o=n.length;t<o;t++){const o=n[t];e.object.levels.push({object:o.object.uuid,distance:o.distance})}return e}});const rdt=new $it,sdt=new Kit,ldt=new Kit,cdt=new $it,ddt=new kat;function pdt(t,e){t&&t.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead."),mst.call(this,t,e),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new kat,this.bindMatrixInverse=new kat}function mdt(){Qat.call(this),this.type="Bone"}pdt.prototype=Object.assign(Object.create(mst.prototype),{constructor:pdt,isSkinnedMesh:!0,copy:function(t){return mst.prototype.copy.call(this,t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this},bind:function(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){const t=new Kit,e=this.geometry.attributes.skinWeight;for(let n=0,o=e.count;n<o;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const o=1/t.manhattanLength();o!==1/0?t.multiplyScalar(o):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}},updateMatrixWorld:function(t){mst.prototype.updateMatrixWorld.call(this,t),"attached"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():"detached"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},boneTransform:function(t,e){const n=this.skeleton,o=this.geometry;sdt.fromBufferAttribute(o.attributes.skinIndex,t),ldt.fromBufferAttribute(o.attributes.skinWeight,t),rdt.fromBufferAttribute(o.attributes.position,t).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const o=ldt.getComponent(t);if(0!==o){const i=sdt.getComponent(t);ddt.multiplyMatrices(n.bones[i].matrixWorld,n.boneInverses[i]),e.addScaledVector(cdt.copy(rdt).applyMatrix4(ddt),o)}}return e.applyMatrix4(this.bindMatrixInverse)}}),mdt.prototype=Object.assign(Object.create(Qat.prototype),{constructor:mdt,isBone:!0});const udt=new kat,fdt=new kat;function gdt(t=[],e=[]){this.uuid=jit.generateUUID(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.frame=-1,this.init()}Object.assign(gdt.prototype,{init:function(){const t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(16*t.length),0===e.length)this.calculateInverses();else if(t.length!==e.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new kat)}},calculateInverses:function(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new kat;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(e)}},pose:function(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&(e.parent&&e.parent.isBone?(e.matrix.copy(e.parent.matrixWorld).invert(),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))}},update:function(){const t=this.bones,e=this.boneInverses,n=this.boneMatrices,o=this.boneTexture;for(let o=0,i=t.length;o<i;o++)udt.multiplyMatrices(t[o]?t[o].matrixWorld:fdt,e[o]),udt.toArray(n,16*o);null!==o&&(o.needsUpdate=!0)},clone:function(){return new gdt(this.bones,this.boneInverses)},getBoneByName:function(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}},dispose:function(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)},fromJSON:function(t,e){this.uuid=t.uuid;for(let n=0,o=t.bones.length;n<o;n++){const o=t.bones[n];let i=e[o];void 0===i&&(console.warn("THREE.Skeleton: No bone found with UUID:",o),i=new mdt),this.bones.push(i),this.boneInverses.push((new kat).fromArray(t.boneInverses[n]))}return this.init(),this},toJSON:function(){const t={metadata:{version:4.5,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones,n=this.boneInverses;for(let o=0,i=e.length;o<i;o++)t.bones.push(e[o].uuid),t.boneInverses.push(n[o].toArray());return t}});const hdt=new kat,bdt=new kat,ydt=[],_dt=new mst;function Cdt(t,e,n){mst.call(this,t,e),this.instanceMatrix=new krt(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}function Mdt(t){xrt.call(this),this.type="LineBasicMaterial",this.color=new Crt(16777215),this.linewidth=1,this.linecap="round",this.linejoin="round",this.morphTargets=!1,this.setValues(t)}Cdt.prototype=Object.assign(Object.create(mst.prototype),{constructor:Cdt,isInstancedMesh:!0,copy:function(t){return mst.prototype.copy.call(this,t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this},getColorAt:function(t,e){e.fromArray(this.instanceColor.array,3*t)},getMatrixAt:function(t,e){e.fromArray(this.instanceMatrix.array,16*t)},raycast:function(t,e){const n=this.matrixWorld,o=this.count;if(_dt.geometry=this.geometry,_dt.material=this.material,void 0!==_dt.material)for(let i=0;i<o;i++){this.getMatrixAt(i,hdt),bdt.multiplyMatrices(n,hdt),_dt.matrixWorld=bdt,_dt.raycast(t,ydt);for(let t=0,n=ydt.length;t<n;t++){const n=ydt[t];n.instanceId=i,n.object=this,e.push(n)}ydt.length=0}},setColorAt:function(t,e){null===this.instanceColor&&(this.instanceColor=new krt(new Float32Array(3*this.count),3)),e.toArray(this.instanceColor.array,3*t)},setMatrixAt:function(t,e){e.toArray(this.instanceMatrix.array,16*t)},updateMorphTargets:function(){},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(Mdt.prototype=Object.create(xrt.prototype)).constructor=Mdt,Mdt.prototype.isLineBasicMaterial=!0,Mdt.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.morphTargets=t.morphTargets,this};const vdt=new $it,xdt=new $it,Odt=new kat,Pdt=new wat,wdt=new yat;function kdt(t=new Zrt,e=new Mdt){Qat.call(this),this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}kdt.prototype=Object.assign(Object.create(Qat.prototype),{constructor:kdt,isLine:!0,copy:function(t){return Qat.prototype.copy.call(this,t),this.material=t.material,this.geometry=t.geometry,this},computeLineDistances:function(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,o=e.count;t<o;t++)vdt.fromBufferAttribute(e,t-1),xdt.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=vdt.distanceTo(xdt);t.setAttribute("lineDistance",new zrt(n,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else t.isGeometry&&console.error("THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this},raycast:function(t,e){const n=this.geometry,o=this.matrixWorld,i=t.params.Line.threshold;if(null===n.boundingSphere&&n.computeBoundingSphere(),wdt.copy(n.boundingSphere),wdt.applyMatrix4(o),wdt.radius+=i,!1===t.ray.intersectsSphere(wdt))return;Odt.copy(o).invert(),Pdt.copy(t.ray).applyMatrix4(Odt);const a=i/((this.scale.x+this.scale.y+this.scale.z)/3),r=a*a,s=new $it,l=new $it,c=new $it,d=new $it,p=this.isLineSegments?2:1;if(n.isBufferGeometry){const o=n.index,i=n.attributes.position;if(null!==o){const n=o.array;for(let o=0,a=n.length-1;o<a;o+=p){const a=n[o+1];if(s.fromBufferAttribute(i,n[o]),l.fromBufferAttribute(i,a),Pdt.distanceSqToSegment(s,l,d,c)>r)continue;d.applyMatrix4(this.matrixWorld);const p=t.ray.origin.distanceTo(d);p<t.near||p>t.far||e.push({distance:p,point:c.clone().applyMatrix4(this.matrixWorld),index:o,face:null,faceIndex:null,object:this})}}else for(let n=0,o=i.count-1;n<o;n+=p){if(s.fromBufferAttribute(i,n),l.fromBufferAttribute(i,n+1),Pdt.distanceSqToSegment(s,l,d,c)>r)continue;d.applyMatrix4(this.matrixWorld);const o=t.ray.origin.distanceTo(d);o<t.near||o>t.far||e.push({distance:o,point:c.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")},updateMorphTargets:function(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}});const Sdt=new $it,Ddt=new $it;function Edt(t,e){kdt.call(this,t,e),this.type="LineSegments"}function Adt(t,e){kdt.call(this,t,e),this.type="LineLoop"}function Rdt(t){xrt.call(this),this.type="PointsMaterial",this.color=new Crt(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.setValues(t)}Edt.prototype=Object.assign(Object.create(kdt.prototype),{constructor:Edt,isLineSegments:!0,computeLineDistances:function(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,o=e.count;t<o;t+=2)Sdt.fromBufferAttribute(e,t),Ddt.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+Sdt.distanceTo(Ddt);t.setAttribute("lineDistance",new zrt(n,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else t.isGeometry&&console.error("THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this}}),Adt.prototype=Object.assign(Object.create(kdt.prototype),{constructor:Adt,isLineLoop:!0}),(Rdt.prototype=Object.create(xrt.prototype)).constructor=Rdt,Rdt.prototype.isPointsMaterial=!0,Rdt.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this};const Tdt=new kat,Ndt=new wat,Idt=new yat,zdt=new $it;function Hdt(t=new Zrt,e=new Rdt){Qat.call(this),this.type="Points",this.geometry=t,this.material=e,this.updateMorphTargets()}function Fdt(t,e,n,o,i,a,r){const s=Ndt.distanceSqToPoint(t);if(s<n){const n=new $it;Ndt.closestPointToPoint(t,n),n.applyMatrix4(o);const l=i.ray.origin.distanceTo(n);if(l<i.near||l>i.far)return;a.push({distance:l,distanceToRay:Math.sqrt(s),point:n,index:e,face:null,object:r})}}function Ldt(t,e,n,o,i,a,r,s,l){Zit.call(this,t,e,n,o,i,a,r,s,l),this.format=void 0!==r?r:Oit,this.minFilter=void 0!==a?a:bit,this.magFilter=void 0!==i?i:bit,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}function Bdt(t,e,n,o,i,a,r,s,l,c,d,p){Zit.call(this,null,a,r,s,l,c,o,i,d,p),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}function Vdt(t,e,n,o,i,a,r,s,l){Zit.call(this,t,e,n,o,i,a,r,s,l),this.needsUpdate=!0}function jdt(t,e,n,o,i,a,r,s,l,c){if((c=void 0!==c?c:wit)!==wit&&c!==kit)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===wit&&(n=_it),void 0===n&&c===kit&&(n=xit),Zit.call(this,null,o,i,a,r,s,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==r?r:hit,this.minFilter=void 0!==s?s:hit,this.flipY=!1,this.generateMipmaps=!1}Hdt.prototype=Object.assign(Object.create(Qat.prototype),{constructor:Hdt,isPoints:!0,copy:function(t){return Qat.prototype.copy.call(this,t),this.material=t.material,this.geometry=t.geometry,this},raycast:function(t,e){const n=this.geometry,o=this.matrixWorld,i=t.params.Points.threshold;if(null===n.boundingSphere&&n.computeBoundingSphere(),Idt.copy(n.boundingSphere),Idt.applyMatrix4(o),Idt.radius+=i,!1===t.ray.intersectsSphere(Idt))return;Tdt.copy(o).invert(),Ndt.copy(t.ray).applyMatrix4(Tdt);const a=i/((this.scale.x+this.scale.y+this.scale.z)/3),r=a*a;if(n.isBufferGeometry){const i=n.index,a=n.attributes.position;if(null!==i){const n=i.array;for(let i=0,s=n.length;i<s;i++){const s=n[i];zdt.fromBufferAttribute(a,s),Fdt(zdt,s,r,o,t,e,this)}}else for(let n=0,i=a.count;n<i;n++)zdt.fromBufferAttribute(a,n),Fdt(zdt,n,r,o,t,e,this)}else console.error("THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")},updateMorphTargets:function(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}),Ldt.prototype=Object.assign(Object.create(Zit.prototype),{constructor:Ldt,clone:function(){return new this.constructor(this.image).copy(this)},isVideoTexture:!0,update:function(){const t=this.image;0=="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}),(Bdt.prototype=Object.create(Zit.prototype)).constructor=Bdt,Bdt.prototype.isCompressedTexture=!0,(Vdt.prototype=Object.create(Zit.prototype)).constructor=Vdt,Vdt.prototype.isCanvasTexture=!0,(jdt.prototype=Object.create(Zit.prototype)).constructor=jdt,jdt.prototype.isDepthTexture=!0;class Udt extends Zrt{constructor(t=1,e=8,n=0,o=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:o},e=Math.max(3,e);const i=[],a=[],r=[],s=[],l=new $it,c=new Uit;a.push(0,0,0),r.push(0,0,1),s.push(.5,.5);for(let i=0,d=3;i<=e;i++,d+=3){const p=n+i/e*o;l.x=t*Math.cos(p),l.y=t*Math.sin(p),a.push(l.x,l.y,l.z),r.push(0,0,1),c.x=(a[d]/t+1)/2,c.y=(a[d+1]/t+1)/2,s.push(c.x,c.y)}for(let t=1;t<=e;t++)i.push(t,t+1,0);this.setIndex(i),this.setAttribute("position",new zrt(a,3)),this.setAttribute("normal",new zrt(r,3)),this.setAttribute("uv",new zrt(s,2))}}function Wdt(t,e,n,o,i){let a,r;if(i===(function s(t,e,n,o){let i=0;for(let a=e,r=n-o;a<n;a+=o)i+=(t[r]-t[a])*(t[a+1]+t[r+1]),r=a;return i})(t,e,n,o)>0)for(a=e;a<n;a+=o)r=ppt(a,t[a],t[a+1],r);else for(a=n-o;a>=e;a-=o)r=ppt(a,t[a],t[a+1],r);return r&&apt(r,r.next)&&(mpt(r),r=r.next),r}function Gdt(t,e){if(!t)return t;e||(e=t);let n,o=t;do{if(n=!1,o.steiner||!apt(o,o.next)&&0!==ipt(o.prev,o,o.next))o=o.next;else{if(mpt(o),o=e=o.prev,o===o.next)break;n=!0}}while(n||o!==e);return e}function Ydt(t,e,n,o,i,a,r){if(!t)return;!r&&a&&(function s(t,e,n,o){let i=t;do{null===i.z&&(i.z=tpt(i.x,i.y,e,n,o)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,(function a(t){let e,n,o,i,a,r,s,l,c=1;do{for(n=t,t=null,a=null,r=0;n;){for(r++,o=n,s=0,e=0;e<c&&(s++,o=o.nextZ,o);e++);for(l=c;s>0||l>0&&o;)0!==s&&(0===l||!o||n.z<=o.z)?(i=n,n=n.nextZ,s--):(i=o,o=o.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;n=o}a.nextZ=null,c*=2}while(r>1)})(i)})(t,o,i,a);let l,c,d=t;for(;t.prev!==t.next;)if(l=t.prev,c=t.next,a?Zdt(t,o,i,a):qdt(t))e.push(l.i/n),e.push(t.i/n),e.push(c.i/n),mpt(t),t=c.next,d=c.next;else if((t=c)===d){r?1===r?Ydt(t=Xdt(Gdt(t),e,n),e,n,o,i,a,2):2===r&&Kdt(t,e,n,o,i,a):Ydt(Gdt(t),e,n,o,i,a,1);break}}function qdt(t){const e=t.prev,n=t,o=t.next;if(ipt(e,n,o)>=0)return!1;let i=t.next.next;for(;i!==t.prev;){if(npt(e.x,e.y,n.x,n.y,o.x,o.y,i.x,i.y)&&ipt(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function Zdt(t,e,n,o){const i=t.prev,a=t,r=t.next;if(ipt(i,a,r)>=0)return!1;const s=i.x>a.x?i.x>r.x?i.x:r.x:a.x>r.x?a.x:r.x,l=i.y>a.y?i.y>r.y?i.y:r.y:a.y>r.y?a.y:r.y,c=tpt(i.x<a.x?i.x<r.x?i.x:r.x:a.x<r.x?a.x:r.x,i.y<a.y?i.y<r.y?i.y:r.y:a.y<r.y?a.y:r.y,e,n,o),d=tpt(s,l,e,n,o);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=c&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&npt(i.x,i.y,a.x,a.y,r.x,r.y,p.x,p.y)&&ipt(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&npt(i.x,i.y,a.x,a.y,r.x,r.y,m.x,m.y)&&ipt(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=c;){if(p!==t.prev&&p!==t.next&&npt(i.x,i.y,a.x,a.y,r.x,r.y,p.x,p.y)&&ipt(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&npt(i.x,i.y,a.x,a.y,r.x,r.y,m.x,m.y)&&ipt(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function Xdt(t,e,n){let o=t;do{const i=o.prev,a=o.next.next;!apt(i,a)&&rpt(i,o,o.next,a)&&cpt(i,a)&&cpt(a,i)&&(e.push(i.i/n),e.push(o.i/n),e.push(a.i/n),mpt(o),mpt(o.next),o=t=a),o=o.next}while(o!==t);return Gdt(o)}function Kdt(t,e,n,o,i,a){let r=t;do{let t=r.next.next;for(;t!==r.prev;){if(r.i!==t.i&&opt(r,t)){let s=dpt(r,t);return r=Gdt(r,r.next),s=Gdt(s,s.next),Ydt(r,e,n,o,i,a),void Ydt(s,e,n,o,i,a)}t=t.next}r=r.next}while(r!==t)}function Jdt(t,e){return t.x-e.x}function Qdt(t,e){if(e=(function n(t,e){let n=e;const o=t.x,i=t.y;let a,r=-1/0;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){const t=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=o&&t>r){if(r=t,t===o){if(i===n.y)return n;if(i===n.next.y)return n.next}a=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!a)return null;if(o===r)return a;const s=a,l=a.x,c=a.y;let d,p=1/0;n=a;do{o>=n.x&&n.x>=l&&o!==n.x&&npt(i<c?o:r,i,l,c,i<c?r:o,i,n.x,n.y)&&(d=Math.abs(i-n.y)/(o-n.x),cpt(n,t)&&(d<p||d===p&&(n.x>a.x||n.x===a.x&&$dt(a,n)))&&(a=n,p=d)),n=n.next}while(n!==s);return a})(t,e)){const n=dpt(e,t);Gdt(e,e.next),Gdt(n,n.next)}}function $dt(t,e){return ipt(t.prev,t,e.prev)<0&&ipt(e.next,t,t.next)<0}function tpt(t,e,n,o,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-o)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function ept(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function npt(t,e,n,o,i,a,r,s){return(i-r)*(e-s)-(t-r)*(a-s)>=0&&(t-r)*(o-s)-(n-r)*(e-s)>=0&&(n-r)*(a-s)-(i-r)*(o-s)>=0}function opt(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!(function n(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&rpt(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1})(t,e)&&(cpt(t,e)&&cpt(e,t)&&(function o(t,e){let n=t,o=!1;const i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{n.y>a!=n.next.y>a&&n.next.y!==n.y&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(o=!o),n=n.next}while(n!==t);return o})(t,e)&&(ipt(t.prev,t,e.prev)||ipt(t,e.prev,e))||apt(t,e)&&ipt(t.prev,t,t.next)>0&&ipt(e.prev,e,e.next)>0)}function ipt(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function apt(t,e){return t.x===e.x&&t.y===e.y}function rpt(t,e,n,o){const i=lpt(ipt(t,e,n)),a=lpt(ipt(t,e,o)),r=lpt(ipt(n,o,t)),s=lpt(ipt(n,o,e));return i!==a&&r!==s||!(0!==i||!spt(t,n,e))||!(0!==a||!spt(t,o,e))||!(0!==r||!spt(n,t,o))||!(0!==s||!spt(n,e,o))}function spt(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function lpt(t){return t>0?1:t<0?-1:0}function cpt(t,e){return ipt(t.prev,t,t.next)<0?ipt(t,e,t.next)>=0&&ipt(t,t.prev,e)>=0:ipt(t,e,t.prev)<0||ipt(t,t.next,e)<0}function dpt(t,e){const n=new upt(t.i,t.x,t.y),o=new upt(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,o.next=n,n.prev=o,a.next=o,o.prev=a,o}function ppt(t,e,n,o){const i=new upt(t,e,n);return o?(i.next=o.next,i.prev=o,o.next.prev=i,o.next=i):(i.prev=i,i.next=i),i}function mpt(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function upt(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}new $it,new $it,new $it,new urt;const fpt={area:function(t){const e=t.length;let n=0;for(let o=e-1,i=0;i<e;o=i++)n+=t[o].x*t[i].y-t[i].x*t[o].y;return.5*n},isClockWise:function(t){return fpt.area(t)<0},triangulateShape:function(t,e){const n=[],o=[],i=[];gpt(t),hpt(n,t);let a=t.length;e.forEach(gpt);for(let t=0;t<e.length;t++)o.push(a),a+=e[t].length,hpt(n,e[t]);const r=(function(t,e,n){n=n||2;const o=e&&e.length,i=o?e[0]*n:t.length;let a=Wdt(t,0,i,n,!0);const r=[];if(!a||a.next===a.prev)return r;let s,l,c,d,p,m,u;if(o&&(a=(function f(t,e,n,o){const i=[];let a,r,s,l,c;for(a=0,r=e.length;a<r;a++)s=e[a]*o,l=a<r-1?e[a+1]*o:t.length,c=Wdt(t,s,l,o,!1),c===c.next&&(c.steiner=!0),i.push(ept(c));for(i.sort(Jdt),a=0;a<i.length;a++)Qdt(i[a],n),n=Gdt(n,n.next);return n})(t,e,a,n)),t.length>80*n){s=c=t[0],l=d=t[1];for(let e=n;e<i;e+=n)p=t[e],m=t[e+1],p<s&&(s=p),m<l&&(l=m),p>c&&(c=p),m>d&&(d=m);u=Math.max(c-s,d-l),u=0!==u?1/u:0}return Ydt(a,r,n,s,l,u),r})(n,o);for(let t=0;t<r.length;t+=3)i.push(r.slice(t,t+3));return i}};function gpt(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function hpt(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class bpt extends Zrt{constructor(t,e){super(),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,o=[],i=[];for(let e=0,n=t.length;e<n;e++)a(t[e]);function a(t){const a=[],r=void 0!==e.curveSegments?e.curveSegments:12,s=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:100,c=void 0===e.bevelEnabled||e.bevelEnabled,d=void 0!==e.bevelThickness?e.bevelThickness:6,p=void 0!==e.bevelSize?e.bevelSize:d-2,m=void 0!==e.bevelOffset?e.bevelOffset:0,u=void 0!==e.bevelSegments?e.bevelSegments:3;const f=e.extrudePath,g=void 0!==e.UVGenerator?e.UVGenerator:ypt;void 0!==e.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),l=e.amount);let h,b,y,_,C,M=!1;f&&(h=f.getSpacedPoints(s),M=!0,c=!1,b=f.computeFrenetFrames(s,!1),y=new $it,_=new $it,C=new $it),c||(u=0,d=0,p=0,m=0);const v=t.extractPoints(r);let x=v.shape;const O=v.holes;if(!fpt.isClockWise(x)){x=x.reverse();for(let t=0,e=O.length;t<e;t++){const e=O[t];fpt.isClockWise(e)&&(O[t]=e.reverse())}}const P=fpt.triangulateShape(x,O),w=x;for(let t=0,e=O.length;t<e;t++)x=x.concat(O[t]);function k(t,e,n){return e||console.error("THREE.ExtrudeGeometry: vec does not exist"),e.clone().multiplyScalar(n).add(t)}const S=x.length,D=P.length;function E(t,e,n){let o,i,a;const r=t.x-e.x,s=t.y-e.y,l=n.x-t.x,c=n.y-t.y,d=r*r+s*s;if(Math.abs(r*c-s*l)>Number.EPSILON){const p=Math.sqrt(d),m=Math.sqrt(l*l+c*c),u=e.x-s/p,f=e.y+r/p,g=((n.x-c/m-u)*c-(n.y+l/m-f)*l)/(r*c-s*l);o=u+r*g-t.x,i=f+s*g-t.y;const h=o*o+i*i;if(h<=2)return new Uit(o,i);a=Math.sqrt(h/2)}else{let t=!1;r>Number.EPSILON?l>Number.EPSILON&&(t=!0):r<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(s)===Math.sign(c)&&(t=!0),t?(o=-s,i=r,a=Math.sqrt(d)):(o=r,i=s,a=Math.sqrt(d/2))}return new Uit(o/a,i/a)}const A=[];for(let t=0,e=w.length,n=e-1,o=t+1;t<e;t++,n++,o++)n===e&&(n=0),o===e&&(o=0),A[t]=E(w[t],w[n],w[o]);const R=[];let T,N=A.concat();for(let t=0,e=O.length;t<e;t++){const e=O[t];T=[];for(let t=0,n=e.length,o=n-1,i=t+1;t<n;t++,o++,i++)o===n&&(o=0),i===n&&(i=0),T[t]=E(e[t],e[o],e[i]);R.push(T),N=N.concat(T)}for(let t=0;t<u;t++){const e=t/u,n=d*Math.cos(e*Math.PI/2),o=p*Math.sin(e*Math.PI/2)+m;for(let t=0,e=w.length;t<e;t++){const e=k(w[t],A[t],o);H(e.x,e.y,-n)}for(let t=0,e=O.length;t<e;t++){const e=O[t];T=R[t];for(let t=0,i=e.length;t<i;t++){const i=k(e[t],T[t],o);H(i.x,i.y,-n)}}}const I=p+m;for(let t=0;t<S;t++){const e=c?k(x[t],N[t],I):x[t];M?(_.copy(b.normals[0]).multiplyScalar(e.x),y.copy(b.binormals[0]).multiplyScalar(e.y),C.copy(h[0]).add(_).add(y),H(C.x,C.y,C.z)):H(e.x,e.y,0)}for(let t=1;t<=s;t++)for(let e=0;e<S;e++){const n=c?k(x[e],N[e],I):x[e];M?(_.copy(b.normals[t]).multiplyScalar(n.x),y.copy(b.binormals[t]).multiplyScalar(n.y),C.copy(h[t]).add(_).add(y),H(C.x,C.y,C.z)):H(n.x,n.y,l/s*t)}for(let t=u-1;t>=0;t--){const e=t/u,n=d*Math.cos(e*Math.PI/2),o=p*Math.sin(e*Math.PI/2)+m;for(let t=0,e=w.length;t<e;t++){const e=k(w[t],A[t],o);H(e.x,e.y,l+n)}for(let t=0,e=O.length;t<e;t++){const e=O[t];T=R[t];for(let t=0,i=e.length;t<i;t++){const i=k(e[t],T[t],o);M?H(i.x,i.y+h[s-1].y,h[s-1].x+n):H(i.x,i.y,l+n)}}}function z(t,e){let n=t.length;for(;--n>=0;){const o=n;let i=n-1;i<0&&(i=t.length-1);for(let t=0,n=s+2*u;t<n;t++){const n=S*t,a=S*(t+1);L(e+o+n,e+i+n,e+i+a,e+o+a)}}}function H(t,e,n){a.push(t),a.push(e),a.push(n)}function F(t,e,i){B(t),B(e),B(i);const a=o.length/3,r=g.generateTopUV(n,o,a-3,a-2,a-1);V(r[0]),V(r[1]),V(r[2])}function L(t,e,i,a){B(t),B(e),B(a),B(e),B(i),B(a);const r=o.length/3,s=g.generateSideWallUV(n,o,r-6,r-3,r-2,r-1);V(s[0]),V(s[1]),V(s[3]),V(s[1]),V(s[2]),V(s[3])}function B(t){o.push(a[3*t+0]),o.push(a[3*t+1]),o.push(a[3*t+2])}function V(t){i.push(t.x),i.push(t.y)}!(function j(){const t=o.length/3;if(c){let t=0,e=S*t;for(let t=0;t<D;t++){const n=P[t];F(n[2]+e,n[1]+e,n[0]+e)}t=s+2*u,e=S*t;for(let t=0;t<D;t++){const n=P[t];F(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<D;t++){const e=P[t];F(e[2],e[1],e[0])}for(let t=0;t<D;t++){const e=P[t];F(e[0]+S*s,e[1]+S*s,e[2]+S*s)}}n.addGroup(t,o.length/3-t,0)})(),(function U(){const t=o.length/3;let e=0;z(w,e),e+=w.length;for(let t=0,n=O.length;t<n;t++){const n=O[t];z(n,e),e+=n.length}n.addGroup(t,o.length/3-t,1)})()}this.setAttribute("position",new zrt(o,3)),this.setAttribute("uv",new zrt(i,2)),this.computeVertexNormals()}toJSON(){const t=Zrt.prototype.toJSON.call(this);return(function e(t,n,o){if(o.shapes=[],Array.isArray(t))for(let e=0,n=t.length;e<n;e++)o.shapes.push(t[e].uuid);else o.shapes.push(t.uuid);return void 0!==n.extrudePath&&(o.options.extrudePath=n.extrudePath.toJSON()),o})(this.parameters.shapes,this.parameters.options,t)}}const ypt={generateTopUV:function(t,e,n,o,i){const a=e[3*o],r=e[3*o+1],s=e[3*i],l=e[3*i+1];return[new Uit(e[3*n],e[3*n+1]),new Uit(a,r),new Uit(s,l)]},generateSideWallUV:function(t,e,n,o,i,a){const r=e[3*n],s=e[3*n+1],l=e[3*n+2],c=e[3*o],d=e[3*o+1],p=e[3*o+2],m=e[3*i],u=e[3*i+1],f=e[3*i+2],g=e[3*a],h=e[3*a+1],b=e[3*a+2];return Math.abs(s-d)<.01?[new Uit(r,1-l),new Uit(c,1-p),new Uit(m,1-f),new Uit(g,1-b)]:[new Uit(s,1-l),new Uit(d,1-p),new Uit(u,1-f),new Uit(h,1-b)]}};function _pt(t,e,n){Zrt.call(this),this.type="ParametricGeometry",this.parameters={func:t,slices:e,stacks:n};const o=[],i=[],a=[],r=[],s=1e-5,l=new $it,c=new $it,d=new $it,p=new $it,m=new $it;t.length<3&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");const u=e+1;for(let o=0;o<=n;o++){const u=o/n;for(let n=0;n<=e;n++){const o=n/e;t(o,u,c),i.push(c.x,c.y,c.z),o-s>=0?(t(o-s,u,d),p.subVectors(c,d)):(t(o+s,u,d),p.subVectors(d,c)),u-s>=0?(t(o,u-s,d),m.subVectors(c,d)):(t(o,u+s,d),m.subVectors(d,c)),l.crossVectors(p,m).normalize(),a.push(l.x,l.y,l.z),r.push(o,u)}}for(let t=0;t<n;t++)for(let n=0;n<e;n++){const e=t*u+n+1,i=(t+1)*u+n+1,a=(t+1)*u+n;o.push(t*u+n,e,a),o.push(e,i,a)}this.setIndex(o),this.setAttribute("position",new zrt(i,3)),this.setAttribute("normal",new zrt(a,3)),this.setAttribute("uv",new zrt(r,2))}(_pt.prototype=Object.create(Zrt.prototype)).constructor=_pt;class Cpt extends Zrt{constructor(t,e=12){super(),this.type="ShapeGeometry",this.parameters={shapes:t,curveSegments:e};const n=[],o=[],i=[],a=[];let r=0,s=0;if(!1===Array.isArray(t))l(t);else for(let e=0;e<t.length;e++)l(t[e]),this.addGroup(r,s,e),r+=s,s=0;function l(t){const r=o.length/3,l=t.extractPoints(e);let c=l.shape;const d=l.holes;!1===fpt.isClockWise(c)&&(c=c.reverse());for(let t=0,e=d.length;t<e;t++){const e=d[t];!0===fpt.isClockWise(e)&&(d[t]=e.reverse())}const p=fpt.triangulateShape(c,d);for(let t=0,e=d.length;t<e;t++)c=c.concat(d[t]);for(let t=0,e=c.length;t<e;t++){const e=c[t];o.push(e.x,e.y,0),i.push(0,0,1),a.push(e.x,e.y)}for(let t=0,e=p.length;t<e;t++){const e=p[t];n.push(e[0]+r,e[1]+r,e[2]+r),s+=3}}this.setIndex(n),this.setAttribute("position",new zrt(o,3)),this.setAttribute("normal",new zrt(i,3)),this.setAttribute("uv",new zrt(a,2))}toJSON(){const t=Zrt.prototype.toJSON.call(this);return(function e(t,n){if(n.shapes=[],Array.isArray(t))for(let e=0,o=t.length;e<o;e++)n.shapes.push(t[e].uuid);else n.shapes.push(t.uuid);return n})(this.parameters.shapes,t)}}function Mpt(t){xrt.call(this),this.type="ShadowMaterial",this.color=new Crt(0),this.transparent=!0,this.setValues(t)}function vpt(t){yst.call(this,t),this.type="RawShaderMaterial"}function xpt(t){xrt.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Crt(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Crt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Uit(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.vertexTangents=!1,this.setValues(t)}function Opt(t){xpt.call(this),this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.clearcoat=0,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Uit(1,1),this.clearcoatNormalMap=null,this.reflectivity=.5,Object.defineProperty(this,"ior",{get:function(){return(1+.4*this.reflectivity)/(1-.4*this.reflectivity)},set:function(t){this.reflectivity=jit.clamp(2.5*(t-1)/(t+1),0,1)}}),this.sheen=null,this.transmission=0,this.transmissionMap=null,this.setValues(t)}function Ppt(t){xrt.call(this),this.type="MeshPhongMaterial",this.color=new Crt(16777215),this.specular=new Crt(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Crt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Uit(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function wpt(t){xrt.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Crt(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Crt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Uit(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function kpt(t){xrt.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Uit(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Spt(t){xrt.call(this),this.type="MeshLambertMaterial",this.color=new Crt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Crt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Dpt(t){xrt.call(this),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Crt(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Uit(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Ept(t){Mdt.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}(Mpt.prototype=Object.create(xrt.prototype)).constructor=Mpt,Mpt.prototype.isShadowMaterial=!0,Mpt.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.color.copy(t.color),this},(vpt.prototype=Object.create(yst.prototype)).constructor=vpt,vpt.prototype.isRawShaderMaterial=!0,(xpt.prototype=Object.create(xrt.prototype)).constructor=xpt,xpt.prototype.isMeshStandardMaterial=!0,xpt.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.vertexTangents=t.vertexTangents,this},(Opt.prototype=Object.create(xpt.prototype)).constructor=Opt,Opt.prototype.isMeshPhysicalMaterial=!0,Opt.prototype.copy=function(t){return xpt.prototype.copy.call(this,t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.reflectivity=t.reflectivity,this.sheen=t.sheen?(this.sheen||new Crt).copy(t.sheen):null,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this},(Ppt.prototype=Object.create(xrt.prototype)).constructor=Ppt,Ppt.prototype.isMeshPhongMaterial=!0,Ppt.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(wpt.prototype=Object.create(xrt.prototype)).constructor=wpt,wpt.prototype.isMeshToonMaterial=!0,wpt.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(kpt.prototype=Object.create(xrt.prototype)).constructor=kpt,kpt.prototype.isMeshNormalMaterial=!0,kpt.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(Spt.prototype=Object.create(xrt.prototype)).constructor=Spt,Spt.prototype.isMeshLambertMaterial=!0,Spt.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(Dpt.prototype=Object.create(xrt.prototype)).constructor=Dpt,Dpt.prototype.isMeshMatcapMaterial=!0,Dpt.prototype.copy=function(t){return xrt.prototype.copy.call(this,t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(Ept.prototype=Object.create(Mdt.prototype)).constructor=Ept,Ept.prototype.isLineDashedMaterial=!0,Ept.prototype.copy=function(t){return Mdt.prototype.copy.call(this,t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this};var Apt=Object.freeze({__proto__:null,ShadowMaterial:Mpt,SpriteMaterial:Vct,RawShaderMaterial:vpt,ShaderMaterial:yst,PointsMaterial:Rdt,MeshPhysicalMaterial:Opt,MeshStandardMaterial:xpt,MeshPhongMaterial:Ppt,MeshToonMaterial:wpt,MeshNormalMaterial:kpt,MeshLambertMaterial:Spt,MeshDepthMaterial:Oct,MeshDistanceMaterial:Pct,MeshBasicMaterial:Ort,MeshMatcapMaterial:Dpt,LineDashedMaterial:Ept,LineBasicMaterial:Mdt,Material:xrt});const Rpt={arraySlice:function(t,e,n){return Rpt.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function o(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const o=t.length,i=new t.constructor(o);for(let a=0,r=0;r!==o;++a){const o=n[a]*e;for(let n=0;n!==e;++n)i[r++]=t[o+n]}return i},flattenJSON:function(t,e,n,o){let i=1,a=t[0];for(;void 0!==a&&void 0===a[o];)a=t[i++];if(void 0===a)return;let r=a[o];if(void 0!==r)if(Array.isArray(r))do{r=a[o],void 0!==r&&(e.push(a.time),n.push.apply(n,r)),a=t[i++]}while(void 0!==a);else if(void 0!==r.toArray)do{r=a[o],void 0!==r&&(e.push(a.time),r.toArray(n,n.length)),a=t[i++]}while(void 0!==a);else do{r=a[o],void 0!==r&&(e.push(a.time),n.push(r)),a=t[i++]}while(void 0!==a)},subclip:function(t,e,n,o,i=30){const a=t.clone();a.name=e;const r=[];for(let t=0;t<a.tracks.length;++t){const e=a.tracks[t],s=e.getValueSize(),l=[],c=[];for(let t=0;t<e.times.length;++t){const a=e.times[t]*i;if(!(a<n||a>=o)){l.push(e.times[t]);for(let n=0;n<s;++n)c.push(e.values[t*s+n])}}0!==l.length&&(e.times=Rpt.convertArray(l,e.times.constructor),e.values=Rpt.convertArray(c,e.values.constructor),r.push(e))}a.tracks=r;let s=1/0;for(let t=0;t<a.tracks.length;++t)s>a.tracks[t].times[0]&&(s=a.tracks[t].times[0]);for(let t=0;t<a.tracks.length;++t)a.tracks[t].shift(-1*s);return a.resetDuration(),a},makeClipAdditive:function(t,e=0,n=t,o=30){o<=0&&(o=30);const i=n.tracks.length,a=e/o;for(let e=0;e<i;++e){const o=n.tracks[e],i=o.ValueTypeName;if("bool"===i||"string"===i)continue;const r=t.tracks.find((function(t){return t.name===o.name&&t.ValueTypeName===i}));if(void 0===r)continue;let s=0;const l=o.getValueSize();o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(s=l/3);let c=0;const d=r.getValueSize();r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=d/3);const p=o.times.length-1;let m;if(a<=o.times[0])m=Rpt.arraySlice(o.values,s,l-s);else if(a>=o.times[p]){const t=p*l+s;m=Rpt.arraySlice(o.values,t,t+l-s)}else{const t=o.createInterpolant(),e=s,n=l-s;t.evaluate(a),m=Rpt.arraySlice(t.resultBuffer,e,n)}"quaternion"===i&&(new Qit).fromArray(m).normalize().conjugate().toArray(m);const u=r.times.length;for(let t=0;t<u;++t){const e=t*d+c;if("quaternion"===i)Qit.multiplyQuaternionsFlat(r.values,e,m,0,r.values,e);else{const t=d-2*c;for(let n=0;n<t;++n)r.values[e+n]-=m[n]}}}return t.blendMode=2501,t}};function Tpt(t,e,n,o){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==o?o:new e.constructor(n),this.sampleValues=e,this.valueSize=n}function Npt(t,e,n,o){Tpt.call(this,t,e,n,o),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0}function Ipt(t,e,n,o){Tpt.call(this,t,e,n,o)}function zpt(t,e,n,o){Tpt.call(this,t,e,n,o)}function Hpt(t,e,n,o){if(void 0===t)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===e||0===e.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=Rpt.convertArray(e,this.TimeBufferType),this.values=Rpt.convertArray(n,this.ValueBufferType),this.setInterpolation(o||this.DefaultInterpolation)}function Fpt(t,e,n){Hpt.call(this,t,e,n)}function Lpt(t,e,n,o){Hpt.call(this,t,e,n,o)}function Bpt(t,e,n,o){Hpt.call(this,t,e,n,o)}function Vpt(t,e,n,o){Tpt.call(this,t,e,n,o)}function jpt(t,e,n,o){Hpt.call(this,t,e,n,o)}function Upt(t,e,n,o){Hpt.call(this,t,e,n,o)}function Wpt(t,e,n,o){Hpt.call(this,t,e,n,o)}function Gpt(t,e=-1,n,o=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=o,this.uuid=jit.generateUUID(),this.duration<0&&this.resetDuration()}function Ypt(t){if(void 0===t.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const e=(function n(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return Bpt;case"vector":case"vector2":case"vector3":case"vector4":return Wpt;case"color":return Lpt;case"quaternion":return jpt;case"bool":case"boolean":return Fpt;case"string":return Upt}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+t)})(t.type);if(void 0===t.times){const e=[],n=[];Rpt.flattenJSON(t.keys,e,n,"value"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}Object.assign(Tpt.prototype,{evaluate:function(t){const e=this.parameterPositions;let n=this._cachedIndex,o=e[n],i=e[n-1];t:{e:{let a;n:{o:if(!(t<o)){for(let a=n+2;;){if(void 0===o){if(t<i)break o;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,i)}if(n===a)break;if(i=o,o=e[++n],t<o)break e}a=e.length;break n}if(t>=i)break t;{const r=e[1];t<r&&(n=2,i=r);for(let a=n-2;;){if(void 0===i)return this._cachedIndex=0,this.beforeStart_(0,t,o);if(n===a)break;if(o=i,i=e[--n-1],t>=i)break e}a=n,n=0}}for(;n<a;){const o=n+a>>>1;t<e[o]?a=o:n=o+1}if(o=e[n],i=e[n-1],void 0===i)return this._cachedIndex=0,this.beforeStart_(0,t,o);if(void 0===o)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,i,t)}this._cachedIndex=n,this.intervalChanged_(n,i,o)}return this.interpolate_(n,i,t,o)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(t){const e=this.resultBuffer,n=this.sampleValues,o=this.valueSize,i=t*o;for(let t=0;t!==o;++t)e[t]=n[i+t];return e},interpolate_:function(){throw new Error("call to abstract method")},intervalChanged_:function(){}}),Object.assign(Tpt.prototype,{beforeStart_:Tpt.prototype.copySampleValue_,afterEnd_:Tpt.prototype.copySampleValue_}),Npt.prototype=Object.assign(Object.create(Tpt.prototype),{constructor:Npt,DefaultSettings_:{endingStart:Ait,endingEnd:Ait},intervalChanged_:function(t,e,n){const o=this.parameterPositions;let i=t-2,a=t+1,r=o[i],s=o[a];if(void 0===r)switch(this.getSettings_().endingStart){case Rit:i=t,r=2*e-n;break;case Tit:i=o.length-2,r=e+o[i]-o[i+1];break;default:i=t,r=n}if(void 0===s)switch(this.getSettings_().endingEnd){case Rit:a=t,s=2*n-e;break;case Tit:a=1,s=n+o[1]-o[0];break;default:a=t-1,s=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-r),this._weightNext=l/(s-n),this._offsetPrev=i*c,this._offsetNext=a*c},interpolate_:function(t,e,n,o){const i=this.resultBuffer,a=this.sampleValues,r=this.valueSize,s=t*r,l=s-r,c=this._offsetPrev,d=this._offsetNext,p=this._weightPrev,m=this._weightNext,u=(n-e)/(o-e),f=u*u,g=f*u,h=-p*g+2*p*f-p*u,b=(1+p)*g+(-1.5-2*p)*f+(-.5+p)*u+1,y=(-1-m)*g+(1.5+m)*f+.5*u,_=m*g-m*f;for(let t=0;t!==r;++t)i[t]=h*a[c+t]+b*a[l+t]+y*a[s+t]+_*a[d+t];return i}}),Ipt.prototype=Object.assign(Object.create(Tpt.prototype),{constructor:Ipt,interpolate_:function(t,e,n,o){const i=this.resultBuffer,a=this.sampleValues,r=this.valueSize,s=t*r,l=s-r,c=(n-e)/(o-e),d=1-c;for(let t=0;t!==r;++t)i[t]=a[l+t]*d+a[s+t]*c;return i}}),zpt.prototype=Object.assign(Object.create(Tpt.prototype),{constructor:zpt,interpolate_:function(t){return this.copySampleValue_(t-1)}}),Object.assign(Hpt,{toJSON:function(t){const e=t.constructor;let n;if(void 0!==e.toJSON)n=e.toJSON(t);else{n={name:t.name,times:Rpt.convertArray(t.times,Array),values:Rpt.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}}),Object.assign(Hpt.prototype,{constructor:Hpt,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:Dit,InterpolantFactoryMethodDiscrete:function(t){return new zpt(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodLinear:function(t){return new Ipt(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:function(t){return new Npt(this.times,this.values,this.getValueSize(),t)},setInterpolation:function(t){let e;switch(t){case Sit:e=this.InterpolantFactoryMethodDiscrete;break;case Dit:e=this.InterpolantFactoryMethodLinear;break;case Eit:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",e),this}return this.createInterpolant=e,this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Sit;case this.InterpolantFactoryMethodLinear:return Dit;case this.InterpolantFactoryMethodSmooth:return Eit}},getValueSize:function(){return this.values.length/this.times.length},shift:function(t){if(0!==t){const e=this.times;for(let n=0,o=e.length;n!==o;++n)e[n]+=t}return this},scale:function(t){if(1!==t){const e=this.times;for(let n=0,o=e.length;n!==o;++n)e[n]*=t}return this},trim:function(t,e){const n=this.times,o=n.length;let i=0,a=o-1;for(;i!==o&&n[i]<t;)++i;for(;-1!==a&&n[a]>e;)--a;if(++a,0!==i||a!==o){i>=a&&(a=Math.max(a,1),i=a-1);const t=this.getValueSize();this.times=Rpt.arraySlice(n,i,a),this.values=Rpt.arraySlice(this.values,i*t,a*t)}return this},validate:function(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,o=this.values,i=n.length;0===i&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let a=null;for(let e=0;e!==i;e++){const o=n[e];if("number"==typeof o&&isNaN(o)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,o),t=!1;break}if(null!==a&&a>o){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,o,a),t=!1;break}a=o}if(void 0!==o&&Rpt.isTypedArray(o))for(let e=0,n=o.length;e!==n;++e){const n=o[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t},optimize:function(){const t=Rpt.arraySlice(this.times),e=Rpt.arraySlice(this.values),n=this.getValueSize(),o=this.getInterpolation()===Eit,i=t.length-1;let a=1;for(let r=1;r<i;++r){let i=!1;const s=t[r];if(s!==t[r+1]&&(1!==r||s!==t[0]))if(o)i=!0;else{const t=r*n,o=t-n,a=t+n;for(let r=0;r!==n;++r){const n=e[t+r];if(n!==e[o+r]||n!==e[a+r]){i=!0;break}}}if(i){if(r!==a){t[a]=t[r];const o=r*n,i=a*n;for(let t=0;t!==n;++t)e[i+t]=e[o+t]}++a}}if(i>0){t[a]=t[i];for(let t=i*n,o=a*n,r=0;r!==n;++r)e[o+r]=e[t+r];++a}return a!==t.length?(this.times=Rpt.arraySlice(t,0,a),this.values=Rpt.arraySlice(e,0,a*n)):(this.times=t,this.values=e),this},clone:function(){const t=Rpt.arraySlice(this.times,0),e=Rpt.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}),Fpt.prototype=Object.assign(Object.create(Hpt.prototype),{constructor:Fpt,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:Sit,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Lpt.prototype=Object.assign(Object.create(Hpt.prototype),{constructor:Lpt,ValueTypeName:"color"}),Bpt.prototype=Object.assign(Object.create(Hpt.prototype),{constructor:Bpt,ValueTypeName:"number"}),Vpt.prototype=Object.assign(Object.create(Tpt.prototype),{constructor:Vpt,interpolate_:function(t,e,n,o){const i=this.resultBuffer,a=this.sampleValues,r=this.valueSize,s=(n-e)/(o-e);let l=t*r;for(let t=l+r;l!==t;l+=4)Qit.slerpFlat(i,0,a,l-r,a,l,s);return i}}),jpt.prototype=Object.assign(Object.create(Hpt.prototype),{constructor:jpt,ValueTypeName:"quaternion",DefaultInterpolation:Dit,InterpolantFactoryMethodLinear:function(t){return new Vpt(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:void 0}),Upt.prototype=Object.assign(Object.create(Hpt.prototype),{constructor:Upt,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:Sit,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Wpt.prototype=Object.assign(Object.create(Hpt.prototype),{constructor:Wpt,ValueTypeName:"vector"}),Object.assign(Gpt,{parse:function(t){const e=[],n=t.tracks,o=1/(t.fps||1);for(let t=0,i=n.length;t!==i;++t)e.push(Ypt(n[t]).scale(o));const i=new Gpt(t.name,t.duration,e,t.blendMode);return i.uuid=t.uuid,i},toJSON:function(t){const e=[],n=t.tracks,o={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,o=n.length;t!==o;++t)e.push(Hpt.toJSON(n[t]));return o},CreateFromMorphTargetSequence:function(t,e,n,o){const i=e.length,a=[];for(let t=0;t<i;t++){let r=[],s=[];r.push((t+i-1)%i,t,(t+1)%i),s.push(0,1,0);const l=Rpt.getKeyframeOrder(r);r=Rpt.sortedArray(r,1,l),s=Rpt.sortedArray(s,1,l),o||0!==r[0]||(r.push(i),s.push(s[0])),a.push(new Bpt(".morphTargetInfluences["+e[t].name+"]",r,s).scale(1/n))}return new Gpt(t,-1,a)},findByName:function(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null},CreateClipsFromMorphTargetSequences:function(t,e,n){const o={},i=/^([\w-]*?)([\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e],a=n.name.match(i);if(a&&a.length>1){const t=a[1];let e=o[t];e||(o[t]=e=[]),e.push(n)}}const a=[];for(const t in o)a.push(Gpt.CreateFromMorphTargetSequence(t,o[t],e,n));return a},parseAnimation:function(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,o,i){if(0!==n.length){const a=[],r=[];Rpt.flattenJSON(n,a,r,o),0!==a.length&&i.push(new t(e,a,r))}},o=[],i=t.name||"default",a=t.fps||30,r=t.blendMode;let s=t.length||-1;const l=t.hierarchy||[];for(let t=0;t<l.length;t++){const i=l[t].keys;if(i&&0!==i.length)if(i[0].morphTargets){const t={};let e;for(e=0;e<i.length;e++)if(i[e].morphTargets)for(let n=0;n<i[e].morphTargets.length;n++)t[i[e].morphTargets[n]]=-1;for(const n in t){const t=[],a=[];for(let o=0;o!==i[e].morphTargets.length;++o){const o=i[e];t.push(o.time),a.push(o.morphTarget===n?1:0)}o.push(new Bpt(".morphTargetInfluence["+n+"]",t,a))}s=t.length*(a||1)}else{const a=".bones["+e[t].name+"]";n(Wpt,a+".position",i,"pos",o),n(jpt,a+".quaternion",i,"rot",o),n(Wpt,a+".scale",i,"scl",o)}}return 0===o.length?null:new Gpt(i,s,o,r)}}),Object.assign(Gpt.prototype,{resetDuration:function(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this},trim:function(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this},validate:function(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t},optimize:function(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this},clone:function(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new Gpt(this.name,this.duration,t,this.blendMode)},toJSON:function(){return Gpt.toJSON(this)}});const qpt={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}},Zpt=new(function Xpt(t,e,n){const o=this;let i,a=!1,r=0,s=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){s++,!1===a&&void 0!==o.onStart&&o.onStart(t,r,s),a=!0},this.itemEnd=function(t){r++,void 0!==o.onProgress&&o.onProgress(t,r,s),r===s&&(a=!1,void 0!==o.onLoad&&o.onLoad())},this.itemError=function(t){void 0!==o.onError&&o.onError(t)},this.resolveURL=function(t){return i?i(t):t},this.setURLModifier=function(t){return i=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],o=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return o}return null}});function Kpt(t){this.manager=void 0!==t?t:Zpt,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}Object.assign(Kpt.prototype,{load:function(){},loadAsync:function(t,e){const n=this;return new Promise((function(o,i){n.load(t,o,e,i)}))},parse:function(){},setCrossOrigin:function(t){return this.crossOrigin=t,this},setWithCredentials:function(t){return this.withCredentials=t,this},setPath:function(t){return this.path=t,this},setResourcePath:function(t){return this.resourcePath=t,this},setRequestHeader:function(t){return this.requestHeader=t,this}});const Jpt={};function Qpt(t){Kpt.call(this,t)}function $pt(t){Kpt.call(this,t)}function tmt(t){Kpt.call(this,t)}function emt(t){Kpt.call(this,t)}function nmt(t){Kpt.call(this,t)}function omt(t){Kpt.call(this,t)}function imt(t){Kpt.call(this,t)}function amt(){this.type="Curve",this.arcLengthDivisions=200}function rmt(t,e,n,o,i,a,r,s){amt.call(this),this.type="EllipseCurve",this.aX=t||0,this.aY=e||0,this.xRadius=n||1,this.yRadius=o||1,this.aStartAngle=i||0,this.aEndAngle=a||2*Math.PI,this.aClockwise=r||!1,this.aRotation=s||0}function smt(t,e,n,o,i,a){rmt.call(this,t,e,n,n,o,i,a),this.type="ArcCurve"}function lmt(){let t=0,e=0,n=0,o=0;function i(i,a,r,s){t=i,e=r,n=-3*i+3*a-2*r-s,o=2*i-2*a+r+s}return{initCatmullRom:function(t,e,n,o,a){i(e,n,a*(n-t),a*(o-e))},initNonuniformCatmullRom:function(t,e,n,o,a,r,s){let l=(e-t)/a-(n-t)/(a+r)+(n-e)/r,c=(n-e)/r-(o-e)/(r+s)+(o-n)/s;l*=r,c*=r,i(e,n,l,c)},calc:function(i){const a=i*i;return t+e*i+n*a+o*(a*i)}}}Qpt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:Qpt,load:function(t,e,n,o){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const i=this,a=qpt.get(t);if(void 0!==a)return i.manager.itemStart(t),setTimeout((function(){e&&e(a),i.manager.itemEnd(t)}),0),a;if(void 0!==Jpt[t])return void Jpt[t].push({onLoad:e,onProgress:n,onError:o});const r=t.match(/^data:(.*?)(;base64)?,(.*)$/);let s;if(r){const n=r[1],a=!!r[2];let s=r[3];s=decodeURIComponent(s),a&&(s=atob(s));try{let o;const a=(this.responseType||"").toLowerCase();switch(a){case"arraybuffer":case"blob":const t=new Uint8Array(s.length);for(let e=0;e<s.length;e++)t[e]=s.charCodeAt(e);o="blob"===a?new Blob([t.buffer],{type:n}):t.buffer;break;case"document":const e=new DOMParser;o=e.parseFromString(s,n);break;case"json":o=JSON.parse(s);break;default:o=s}setTimeout((function(){e&&e(o),i.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){o&&o(e),i.manager.itemError(t),i.manager.itemEnd(t)}),0)}}else{Jpt[t]=[],Jpt[t].push({onLoad:e,onProgress:n,onError:o}),s=new XMLHttpRequest,s.open("GET",t,!0),s.addEventListener("load",(function(e){const n=this.response,o=Jpt[t];if(delete Jpt[t],200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),qpt.add(t,n);for(let t=0,e=o.length;t<e;t++){const e=o[t];e.onLoad&&e.onLoad(n)}i.manager.itemEnd(t)}else{for(let t=0,n=o.length;t<n;t++){const n=o[t];n.onError&&n.onError(e)}i.manager.itemError(t),i.manager.itemEnd(t)}}),!1),s.addEventListener("progress",(function(e){const n=Jpt[t];for(let t=0,o=n.length;t<o;t++){const o=n[t];o.onProgress&&o.onProgress(e)}}),!1),s.addEventListener("error",(function(e){const n=Jpt[t];delete Jpt[t];for(let t=0,o=n.length;t<o;t++){const o=n[t];o.onError&&o.onError(e)}i.manager.itemError(t),i.manager.itemEnd(t)}),!1),s.addEventListener("abort",(function(e){const n=Jpt[t];delete Jpt[t];for(let t=0,o=n.length;t<o;t++){const o=n[t];o.onError&&o.onError(e)}i.manager.itemError(t),i.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(s.responseType=this.responseType),void 0!==this.withCredentials&&(s.withCredentials=this.withCredentials),s.overrideMimeType&&s.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(const t in this.requestHeader)s.setRequestHeader(t,this.requestHeader[t]);s.send(null)}return i.manager.itemStart(t),s},setResponseType:function(t){return this.responseType=t,this},setMimeType:function(t){return this.mimeType=t,this}}),$pt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:$pt,load:function(t,e,n,o){const i=this,a=new Qpt(i.manager);a.setPath(i.path),a.setRequestHeader(i.requestHeader),a.setWithCredentials(i.withCredentials),a.load(t,(function(n){try{e(i.parse(JSON.parse(n)))}catch(e){o?o(e):console.error(e),i.manager.itemError(t)}}),n,o)},parse:function(t){const e=[];for(let n=0;n<t.length;n++){const o=Gpt.parse(t[n]);e.push(o)}return e}}),tmt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:tmt,load:function(t,e,n,o){const i=this,a=[],r=new Bdt,s=new Qpt(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(i.withCredentials);let l=0;function c(c){s.load(t[c],(function(t){const n=i.parse(t,!0);a[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(r.minFilter=bit),r.image=a,r.format=n.format,r.needsUpdate=!0,e&&e(r))}),n,o)}if(Array.isArray(t))for(let e=0,n=t.length;e<n;++e)c(e);else s.load(t,(function(t){const n=i.parse(t,!0);if(n.isCubemap){const t=n.mipmaps.length/n.mipmapCount;for(let e=0;e<t;e++){a[e]={mipmaps:[]};for(let t=0;t<n.mipmapCount;t++)a[e].mipmaps.push(n.mipmaps[e*n.mipmapCount+t]),a[e].format=n.format,a[e].width=n.width,a[e].height=n.height}r.image=a}else r.image.width=n.width,r.image.height=n.height,r.mipmaps=n.mipmaps;1===n.mipmapCount&&(r.minFilter=bit),r.format=n.format,r.needsUpdate=!0,e&&e(r)}),n,o);return r}}),emt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:emt,load:function(t,e,n,o){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const i=this,a=qpt.get(t);if(void 0!==a)return i.manager.itemStart(t),setTimeout((function(){e&&e(a),i.manager.itemEnd(t)}),0),a;const r=document.createElementNS("http://www.w3.org/1999/xhtml","img");function s(){r.removeEventListener("load",s,!1),r.removeEventListener("error",l,!1),qpt.add(t,this),e&&e(this),i.manager.itemEnd(t)}function l(e){r.removeEventListener("load",s,!1),r.removeEventListener("error",l,!1),o&&o(e),i.manager.itemError(t),i.manager.itemEnd(t)}return r.addEventListener("load",s,!1),r.addEventListener("error",l,!1),"data:"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(r.crossOrigin=this.crossOrigin),i.manager.itemStart(t),r.src=t,r}}),nmt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:nmt,load:function(t,e,n,o){const i=new xst,a=new emt(this.manager);a.setCrossOrigin(this.crossOrigin),a.setPath(this.path);let r=0;function s(n){a.load(t[n],(function(t){i.images[n]=t,r++,6===r&&(i.needsUpdate=!0,e&&e(i))}),void 0,o)}for(let e=0;e<t.length;++e)s(e);return i}}),omt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:omt,load:function(t,e,n,o){const i=this,a=new Pst,r=new Qpt(this.manager);return r.setResponseType("arraybuffer"),r.setRequestHeader(this.requestHeader),r.setPath(this.path),r.setWithCredentials(i.withCredentials),r.load(t,(function(t){const n=i.parse(t);n&&(void 0!==n.image?a.image=n.image:void 0!==n.data&&(a.image.width=n.width,a.image.height=n.height,a.image.data=n.data),a.wrapS=void 0!==n.wrapS?n.wrapS:fit,a.wrapT=void 0!==n.wrapT?n.wrapT:fit,a.magFilter=void 0!==n.magFilter?n.magFilter:bit,a.minFilter=void 0!==n.minFilter?n.minFilter:bit,a.anisotropy=void 0!==n.anisotropy?n.anisotropy:1,void 0!==n.encoding&&(a.encoding=n.encoding),void 0!==n.flipY&&(a.flipY=n.flipY),void 0!==n.format&&(a.format=n.format),void 0!==n.type&&(a.type=n.type),void 0!==n.mipmaps&&(a.mipmaps=n.mipmaps,a.minFilter=yit),1===n.mipmapCount&&(a.minFilter=bit),a.needsUpdate=!0,e&&e(a,n))}),n,o),a}}),imt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:imt,load:function(t,e,n,o){const i=new Zit,a=new emt(this.manager);return a.setCrossOrigin(this.crossOrigin),a.setPath(this.path),a.load(t,(function(n){i.image=n;const o=t.search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/);i.format=o?Oit:Pit,i.needsUpdate=!0,void 0!==e&&e(i)}),n,o),i}}),Object.assign(amt.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)},getPoints:function(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e},getSpacedPoints:function(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e},getLength:function(){const t=this.getLengths();return t[t.length-1]},getLengths:function(t){if(void 0===t&&(t=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,o=this.getPoint(0),i=0;e.push(0);for(let a=1;a<=t;a++)n=this.getPoint(a/t),i+=n.distanceTo(o),e.push(i),o=n;return this.cacheArcLengths=e,e},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(t,e){const n=this.getLengths();let o=0;const i=n.length;let a;a=e||t*n[i-1];let r,s=0,l=i-1;for(;s<=l;)if(o=Math.floor(s+(l-s)/2),r=n[o]-a,r<0)s=o+1;else{if(!(r>0)){l=o;break}l=o-1}if(o=l,n[o]===a)return o/(i-1);const c=n[o];return(o+(a-c)/(n[o+1]-c))/(i-1)},getTangent:function(t,e){const n=1e-4;let o=t-n,i=t+n;o<0&&(o=0),i>1&&(i=1);const a=this.getPoint(o),r=this.getPoint(i),s=e||(a.isVector2?new Uit:new $it);return s.copy(r).sub(a).normalize(),s},getTangentAt:function(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)},computeFrenetFrames:function(t,e){const n=new $it,o=[],i=[],a=[],r=new $it,s=new kat;for(let e=0;e<=t;e++)o[e]=this.getTangentAt(e/t,new $it),o[e].normalize();i[0]=new $it,a[0]=new $it;let l=Number.MAX_VALUE;const c=Math.abs(o[0].x),d=Math.abs(o[0].y),p=Math.abs(o[0].z);c<=l&&(l=c,n.set(1,0,0)),d<=l&&(l=d,n.set(0,1,0)),p<=l&&n.set(0,0,1),r.crossVectors(o[0],n).normalize(),i[0].crossVectors(o[0],r),a[0].crossVectors(o[0],i[0]);for(let e=1;e<=t;e++){if(i[e]=i[e-1].clone(),a[e]=a[e-1].clone(),r.crossVectors(o[e-1],o[e]),r.length()>Number.EPSILON){r.normalize();const t=Math.acos(jit.clamp(o[e-1].dot(o[e]),-1,1));i[e].applyMatrix4(s.makeRotationAxis(r,t))}a[e].crossVectors(o[e],i[e])}if(!0===e){let e=Math.acos(jit.clamp(i[0].dot(i[t]),-1,1));e/=t,o[0].dot(r.crossVectors(i[0],i[t]))>0&&(e=-e);for(let n=1;n<=t;n++)i[n].applyMatrix4(s.makeRotationAxis(o[n],e*n)),a[n].crossVectors(o[n],i[n])}return{tangents:o,normals:i,binormals:a}},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this},toJSON:function(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t},fromJSON:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}),(rmt.prototype=Object.create(amt.prototype)).constructor=rmt,rmt.prototype.isEllipseCurve=!0,rmt.prototype.getPoint=function(t,e){const n=e||new Uit,o=2*Math.PI;let i=this.aEndAngle-this.aStartAngle;const a=Math.abs(i)<Number.EPSILON;for(;i<0;)i+=o;for(;i>o;)i-=o;i<Number.EPSILON&&(i=a?0:o),!0!==this.aClockwise||a||(i===o?i=-o:i-=o);const r=this.aStartAngle+t*i;let s=this.aX+this.xRadius*Math.cos(r),l=this.aY+this.yRadius*Math.sin(r);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=s-this.aX,o=l-this.aY;s=n*t-o*e+this.aX,l=n*e+o*t+this.aY}return n.set(s,l)},rmt.prototype.copy=function(t){return amt.prototype.copy.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},rmt.prototype.toJSON=function(){const t=amt.prototype.toJSON.call(this);return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t},rmt.prototype.fromJSON=function(t){return amt.prototype.fromJSON.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},(smt.prototype=Object.create(rmt.prototype)).constructor=smt,smt.prototype.isArcCurve=!0;const cmt=new $it,dmt=new lmt,pmt=new lmt,mmt=new lmt;function umt(t=[],e=!1,n="centripetal",o=.5){amt.call(this),this.type="CatmullRomCurve3",this.points=t,this.closed=e,this.curveType=n,this.tension=o}function fmt(t,e,n,o,i){const a=.5*(o-e),r=.5*(i-n),s=t*t;return(2*n-2*o+a+r)*(t*s)+(-3*n+3*o-2*a-r)*s+a*t+n}function gmt(t,e,n,o){return(function i(t,e){const n=1-t;return n*n*e})(t,e)+(function a(t,e){return 2*(1-t)*t*e})(t,n)+(function r(t,e){return t*t*e})(t,o)}function hmt(t,e,n,o,i){return(function a(t,e){const n=1-t;return n*n*n*e})(t,e)+(function r(t,e){const n=1-t;return 3*n*n*t*e})(t,n)+(function s(t,e){return 3*(1-t)*t*t*e})(t,o)+(function l(t,e){return t*t*t*e})(t,i)}function bmt(t=new Uit,e=new Uit,n=new Uit,o=new Uit){amt.call(this),this.type="CubicBezierCurve",this.v0=t,this.v1=e,this.v2=n,this.v3=o}function ymt(t=new $it,e=new $it,n=new $it,o=new $it){amt.call(this),this.type="CubicBezierCurve3",this.v0=t,this.v1=e,this.v2=n,this.v3=o}function _mt(t=new Uit,e=new Uit){amt.call(this),this.type="LineCurve",this.v1=t,this.v2=e}function Cmt(t=new $it,e=new $it){amt.call(this),this.type="LineCurve3",this.v1=t,this.v2=e}function Mmt(t=new Uit,e=new Uit,n=new Uit){amt.call(this),this.type="QuadraticBezierCurve",this.v0=t,this.v1=e,this.v2=n}function vmt(t=new $it,e=new $it,n=new $it){amt.call(this),this.type="QuadraticBezierCurve3",this.v0=t,this.v1=e,this.v2=n}function xmt(t=[]){amt.call(this),this.type="SplineCurve",this.points=t}(umt.prototype=Object.create(amt.prototype)).constructor=umt,umt.prototype.isCatmullRomCurve3=!0,umt.prototype.getPoint=function(t,e=new $it){const n=e,o=this.points,i=o.length,a=(i-(this.closed?0:1))*t;let r,s,l=Math.floor(a),c=a-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/i)+1)*i:0===c&&l===i-1&&(l=i-2,c=1),this.closed||l>0?r=o[(l-1)%i]:(cmt.subVectors(o[0],o[1]).add(o[0]),r=cmt);const d=o[l%i],p=o[(l+1)%i];if(this.closed||l+2<i?s=o[(l+2)%i]:(cmt.subVectors(o[i-1],o[i-2]).add(o[i-1]),s=cmt),"centripetal"===this.curveType||"chordal"===this.curveType){const t="chordal"===this.curveType?.5:.25;let e=Math.pow(r.distanceToSquared(d),t),n=Math.pow(d.distanceToSquared(p),t),o=Math.pow(p.distanceToSquared(s),t);n<1e-4&&(n=1),e<1e-4&&(e=n),o<1e-4&&(o=n),dmt.initNonuniformCatmullRom(r.x,d.x,p.x,s.x,e,n,o),pmt.initNonuniformCatmullRom(r.y,d.y,p.y,s.y,e,n,o),mmt.initNonuniformCatmullRom(r.z,d.z,p.z,s.z,e,n,o)}else"catmullrom"===this.curveType&&(dmt.initCatmullRom(r.x,d.x,p.x,s.x,this.tension),pmt.initCatmullRom(r.y,d.y,p.y,s.y,this.tension),mmt.initCatmullRom(r.z,d.z,p.z,s.z,this.tension));return n.set(dmt.calc(c),pmt.calc(c),mmt.calc(c)),n},umt.prototype.copy=function(t){amt.prototype.copy.call(this,t),this.points=[];for(let e=0,n=t.points.length;e<n;e++)this.points.push(t.points[e].clone());return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},umt.prototype.toJSON=function(){const t=amt.prototype.toJSON.call(this);t.points=[];for(let e=0,n=this.points.length;e<n;e++)t.points.push(this.points[e].toArray());return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t},umt.prototype.fromJSON=function(t){amt.prototype.fromJSON.call(this,t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new $it).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},(bmt.prototype=Object.create(amt.prototype)).constructor=bmt,bmt.prototype.isCubicBezierCurve=!0,bmt.prototype.getPoint=function(t,e=new Uit){const n=e,o=this.v0,i=this.v1,a=this.v2,r=this.v3;return n.set(hmt(t,o.x,i.x,a.x,r.x),hmt(t,o.y,i.y,a.y,r.y)),n},bmt.prototype.copy=function(t){return amt.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},bmt.prototype.toJSON=function(){const t=amt.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},bmt.prototype.fromJSON=function(t){return amt.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},(ymt.prototype=Object.create(amt.prototype)).constructor=ymt,ymt.prototype.isCubicBezierCurve3=!0,ymt.prototype.getPoint=function(t,e=new $it){const n=e,o=this.v0,i=this.v1,a=this.v2,r=this.v3;return n.set(hmt(t,o.x,i.x,a.x,r.x),hmt(t,o.y,i.y,a.y,r.y),hmt(t,o.z,i.z,a.z,r.z)),n},ymt.prototype.copy=function(t){return amt.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},ymt.prototype.toJSON=function(){const t=amt.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},ymt.prototype.fromJSON=function(t){return amt.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},(_mt.prototype=Object.create(amt.prototype)).constructor=_mt,_mt.prototype.isLineCurve=!0,_mt.prototype.getPoint=function(t,e=new Uit){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n},_mt.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},_mt.prototype.getTangent=function(t,e){const n=e||new Uit;return n.copy(this.v2).sub(this.v1).normalize(),n},_mt.prototype.copy=function(t){return amt.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},_mt.prototype.toJSON=function(){const t=amt.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},_mt.prototype.fromJSON=function(t){return amt.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(Cmt.prototype=Object.create(amt.prototype)).constructor=Cmt,Cmt.prototype.isLineCurve3=!0,Cmt.prototype.getPoint=function(t,e=new $it){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n},Cmt.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},Cmt.prototype.copy=function(t){return amt.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},Cmt.prototype.toJSON=function(){const t=amt.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},Cmt.prototype.fromJSON=function(t){return amt.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(Mmt.prototype=Object.create(amt.prototype)).constructor=Mmt,Mmt.prototype.isQuadraticBezierCurve=!0,Mmt.prototype.getPoint=function(t,e=new Uit){const n=e,o=this.v0,i=this.v1,a=this.v2;return n.set(gmt(t,o.x,i.x,a.x),gmt(t,o.y,i.y,a.y)),n},Mmt.prototype.copy=function(t){return amt.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},Mmt.prototype.toJSON=function(){const t=amt.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},Mmt.prototype.fromJSON=function(t){return amt.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(vmt.prototype=Object.create(amt.prototype)).constructor=vmt,vmt.prototype.isQuadraticBezierCurve3=!0,vmt.prototype.getPoint=function(t,e=new $it){const n=e,o=this.v0,i=this.v1,a=this.v2;return n.set(gmt(t,o.x,i.x,a.x),gmt(t,o.y,i.y,a.y),gmt(t,o.z,i.z,a.z)),n},vmt.prototype.copy=function(t){return amt.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},vmt.prototype.toJSON=function(){const t=amt.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},vmt.prototype.fromJSON=function(t){return amt.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(xmt.prototype=Object.create(amt.prototype)).constructor=xmt,xmt.prototype.isSplineCurve=!0,xmt.prototype.getPoint=function(t,e=new Uit){const n=e,o=this.points,i=(o.length-1)*t,a=Math.floor(i),r=i-a,s=o[0===a?a:a-1],l=o[a],c=o[a>o.length-2?o.length-1:a+1],d=o[a>o.length-3?o.length-1:a+2];return n.set(fmt(r,s.x,l.x,c.x,d.x),fmt(r,s.y,l.y,c.y,d.y)),n},xmt.prototype.copy=function(t){amt.prototype.copy.call(this,t),this.points=[];for(let e=0,n=t.points.length;e<n;e++)this.points.push(t.points[e].clone());return this},xmt.prototype.toJSON=function(){const t=amt.prototype.toJSON.call(this);t.points=[];for(let e=0,n=this.points.length;e<n;e++)t.points.push(this.points[e].toArray());return t},xmt.prototype.fromJSON=function(t){amt.prototype.fromJSON.call(this,t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Uit).fromArray(n))}return this};var Omt=Object.freeze({__proto__:null,ArcCurve:smt,CatmullRomCurve3:umt,CubicBezierCurve:bmt,CubicBezierCurve3:ymt,EllipseCurve:rmt,LineCurve:_mt,LineCurve3:Cmt,QuadraticBezierCurve:Mmt,QuadraticBezierCurve3:vmt,SplineCurve:xmt});function Pmt(){amt.call(this),this.type="CurvePath",this.curves=[],this.autoClose=!1}function wmt(t){Pmt.call(this),this.type="Path",this.currentPoint=new Uit,t&&this.setFromPoints(t)}function kmt(t){wmt.call(this,t),this.uuid=jit.generateUUID(),this.type="Shape",this.holes=[]}function Smt(t,e=1){Qat.call(this),this.type="Light",this.color=new Crt(t),this.intensity=e}function Dmt(t,e,n){Smt.call(this,t,n),this.type="HemisphereLight",this.position.copy(Qat.DefaultUp),this.updateMatrix(),this.groundColor=new Crt(e)}function Emt(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.mapSize=new Uit(512,512),this.map=null,this.mapPass=null,this.matrix=new kat,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Sst,this._frameExtents=new Uit(1,1),this._viewportCount=1,this._viewports=[new Kit(0,0,1,1)]}function Amt(){Emt.call(this,new Cst(50,1,.5,500)),this.focus=1}function Rmt(t,e,n,o,i,a){Smt.call(this,t,e),this.type="SpotLight",this.position.copy(Qat.DefaultUp),this.updateMatrix(),this.target=new Qat,Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(t){this.intensity=t/Math.PI}}),this.distance=void 0!==n?n:0,this.angle=void 0!==o?o:Math.PI/3,this.penumbra=void 0!==i?i:0,this.decay=void 0!==a?a:1,this.shadow=new Amt}function Tmt(){Emt.call(this,new Cst(90,1,.5,500)),this._frameExtents=new Uit(4,2),this._viewportCount=6,this._viewports=[new Kit(2,1,1,1),new Kit(0,1,1,1),new Kit(3,1,1,1),new Kit(1,1,1,1),new Kit(3,0,1,1),new Kit(1,0,1,1)],this._cubeDirections=[new $it(1,0,0),new $it(-1,0,0),new $it(0,0,1),new $it(0,0,-1),new $it(0,1,0),new $it(0,-1,0)],this._cubeUps=[new $it(0,1,0),new $it(0,1,0),new $it(0,1,0),new $it(0,1,0),new $it(0,0,1),new $it(0,0,-1)]}function Nmt(t,e,n,o){Smt.call(this,t,e),this.type="PointLight",Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(t){this.intensity=t/(4*Math.PI)}}),this.distance=void 0!==n?n:0,this.decay=void 0!==o?o:1,this.shadow=new Tmt}function Imt(t=-1,e=1,n=1,o=-1,i=.1,a=2e3){_st.call(this),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=o,this.near=i,this.far=a,this.updateProjectionMatrix()}function zmt(){Emt.call(this,new Imt(-5,5,5,-5,.5,500))}function Hmt(t,e){Smt.call(this,t,e),this.type="DirectionalLight",this.position.copy(Qat.DefaultUp),this.updateMatrix(),this.target=new Qat,this.shadow=new zmt}function Fmt(t,e){Smt.call(this,t,e),this.type="AmbientLight"}function Lmt(t,e,n,o){Smt.call(this,t,e),this.type="RectAreaLight",this.width=void 0!==n?n:10,this.height=void 0!==o?o:10}Pmt.prototype=Object.assign(Object.create(amt.prototype),{constructor:Pmt,add:function(t){this.curves.push(t)},closePath:function(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new _mt(e,t))},getPoint:function(t){const e=t*this.getLength(),n=this.getCurveLengths();let o=0;for(;o<n.length;){if(n[o]>=e){const t=n[o]-e,i=this.curves[o],a=i.getLength();return i.getPointAt(0===a?0:1-t/a)}o++}return null},getLength:function(){const t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,o=this.curves.length;n<o;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t},getSpacedPoints:function(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e},getPoints:function(t=12){const e=[];let n;for(let o=0,i=this.curves;o<i.length;o++){const a=i[o],r=a.getPoints(a&&a.isEllipseCurve?2*t:a&&(a.isLineCurve||a.isLineCurve3)?1:a&&a.isSplineCurve?t*a.points.length:t);for(let t=0;t<r.length;t++){const o=r[t];n&&n.equals(o)||(e.push(o),n=o)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e},copy:function(t){amt.prototype.copy.call(this,t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++)this.curves.push(t.curves[e].clone());return this.autoClose=t.autoClose,this},toJSON:function(){const t=amt.prototype.toJSON.call(this);t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++)t.curves.push(this.curves[e].toJSON());return t},fromJSON:function(t){amt.prototype.fromJSON.call(this,t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new Omt[n.type]).fromJSON(n))}return this}}),wmt.prototype=Object.assign(Object.create(Pmt.prototype),{constructor:wmt,setFromPoints:function(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this},moveTo:function(t,e){return this.currentPoint.set(t,e),this},lineTo:function(t,e){const n=new _mt(this.currentPoint.clone(),new Uit(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this},quadraticCurveTo:function(t,e,n,o){const i=new Mmt(this.currentPoint.clone(),new Uit(t,e),new Uit(n,o));return this.curves.push(i),this.currentPoint.set(n,o),this},bezierCurveTo:function(t,e,n,o,i,a){const r=new bmt(this.currentPoint.clone(),new Uit(t,e),new Uit(n,o),new Uit(i,a));return this.curves.push(r),this.currentPoint.set(i,a),this},splineThru:function(t){const e=new xmt([this.currentPoint.clone()].concat(t));return this.curves.push(e),this.currentPoint.copy(t[t.length-1]),this},arc:function(t,e,n,o,i,a){return this.absarc(t+this.currentPoint.x,e+this.currentPoint.y,n,o,i,a),this},absarc:function(t,e,n,o,i,a){return this.absellipse(t,e,n,n,o,i,a),this},ellipse:function(t,e,n,o,i,a,r,s){return this.absellipse(t+this.currentPoint.x,e+this.currentPoint.y,n,o,i,a,r,s),this},absellipse:function(t,e,n,o,i,a,r,s){const l=new rmt(t,e,n,o,i,a,r,s);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this},copy:function(t){return Pmt.prototype.copy.call(this,t),this.currentPoint.copy(t.currentPoint),this},toJSON:function(){const t=Pmt.prototype.toJSON.call(this);return t.currentPoint=this.currentPoint.toArray(),t},fromJSON:function(t){return Pmt.prototype.fromJSON.call(this,t),this.currentPoint.fromArray(t.currentPoint),this}}),kmt.prototype=Object.assign(Object.create(wmt.prototype),{constructor:kmt,getPointsHoles:function(t){const e=[];for(let n=0,o=this.holes.length;n<o;n++)e[n]=this.holes[n].getPoints(t);return e},extractPoints:function(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}},copy:function(t){wmt.prototype.copy.call(this,t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++)this.holes.push(t.holes[e].clone());return this},toJSON:function(){const t=wmt.prototype.toJSON.call(this);t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++)t.holes.push(this.holes[e].toJSON());return t},fromJSON:function(t){wmt.prototype.fromJSON.call(this,t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new wmt).fromJSON(n))}return this}}),Smt.prototype=Object.assign(Object.create(Qat.prototype),{constructor:Smt,isLight:!0,copy:function(t){return Qat.prototype.copy.call(this,t),this.color.copy(t.color),this.intensity=t.intensity,this},toJSON:function(t){const e=Qat.prototype.toJSON.call(this,t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}),Dmt.prototype=Object.assign(Object.create(Smt.prototype),{constructor:Dmt,isHemisphereLight:!0,copy:function(t){return Smt.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}),Object.assign(Emt.prototype,{_projScreenMatrix:new kat,_lightPositionWorld:new $it,_lookTarget:new $it,getViewportCount:function(){return this._viewportCount},getFrustum:function(){return this._frustum},updateMatrices:function(t){const e=this.camera,n=this.matrix,o=this._projScreenMatrix,i=this._lookTarget,a=this._lightPositionWorld;a.setFromMatrixPosition(t.matrixWorld),e.position.copy(a),i.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(i),e.updateMatrixWorld(),o.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(o),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)},getViewport:function(t){return this._viewports[t]},getFrameExtents:function(){return this._frameExtents},copy:function(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}),Amt.prototype=Object.assign(Object.create(Emt.prototype),{constructor:Amt,isSpotLightShadow:!0,updateMatrices:function(t){const e=this.camera,n=2*jit.RAD2DEG*t.angle*this.focus,o=this.mapSize.width/this.mapSize.height,i=t.distance||e.far;n===e.fov&&o===e.aspect&&i===e.far||(e.fov=n,e.aspect=o,e.far=i,e.updateProjectionMatrix()),Emt.prototype.updateMatrices.call(this,t)}}),Rmt.prototype=Object.assign(Object.create(Smt.prototype),{constructor:Rmt,isSpotLight:!0,copy:function(t){return Smt.prototype.copy.call(this,t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Tmt.prototype=Object.assign(Object.create(Emt.prototype),{constructor:Tmt,isPointLightShadow:!0,updateMatrices:function(t,e=0){const n=this.camera,o=this.matrix,i=this._lightPositionWorld,a=this._lookTarget,r=this._projScreenMatrix;i.setFromMatrixPosition(t.matrixWorld),n.position.copy(i),a.copy(n.position),a.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(a),n.updateMatrixWorld(),o.makeTranslation(-i.x,-i.y,-i.z),r.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(r)}}),Nmt.prototype=Object.assign(Object.create(Smt.prototype),{constructor:Nmt,isPointLight:!0,copy:function(t){return Smt.prototype.copy.call(this,t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}),Imt.prototype=Object.assign(Object.create(_st.prototype),{constructor:Imt,isOrthographicCamera:!0,copy:function(t,e){return _st.prototype.copy.call(this,t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this},setViewOffset:function(t,e,n,o,i,a){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=o,this.view.width=i,this.view.height=a,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,o=(this.top+this.bottom)/2;let i=n-t,a=n+t,r=o+e,s=o-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=t*this.view.offsetX,a=i+t*this.view.width,r-=e*this.view.offsetY,s=r-e*this.view.height}this.projectionMatrix.makeOrthographic(i,a,r,s,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()},toJSON:function(t){const e=Qat.prototype.toJSON.call(this,t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}),zmt.prototype=Object.assign(Object.create(Emt.prototype),{constructor:zmt,isDirectionalLightShadow:!0,updateMatrices:function(t){Emt.prototype.updateMatrices.call(this,t)}}),Hmt.prototype=Object.assign(Object.create(Smt.prototype),{constructor:Hmt,isDirectionalLight:!0,copy:function(t){return Smt.prototype.copy.call(this,t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Fmt.prototype=Object.assign(Object.create(Smt.prototype),{constructor:Fmt,isAmbientLight:!0}),Lmt.prototype=Object.assign(Object.create(Smt.prototype),{constructor:Lmt,isRectAreaLight:!0,copy:function(t){return Smt.prototype.copy.call(this,t),this.width=t.width,this.height=t.height,this},toJSON:function(t){const e=Smt.prototype.toJSON.call(this,t);return e.object.width=this.width,e.object.height=this.height,e}});class Bmt{constructor(){Object.defineProperty(this,"isSphericalHarmonics3",{value:!0}),this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new $it)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,o=t.y,i=t.z,a=this.coefficients;return e.copy(a[0]).multiplyScalar(.282095),e.addScaledVector(a[1],.488603*o),e.addScaledVector(a[2],.488603*i),e.addScaledVector(a[3],.488603*n),e.addScaledVector(a[4],n*o*1.092548),e.addScaledVector(a[5],o*i*1.092548),e.addScaledVector(a[6],.315392*(3*i*i-1)),e.addScaledVector(a[7],n*i*1.092548),e.addScaledVector(a[8],.546274*(n*n-o*o)),e}getIrradianceAt(t,e){const n=t.x,o=t.y,i=t.z,a=this.coefficients;return e.copy(a[0]).multiplyScalar(.886227),e.addScaledVector(a[1],1.023328*o),e.addScaledVector(a[2],1.023328*i),e.addScaledVector(a[3],1.023328*n),e.addScaledVector(a[4],.858086*n*o),e.addScaledVector(a[5],.858086*o*i),e.addScaledVector(a[6],.743125*i*i-.247708),e.addScaledVector(a[7],.858086*n*i),e.addScaledVector(a[8],.429043*(n*n-o*o)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let o=0;o<9;o++)n[o].fromArray(t,e+3*o);return this}toArray(t=[],e=0){const n=this.coefficients;for(let o=0;o<9;o++)n[o].toArray(t,e+3*o);return t}static getBasisAt(t,e){const n=t.x,o=t.y,i=t.z;e[0]=.282095,e[1]=.488603*o,e[2]=.488603*i,e[3]=.488603*n,e[4]=1.092548*n*o,e[5]=1.092548*o*i,e[6]=.315392*(3*i*i-1),e[7]=1.092548*n*i,e[8]=.546274*(n*n-o*o)}}function Vmt(t,e){Smt.call(this,void 0,e),this.type="LightProbe",this.sh=void 0!==t?t:new Bmt}function jmt(t){Kpt.call(this,t),this.textures={}}function Umt(){Zrt.call(this),this.type="InstancedBufferGeometry",this.instanceCount=1/0}function Wmt(t,e,n,o){"number"==typeof n&&(o=n,n=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),krt.call(this,t,e,n),this.meshPerAttribute=o||1}function Gmt(t){Kpt.call(this,t)}function Ymt(t){"undefined"==typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),"undefined"==typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),Kpt.call(this,t),this.options={premultiplyAlpha:"none"}}function qmt(){this.type="ShapePath",this.color=new Crt,this.subPaths=[],this.currentPath=null}Vmt.prototype=Object.assign(Object.create(Smt.prototype),{constructor:Vmt,isLightProbe:!0,copy:function(t){return Smt.prototype.copy.call(this,t),this.sh.copy(t.sh),this},fromJSON:function(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this},toJSON:function(t){const e=Smt.prototype.toJSON.call(this,t);return e.object.sh=this.sh.toArray(),e}}),jmt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:jmt,load:function(t,e,n,o){const i=this,a=new Qpt(i.manager);a.setPath(i.path),a.setRequestHeader(i.requestHeader),a.setWithCredentials(i.withCredentials),a.load(t,(function(n){try{e(i.parse(JSON.parse(n)))}catch(e){o?o(e):console.error(e),i.manager.itemError(t)}}),n,o)},parse:function(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn("THREE.MaterialLoader: Undefined texture",t),e[t]}const o=new Apt[t.type];if(void 0!==t.uuid&&(o.uuid=t.uuid),void 0!==t.name&&(o.name=t.name),void 0!==t.color&&void 0!==o.color&&o.color.setHex(t.color),void 0!==t.roughness&&(o.roughness=t.roughness),void 0!==t.metalness&&(o.metalness=t.metalness),void 0!==t.sheen&&(o.sheen=(new Crt).setHex(t.sheen)),void 0!==t.emissive&&void 0!==o.emissive&&o.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==o.specular&&o.specular.setHex(t.specular),void 0!==t.shininess&&(o.shininess=t.shininess),void 0!==t.clearcoat&&(o.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(o.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.fog&&(o.fog=t.fog),void 0!==t.flatShading&&(o.flatShading=t.flatShading),void 0!==t.blending&&(o.blending=t.blending),void 0!==t.combine&&(o.combine=t.combine),void 0!==t.side&&(o.side=t.side),void 0!==t.opacity&&(o.opacity=t.opacity),void 0!==t.transparent&&(o.transparent=t.transparent),void 0!==t.alphaTest&&(o.alphaTest=t.alphaTest),void 0!==t.depthTest&&(o.depthTest=t.depthTest),void 0!==t.depthWrite&&(o.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(o.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(o.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(o.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(o.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(o.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(o.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(o.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(o.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(o.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(o.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(o.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(o.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(o.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(o.rotation=t.rotation),1!==t.linewidth&&(o.linewidth=t.linewidth),void 0!==t.dashSize&&(o.dashSize=t.dashSize),void 0!==t.gapSize&&(o.gapSize=t.gapSize),void 0!==t.scale&&(o.scale=t.scale),void 0!==t.polygonOffset&&(o.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(o.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(o.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.skinning&&(o.skinning=t.skinning),void 0!==t.morphTargets&&(o.morphTargets=t.morphTargets),void 0!==t.morphNormals&&(o.morphNormals=t.morphNormals),void 0!==t.dithering&&(o.dithering=t.dithering),void 0!==t.vertexTangents&&(o.vertexTangents=t.vertexTangents),void 0!==t.visible&&(o.visible=t.visible),void 0!==t.toneMapped&&(o.toneMapped=t.toneMapped),void 0!==t.userData&&(o.userData=t.userData),void 0!==t.vertexColors&&(o.vertexColors="number"==typeof t.vertexColors?t.vertexColors>0:t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const i=t.uniforms[e];switch(o.uniforms[e]={},i.type){case"t":o.uniforms[e].value=n(i.value);break;case"c":o.uniforms[e].value=(new Crt).setHex(i.value);break;case"v2":o.uniforms[e].value=(new Uit).fromArray(i.value);break;case"v3":o.uniforms[e].value=(new $it).fromArray(i.value);break;case"v4":o.uniforms[e].value=(new Kit).fromArray(i.value);break;case"m3":o.uniforms[e].value=(new Wit).fromArray(i.value);break;case"m4":o.uniforms[e].value=(new kat).fromArray(i.value);break;default:o.uniforms[e].value=i.value}}if(void 0!==t.defines&&(o.defines=t.defines),void 0!==t.vertexShader&&(o.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(o.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)o.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(o.flatShading=1===t.shading),void 0!==t.size&&(o.size=t.size),void 0!==t.sizeAttenuation&&(o.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(o.map=n(t.map)),void 0!==t.matcap&&(o.matcap=n(t.matcap)),void 0!==t.alphaMap&&(o.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(o.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(o.bumpScale=t.bumpScale),void 0!==t.normalMap&&(o.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(o.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),o.normalScale=(new Uit).fromArray(e)}return void 0!==t.displacementMap&&(o.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(o.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(o.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(o.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(o.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(o.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(o.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(o.specularMap=n(t.specularMap)),void 0!==t.envMap&&(o.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(o.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(o.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(o.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(o.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(o.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(o.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(o.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(o.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(o.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(o.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(o.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(o.clearcoatNormalScale=(new Uit).fromArray(t.clearcoatNormalScale)),void 0!==t.transmission&&(o.transmission=t.transmission),void 0!==t.transmissionMap&&(o.transmissionMap=n(t.transmissionMap)),o},setTextures:function(t){return this.textures=t,this}}),Umt.prototype=Object.assign(Object.create(Zrt.prototype),{constructor:Umt,isInstancedBufferGeometry:!0,copy:function(t){return Zrt.prototype.copy.call(this,t),this.instanceCount=t.instanceCount,this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){const t=Zrt.prototype.toJSON.call(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}),Wmt.prototype=Object.assign(Object.create(krt.prototype),{constructor:Wmt,isInstancedBufferAttribute:!0,copy:function(t){return krt.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this},toJSON:function(){const t=krt.prototype.toJSON.call(this);return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}),Gmt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:Gmt,load:function(t,e,n,o){const i=this,a=new Qpt(i.manager);a.setPath(i.path),a.setRequestHeader(i.requestHeader),a.setWithCredentials(i.withCredentials),a.load(t,(function(n){try{e(i.parse(JSON.parse(n)))}catch(e){o?o(e):console.error(e),i.manager.itemError(t)}}),n,o)},parse:function(t){const e={},n={};function o(t,o){if(void 0!==e[o])return e[o];const i=t.interleavedBuffers[o],a=(function r(t,e){if(void 0!==n[e])return n[e];const o=new Uint32Array(t.arrayBuffers[e]).buffer;return n[e]=o,o})(t,i.buffer),s=new Fct(Brt(i.type,a),i.stride);return s.uuid=i.uuid,e[o]=s,s}const i=t.isInstancedBufferGeometry?new Umt:new Zrt,a=t.data.index;if(void 0!==a){const t=Brt(a.type,a.array);i.setIndex(new krt(t,1))}const r=t.data.attributes;for(const e in r){const n=r[e];let a;if(n.isInterleavedBufferAttribute)a=new Bct(o(t.data,n.data),n.itemSize,n.offset,n.normalized);else{const t=Brt(n.type,n.array);a=new(n.isInstancedBufferAttribute?Wmt:krt)(t,n.itemSize,n.normalized)}void 0!==n.name&&(a.name=n.name),i.setAttribute(e,a)}const s=t.data.morphAttributes;if(s)for(const e in s){const n=s[e],a=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];let r;r=i.isInterleavedBufferAttribute?new Bct(o(t.data,i.data),i.itemSize,i.offset,i.normalized):new krt(Brt(i.type,i.array),i.itemSize,i.normalized),void 0!==i.name&&(r.name=i.name),a.push(r)}i.morphAttributes[e]=a}t.data.morphTargetsRelative&&(i.morphTargetsRelative=!0);const l=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==l)for(let t=0,e=l.length;t!==e;++t){const e=l[t];i.addGroup(e.start,e.count,e.materialIndex)}const c=t.data.boundingSphere;if(void 0!==c){const t=new $it;void 0!==c.center&&t.fromArray(c.center),i.boundingSphere=new yat(t,c.radius)}return t.name&&(i.name=t.name),t.userData&&(i.userData=t.userData),i}}),Ymt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:Ymt,isImageBitmapLoader:!0,setOptions:function t(e){return this.options=e,this},load:function(t,e,n,o){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const i=this,a=qpt.get(t);if(void 0!==a)return i.manager.itemStart(t),setTimeout((function(){e&&e(a),i.manager.itemEnd(t)}),0),a;const r={};r.credentials="anonymous"===this.crossOrigin?"same-origin":"include",fetch(t,r).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,i.options)})).then((function(n){qpt.add(t,n),e&&e(n),i.manager.itemEnd(t)})).catch((function(e){o&&o(e),i.manager.itemError(t),i.manager.itemEnd(t)})),i.manager.itemStart(t)}}),Object.assign(qmt.prototype,{moveTo:function(t,e){return this.currentPath=new wmt,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this},lineTo:function(t,e){return this.currentPath.lineTo(t,e),this},quadraticCurveTo:function(t,e,n,o){return this.currentPath.quadraticCurveTo(t,e,n,o),this},bezierCurveTo:function(t,e,n,o,i,a){return this.currentPath.bezierCurveTo(t,e,n,o,i,a),this},splineThru:function(t){return this.currentPath.splineThru(t),this},toShapes:function(t,e){function n(t){const e=[];for(let n=0,o=t.length;n<o;n++){const o=t[n],i=new kmt;i.curves=o.curves,e.push(i)}return e}function o(t,e){const n=e.length;let o=!1;for(let i=n-1,a=0;a<n;i=a++){let n=e[i],r=e[a],s=r.x-n.x,l=r.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0&&(n=e[a],s=-s,r=e[i],l=-l),t.y<n.y||t.y>r.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-s*(t.y-n.y);if(0===e)return!0;if(e<0)continue;o=!o}}else{if(t.y!==n.y)continue;if(r.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=r.x)return!0}}return o}const i=fpt.isClockWise,a=this.subPaths;if(0===a.length)return[];if(!0===e)return n(a);let r,s,l;const c=[];if(1===a.length)return s=a[0],l=new kmt,l.curves=s.curves,c.push(l),c;let d=!i(a[0].getPoints());d=t?!d:d;const p=[],m=[];let u,f,g=[],h=0;m[h]=void 0,g[h]=[];for(let e=0,n=a.length;e<n;e++)s=a[e],u=s.getPoints(),r=i(u),r=t?!r:r,r?(!d&&m[h]&&h++,m[h]={s:new kmt,p:u},m[h].s.curves=s.curves,d&&h++,g[h]=[]):g[h].push({h:s,p:u[0]});if(!m[0])return n(a);if(m.length>1){let t=!1;const e=[];for(let t=0,e=m.length;t<e;t++)p[t]=[];for(let n=0,i=m.length;n<i;n++){const i=g[n];for(let a=0;a<i.length;a++){const r=i[a];let s=!0;for(let i=0;i<m.length;i++)o(r.p,m[i].p)&&(n!==i&&e.push({froms:n,tos:i,hole:a}),s?(s=!1,p[i].push(r)):t=!0);s&&p[n].push(r)}}e.length>0&&(t||(g=p))}for(let t=0,e=m.length;t<e;t++){l=m[t].s,c.push(l),f=g[t];for(let t=0,e=f.length;t<e;t++)l.holes.push(f[t].h)}return c}});class Zmt{constructor(t){Object.defineProperty(this,"isFont",{value:!0}),this.type="Font",this.data=t}generateShapes(t,e=100){const n=[],o=(function i(t,e,n){const o=Array.from?Array.from(t):String(t).split(""),i=e/n.resolution,a=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*i,r=[];let s=0,l=0;for(let t=0;t<o.length;t++){const e=o[t];if("\n"===e)s=0,l-=a;else{const t=Xmt(e,i,s,l,n);s+=t.offsetX,r.push(t.path)}}return r})(t,e,this.data);for(let t=0,e=o.length;t<e;t++)Array.prototype.push.apply(n,o[t].toShapes());return n}}function Xmt(t,e,n,o,i){const a=i.glyphs[t]||i.glyphs["?"];if(!a)return void console.error('THREE.Font: character "'+t+'" does not exists in font family '+i.familyName+".");const r=new qmt;let s,l,c,d,p,m,u,f;if(a.o){const t=a._cachedOutline||(a._cachedOutline=a.o.split(" "));for(let i=0,a=t.length;i<a;)switch(t[i++]){case"m":s=t[i++]*e+n,l=t[i++]*e+o,r.moveTo(s,l);break;case"l":s=t[i++]*e+n,l=t[i++]*e+o,r.lineTo(s,l);break;case"q":c=t[i++]*e+n,d=t[i++]*e+o,p=t[i++]*e+n,m=t[i++]*e+o,r.quadraticCurveTo(p,m,c,d);break;case"b":c=t[i++]*e+n,d=t[i++]*e+o,p=t[i++]*e+n,m=t[i++]*e+o,u=t[i++]*e+n,f=t[i++]*e+o,r.bezierCurveTo(p,m,u,f,c,d)}}return{offsetX:a.ha*e,path:r}}function Kmt(t){Kpt.call(this,t)}let Jmt;function Qmt(t){Kpt.call(this,t)}function $mt(t,e,n){Vmt.call(this,void 0,n);const o=(new Crt).set(t),i=(new Crt).set(e),a=new $it(o.r,o.g,o.b),r=new $it(i.r,i.g,i.b),s=Math.sqrt(Math.PI),l=s*Math.sqrt(.75);this.sh.coefficients[0].copy(a).add(r).multiplyScalar(s),this.sh.coefficients[1].copy(a).sub(r).multiplyScalar(l)}function tut(t,e){Vmt.call(this,void 0,e);const n=(new Crt).set(t);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}Kmt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:Kmt,load:function(t,e,n,o){const i=this,a=new Qpt(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(i.withCredentials),a.load(t,(function(t){let n;try{n=JSON.parse(t)}catch(e){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),n=JSON.parse(t.substring(65,t.length-2))}const o=i.parse(n);e&&e(o)}),n,o)},parse:function(t){return new Zmt(t)}}),Qmt.prototype=Object.assign(Object.create(Kpt.prototype),{constructor:Qmt,load:function(t,e,n,o){const i=this,a=new Qpt(i.manager);a.setResponseType("arraybuffer"),a.setPath(i.path),a.setRequestHeader(i.requestHeader),a.setWithCredentials(i.withCredentials),a.load(t,(function(n){try{const t=n.slice(0);(void 0===Jmt&&(Jmt=new(window.AudioContext||window.webkitAudioContext)),Jmt).decodeAudioData(t,(function(t){e(t)}))}catch(e){o?o(e):console.error(e),i.manager.itemError(t)}}),n,o)}}),$mt.prototype=Object.assign(Object.create(Vmt.prototype),{constructor:$mt,isHemisphereLightProbe:!0,copy:function(t){return Vmt.prototype.copy.call(this,t),this},toJSON:function(t){return Vmt.prototype.toJSON.call(this,t)}}),tut.prototype=Object.assign(Object.create(Vmt.prototype),{constructor:tut,isAmbientLightProbe:!0,copy:function(t){return Vmt.prototype.copy.call(this,t),this},toJSON:function(t){return Vmt.prototype.toJSON.call(this,t)}});const eut=new kat,nut=new kat;function out(t,e,n){let o,i,a;switch(this.binding=t,this.valueSize=n,e){case"quaternion":o=this._slerp,i=this._slerpAdditive,a=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case"string":case"bool":o=this._select,i=this._select,a=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:o=this._lerp,i=this._lerpAdditive,a=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=o,this._mixBufferRegionAdditive=i,this._setIdentity=a,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}Object.assign(function iut(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Cst,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Cst,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}.prototype,{update:function(t){const e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep;const n=t.projectionMatrix.clone(),o=e.eyeSep/2,i=o*e.near/e.focus,a=e.near*Math.tan(jit.DEG2RAD*e.fov*.5)/e.zoom;let r,s;nut.elements[12]=-o,eut.elements[12]=o,r=-a*e.aspect+i,s=a*e.aspect+i,n.elements[0]=2*e.near/(s-r),n.elements[8]=(s+r)/(s-r),this.cameraL.projectionMatrix.copy(n),r=-a*e.aspect-i,s=a*e.aspect-i,n.elements[0]=2*e.near/(s-r),n.elements[8]=(s+r)/(s-r),this.cameraR.projectionMatrix.copy(n)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(nut),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(eut)}}),Object.assign(out.prototype,{accumulate:function(t,e){const n=this.buffer,o=this.valueSize,i=t*o+o;let a=this.cumulativeWeight;if(0===a){for(let t=0;t!==o;++t)n[i+t]=n[t];a=e}else a+=e,this._mixBufferRegion(n,i,0,e/a,o);this.cumulativeWeight=a},accumulateAdditive:function(t){const e=this.buffer,n=this.valueSize,o=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,o,0,t,n),this.cumulativeWeightAdditive+=t},apply:function(t){const e=this.valueSize,n=this.buffer,o=t*e+e,i=this.cumulativeWeight,a=this.cumulativeWeightAdditive,r=this.binding;this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,i<1&&this._mixBufferRegion(n,o,e*this._origIndex,1-i,e),a>0&&this._mixBufferRegionAdditive(n,o,this._addIndex*e,1,e);for(let t=e,i=e+e;t!==i;++t)if(n[t]!==n[t+e]){r.setValue(n,o);break}},saveOriginalState:function(){const t=this.buffer,e=this.valueSize,n=e*this._origIndex;this.binding.getValue(t,n);for(let o=e,i=n;o!==i;++o)t[o]=t[n+o%e];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_setAdditiveIdentityNumeric:function(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0},_setAdditiveIdentityQuaternion:function(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1},_setAdditiveIdentityOther:function(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]},_select:function(t,e,n,o,i){if(o>=.5)for(let o=0;o!==i;++o)t[e+o]=t[n+o]},_slerp:function(t,e,n,o){Qit.slerpFlat(t,e,t,e,t,n,o)},_slerpAdditive:function(t,e,n,o,i){const a=this._workIndex*i;Qit.multiplyQuaternionsFlat(t,a,t,e,t,n),Qit.slerpFlat(t,e,t,e,t,a,o)},_lerp:function(t,e,n,o,i){const a=1-o;for(let r=0;r!==i;++r){const i=e+r;t[i]=t[i]*a+t[n+r]*o}},_lerpAdditive:function(t,e,n,o,i){for(let a=0;a!==i;++a){const i=e+a;t[i]=t[i]+t[n+a]*o}}});const aut=new RegExp("[\\[\\]\\.:\\/]","g"),rut="[^\\[\\]\\.:\\/]",sut="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",lut=/((?:WC+[\/:])*)/.source.replace("WC",rut),cut=/(WCOD+)?/.source.replace("WCOD",sut),dut=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",rut),put=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",rut),mut=new RegExp("^"+lut+cut+dut+put+"$"),uut=["material","materials","bones"];function fut(t,e,n){const o=n||gut.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,o)}function gut(t,e,n){this.path=e,this.parsedPath=n||gut.parseTrackName(e),this.node=gut.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}Object.assign(fut.prototype,{getValue:function(t,e){this.bind();const n=this._bindings[this._targetGroup.nCachedObjects_];void 0!==n&&n.getValue(t,e)},setValue:function(t,e){const n=this._bindings;for(let o=this._targetGroup.nCachedObjects_,i=n.length;o!==i;++o)n[o].setValue(t,e)},bind:function(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()},unbind:function(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}),Object.assign(gut,{Composite:fut,create:function(t,e,n){return t&&t.isAnimationObjectGroup?new gut.Composite(t,e,n):new gut(t,e,n)},sanitizeNodeName:function(t){return t.replace(/\s/g,"_").replace(aut,"")},parseTrackName:function(t){const e=mut.exec(t);if(!e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},o=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==o&&-1!==o){const t=n.nodeName.substring(o+1);-1!==uut.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,o),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n},findNode:function(t,e){if(!e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let o=0;o<t.length;o++){const i=t[o];if(i.name===e||i.uuid===e)return i;const a=n(i.children);if(a)return a}return null},o=n(t.children);if(o)return o}return null}}),Object.assign(gut.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function t(e,n){e[n]=this.node[this.propertyName]},function t(e,n){const o=this.resolvedProperty;for(let t=0,i=o.length;t!==i;++t)e[n++]=o[t]},function t(e,n){e[n]=this.resolvedProperty[this.propertyIndex]},function t(e,n){this.resolvedProperty.toArray(e,n)}],SetterByBindingTypeAndVersioning:[[function t(e,n){this.targetObject[this.propertyName]=e[n]},function t(e,n){this.targetObject[this.propertyName]=e[n],this.targetObject.needsUpdate=!0},function t(e,n){this.targetObject[this.propertyName]=e[n],this.targetObject.matrixWorldNeedsUpdate=!0}],[function t(e,n){const o=this.resolvedProperty;for(let t=0,i=o.length;t!==i;++t)o[t]=e[n++]},function t(e,n){const o=this.resolvedProperty;for(let t=0,i=o.length;t!==i;++t)o[t]=e[n++];this.targetObject.needsUpdate=!0},function t(e,n){const o=this.resolvedProperty;for(let t=0,i=o.length;t!==i;++t)o[t]=e[n++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function t(e,n){this.resolvedProperty[this.propertyIndex]=e[n]},function t(e,n){this.resolvedProperty[this.propertyIndex]=e[n],this.targetObject.needsUpdate=!0},function t(e,n){this.resolvedProperty[this.propertyIndex]=e[n],this.targetObject.matrixWorldNeedsUpdate=!0}],[function t(e,n){this.resolvedProperty.fromArray(e,n)},function t(e,n){this.resolvedProperty.fromArray(e,n),this.targetObject.needsUpdate=!0},function t(e,n){this.resolvedProperty.fromArray(e,n),this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function t(e,n){this.bind(),this.getValue(e,n)},setValue:function t(e,n){this.bind(),this.setValue(e,n)},bind:function(){let t=this.node;const e=this.parsedPath,n=e.objectName,o=e.propertyName;let i=e.propertyIndex;if(t||(t=gut.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.");if(n){let o=e.objectIndex;switch(n){case"materials":if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===o){o=e;break}break;default:if(void 0===t[n])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);t=t[n]}if(void 0!==o){if(void 0===t[o])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);t=t[o]}}const a=t[o];if(void 0===a)return void console.error("THREE.PropertyBinding: Trying to update property for track: "+e.nodeName+"."+o+" but it wasn't found.",t);let r=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?r=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(r=this.Versioning.MatrixWorldNeedsUpdate);let s=this.BindingType.Direct;if(void 0!==i){if("morphTargetInfluences"===o){if(!t.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(!t.geometry.isBufferGeometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",this);if(!t.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);void 0!==t.morphTargetDictionary[i]&&(i=t.morphTargetDictionary[i])}s=this.BindingType.ArrayElement,this.resolvedProperty=a,this.propertyIndex=i}else void 0!==a.fromArray&&void 0!==a.toArray?(s=this.BindingType.HasFromToArray,this.resolvedProperty=a):Array.isArray(a)?(s=this.BindingType.EntireArray,this.resolvedProperty=a):this.propertyName=o;this.getValue=this.GetterByBindingType[s],this.setValue=this.SetterByBindingTypeAndVersioning[s][r]},unbind:function(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}),Object.assign(gut.prototype,{_getValue_unbound:gut.prototype.getValue,_setValue_unbound:gut.prototype.setValue}),Object.assign(function hut(){this.uuid=jit.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let e=0,n=arguments.length;e!==n;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}.prototype,{isAnimationObjectGroup:!0,add:function(){const t=this._objects,e=this._indicesByUUID,n=this._paths,o=this._parsedPaths,i=this._bindings,a=i.length;let r,s=t.length,l=this.nCachedObjects_;for(let c=0,d=arguments.length;c!==d;++c){const d=arguments[c],p=d.uuid;let m=e[p];if(void 0===m){m=s++,e[p]=m,t.push(d);for(let t=0,e=a;t!==e;++t)i[t].push(new gut(d,n[t],o[t]))}else if(m<l){r=t[m];const s=--l,c=t[s];e[c.uuid]=m,t[m]=c,e[p]=s,t[s]=d;for(let t=0,e=a;t!==e;++t){const e=i[t];let a=e[m];e[m]=e[s],void 0===a&&(a=new gut(d,n[t],o[t])),e[s]=a}}else t[m]!==r&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=l},remove:function(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,o=n.length;let i=this.nCachedObjects_;for(let a=0,r=arguments.length;a!==r;++a){const r=arguments[a],s=r.uuid,l=e[s];if(void 0!==l&&l>=i){const a=i++,c=t[a];e[c.uuid]=l,t[l]=c,e[s]=a,t[a]=r;for(let t=0,e=o;t!==e;++t){const e=n[t],o=e[l];e[l]=e[a],e[a]=o}}}this.nCachedObjects_=i},uncache:function(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,o=n.length;let i=this.nCachedObjects_,a=t.length;for(let r=0,s=arguments.length;r!==s;++r){const s=arguments[r].uuid,l=e[s];if(void 0!==l)if(delete e[s],l<i){const r=--i,s=t[r],c=--a,d=t[c];e[s.uuid]=l,t[l]=s,e[d.uuid]=r,t[r]=d,t.pop();for(let t=0,e=o;t!==e;++t){const e=n[t],o=e[c];e[l]=e[r],e[r]=o,e.pop()}}else{const i=--a,r=t[i];i>0&&(e[r.uuid]=l),t[l]=r,t.pop();for(let t=0,e=o;t!==e;++t){const e=n[t];e[l]=e[i],e.pop()}}}this.nCachedObjects_=i},subscribe_:function(t,e){const n=this._bindingsIndicesByPath;let o=n[t];const i=this._bindings;if(void 0!==o)return i[o];const a=this._paths,r=this._parsedPaths,s=this._objects,l=this.nCachedObjects_,c=new Array(s.length);o=i.length,n[t]=o,a.push(t),r.push(e),i.push(c);for(let n=l,o=s.length;n!==o;++n)c[n]=new gut(s[n],t,e);return c},unsubscribe_:function(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const o=this._paths,i=this._parsedPaths,a=this._bindings,r=a.length-1,s=a[r];e[t[r]]=n,a[n]=s,a.pop(),i[n]=i[r],i.pop(),o[n]=o[r],o.pop()}}});class but{constructor(t,e,n=null,o=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=o;const i=e.tracks,a=i.length,r=new Array(a),s={endingStart:Ait,endingEnd:Ait};for(let t=0;t!==a;++t){const e=i[t].createInterpolant(null);r[t]=e,e.settings=s}this._interpolantSettings=s,this._interpolants=r,this._propertyBindings=new Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,o=t._clip.duration,i=n/o;t.warp(1,o/n,e),this.warp(i,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const o=this._mixer,i=o.time,a=this.timeScale;let r=this._timeScaleInterpolant;null===r&&(r=o._lendControlInterpolant(),this._timeScaleInterpolant=r);const s=r.parameterPositions,l=r.sampleValues;return s[0]=i,s[1]=i+n,l[0]=t/a,l[1]=e/a,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,o){if(!this.enabled)return void this._updateWeight(t);const i=this._startTime;if(null!==i){const o=(t-i)*n;if(o<0||0===n)return;this._startTime=null,e=n*o}e*=this._updateTimeScale(t);const a=this._updateTime(e),r=this._updateWeight(t);if(r>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case 2501:for(let n=0,o=t.length;n!==o;++n)t[n].evaluate(a),e[n].accumulateAdditive(r);break;case 2500:default:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(a),e[n].accumulate(o,r)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const o=n.evaluate(t)[0];e*=o,t>n.parameterPositions[1]&&(this.stopFading(),0===o&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;null!==n&&(e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e))}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let o=this.time+t,i=this._loopCount;const a=2202===n;if(0===t)return-1===i?o:a&&1==(1&i)?e-o:o;if(2200===n){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(o>=e)o=e;else{if(!(o<0)){this.time=o;break t}o=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=o,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===i&&(t>=0?(i=0,this._setEndings(!0,0===this.repetitions,a)):this._setEndings(0===this.repetitions,!0,a)),o>=e||o<0){const n=Math.floor(o/e);o-=e*n,i+=Math.abs(n);const r=this.repetitions-i;if(r<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,o=t>0?e:0,this.time=o,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===r){const e=t<0;this._setEndings(e,!e,a)}else this._setEndings(!1,!1,a);this._loopCount=i,this.time=o,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=o;if(a&&1==(1&i))return e-o}return o}_setEndings(t,e,n){const o=this._interpolantSettings;n?(o.endingStart=Rit,o.endingEnd=Rit):(o.endingStart=t?this.zeroSlopeAtStart?Rit:Ait:Tit,o.endingEnd=e?this.zeroSlopeAtEnd?Rit:Ait:Tit)}_scheduleFading(t,e,n){const o=this._mixer,i=o.time;let a=this._weightInterpolant;null===a&&(a=o._lendControlInterpolant(),this._weightInterpolant=a);const r=a.parameterPositions,s=a.sampleValues;return r[0]=i,s[0]=e,r[1]=i+t,s[1]=n,this}}function yut(t){this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}yut.prototype=Object.assign(Object.create(Lit.prototype),{constructor:yut,_bindAction:function(t,e){const n=t._localRoot||this._root,o=t._clip.tracks,i=o.length,a=t._propertyBindings,r=t._interpolants,s=n.uuid,l=this._bindingsByRootAndName;let c=l[s];void 0===c&&(c={},l[s]=c);for(let t=0;t!==i;++t){const i=o[t],l=i.name;let d=c[l];if(void 0!==d)a[t]=d;else{if(d=a[t],void 0!==d){null===d._cacheIndex&&(++d.referenceCount,this._addInactiveBinding(d,s,l));continue}d=new out(gut.create(n,l,e&&e._propertyBindings[t].binding.parsedPath),i.ValueTypeName,i.getValueSize()),++d.referenceCount,this._addInactiveBinding(d,s,l),a[t]=d}r[t].resultBuffer=d.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,o=this._actionsByClip[n];this._bindAction(t,o&&o.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}},_isActiveAction:function(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions},_addInactiveAction:function(t,e,n){const o=this._actions,i=this._actionsByClip;let a=i[e];if(void 0===a)a={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,i[e]=a;else{const e=a.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=o.length,o.push(t),a.actionByRoot[n]=t},_removeInactiveAction:function(t){const e=this._actions,n=e[e.length-1],o=t._cacheIndex;n._cacheIndex=o,e[o]=n,e.pop(),t._cacheIndex=null;const i=t._clip.uuid,a=this._actionsByClip,r=a[i],s=r.knownActions,l=s[s.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,s[c]=l,s.pop(),t._byClipCacheIndex=null,delete r.actionByRoot[(t._localRoot||this._root).uuid],0===s.length&&delete a[i],this._removeInactiveBindingsForAction(t)},_removeInactiveBindingsForAction:function(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}},_lendAction:function(t){const e=this._actions,n=t._cacheIndex,o=this._nActiveActions++,i=e[o];t._cacheIndex=o,e[o]=t,i._cacheIndex=n,e[n]=i},_takeBackAction:function(t){const e=this._actions,n=t._cacheIndex,o=--this._nActiveActions,i=e[o];t._cacheIndex=o,e[o]=t,i._cacheIndex=n,e[n]=i},_addInactiveBinding:function(t,e,n){const o=this._bindingsByRootAndName,i=this._bindings;let a=o[e];void 0===a&&(a={},o[e]=a),a[n]=t,t._cacheIndex=i.length,i.push(t)},_removeInactiveBinding:function(t){const e=this._bindings,n=t.binding,o=n.rootNode.uuid,i=n.path,a=this._bindingsByRootAndName,r=a[o],s=e[e.length-1],l=t._cacheIndex;s._cacheIndex=l,e[l]=s,e.pop(),delete r[i],0===Object.keys(r).length&&delete a[o]},_lendBinding:function(t){const e=this._bindings,n=t._cacheIndex,o=this._nActiveBindings++,i=e[o];t._cacheIndex=o,e[o]=t,i._cacheIndex=n,e[n]=i},_takeBackBinding:function(t){const e=this._bindings,n=t._cacheIndex,o=--this._nActiveBindings,i=e[o];t._cacheIndex=o,e[o]=t,i._cacheIndex=n,e[n]=i},_lendControlInterpolant:function(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new Ipt(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n},_takeBackControlInterpolant:function(t){const e=this._controlInterpolants,n=t.__cacheIndex,o=--this._nActiveControlInterpolants,i=e[o];t.__cacheIndex=o,e[o]=t,i.__cacheIndex=n,e[n]=i},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(t,e,n){const o=e||this._root,i=o.uuid;let a="string"==typeof t?Gpt.findByName(o,t):t;const r=null!==a?a.uuid:t,s=this._actionsByClip[r];let l=null;if(void 0===n&&(n=null!==a?a.blendMode:2500),void 0!==s){const t=s.actionByRoot[i];if(void 0!==t&&t.blendMode===n)return t;l=s.knownActions[0],null===a&&(a=l._clip)}if(null===a)return null;const c=new but(this,a,e,n);return this._bindAction(c,l),this._addInactiveAction(c,r,i),c},existingAction:function(t,e){const n=e||this._root,o=n.uuid,i="string"==typeof t?Gpt.findByName(n,t):t,a=this._actionsByClip[i?i.uuid:t];return void 0!==a&&a.actionByRoot[o]||null},stopAllAction:function(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this},update:function(t){const e=this._actions,n=this._nActiveActions,o=this.time+=t*=this.timeScale,i=Math.sign(t),a=this._accuIndex^=1;for(let r=0;r!==n;++r)e[r]._update(o,t,i,a);const r=this._bindings,s=this._nActiveBindings;for(let t=0;t!==s;++t)r[t].apply(a);return this},setTime:function(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)},getRoot:function(){return this._root},uncacheClip:function(t){const e=this._actions,n=t.uuid,o=this._actionsByClip,i=o[n];if(void 0!==i){const t=i.knownActions;for(let n=0,o=t.length;n!==o;++n){const o=t[n];this._deactivateAction(o);const i=o._cacheIndex,a=e[e.length-1];o._cacheIndex=null,o._byClipCacheIndex=null,a._cacheIndex=i,e[i]=a,e.pop(),this._removeInactiveBindingsForAction(o)}delete o[n]}},uncacheRoot:function(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const o=n[t].actionByRoot[e];void 0!==o&&(this._deactivateAction(o),this._removeInactiveAction(o))}const o=this._bindingsByRootAndName[e];if(void 0!==o)for(const t in o){const e=o[t];e.restoreOriginalState(),this._removeInactiveBinding(e)}},uncacheAction:function(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}});class _ut{constructor(t){"string"==typeof t&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),t=arguments[1]),this.value=t}clone(){return new _ut(void 0===this.value.clone?this.value:this.value.clone())}}function Cut(t,e,n){Fct.call(this,t,e),this.meshPerAttribute=n||1}function Mut(t,e,n,o,i){this.buffer=t,this.type=e,this.itemSize=n,this.elementSize=o,this.count=i,this.version=0}function vut(t,e,n,o){this.ray=new wat(t,e),this.near=n||0,this.far=o||1/0,this.camera=null,this.layers=new Fat,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function xut(t,e){return t.distance-e.distance}function Out(t,e,n,o){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===o){const o=t.children;for(let t=0,i=o.length;t<i;t++)Out(o[t],e,n,!0)}}Cut.prototype=Object.assign(Object.create(Fct.prototype),{constructor:Cut,isInstancedInterleavedBuffer:!0,copy:function(t){return Fct.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this},clone:function(t){const e=Fct.prototype.clone.call(this,t);return e.meshPerAttribute=this.meshPerAttribute,e},toJSON:function(t){const e=Fct.prototype.toJSON.call(this,t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}),Object.defineProperty(Mut.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(Mut.prototype,{isGLBufferAttribute:!0,setBuffer:function(t){return this.buffer=t,this},setType:function(t,e){return this.type=t,this.elementSize=e,this},setItemSize:function(t){return this.itemSize=t,this},setCount:function(t){return this.count=t,this}}),Object.assign(vut.prototype,{set:function(t,e){this.ray.set(t,e)},setFromCamera:function(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error("THREE.Raycaster: Unsupported camera type: "+e.type)},intersectObject:function(t,e,n){const o=n||[];return Out(t,this,o,e),o.sort(xut),o},intersectObjects:function(t,e,n){const o=n||[];if(!1===Array.isArray(t))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),o;for(let n=0,i=t.length;n<i;n++)Out(t[n],this,o,e);return o.sort(xut),o}});const Put=new Uit;function wut(t){Qat.call(this),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}(wut.prototype=Object.create(Qat.prototype)).constructor=wut,wut.prototype.isImmediateRenderObject=!0;const kut=new Ort({side:1,depthWrite:!1,depthTest:!1});function Sut(t){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),umt.call(this,t),this.type="catmullrom"}function Dut(t,e,n){if(1===n)return new Crt(e);const o=_7(e);if(!o)throw new Error(`d3 failed to recognize the color: ${e}`);return new Crt(_8(o,t)(1-n))}var Eut,Aut,Rut,Tut,Nut;function Iut(t,e){const n=e.length/2;let o=t.attributes.position;o&&o.count===3*n||(o=new krt(new Float32Array(3*n),3),t.setAttribute("position",o));const i=o.array;for(let t=0;t<n;t++)i[3*t]=e[2*t],i[3*t+1]=e[2*t+1];o.needsUpdate=!0,t.setDrawRange(0,3*n),t.computeBoundingSphere()}function zut(t,e,n){const o=Math.max(e.length/2-1,0),i=2*o*3,a=3*i;let r=t.attributes.position;r&&r.count===i||(r=new krt(new Float32Array(a),3),t.setAttribute("position",r));const s=r.array;for(let t=0;t<o;t++){const[o,i,a,r]=[e[2*t],e[2*t+1],e[2*t+2],e[2*t+3]],l=new Uit(o,i),c=new Uit(a,r),d=new Uit(a-o,r-i),p=new Uit(-d.y,d.x).setLength(n/2),m=l.clone().add(p),u=l.clone().sub(p),f=c.clone().add(p),g=c.clone().sub(p),h=[m.x,m.y,0,u.x,u.y,0,f.x,f.y,0,f.x,f.y,0,u.x,u.y,0,g.x,g.y,0];s.set(h,t*h.length)}r.needsUpdate=!0,t.setDrawRange(0,a),t.computeBoundingSphere()}function Hut(t,e,n,o){const{visible:i,color:a,opacity:r}=o;if(Array.isArray(e.material))throw new Error("Invariant error: only expect one material on an object");const s=e.material;if(s.visible!==i&&(s.visible=i,s.needsUpdate=!0),!i)return!1;const l=Dut(t,a,null!=r?r:1),c=n(e.geometry);return e.geometry!==c&&(e.geometry=c),s.color.equals(l)||(s.color.set(l),s.needsUpdate=!0),!0}new mst(new fst,kut),amt.create=function(t,e){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(amt.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Object.assign(wmt.prototype,{fromPoints:function(t){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(t)}}),Sut.prototype=Object.create(umt.prototype),Object.assign(Sut.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}}),Object.assign(Kpt.prototype,{extractUrlBase:function(t){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),(function(t){const e=t.lastIndexOf("/");return-1===e?"./":t.substr(0,e+1)})(t)}}),Kpt.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}},Object.assign(class{constructor(t,e){Object.defineProperty(this,"isBox2",{value:!0}),this.min=void 0!==t?t:new Uit(1/0,1/0),this.max=void 0!==e?e:new Uit(-1/0,-1/0)}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=Put.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return void 0===t&&(console.warn("THREE.Box2: .getCenter() target is now required"),t=new Uit),this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return void 0===t&&(console.warn("THREE.Box2: .getSize() target is now required"),t=new Uit),this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return void 0===e&&(console.warn("THREE.Box2: .getParameter() target is now required"),e=new Uit),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return void 0===e&&(console.warn("THREE.Box2: .clampPoint() target is now required"),e=new Uit),e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Put.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}.prototype,{center:function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},size:function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)}}),Object.assign(nat.prototype,{center:function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionSphere:function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},size:function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)}}),Object.assign(yat.prototype,{empty:function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()}}),Sst.prototype.setFromMatrix=function(t){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(t)},Object.assign(jit,{random16:function(){return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."),Math.random()},nearestPowerOfTwo:function(t){return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."),jit.floorPowerOfTwo(t)},nextPowerOfTwo:function(t){return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."),jit.ceilPowerOfTwo(t)}}),Object.assign(Wit.prototype,{flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},multiplyVector3:function(t){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBufferAttribute:function(t){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")},getInverse:function(t){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()}}),Object.assign(kat.prototype,{extractPosition:function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},getPosition:function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),(new $it).setFromMatrixColumn(this,3)},setRotationFromQuaternion:function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector4:function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},crossVector:function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBufferAttribute:function(t){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(t,e,n,o,i,a){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,e,o,n,i,a)},getInverse:function(t){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()}}),nrt.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},Object.assign(Qit.prototype,{multiplyVector3:function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},inverse:function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()}}),Object.assign(wat.prototype,{isIntersectionBox:function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionPlane:function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},isIntersectionSphere:function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)}}),Object.assign(urt.prototype,{area:function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},barycoordFromPoint:function(t,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(t,e)},midpoint:function(t){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(t)},normal:function(t){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(t)},plane:function(t){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(t)}}),Object.assign(urt,{barycoordFromPoint:function(t,e,n,o,i){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),urt.getBarycoord(t,e,n,o,i)},normal:function(t,e,n,o){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),urt.getNormal(t,e,n,o)}}),Object.assign(kmt.prototype,{extractAllPoints:function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},extrude:function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new bpt(this,t)},makeGeometry:function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new Cpt(this,t)}}),Object.assign(Uit.prototype,{fromAttribute:function(t,e,n){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},distanceToManhattan:function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign($it.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},getScaleFromMatrix:function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},getColumnFromMatrix:function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)},applyProjection:function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},fromAttribute:function(t,e,n){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},distanceToManhattan:function(t){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(Kit.prototype,{fromAttribute:function(t,e,n){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},lengthManhattan:function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(Qat.prototype,{getChildByName:function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(t,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,t)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},applyMatrix:function(t){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}}),Object.defineProperties(Qat.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),Object.assign(mst.prototype,{setDrawMode:function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}),Object.defineProperties(mst.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),0},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}}),Object.defineProperties(adt.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(gdt.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),pdt.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},Object.defineProperty(amt.prototype,"__arcLengthDivisions",{get:function(){return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions},set:function(t){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions=t}}),Cst.prototype.setLens=function(t,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(Smt.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties(krt.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},dynamic:{get:function(){return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.usage===Hit},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(Hit)}}}),Object.assign(krt.prototype,{setDynamic:function(t){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?Hit:zit),this},copyIndicesArray:function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},setArray:function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}}),Object.assign(Zrt.prototype,{addIndex:function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},addAttribute:function(t,e){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):this.setAttribute(t,e):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(t,new krt(arguments[1],arguments[2])))},addDrawCall:function(t,e,n){void 0!==n&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,e)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},removeAttribute:function(t){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(t)},applyMatrix:function(t){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}}),Object.defineProperties(Zrt.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Object.defineProperties(Umt.prototype,{maxInstancedCount:{get:function(){return console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount."),this.instanceCount},set:function(t){console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount."),this.instanceCount=t}}}),Object.defineProperties(vut.prototype,{linePrecision:{get:function(){return console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold},set:function(t){console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold=t}}}),Object.defineProperties(Fct.prototype,{dynamic:{get:function(){return console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.usage===Hit},set:function(t){console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.setUsage(t)}}}),Object.assign(Fct.prototype,{setDynamic:function(t){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?Hit:zit),this},setArray:function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}}),Object.assign(bpt.prototype,{getArrays:function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")},addShapeList:function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")}}),Object.assign(Hct.prototype,{dispose:function(){console.error("THREE.Scene: .dispose() has been removed.")}}),Object.defineProperties(_ut.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this}}}),Object.defineProperties(xrt.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new Crt}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(t){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=t}}}),Object.defineProperties(Ppt.prototype,{metal:{get:function(){return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."),!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}}),Object.defineProperties(Opt.prototype,{transparency:{get:function(){return console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission."),this.transmission},set:function(t){console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission."),this.transmission=t}}}),Object.defineProperties(yst.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),Object.assign(Ict.prototype,{clearTarget:function(t,e,n,o){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(t),this.clear(e,n,o)},animate:function(t){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(t)},getCurrentRenderTarget:function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},getMaxAnisotropy:function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},getPrecision:function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},resetGLState:function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},supportsFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},supportsInstancedArrays:function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},allocTextureUnit:function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},setTexture:function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},setTexture2D:function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},setTextureCube:function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},getActiveMipMapLevel:function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()}}),Object.defineProperties(Ict.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."),this.getContext()}},vr:{get:function(){return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"),this.xr}},gammaInput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."),!1},set:function(){console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.")}},gammaOutput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),!1},set:function(t){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=!0===t?3001:Nit}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}}}),Object.defineProperties(wct.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(Jit.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),Object.defineProperties(class extends Qat{constructor(t){super(),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn("THREE.Audio: this Audio has no playback control.")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}.prototype,{load:{value:function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");const e=this;return(new Qmt).load(t,(function(t){e.setBuffer(t)})),this}},startTime:{set:function(){console.warn("THREE.Audio: .startTime is now .play( delay ).")}}}),vst.prototype.updateCubeMap=function(t,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(t,e)},vst.prototype.clear=function(t,e,n,o){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(t,e,n,o)},Yit.crossOrigin=void 0,Yit.loadTexture=function(t,e,n,o){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");const i=new imt;i.setCrossOrigin(this.crossOrigin);const a=i.load(t,n,void 0,o);return e&&(a.mapping=e),a},Yit.loadTextureCube=function(t,e,n,o){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");const i=new nmt;i.setCrossOrigin(this.crossOrigin);const a=i.load(t,n,void 0,o);return e&&(a.mapping=e),a},Yit.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},Yit.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"125"}})),"undefined"!=typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="125"),(function(t){t[t.CIRCLE=0]="CIRCLE",t[t.LINE=1]="LINE",t[t.TRIANGLE=2]="TRIANGLE",t[t.TRAPEZOID=3]="TRAPEZOID"})(Eut||(Eut={}));class Fut{constructor(t,e,n){this.coordinator=e,this.scene=new Hct,this.backgroundColor="#fff",sit()&&t instanceof OffscreenCanvas&&(t.style=t.style||{}),this.renderer=new Ict({canvas:t,context:t.getContext("webgl2",{antialias:!0,precision:"highp",alpha:!0})}),this.renderer.setPixelRatio(n)}onResize(t){this.renderer.setSize(t.width,t.height)}destroyObject(t){const e=t.obj3d;if(this.scene.remove(e),e instanceof mst){e.geometry.dispose();const t=Array.isArray(e.material)?e.material:[e.material];for(const e of t)e.dispose()}}setUseDarkMode(t){this.backgroundColor=t?"#303030":"#fff"}createOrUpdateLineObject(t,e,n){var o;if(!t&&!n.visible)return null;const{visible:i,width:a}=n;if(!t){const t=Dut(this.backgroundColor,n.color,null!==(o=n.opacity)&&void 0!==o?o:1),r=new Zrt,s=new Mdt({color:t}),l=new mst(r,s);return s.visible=i,zut(r,e,a),this.scene.add(l),{type:Eut.LINE,data:e,obj3d:l,width:a}}const{data:r,obj3d:s,width:l}=t;return Hut(this.backgroundColor,s,(t=>(a===l&&r&&lit(r,e)||zut(t,e,a),t)),n)?{type:Eut.LINE,data:e,obj3d:s,width:a}:t}createMesh(t,e){if(!e.visible)return null;const{visible:n,color:o,opacity:i}=e;return new mst(t,new Ort({color:Dut(this.backgroundColor,o,null!=i?i:1),visible:n}))}createOrUpdateTriangleObject(t,e,n){const{size:o}=n,i=o*Math.sqrt(3)/2,a=new Float32Array([e.x-o/2,e.y-i/3,e.x+o/2,e.y-i/3,e.x,e.y+2*i/3]);if(!t){const t=new Zrt;Iut(t,a);const o=this.createMesh(t,n);return null===o?null:(this.scene.add(o),{type:Eut.TRIANGLE,data:e,obj3d:o})}return Hut(this.backgroundColor,t.obj3d,(t=>(Iut(t,a),t)),n)?{type:Eut.TRIANGLE,data:e,obj3d:t.obj3d}:t}createOrUpdateCircleObject(t,e,n){const{radius:o}=n,i=new Udt(n.radius);if(!t){const t=this.createMesh(i,n);return null===t?null:(t.position.set(e.x,e.y,0),this.scene.add(t),{type:Eut.CIRCLE,data:{loc:e,radius:o},obj3d:t})}return Hut(this.backgroundColor,t.obj3d,(()=>i),n)?(t.obj3d.position.set(e.x,e.y,0),{type:Eut.CIRCLE,data:{loc:e,radius:o},obj3d:t.obj3d}):t}createOrUpdateTrapezoidObject(t,e,n,o){if(e.y!==n.y)throw new RangeError("Input error: start.y != end.y.");const{altitude:i}=o,a=2/Math.sqrt(3)*i,r=new kmt([new Uit(e.x-a/2,e.y-i/2),new Uit(e.x,e.y+i/2),new Uit(n.x,n.y+i/2),new Uit(n.x+a/2,n.y-i/2)]);r.autoClose=!0;const s=new Cpt(r);if(!t){const t=this.createMesh(s,o);return null===t?null:(this.scene.add(t),{type:Eut.TRAPEZOID,data:[e,n],obj3d:t})}return Hut(this.backgroundColor,t.obj3d,(()=>s),o)?{type:Eut.TRAPEZOID,data:[e,n],obj3d:t.obj3d}:t}flush(){this.renderer.render(this.scene,this.coordinator.getCamera())}}class Lut{constructor(t,e){this.renderCache=t,this.renderer=e}setLine(t,e,n){const o=this.renderer.createOrUpdateLineObject(this.renderCache.getFromPreviousFrame(t),e,n);o&&this.renderCache.setToCurrentFrame(t,o)}setTriangle(t,e,n){const o=this.renderer.createOrUpdateTriangleObject(this.renderCache.getFromPreviousFrame(t),e,n);o&&this.renderCache.setToCurrentFrame(t,o)}setCircle(t,e,n){const o=this.renderer.createOrUpdateCircleObject(this.renderCache.getFromPreviousFrame(t),e,n);o&&this.renderCache.setToCurrentFrame(t,o)}setTrapezoid(t,e,n,o){const i=this.renderer.createOrUpdateTrapezoidObject(this.renderCache.getFromPreviousFrame(t),e,n,o);i&&this.renderCache.setToCurrentFrame(t,i)}}class But{constructor(){this.prevFrameCache=new Map,this.currFrameCache=new Map}getFromPreviousFrame(t){const e=this.prevFrameCache.get(t);return null!=e?e:null}setToCurrentFrame(t,e){this.currFrameCache.set(t,e)}finalizeFrameAndGetRemoved(){const t=[];for(const[e,n]of this.prevFrameCache.entries())this.currFrameCache.has(e)||t.push(n);return this.prevFrameCache=this.currFrameCache,this.currFrameCache=new Map,t}}!(function(t){t[t.NUMBER=0]="NUMBER",t[t.NAN=1]="NAN"})(Aut||(Aut={}));class Vut extends class{constructor(t){this.rawSeriesData=[],this.series=[],this.paintDirty=!0,this.renderCache=new But,this.coordinateIdentifier=null,this.layout={x:0,width:1,y:0,height:1},this.getMetadataMapImpl=t.getMetadataMap,this.coordinator=t.coordinator,this.renderer=t.renderer,this.paintBrush=new Lut(this.renderCache,this.renderer)}setLayoutRect(t){this.layout.x===t.x&&this.layout.width===t.width&&this.layout.y===t.y&&this.layout.height===t.height||(this.paintDirty=!0),this.layout=t}getLayoutRect(){return this.layout}getMetadataMap(){return this.getMetadataMapImpl()}markAsPaintDirty(){this.paintDirty=!0}render(){if(this.transformCoordinatesIfStale(),this.paintDirty){this.redraw();for(const t of this.renderCache.finalizeFrameAndGetRemoved())this.renderer.destroyObject(t);this.paintDirty=!1}}isCoordinateUpdated(){return this.coordinator.getUpdateIdentifier()!==this.coordinateIdentifier}clearCoordinateIdentifier(){this.coordinateIdentifier=null}setData(t){this.clearCoordinateIdentifier(),this.rawSeriesData=t}transformCoordinatesIfStale(){if(!this.isCoordinateUpdated())return;const t=this.getLayoutRect();this.series=new Array(this.rawSeriesData.length);for(let e=0;e<this.rawSeriesData.length;e++){const n=this.rawSeriesData[e];this.series[e]={id:n.id,polyline:new Float32Array(2*n.points.length)};for(let o=0;o<n.points.length;o++){const[i,a]=this.coordinator.transformDataToUiCoord(t,[n.points[o].x,n.points[o].y]);this.series[e].polyline[2*o]=i,this.series[e].polyline[2*o+1]=a}}this.coordinateIdentifier=this.coordinator.getUpdateIdentifier(),this.markAsPaintDirty()}}{recordPartition(t,e,n){return t?{type:Aut.NUMBER,polyline:e}:{type:Aut.NAN,polyline:e.map(((t,e)=>isNaN(t)?e%2==0?n.x:n.y:t))}}partitionPolyline(t){const e=[];let n=0,o=!1;const i=this.coordinator.transformDataToUiCoord(this.getLayoutRect(),[0,0]),a={x:i[0],y:i[1]};let r=null;for(let i=0;i<t.length;i+=2){const a=t[i],s=t[i+1],l=isNaN(a)||isNaN(s);l!==o&&n!==i&&(e.push(this.recordPartition(!o,t.slice(n,i),null===r?{x:a,y:s}:r)),n=i),l||(r={x:a,y:s}),o=l}return n!==t.length-1&&e.push(this.recordPartition(!o,t.slice(n,t.length),null!=r?r:a)),e}redraw(){var t,e,n;for(const o of this.series){const i=this.getMetadataMap()[o.id];if(!i)continue;if(o.polyline.length%2!=0)throw new Error(`Cannot have odd length-ed polyline: ${o.polyline.length}`);const a=this.partitionPolyline(o.polyline);for(const[r,{type:s,polyline:l}]of a.entries())if(s===Aut.NUMBER)2===l.length?this.paintBrush.setCircle(JSON.stringify(["circle",o.id,r]),{x:l[0],y:l[1]},{color:i.color,visible:i.visible,opacity:null!==(t=i.opacity)&&void 0!==t?t:1,radius:4}):this.paintBrush.setLine(JSON.stringify(["line",o.id,r]),l,{color:i.color,visible:i.visible,opacity:null!==(e=i.opacity)&&void 0!==e?e:1,width:2});else if(!i.aux)for(let t=0;t<l.length;t+=2)this.paintBrush.setTriangle(JSON.stringify(["NaN",o.id,l[t],l[t+1]]),{x:l[t],y:l[t+1]},{color:i.color,visible:i.visible,opacity:null!==(n=i.opacity)&&void 0!==n?n:1,size:12})}}}class jut extends cit{constructor(){super(...arguments),this.camera=new Imt(0,1e3,1e3,0,0,100)}isYAxisPointedDown(){return!1}setDomContainerRect(t){super.setDomContainerRect(t),this.camera.left=t.x,this.camera.right=t.x+t.width,this.camera.top=t.y+t.height,this.camera.bottom=t.y,this.camera.updateProjectionMatrix()}getCamera(){return this.camera}}class Uut{constructor(t){switch(this.metadataMap={},this.shouldRepaint=!1,this.callbacks=t.callbacks,t.type){case a5.SVG:this.coordinator=new cit,this.renderer=new pit(t.container);break;case a5.WEBGL:{const e=new jut;this.coordinator=e,this.renderer=new Fut(t.container,e,t.devicePixelRatio);break}}this.renderer.setUseDarkMode(t.useDarkMode),this.seriesLineView=new Vut({renderer:this.renderer,coordinator:this.coordinator,getMetadataMap:()=>this.metadataMap}),this.resize(t.domDimension)}dispose(){}setXScaleType(t){this.coordinator.setXScale(nit(t)),this.scheduleRepaint()}setYScaleType(t){this.coordinator.setYScale(nit(t)),this.scheduleRepaint()}resize(t){this.coordinator.setDomContainerRect(Object.assign({x:0,y:0},t)),this.renderer.onResize(Object.assign({x:0,y:0},t)),this.seriesLineView.setLayoutRect(Object.assign(Object.assign({},t),{x:0,y:0})),this.scheduleRepaint()}setMetadata(t){let e=!1;Object.entries(t).forEach((([t,n])=>{const o=this.metadataMap[t];o&&n.color===o.color&&n.visible===o.visible&&n.opacity===o.opacity||(e=!0),this.metadataMap[t]=n})),e&&this.seriesLineView.markAsPaintDirty(),this.scheduleRepaint()}setViewBox(t){this.coordinator.setViewBoxRect({x:t.x[0],width:t.x[1]-t.x[0],y:t.y[0],height:t.y[1]-t.y[0]}),this.scheduleRepaint()}setData(t){this.seriesLineView.setData(t),this.scheduleRepaint()}setUseDarkMode(t){this.renderer.setUseDarkMode(t),this.scheduleRepaint()}scheduleRepaint(){this.shouldRepaint||(this.shouldRepaint=!0,self.requestAnimationFrame((()=>{this.repaint(),this.shouldRepaint=!1})))}repaint(){this.seriesLineView.render(),this.renderer.flush(),this.callbacks.onDrawEnd()}}function Wut(t){if(t.includes("/"))throw new RangeError("Worker factory only allows file name and no resource path.");return new Worker(t)}!(function(t){t[t.SERIES_DATA_UPDATED=0]="SERIES_DATA_UPDATED",t[t.SERIES_METADATA_CHANGED=1]="SERIES_METADATA_CHANGED",t[t.SCALE_UPDATED=2]="SCALE_UPDATED",t[t.VIEW_BOX_UPDATED=3]="VIEW_BOX_UPDATED",t[t.INIT=4]="INIT",t[t.DOM_RESIZED=5]="DOM_RESIZED",t[t.DARK_MODE_UPDATED=6]="DARK_MODE_UPDATED"})(Rut||(Rut={})),(function(t){t[t.ON_REDRAW_END=0]="ON_REDRAW_END"})(Tut||(Tut={}));class Gut{constructor(t){if(this.callbacks=t.callbacks,t.type!==a5.WEBGL)throw new RangeError(`Cannot use non WEBGL renderer for the offscreen line chart. Received ${a5[t.type]} `);const e=new MessageChannel;e.port1.onmessage=t=>{this.onMessageFromWorker(t.data)},this.txMessagePort=e.port1;const n=t.container.transferControlToOffscreen();this.workerInstance=Gut.workerPool.getNext();const o={type:Rut.INIT,canvas:n,devicePixelRatio:window.devicePixelRatio,dim:t.domDimension,rendererType:t.type,useDarkMode:t.useDarkMode};this.workerInstance.postMessage(o,[n,e.port2])}dispose(){this.workerInstance.free(),this.txMessagePort.close()}setXScaleType(t){this.sendMessage({type:Rut.SCALE_UPDATED,axis:"x",scaleType:t})}setYScaleType(t){this.sendMessage({type:Rut.SCALE_UPDATED,axis:"y",scaleType:t})}resize(t){this.sendMessage({type:Rut.DOM_RESIZED,dim:t})}setMetadata(t){this.sendMessage({type:Rut.SERIES_METADATA_CHANGED,metadata:t})}setViewBox(t){this.sendMessage({type:Rut.VIEW_BOX_UPDATED,extent:t})}setData(t){const e=(function n(t){const e=t.reduce(((t,e)=>t+e.points.length),0);let n=0;const o=new Float64Array(2*e),i=[];for(const e of t){i.push({id:e.id,length:e.points.length});for(let t=0;t<e.points.length;t++)o[n++]=e.points[t].x,o[n++]=e.points[t].y}return{idsAndLengths:i,flattenedSeries:o.buffer}})(t);this.sendMessage({type:Rut.SERIES_DATA_UPDATED,compactDataSeries:e},[e.flattenedSeries])}setUseDarkMode(t){this.sendMessage({type:Rut.DARK_MODE_UPDATED,useDarkMode:t})}sendMessage(t,e){e?this.txMessagePort.postMessage(t,e):this.txMessagePort.postMessage(t)}onMessageFromWorker(t){switch(t.type){case Tut.ON_REDRAW_END:this.callbacks.onDrawEnd()}}}function Yut(t,e){return"x"===e?[0,t.width]:[t.height,0]}function qut(t,e){const n=Math.floor(t/50);return Math.min(n,e)}function Zut(t,e){if(1&t&&(Ha(),wu(0,"line",2)),2&t){const t=e.$implicit,n=Lu();af("zero",0===t),Nm("x1",n.getDomX(t))("x2",n.getDomX(t))("y2",n.domDim.height)}}function Xut(t,e){if(1&t&&(Ha(),wu(0,"line",3)),2&t){const t=e.$implicit,n=Lu();af("zero",0===t),Nm("y1",n.getDomY(t))("x2",n.domDim.width)("y2",n.getDomY(t))}}Gut.workerPool=new class{constructor(t,e=10,n=Wut){this.workerResourcePath=t,this.maxPoolSize=e,this.workerFactory=n,this.workers=[]}getNext(){let t;if(this.workers.every((({activeCount:t})=>t>0))&&this.workers.length<this.maxPoolSize){const e=this.workerFactory(this.workerResourcePath);t={activeCount:0,postMessage:(t,n)=>{e.postMessage(t,n)},free:()=>{t.activeCount=Math.max(t.activeCount-1,0)}},this.workers.push(t)}else{const e=this.workers.map((({activeCount:t})=>t)),n=e.indexOf(Math.min(...e));t=this.workers[n]}return t.activeCount++,t}}("chart_worker.js?_file_hash=fc6cd236");class Kut{getDomX(t){return this.xScale.forward(this.viewExtent.x,Yut(this.domDim,"x"),t)}getDomY(t){return this.yScale.forward(this.viewExtent.y,Yut(this.domDim,"y"),t)}getXTicks(){return this.xScale.ticks(this.viewExtent.x,qut(this.domDim.width,this.xGridCount))}getYTicks(){return this.yScale.ticks(this.viewExtent.y,qut(this.domDim.height,this.yGridCount))}}function Jut(t,e,n,o,i,a){let r;switch(t.deltaMode){case WheelEvent.DOM_DELTA_PIXEL:r=1;break;case WheelEvent.DOM_DELTA_LINE:r=8;break;case WheelEvent.DOM_DELTA_PAGE:r=20;break;default:r=1,console.warn(`Unknown WheelEvent deltaMode: ${t.deltaMode}.`)}const s=t.deltaY*r,l=s<0?Math.max(s*o,-.95):s*o,{width:c,height:d}=n,p=[i.reverse(e.x,[0,c],-t.offsetX*l),i.reverse(e.x,[0,c],c+(c-t.offsetX)*l)],m=[a.reverse(e.y,[d,0],-t.offsetY*l),a.reverse(e.y,[d,0],d+(d-t.offsetY)*l)];return{x:p[1]<p[0]?[p[1],p[0]]:p,y:m[1]<m[0]?[m[1],m[0]]:m}}Kut.ɵfac=function t(e){return new(e||Kut)},Kut.ɵcmp=Uo({type:Kut,selectors:[["line-chart-grid-view"]],inputs:{viewExtent:"viewExtent",xScale:"xScale",xGridCount:"xGridCount",yScale:"yScale",yGridCount:"yGridCount",domDim:"domDim"},decls:3,vars:2,consts:[["y1","0",3,"zero",4,"ngFor","ngForOf"],["x1","0",3,"zero",4,"ngFor","ngForOf"],["y1","0"],["x1","0"]],template:function t(e,n){1&e&&(Ha(),Ou(0,"svg"),Wm(1,Zut,1,5,"line",0),Wm(2,Xut,1,5,"line",1),Pu()),2&e&&(Jc(1),vu("ngForOf",n.getXTicks()),Jc(1),vu("ngForOf",n.getYTicks()))},directives:[ov],styles:["[_nghost-%COMP%] {\n        display: flex;\n        overflow: hidden;\n      }\n\n      svg[_ngcontent-%COMP%] {\n        height: 100%;\n        width: 100%;\n      }\n\n      line[_ngcontent-%COMP%] {\n        stroke: #ccc;\n        stroke-width: 1px;\n      }\n\n      .zero[_ngcontent-%COMP%] {\n        stroke: #aaa;\n        stroke-width: 1.5px;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Kut,[{type:h_,args:[{selector:"line-chart-grid-view",template:'<svg>\n    <line\n      *ngFor="let tick of getXTicks()"\n      [class.zero]="tick === 0"\n      [attr.x1]="getDomX(tick)"\n      y1="0"\n      [attr.x2]="getDomX(tick)"\n      [attr.y2]="domDim.height"\n    ></line>\n    <line\n      *ngFor="let tick of getYTicks()"\n      [class.zero]="tick === 0"\n      x1="0"\n      [attr.y1]="getDomY(tick)"\n      [attr.x2]="domDim.width"\n      [attr.y2]="getDomY(tick)"\n    ></line>\n  </svg>',styles:["\n      :host {\n        display: flex;\n        overflow: hidden;\n      }\n\n      svg {\n        height: 100%;\n        width: 100%;\n      }\n\n      line {\n        stroke: #ccc;\n        stroke-width: 1px;\n      }\n\n      .zero {\n        stroke: #aaa;\n        stroke-width: 1.5px;\n      }\n    "],changeDetection:xo.OnPush}]}],null,{viewExtent:[{type:y_}],xScale:[{type:y_}],xGridCount:[{type:y_}],yScale:[{type:y_}],yGridCount:[{type:y_}],domDim:[{type:y_}]}),(function(t){t[t.LEFT=1]="LEFT",t[t.RIGHT=2]="RIGHT",t[t.MIDDLE=4]="MIDDLE",t[t.FOURTH=8]="FOURTH",t[t.FIFTH=32]="FIFTH"})(Nut||(Nut={}));const Qut=["dots"];function $ut(t,e){if(1&t&&(Ha(),wu(0,"circle",12)),2&t){const t=Lu().$implicit,e=Lu(2);Nm("cx",e.getDomX(t.point.x))("cy",e.getDomY(t.point.y))("fill",t.metadata.color)}}function tft(t,e){if(1&t&&(Ha(),ku(0),Wm(1,$ut,1,3,"circle",11),Su()),2&t){const t=e.$implicit,n=Lu(2);Jc(1),vu("ngIf",n.shouldRenderTooltipPoint(t.point))}}function eft(t,e){if(1&t&&(Ha(),ku(0),Wm(1,tft,2,1,"ng-container",10),Su()),2&t){const t=Lu();Jc(1),vu("ngForOf",t.cursoredData)("ngForTrackBy",t.trackBySeriesName)}}function nft(t,e){if(1&t&&(Ha(),wu(0,"rect",13)),2&t){const t=Lu();Nm("x",t.zoomBoxInUiCoordinate.x)("width",t.zoomBoxInUiCoordinate.width)("y",t.zoomBoxInUiCoordinate.y)("height",t.zoomBoxInUiCoordinate.height)}}const oft=function(t,e){return{data:t,cursorLocationInDataCoord:e}};function ift(t,e){if(1&t&&(Ou(0,"div",14),Du(1,15),Pu()),2&t){const t=Lu(),e=Gm(11);Jc(1),vu("ngTemplateOutlet",t.tooltipTemplate?t.tooltipTemplate:e)("ngTemplateOutletContext",hb(2,oft,t.cursoredData,t.cursorLocationInDataCoord))}}function aft(t,e){if(1&t&&(ku(0),Ou(1,"tr",17),Ou(2,"td",18),wu(3,"span"),Pu(),Ou(4,"td",19),Mf(5),Pu(),Ou(6,"td"),Mf(7),Pu(),Ou(8,"td"),Mf(9),Pu(),Pu(),Su()),2&t){const t=e.$implicit;Jc(3),of("background-color",t.metadata.color),Jc(2),vf(t.metadata.displayName),Jc(2),vf(t.point.y),Jc(2),vf(t.point.x)}}function rft(t,e){if(1&t&&(Ou(0,"table"),Ou(1,"thead"),Ou(2,"tr"),wu(3,"th",16),Ou(4,"th"),Mf(5,"Name"),Pu(),Ou(6,"th"),Mf(7,"Y"),Pu(),Ou(8,"th"),Mf(9,"X"),Pu(),Pu(),Pu(),Ou(10,"tbody"),Wm(11,aft,10,5,"ng-container",10),Pu(),Pu()),2&t){const t=e.data,n=Lu();Jc(11),vu("ngForOf",t)("ngForTrackBy",n.trackBySeriesName)}}var sft;function lft(t){return t.scrollStrategies.reposition()}!(function(t){t[t.NONE=0]="NONE",t[t.DRAG_ZOOMING=1]="DRAG_ZOOMING",t[t.SCROLL_ZOOMING=2]="SCROLL_ZOOMING",t[t.PANNING=3]="PANNING"})(sft||(sft={}));class cft{constructor(t,e){this.changeDetector=t,this.scrollStrategy=e,this.onViewExtentChange=new Ab,this.onViewExtentReset=new Ab,this.InteractionState=sft,this.state=sft.NONE,this.specialKeyPressed=!1,this.zoomBoxInUiCoordinate={x:0,width:0,height:0,y:0},this.tooltipPositions=[{offsetY:5,originX:"start",overlayX:"start",originY:"bottom",overlayY:"top"},{offsetY:5,originX:"end",overlayX:"end",originY:"bottom",overlayY:"top"},{offsetY:-15,originX:"start",overlayX:"start",originY:"top",overlayY:"bottom"},{offsetY:-15,originX:"end",overlayX:"end",originY:"top",overlayY:"bottom"},{offsetX:5,originX:"end",overlayX:"start",originY:"top",overlayY:"top"},{offsetX:-5,originX:"start",overlayX:"end",originY:"top",overlayY:"top"}],this.cursorLocationInDataCoord=null,this.cursoredData=[],this.tooltipDisplayAttached=!1,this.showZoomInstruction=!1,this.dragStartCoord=null,this.isCursorInside=!1,this.ngUnsubscribe=new x}ngAfterViewInit(){Vt(this.dotsContainer.nativeElement,"dblclick",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((()=>{this.onViewExtentReset.emit(),this.state=sft.NONE,this.changeDetector.markForCheck()})),Vt(window,"keydown",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>{const e=this.shouldPan(t);e!==this.specialKeyPressed&&(this.specialKeyPressed=e,this.changeDetector.markForCheck())})),Vt(window,"keyup",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>{const e=this.shouldPan(t);e!==this.specialKeyPressed&&(this.specialKeyPressed=e,this.changeDetector.markForCheck())})),Vt(this.dotsContainer.nativeElement,"mousedown",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>{const e=this.state,n=this.shouldPan(t)?sft.PANNING:sft.DRAG_ZOOMING;e===sft.NONE&&n===sft.DRAG_ZOOMING&&(this.dragStartCoord={x:t.offsetX,y:t.offsetY},this.zoomBoxInUiCoordinate={x:t.offsetX,width:0,y:t.offsetY,height:0}),e!==n&&(this.state=n,this.changeDetector.markForCheck())})),Vt(this.dotsContainer.nativeElement,"mouseup",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>{const e=(t.buttons&Nut.LEFT)===Nut.LEFT;this.dragStartCoord=null;const n=this.zoomBoxInUiCoordinate;if(!e&&this.state===sft.DRAG_ZOOMING&&n.width>0&&n.height>0){const t=this.getDataX(n.x),e=this.getDataX(n.x+n.width),o=this.getDataY(n.y+n.height),i=this.getDataY(n.y);this.onViewExtentChange.emit({dataExtent:{x:[t,e],y:[o,i]}})}this.state!==sft.NONE&&(this.state=sft.NONE,this.changeDetector.markForCheck())})),Vt(this.dotsContainer.nativeElement,"mouseenter",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>{this.isCursorInside=!0,this.updateTooltip(t),this.changeDetector.markForCheck()})),Vt(this.dotsContainer.nativeElement,"mouseleave",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>{this.dragStartCoord=null,this.isCursorInside=!1,this.updateTooltip(t),this.state=sft.NONE,this.changeDetector.markForCheck()})),Vt(this.dotsContainer.nativeElement,"mousemove",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>{switch(this.state){case sft.SCROLL_ZOOMING:this.state=sft.NONE,this.updateTooltip(t),this.changeDetector.markForCheck();break;case sft.NONE:this.updateTooltip(t),this.changeDetector.markForCheck();break;case sft.PANNING:{const e=-t.movementX,n=-t.movementY,{width:o,height:i}=this.domDim,a=this.getDataX(e),r=this.getDataX(o+e),s=this.getDataY(i+n),l=this.getDataY(n);this.onViewExtentChange.emit({dataExtent:{x:[a,r],y:[s,l]}});break}case sft.DRAG_ZOOMING:{if(!this.dragStartCoord)break;const e=[this.dragStartCoord.x,t.offsetX],n=[this.dragStartCoord.y,t.offsetY];this.zoomBoxInUiCoordinate={x:Math.min(...e),width:Math.max(...e)-Math.min(...e),y:Math.min(...n),height:Math.max(...n)-Math.min(...n)}}this.changeDetector.markForCheck()}})),Vt(this.dotsContainer.nativeElement,"wheel",{passive:!1}).pipe(un(this.ngUnsubscribe),dn((t=>{const e=!t.ctrlKey&&!t.shiftKey&&t.altKey;return this.showZoomInstruction=!e,this.changeDetector.markForCheck(),e?(t.preventDefault(),Z(t)):Zt(3e3).pipe(_n((()=>{this.showZoomInstruction=!1,this.changeDetector.markForCheck()})),ht((()=>null)))})),Gt((t=>Boolean(t)))).subscribe((t=>{this.onViewExtentChange.emit({dataExtent:Jut(t,this.viewExtent,this.domDim,.01,this.xScale,this.yScale)}),this.state!==sft.SCROLL_ZOOMING&&(this.state=sft.SCROLL_ZOOMING,this.changeDetector.markForCheck())}))}ngOnChanges(){this.updateCursoredDataAndTooltipVisibility()}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}shouldPan(t){const e=t.shiftKey||t.altKey;if(t instanceof KeyboardEvent)return e;const n=(t.buttons&Nut.LEFT)===Nut.LEFT,o=(t.buttons&Nut.MIDDLE)===Nut.MIDDLE;return!(!n&&!o)&&(o&&!n||e)}trackBySeriesName(t,e){return e.id}getDomX(t){return this.xScale.forward(this.viewExtent.x,Yut(this.domDim,"x"),t)}getDataX(t){return this.xScale.reverse(this.viewExtent.x,Yut(this.domDim,"x"),t)}getDomY(t){return this.yScale.forward(this.viewExtent.y,Yut(this.domDim,"y"),t)}getDataY(t){return this.yScale.reverse(this.viewExtent.y,Yut(this.domDim,"y"),t)}shouldRenderTooltipPoint(t){return null!==t&&!isNaN(t.x)&&!isNaN(t.y)}updateTooltip(t){this.cursorLocationInDataCoord={x:this.getDataX(t.offsetX),y:this.getDataY(t.offsetY)},this.updateCursoredDataAndTooltipVisibility()}onTooltipDisplayDetached(){this.tooltipDisplayAttached=!1}updateCursoredDataAndTooltipVisibility(){const t=this.cursorLocationInDataCoord;if(null===t)return this.cursoredData=[],void(this.tooltipDisplayAttached=!1);this.cursoredData=this.isCursorInside?this.seriesData.map((t=>({seriesDatum:t,metadata:this.seriesMetadataMap[t.id]}))).filter((({metadata:t})=>t&&t.visible&&!Boolean(t.aux))).map((({seriesDatum:e,metadata:n})=>{const o=(function i(t,e){const n=Math.min(C5(t.map((({x:t})=>t)),e),t.length-1),o=Math.max(0,n-1);return Math.abs(t[o].x-e)-Math.abs(t[n].x-e)<=0?o:n})(e.points,t.x);return{id:e.id,closestPointIndex:o,point:e.points[o],metadata:n}})).filter((t=>t)):[],this.tooltipDisplayAttached=Boolean(this.cursoredData.length)}}function dft(t,e,n,o){return{major:[],minor:t.ticks(o,n).map((t=>({value:t,tickFormattedString:e.formatTick(t)})))}}function pft(t,e){if(1&t&&(Ha(),Ou(0,"g",17),Ou(1,"text"),Mf(2),Pu(),Ou(3,"title"),Mf(4),Pu(),Pu()),2&t){const t=e.$implicit,n=Lu();Jc(1),Nm("x",n.textXPosition(t.value))("y",n.textYPosition(t.value)),Jc(1),xf(" ",t.tickFormattedString," "),Jc(2),vf(n.getFormatter().formatLong(t.value))}}function mft(t,e){if(1&t&&(Ou(0,"span",20),Ou(1,"span"),Mf(2),Pu(),Pu()),2&t){const t=e.$implicit,n=e.index,o=e.last,i=Lu(2);of("left",i.getMajorXPosition(t)+"px")("width",i.getMajorWidthString(t,o,i.majorTicks[n+1]))("bottom",i.getMajorYPosition(t)+"px")("height",i.getMajorHeightString(t,o,i.majorTicks[n+1])),af("major-label",!0)("last",o),vu("title",i.getFormatter().formatLong(t.start)),Jc(2),vf(t.tickFormattedString)}}function uft(t,e){if(1&t&&(Ou(0,"div",18),Wm(1,mft,3,14,"span",19),Pu()),2&t){const t=Lu();Jc(1),vu("ngForOf",t.majorTicks)("ngForTrackBy",t.trackByMajorTick)}}cft.ɵfac=function t(e){return new(e||cft)(Mu(Hh),Mu(wF))},cft.ɵcmp=Uo({type:cft,selectors:[["line-chart-interactive-view"]],viewQuery:function t(e,n){if(1&e&&(Wb(Qut,3,ch),Wb(eL,1)),2&e){let t;Ub(t=Yb())&&(n.dotsContainer=t.first),Ub(t=Yb())&&(n.overlay=t.first)}},hostVars:2,hostBindings:function t(e,n){2&e&&af("show-zoom-instruction",n.showZoomInstruction)},inputs:{seriesData:"seriesData",seriesMetadataMap:"seriesMetadataMap",viewExtent:"viewExtent",xScale:"xScale",yScale:"yScale",domDim:"domDim",tooltipOriginEl:"tooltipOriginEl",tooltipTemplate:"tooltipTemplate"},outputs:{onViewExtentChange:"onViewExtentChange",onViewExtentReset:"onViewExtentReset"},features:[ih([{provide:wF,useFactory:lft,deps:[JF]}]),Si],decls:12,vars:15,consts:[[1,"dots"],["dots",""],[4,"ngIf"],["class","zoom-box",4,"ngIf"],[1,"zoom-instruction"],[1,"instruction-content"],["cdkOverlayOrigin","",1,"tooltip-origin"],["tooltipOrigin","cdkOverlayOrigin"],["cdkConnectedOverlay","",3,"cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayLockPosition","cdkConnectedOverlayFlexibleDimensions","cdkConnectedOverlayGrowAfterOpen","detach"],["defaultTooltip",""],[4,"ngFor","ngForOf","ngForTrackBy"],["r","4",4,"ngIf"],["r","4"],[1,"zoom-box"],[1,"tooltip-container"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"circle-header"],[1,"tooltip-row"],[1,"tooltip-row-circle"],[1,"name"]],template:function t(e,n){1&e&&(Ha(),Ou(0,"svg",0,1),Wm(2,eft,2,2,"ng-container",2),Wm(3,nft,1,4,"rect",3),Pu(),Fa(),Ou(4,"div",4),Ou(5,"span",5),Mf(6,"Alt + Scroll to Zoom"),Pu(),Pu(),wu(7,"div",6,7),Wm(9,ift,2,5,"ng-template",8),Nu("detach",(function t(){return n.onTooltipDisplayDetached()})),Wm(10,rft,12,2,"ng-template",null,9,Kb)),2&e&&(af("pannable",n.specialKeyPressed)("draggable",n.state===n.InteractionState.NONE||n.state===n.InteractionState.DRAG_ZOOMING)("panning",n.state===n.InteractionState.PANNING),Jc(2),vu("ngIf",n.state===n.InteractionState.NONE),Jc(1),vu("ngIf",n.state===n.InteractionState.DRAG_ZOOMING),Jc(6),vu("cdkConnectedOverlayOrigin",n.tooltipOriginEl)("cdkConnectedOverlayOpen",n.tooltipDisplayAttached&&n.state===n.InteractionState.NONE)("cdkConnectedOverlayPositions",n.tooltipPositions)("cdkConnectedOverlayScrollStrategy",n.scrollStrategy)("cdkConnectedOverlayLockPosition",!1)("cdkConnectedOverlayFlexibleDimensions",!0)("cdkConnectedOverlayGrowAfterOpen",!0))},directives:[av,tL,eL,ov,hv],styles:["[_nghost-%COMP%]{display:flex;position:relative;user-select:none}.dots[_ngcontent-%COMP%]{height:100%;width:100%}.dots.draggable[_ngcontent-%COMP%]{cursor:crosshair}.dots.pannable[_ngcontent-%COMP%]{cursor:grab}.dots.panning[_ngcontent-%COMP%]{cursor:grabbing}.tooltip-row-circle[_ngcontent-%COMP%]{align-items:center;display:inline-flex;height:12px;width:12px}.tooltip-row-circle[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{border-radius:50%;border:1px solid rgba(255,255,255,.6);display:inline-block;height:10px;width:10px}.tooltip-origin[_ngcontent-%COMP%]{bottom:0;left:0;position:absolute;right:0}.tooltip-container[_ngcontent-%COMP%]{background:rgba(0,0,0,.85);border-radius:4px;color:#fff;contain:paint style layout;font-size:.9em;overflow:auto;padding:5px;pointer-events:none;width:100%}th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{padding:2px 5px;text-align:left}th[_ngcontent-%COMP%]{font-weight:500;padding-bottom:5px}.zoom-box[_ngcontent-%COMP%]{fill-opacity:.03;fill:#000;stroke:#ccc}.zoom-instruction[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:10px;transition:opacity .5s}.instruction-content[_ngcontent-%COMP%]{background:rgba(0,0,0,.6);border-radius:5px;color:#fff;padding:5px 10px;user-select:none}.show-zoom-instruction[_nghost-%COMP%]   .zoom-instruction[_ngcontent-%COMP%]{opacity:1}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(cft,[{type:h_,args:[{selector:"line-chart-interactive-view",templateUrl:"./line_chart_interactive_view.ng.html",styleUrls:["./line_chart_interactive_view.css"],changeDetection:xo.OnPush,providers:[{provide:wF,useFactory:lft,deps:[JF]}]}]}],(function(){return[{type:Hh},{type:wF}]}),{dotsContainer:[{type:Fr,args:["dots",{static:!0,read:ch}]}],overlay:[{type:Fr,args:[eL]}],seriesData:[{type:y_}],seriesMetadataMap:[{type:y_}],viewExtent:[{type:y_}],xScale:[{type:y_}],yScale:[{type:y_}],domDim:[{type:y_}],tooltipOriginEl:[{type:y_}],tooltipTemplate:[{type:y_}],onViewExtentChange:[{type:__}],onViewExtentReset:[{type:__}],showZoomInstruction:[{type:C_,args:["class.show-zoom-instruction"]}]});class fft{constructor(){this.onViewExtentChange=new Ab,this.editMenuOpened=!1,this.majorTicks=[],this.minorTicks=[]}ngOnChanges(){let t=null;const e=qut("x"===this.axis?this.domDim.width:this.domDim.height,this.gridCount);t=this.scale instanceof oit?(function n(t,e,o,i){const[a,r]=i,s=Math.abs(r-a);if(s>.001)return dft(t,e,o,i);const l=t.ticks([a,r],o),c=t.ticks([a,r],2),d=[];let p=(function m(t){const e=t.toExponential().split("e-",2);return 2===e.length?Number(e[1])-1:0})(s);s<1&&c.every((t=>{const e=Math.abs(t);return e>=0&&e<1}))&&(p+=1);const u=new Map;for(const t of c){const[n,o=""]=String(t).split(".",2),i=Number(n+"."+o.slice(0,p));u.set(i,{start:i,tickFormattedString:0===i?"—":e.formatReadable(i)})}const f=10*Math.pow(10,-p);for(const t of l)for(const n of[...u.keys()].reverse()){const o=t-n;if(o>=0&&o<f){if(0===n)d.push({value:t,tickFormattedString:e.formatTick(t)});else{const e=String(t).slice(String(n).length);d.push({value:t,tickFormattedString:`…${e||"0"}`})}break}}return{major:Array.from(u.values()),minor:d}})(this.scale,this.getFormatter(),e,this.axisExtent):this.scale instanceof ait?(function o(t,e,n,i){const[a,r]=i;let s=t.ticks(i,2);if(r-a>=864e5||s.length>2)return dft(t,e,n,i);const l=t.ticks(i,n);return{major:s.map((t=>({start:t,tickFormattedString:e.formatShort(t)}))),minor:l.map((t=>({value:t,tickFormattedString:e.formatTick(t)})))}})(this.scale,this.getFormatter(),e,this.axisExtent):dft(this.scale,this.getFormatter(),e,this.axisExtent),this.majorTicks=t.major,this.minorTicks=t.minor}getFormatter(){var t;return null!==(t=this.customFormatter)&&void 0!==t?t:this.scale.defaultFormatter}trackByMinorTick(t){return t.value}trackByMajorTick(t){return t.start}getDomPos(t){return this.scale.forward(this.axisExtent,Yut(this.domDim,this.axis),t)}textXPosition(t){return"x"===this.axis?String(this.getDomPos(t)):"100%"}textYPosition(t){return"x"===this.axis?"":String(this.getDomPos(t))}getMajorXPosition(t){return"y"===this.axis?0:Math.min(this.domDim.width,Math.max(0,this.getDomPos(t.start)))}getMajorWidthString(t,e,n){return"y"===this.axis?"":(e||!n?this.domDim.width:this.getMajorXPosition(n))-this.getMajorXPosition(t)+"px"}getMajorYPosition(t){return"x"===this.axis?0:this.domDim.height-Math.min(this.domDim.height,Math.max(0,this.getDomPos(t.start)))}getMajorHeightString(t,e,n){return"x"===this.axis?"":(e||!n?this.domDim.height:this.getMajorYPosition(n))-this.getMajorYPosition(t)+"px"}keydownPreventClose(t){"Escape"!==t.key&&t.stopPropagation()}extentChanged(t,e){let n=Number(t),o=Number(e);if(o<n){const t=n;n=o,o=t}Number.isFinite(n)&&Number.isFinite(o)&&this.onViewExtentChange.emit([n,o])}onAxisUpdateMenuOpen(t,e,n){t.value=String(n[0]),e.value=String(n[1]),t.focus()}setEditMenuOpened(t){this.editMenuOpened=t}}fft.ɵfac=function t(e){return new(e||fft)},fft.ɵcmp=Uo({type:fft,selectors:[["line-chart-axis"]],inputs:{axisExtent:"axisExtent",axis:"axis",scale:"scale",gridCount:"gridCount",domDim:"domDim",customFormatter:"customFormatter"},outputs:{onViewExtentChange:"onViewExtentChange"},features:[Si],decls:26,vars:13,consts:[[1,"line"],[1,"minor"],[1,"ticks"],["class","minor-tick-label",4,"ngFor","ngForOf","ngForTrackBy"],["mat-icon-button","","title","Click to manually set min & max values",3,"matMenuTriggerFor","menuOpened","menuClosed"],["matMenuTrigger","matMenuTrigger"],["svgIcon","edit_24px"],["class","major ticks",4,"ngIf"],["xPosition","before",3,"yPosition"],["manualControl","matMenu"],[1,"extent-edit-input",3,"click","keydown"],["type","number",3,"value"],["minInput",""],["maxInput",""],[1,"extent-edit-control",3,"keydown"],["mat-raised-button","","color","primary",1,"extent-edit-change",3,"click"],["mat-stroked-button","",1,"extent-edit-cancel",3,"click"],[1,"minor-tick-label"],[1,"major","ticks"],[3,"major-label","last","left","width","bottom","height","title",4,"ngFor","ngForOf","ngForTrackBy"],[3,"title"]],template:function t(e,n){if(1&e){const t=Eu();Ou(0,"div"),wu(1,"div",0),Ou(2,"div",1),Ha(),Ou(3,"svg",2),Wm(4,pft,5,4,"g",3),Pu(),Fa(),Ou(5,"button",4,5),Nu("menuOpened",(function e(){ra(t);const o=Gm(15),i=Gm(20);return n.onAxisUpdateMenuOpen(o,i,n.axisExtent),n.setEditMenuOpened(!0)}))("menuClosed",(function t(){return n.setEditMenuOpened(!1)})),wu(7,"mat-icon",6),Pu(),Pu(),Wm(8,uft,2,2,"div",7),Pu(),Ou(9,"mat-menu",8,9),Ou(11,"div",10),Nu("click",(function t(e){return e.stopPropagation()}))("keydown",(function t(e){return n.keydownPreventClose(e)})),Ou(12,"label"),Mf(13,"min"),Pu(),wu(14,"input",11,12),Pu(),Ou(16,"div",10),Nu("click",(function t(e){return e.stopPropagation()}))("keydown",(function t(e){return n.keydownPreventClose(e)})),Ou(17,"label"),Mf(18,"max"),Pu(),wu(19,"input",11,13),Pu(),Ou(21,"div",14),Nu("keydown",(function t(e){return n.keydownPreventClose(e)})),Ou(22,"button",15),Nu("click",(function e(){ra(t);const o=Gm(15),i=Gm(20),a=Gm(6);return n.extentChanged(o.value,i.value),a.closeMenu()})),Mf(23," Change "),Pu(),Ou(24,"button",16),Nu("click",(function e(){return ra(t),Gm(6).closeMenu()})),Mf(25," Cancel "),Pu(),Pu(),Pu()}if(2&e){const t=Gm(10);lf(n.axis+"-axis axis"),Jc(4),vu("ngForOf",n.minorTicks)("ngForTrackBy",n.trackByMinorTick),Jc(1),af("extent-edit-button",!0)("extent-edit-menu-opened",n.editMenuOpened),vu("matMenuTriggerFor",t),Jc(3),vu("ngIf",n.majorTicks.length),Jc(1),vu("yPosition","y"===n.axis?"above":"below"),Jc(5),vu("value",n.axisExtent[0]),Jc(5),vu("value",n.axisExtent[1])}},directives:[ov,NH,NG,cG,av,DG],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{contain:strict;display:flex;overflow:hidden}.major-label[_ngcontent-%COMP%], text[_ngcontent-%COMP%]{fill:currentColor;font-size:11px;user-select:none}.axis[_ngcontent-%COMP%]{display:flex;height:100%;width:100%}.major[_ngcontent-%COMP%], .minor[_ngcontent-%COMP%]{flex:1 0;overflow:hidden}.line[_ngcontent-%COMP%]{background-color:#aaa;flex:0 0 1px;justify-content:stretch}.ticks[_ngcontent-%COMP%]{height:100%;position:relative;width:100%}.x-axis[_ngcontent-%COMP%]{flex-direction:column}.x-axis[_ngcontent-%COMP%]   .line[_ngcontent-%COMP%]{margin-bottom:3px}.x-axis[_ngcontent-%COMP%]   text[_ngcontent-%COMP%]{dominant-baseline:text-before-edge;text-anchor:middle}.x-axis[_ngcontent-%COMP%]   .ticks[_ngcontent-%COMP%]{-webkit-mask-image:linear-gradient(to right, #0000 0%, #000 10%, #000 90%, #0000 100%);mask-image:linear-gradient(to right, #0000 0%, #000 10%, #000 90%, #0000 100%)}.y-axis[_ngcontent-%COMP%]{flex-direction:row-reverse}.y-axis[_ngcontent-%COMP%]   .line[_ngcontent-%COMP%]{margin-left:5px}.y-axis[_ngcontent-%COMP%]   text[_ngcontent-%COMP%]{dominant-baseline:central;text-anchor:end}.y-axis[_ngcontent-%COMP%]   .ticks[_ngcontent-%COMP%]{-webkit-mask-image:linear-gradient(to bottom, #0000 0%, #000 10%, #000 90%, #0000 100%);mask-image:linear-gradient(to bottom, #0000 0%, #000 10%, #000 90%, #0000 100%)}.extent-edit-button[_ngcontent-%COMP%]{background-color:#eee;display:none;font-size:0;height:24px;line-height:24px;position:absolute;right:5px;top:5px;width:24px}.extent-edit-button[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{height:16px;width:16px;line-height:16px}.extent-edit-input[_ngcontent-%COMP%]{align-items:center;column-gap:5px;display:grid;font-size:12px;grid-template-columns:30px minmax(auto, 100px);height:30px;margin:10px 20px}.extent-edit-input[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]{background-color:inherit;border-radius:4px;border-style:solid;color:inherit}.extent-edit-control[_ngcontent-%COMP%]{align-items:center;display:flex;flex-direction:row-reverse;justify-content:flex-end;margin:10px 20px}.extent-edit-control[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{font-size:12px;height:30px;line-height:1.4;margin-left:5px;padding:0 10px}.axis[_ngcontent-%COMP%]:hover   .extent-edit-button[_ngcontent-%COMP%], .extent-edit-menu-opened[_ngcontent-%COMP%]{display:initial}.major[_ngcontent-%COMP%]{position:relative;overflow:hidden;contain:strict}.major[_ngcontent-%COMP%]   .major-label[_ngcontent-%COMP%]{align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;overflow:hidden;position:absolute;white-space:nowrap}.major[_ngcontent-%COMP%]   .major-label[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{max-width:100%}.x-axis[_ngcontent-%COMP%]   .major-label[_ngcontent-%COMP%]{border-left:1px solid #9e9e9e;padding:0 5px}.x-axis[_ngcontent-%COMP%]   .major-label.last[_ngcontent-%COMP%]{border-right:1px solid #9e9e9e}.y-axis[_ngcontent-%COMP%]   .major-label[_ngcontent-%COMP%]{border-bottom:1px solid #9e9e9e;height:100%;padding:5px 0;width:100%}.y-axis[_ngcontent-%COMP%]   .major-label.last[_ngcontent-%COMP%]{border-top:1px solid #9e9e9e}.y-axis[_ngcontent-%COMP%]   .major-label[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{transform:rotate(-90deg);transform-origin:center}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fft,[{type:h_,args:[{selector:"line-chart-axis",templateUrl:"line_chart_axis_view.ng.html",styleUrls:["line_chart_axis_view.css"],changeDetection:xo.OnPush}]}],null,{axisExtent:[{type:y_}],axis:[{type:y_}],scale:[{type:y_}],gridCount:[{type:y_}],domDim:[{type:y_}],customFormatter:[{type:y_}],onViewExtentChange:[{type:__}]});const gft=["seriesView"],hft=["xAxis"],bft=["yAxis"],yft=["chartEl"];function _ft(t,e){1&t&&(Ha(),wu(0,"svg",null,13))}function Cft(t,e){1&t&&wu(0,"canvas",null,13)}const Mft=function(t){return{container:!0,"dark-mode":t}},vft={x:[0,1],y:[0,1]};class xft{constructor(t){this.changeDetector=t,this.RendererType=a5,this.useDarkMode=!1,this.preferredRendererType=a5.WEBGL,this.xScaleType=r5.LINEAR,this.yScaleType=r5.LINEAR,this.onViewBoxOverridden=new nt(1),this.ignoreYOutliers=!1,this.Y_GRID_COUNT=6,this.X_GRID_COUNT=10,this.xScale=nit(this.xScaleType),this.yScale=nit(this.xScaleType),this.viewBox=vft,this.domDimensions={main:{width:0,height:0},xAxis:{width:0,height:0},yAxis:{width:0,height:0}},this.isDataUpdated=!1,this.isMetadataUpdated=!1,this.isFixedViewBoxUpdated=!1,this.isViewBoxOverridden=!1,this.useDarkModeUpdated=!1,this.isViewBoxChanged=!0,this.scaleUpdated=!0}ngOnInit(){this.onViewBoxOverridden.next(this.isViewBoxOverridden)}ngOnChanges(t){t.xScaleType&&(this.xScale=nit(this.xScaleType),this.scaleUpdated=!0),t.yScaleType&&(this.yScale=nit(this.yScaleType),this.scaleUpdated=!0),t.seriesData&&(this.isDataUpdated=!0),t.fixedViewBox&&(this.isFixedViewBoxUpdated=!0),t.seriesMetadataMap&&(this.isMetadataUpdated=!0),t.useDarkMode&&(this.useDarkModeUpdated=!0),this.scaleUpdated&&this.setIsViewBoxOverridden(!1),this.isViewBoxChanged=this.isViewBoxChanged||this.scaleUpdated||!this.isViewBoxOverridden&&this.shouldUpdateDefaultViewBox(t),this.updateLineChart()}ngAfterViewInit(){this.initializeChart(),this.updateLineChart(),this.changeDetector.detectChanges()}onViewResize(){this.lineChart&&(this.readAndUpdateDomDimensions(),this.lineChart.resize(this.domDimensions.main),this.changeDetector.detectChanges())}shouldUpdateDefaultViewBox(t){if(t.xScaleType||t.yScaleType||t.ignoreYOutliers)return!0;if(t.seriesData)return!0;const e=t.seriesMetadataMap;if(e){const t=e.previousValue;if(Object.keys(this.seriesMetadataMap).length!==Object.keys(null!=t?t:{}).length)return!0;for(const[e,n]of Object.entries(this.seriesMetadataMap)){const o=t&&t[e];if(!o||n.visible!==o.visible)return!0}}return!1}initializeChart(){if(this.lineChart)throw new Error("LineChart should not be initialized multiple times.");const t=this.getRendererType(),e={onDrawEnd:()=>{}};let n=null;switch(this.readAndUpdateDomDimensions(),t){case a5.SVG:n={type:a5.SVG,container:this.chartEl.nativeElement,callbacks:e,domDimension:this.domDimensions.main,useDarkMode:this.useDarkMode};break;case a5.WEBGL:n={type:a5.WEBGL,container:this.chartEl.nativeElement,devicePixelRatio:window.devicePixelRatio,callbacks:e,domDimension:this.domDimensions.main,useDarkMode:this.useDarkMode};break;default:throw new Error(`<line-chart> does not yet support rendererType: ${t}`)}const o=t!==a5.SVG&&sit();this.lineChart=new(o?Gut:Uut)(n)}ngOnDestroy(){this.lineChart&&this.lineChart.dispose()}getRendererType(){return(function t(e){switch(e){case a5.SVG:return a5.SVG;case a5.WEBGL:return(function n(){return rit})()?a5.WEBGL:a5.SVG;default:throw new Error(`Unknown rendererType: ${e}`)}})(this.preferredRendererType)}readAndUpdateDomDimensions(){this.domDimensions={main:{width:this.seriesView.nativeElement.clientWidth,height:this.seriesView.nativeElement.clientHeight},xAxis:{width:this.xAxis.nativeElement.clientWidth,height:this.xAxis.nativeElement.clientHeight},yAxis:{width:this.yAxis.nativeElement.clientWidth,height:this.yAxis.nativeElement.clientHeight}}}updateLineChart(){var t,e;if(this.lineChart&&!this.disableUpdate){if(this.scaleUpdated&&(this.scaleUpdated=!1,this.lineChart.setXScaleType(this.xScaleType),this.lineChart.setYScaleType(this.yScaleType)),this.isMetadataUpdated&&(this.isMetadataUpdated=!1,this.lineChart.setMetadata(this.seriesMetadataMap)),this.isDataUpdated&&(this.isDataUpdated=!1,this.lineChart.setData(this.seriesData)),this.useDarkModeUpdated&&(this.useDarkModeUpdated=!1,this.lineChart.setUseDarkMode(this.useDarkMode)),this.isFixedViewBoxUpdated&&this.fixedViewBox)this.viewBox=this.fixedViewBox;else if(!this.isViewBoxOverridden&&this.isViewBoxChanged){const n=(function n(t,e,o,i,a){let r=null,s=null,l=[];for(const{id:n,points:o}of t){const t=e[n];if(t&&!t.aux&&t.visible)for(let t=0;t<o.length;t++){const{x:e,y:n}=o[t];i(e)&&(r=null===r||e<r?e:r,s=null===s||e>s?e:s),a(n)&&l.push(n)}}l.sort(y5);let c=l[0],d=l[l.length-1];return o&&l.length>2&&(c=l[Math.ceil(.05*(l.length-1))],d=l[Math.floor(.95*(l.length-1))]),{x:null!==r&&null!==s?[r,s]:void 0,y:void 0!==c&&void 0!==d?[c,d]:void 0}})(this.seriesData,this.seriesMetadataMap,this.ignoreYOutliers,this.xScale.isSafeNumber,this.yScale.isSafeNumber);this.viewBox={x:this.xScale.niceDomain(null!==(t=n.x)&&void 0!==t?t:vft.x),y:this.yScale.niceDomain(null!==(e=n.y)&&void 0!==e?e:vft.y)}}(this.isFixedViewBoxUpdated||this.isViewBoxChanged)&&(this.isFixedViewBoxUpdated=!1,this.isViewBoxChanged=!1,this.lineChart.setViewBox(this.viewBox))}}onViewBoxChanged({dataExtent:t}){this.setIsViewBoxOverridden(!0),this.isViewBoxChanged=!0,this.viewBox=t,this.updateLineChart()}viewBoxReset(){this.setIsViewBoxOverridden(!1),this.isViewBoxChanged=!0,this.updateLineChart()}setIsViewBoxOverridden(t){const e=this.isViewBoxOverridden;this.isViewBoxOverridden=t,e!==t&&this.onViewBoxOverridden.next(t)}getIsViewBoxOverridden(){return this.onViewBoxOverridden}onViewBoxChangedFromAxis(t,e){const n=Object.assign(Object.assign({},this.viewBox),{[e]:t});this.onViewBoxChanged({dataExtent:n})}}function Oft(t,e){1&t&&wu(0,"mat-spinner",19)}function Pft(t,e){if(1&t){const t=Eu();ku(0),Ou(1,"line-chart",20),Nu("onViewBoxOverridden",(function e(n){return ra(t),Lu().isViewBoxOverridden=n})),Pu(),Su()}if(2&t){const t=Lu(),e=Gm(27);Jc(1),vu("disableUpdate",!t.isCardVisible)("preferredRendererType",t.RendererType.WEBGL)("seriesData",t.dataSeries)("seriesMetadataMap",t.chartMetadataMap)("xScaleType",t.xScaleType)("yScaleType",t.yScaleType)("customXFormatter",t.getCustomXFormatter())("ignoreYOutliers",t.ignoreOutliers)("tooltipTemplate",e)("useDarkMode",t.useDarkMode)}}function wft(t,e){1&t&&(Ou(0,"th"),Mf(1,"Smoothed"),Pu())}function kft(t,e){1&t&&(Ou(0,"th"),Mf(1,"Relative"),Pu())}function Sft(t,e){if(1&t&&(Ou(0,"td"),Mf(1),Pu()),2&t){const t=Lu().$implicit,e=Lu(2);Jc(1),xf(" ",e.valueFormatter.formatShort(t.point.y)," ")}}function Dft(t,e){if(1&t&&(Ou(0,"td"),Mf(1),Pu()),2&t){const t=Lu().$implicit,e=Lu(2);Jc(1),xf(" ",e.relativeXFormatter.formatReadable(t.point.x)," ")}}function Eft(t,e){if(1&t&&(ku(0),Ou(1,"tr",24),Ou(2,"td",25),wu(3,"span"),Pu(),Ou(4,"td",26),Mf(5),Pu(),Wm(6,Sft,2,1,"td",17),Ou(7,"td"),Mf(8),Pu(),Ou(9,"td"),Mf(10),Pu(),Ou(11,"td"),Mf(12),Ob(13,"date"),Pu(),Wm(14,Dft,2,1,"td",17),Pu(),Su()),2&t){const t=e.$implicit,n=Lu(2);Jc(1),af("closest",t.metadata.closest),Jc(2),of("background-color",t.metadata.color),Jc(2),vf(t.metadata.displayName),Jc(1),vu("ngIf",n.smoothingEnabled),Jc(2),vf(n.valueFormatter.formatShort(t.point.value)),Jc(2),vf(n.stepFormatter.formatShort(t.point.step)),Jc(2),vf(wb(13,10,t.point.wallTime,"short")),Jc(2),vu("ngIf",n.xAxisType===n.XAxisType.RELATIVE)}}function Aft(t,e){if(1&t&&(Ou(0,"table",21),Ou(1,"thead"),Ou(2,"tr"),wu(3,"th",22),Ou(4,"th"),Mf(5,"Run"),Pu(),Wm(6,wft,2,0,"th",17),Ou(7,"th"),Mf(8,"Value"),Pu(),Ou(9,"th"),Mf(10,"Step"),Pu(),Ou(11,"th"),Mf(12,"Time"),Pu(),Wm(13,kft,2,0,"th",17),Pu(),Pu(),Ou(14,"tbody"),Wm(15,Eft,15,13,"ng-container",23),Pu(),Pu()),2&t){const t=e.data,n=e.cursorLocationInDataCoord,o=Lu();Jc(6),vu("ngIf",o.smoothingEnabled),Jc(7),vu("ngIf",o.xAxisType===o.XAxisType.RELATIVE),Jc(2),vu("ngForOf",o.getCursorAwareTooltipData(t,n))("ngForTrackBy",o.trackByTooltipDatum)}}xft.ɵfac=function t(e){return new(e||xft)(Mu(Hh))},xft.ɵcmp=Uo({type:xft,selectors:[["line-chart"]],viewQuery:function t(e,n){if(1&e&&(Wb(gft,3,ch),Wb(hft,3,ch),Wb(bft,3,ch),Wb(yft,1,ch)),2&e){let t;Ub(t=Yb())&&(n.seriesView=t.first),Ub(t=Yb())&&(n.xAxis=t.first),Ub(t=Yb())&&(n.yAxis=t.first),Ub(t=Yb())&&(n.chartEl=t.first)}},inputs:{useDarkMode:"useDarkMode",preferredRendererType:"preferredRendererType",seriesData:"seriesData",fixedViewBox:"fixedViewBox",seriesMetadataMap:"seriesMetadataMap",xScaleType:"xScaleType",yScaleType:"yScaleType",customXFormatter:"customXFormatter",customYFormatter:"customYFormatter",tooltipTemplate:"tooltipTemplate",disableUpdate:"disableUpdate",ignoreYOutliers:"ignoreYOutliers"},features:[Si],decls:14,vars:30,consts:[["detectResize","","cdkOverlayOrigin","",3,"ngClass","resizeEventDebouncePeriodInMs","onResize"],["overlayTarget","cdkOverlayOrigin"],[1,"series-view"],["seriesView",""],[3,"viewExtent","xScale","yScale","xGridCount","yGridCount","domDim"],[4,"ngIf"],[3,"seriesData","seriesMetadataMap","viewExtent","xScale","yScale","tooltipOriginEl","domDim","tooltipTemplate","onViewExtentChange","onViewExtentReset"],["axis","y",1,"y-axis",3,"axisExtent","customFormatter","domDim","gridCount","scale","onViewExtentChange"],["yAxis",""],["axis","x",1,"x-axis",3,"axisExtent","customFormatter","domDim","gridCount","scale","onViewExtentChange"],["xAxis",""],[1,"dot"],[1,"rect"],["chartEl",""]],template:function t(e,n){if(1&e&&(Ou(0,"div",0,1),Nu("onResize",(function t(){return n.onViewResize()})),Ou(2,"div",2,3),wu(4,"line-chart-grid-view",4),Wm(5,_ft,2,0,"svg",5),Wm(6,Cft,2,0,"canvas",5),Ou(7,"line-chart-interactive-view",6),Nu("onViewExtentChange",(function t(e){return n.onViewBoxChanged(e)}))("onViewExtentReset",(function t(){return n.viewBoxReset()})),Pu(),Pu(),Ou(8,"line-chart-axis",7,8),Nu("onViewExtentChange",(function t(e){return n.onViewBoxChangedFromAxis(e,"y")})),Pu(),Ou(10,"line-chart-axis",9,10),Nu("onViewExtentChange",(function t(e){return n.onViewBoxChangedFromAxis(e,"x")})),Pu(),Ou(12,"div",11),wu(13,"span",12),Pu(),Pu()),2&e){const t=Gm(1);vu("ngClass",gb(28,Mft,n.useDarkMode))("resizeEventDebouncePeriodInMs",0),Jc(4),vu("viewExtent",n.viewBox)("xScale",n.xScale)("yScale",n.yScale)("xGridCount",n.X_GRID_COUNT)("yGridCount",n.Y_GRID_COUNT)("domDim",n.domDimensions.main),Jc(1),vu("ngIf",n.getRendererType()===n.RendererType.SVG),Jc(1),vu("ngIf",n.getRendererType()===n.RendererType.WEBGL),Jc(1),vu("seriesData",n.seriesData)("seriesMetadataMap",n.seriesMetadataMap)("viewExtent",n.viewBox)("xScale",n.xScale)("yScale",n.yScale)("tooltipOriginEl",t)("domDim",n.domDimensions.main)("tooltipTemplate",n.tooltipTemplate),Jc(1),vu("axisExtent",n.viewBox.y)("customFormatter",n.customYFormatter)("domDim",n.domDimensions.yAxis)("gridCount",n.Y_GRID_COUNT)("scale",n.yScale),Jc(2),vu("axisExtent",n.viewBox.x)("customFormatter",n.customXFormatter)("domDim",n.domDimensions.xAxis)("gridCount",n.X_GRID_COUNT)("scale",n.xScale)}},directives:[qK,tL,tv,Kut,av,cft,fft],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{contain:strict;display:inline-block}.container[_ngcontent-%COMP%]{background:inherit;display:grid;height:100%;overflow:hidden;width:100%;grid-template-areas:"yaxis series" "dot xaxis";grid-template-columns:50px 1fr;grid-auto-rows:1fr 30px}.container.dark-mode[_ngcontent-%COMP%]{color:#fff}.series-view[_ngcontent-%COMP%]{grid-area:series;position:relative;overflow:hidden}.series-view[_ngcontent-%COMP%]   canvas[_ngcontent-%COMP%], .series-view[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%], .series-view[_ngcontent-%COMP%]   line-chart-grid-view[_ngcontent-%COMP%], .series-view[_ngcontent-%COMP%]   line-chart-interactive-view[_ngcontent-%COMP%]{height:100%;left:0;position:absolute;top:0;width:100%}.x-axis[_ngcontent-%COMP%]{grid-area:xaxis}.y-axis[_ngcontent-%COMP%]{grid-area:yaxis}.dot[_ngcontent-%COMP%]{align-items:flex-start;display:flex;grid-area:dot;justify-content:flex-end}.dot[_ngcontent-%COMP%]   .rect[_ngcontent-%COMP%]{height:1px;width:1px;background-color:#aaa}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(xft,[{type:h_,args:[{selector:"line-chart",templateUrl:"line_chart_component.ng.html",styleUrls:["line_chart_component.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:Hh}]}),{seriesView:[{type:Fr,args:["seriesView",{static:!0,read:ch}]}],xAxis:[{type:Fr,args:["xAxis",{static:!0,read:ch}]}],yAxis:[{type:Fr,args:["yAxis",{static:!0,read:ch}]}],chartEl:[{type:Fr,args:["chartEl",{static:!1,read:ch}]}],useDarkMode:[{type:y_}],preferredRendererType:[{type:y_}],seriesData:[{type:y_}],fixedViewBox:[{type:y_}],seriesMetadataMap:[{type:y_}],xScaleType:[{type:y_}],yScaleType:[{type:y_}],customXFormatter:[{type:y_}],customYFormatter:[{type:y_}],tooltipTemplate:[{type:y_}],disableUpdate:[{type:y_}],ignoreYOutliers:[{type:y_}]});class Rft{constructor(t,e){this.ref=t,this.dialog=e,this.DataLoadState=BE,this.RendererType=a5,this.ScaleType=r5,this.XAxisType=cR,this.onFullSizeToggle=new Ab,this.onPinClicked=new Ab,this.yScaleType=r5.LINEAR,this.relativeXFormatter=Qot,this.valueFormatter=jot,this.stepFormatter=Yot}toggleYScaleType(){this.yScaleType=this.yScaleType===r5.LINEAR?r5.LOG10:r5.LINEAR}resetDomain(){this.lineChart&&this.lineChart.viewBoxReset()}trackByTooltipDatum(t,e){return e.id}getCustomXFormatter(){switch(this.xAxisType){case cR.RELATIVE:return Qot;case cR.STEP:return Yot;case cR.WALL_TIME:default:return}}getCursorAwareTooltipData(t,e){const n=t.map((t=>Object.assign(Object.assign({},t),{metadata:Object.assign(Object.assign({},t.metadata),{closest:!1,distSqToCursor:Math.hypot(t.point.x-e.x,t.point.y-e.y)})})));let o=1/0,i=0;for(let t=0;t<n.length;t++)o>n[t].metadata.distSqToCursor&&(o=n[t].metadata.distSqToCursor,i=t);switch(n.length&&(n[i].metadata.closest=!0),this.tooltipSort){case lR.DEFAULT:return n;case lR.ASCENDING:return n.sort(((t,e)=>t.point.y-e.point.y));case lR.DESCENDING:return n.sort(((t,e)=>e.point.y-t.point.y));case lR.NEAREST:return n.sort(((t,e)=>t.metadata.distSqToCursor-e.metadata.distSqToCursor))}}openDataDownloadDialog(){this.dialog.open(this.DataDownloadComponent,{data:{cardId:this.cardId}})}}function Tft(t,e){return t.length===e.length&&t.every(((t,n)=>{const o=e[n],i=t.points,a=o.points;return t.runId===o.runId&&i.length===a.length&&i.every(((t,e)=>{const n=a[e];return t.x===n.x&&t.y===n.y}))}))}Rft.ɵfac=function t(e){return new(e||Rft)(Mu(ch),Mu(HW))},Rft.ɵcmp=Uo({type:Rft,selectors:[["scalar-card-component"]],viewQuery:function t(e,n){if(1&e&&Wb(xft,1),2&e){let t;Ub(t=Yb())&&(n.lineChart=t.first)}},inputs:{cardId:"cardId",chartMetadataMap:"chartMetadataMap",DataDownloadComponent:"DataDownloadComponent",dataSeries:"dataSeries",ignoreOutliers:"ignoreOutliers",isCardVisible:"isCardVisible",isEverVisible:"isEverVisible",isPinned:"isPinned",loadState:"loadState",showFullSize:"showFullSize",smoothingEnabled:"smoothingEnabled",tag:"tag",title:"title",tooltipSort:"tooltipSort",xAxisType:"xAxisType",xScaleType:"xScaleType",useDarkMode:"useDarkMode"},outputs:{onFullSizeToggle:"onFullSizeToggle",onPinClicked:"onPinClicked"},decls:28,vars:14,consts:function(){let t,e,n,o,i;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Fit line chart domains to data"):$localize`:A button that resets line chart domain to the data␟e68a552941ab427a99e7437e08443f30ac71ccd6␟3830646521058268558:Fit line chart domains to data`,e="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Pin card"):$localize`:A button to pin a card.␟e665dc712bd5f18d4dfa3a29e125d565cc51e2f6␟7284606426234375344:Pin card`,n="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Toggle full size mode"):$localize`:A button on line chart that toggles full size mode.␟fc8f767d0b9f930187a1bae34477ad28736ece33␟915721563638926597:Toggle full size mode`,o="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("More line chart options"):$localize`:An overflow menu button that opens more line chart options␟b260fab946a3077ce20fd28e336979f586720e8d␟878053740210336435:More line chart options`,i="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Toggle Y-axis log scale on line chart"):$localize`:A button that toggles log scale on y-axis on a line chart␟fe91f96ab9b3baca5a48913f2b0fae84483d93e3␟3374645620638883926:Toggle Y-axis log scale on line chart`,[[1,"heading"],[1,"tag",3,"title","value"],[1,"controls"],["mat-icon-button","","aria-label",t,3,"disabled","title","click"],["svgIcon","settings_overscan_24px"],["mat-icon-button","","aria-label",e,1,"pin-button",3,"click"],[3,"svgIcon"],["mat-icon-button","","aria-label",n,"title","Toggle full size mode",3,"click"],["mat-icon-button","","aria-label",o,"title","More line chart options",3,"matMenuTriggerFor"],["svgIcon","more_vert_24px"],["menu","matMenu"],["mat-menu-item","","aria-label",i,3,"click"],["svgIcon","line_weight_24px"],["mat-menu-item","","aria-label","Open dialog to download data",3,"click"],["svgIcon","get_app_24px"],[1,"chart-container"],["diameter","18",4,"ngIf"],[4,"ngIf"],["tooltip",""],["diameter","18"],[3,"disableUpdate","preferredRendererType","seriesData","seriesMetadataMap","xScaleType","yScaleType","customXFormatter","ignoreYOutliers","tooltipTemplate","useDarkMode","onViewBoxOverridden"],[1,"tooltip"],[1,"circle-header"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"tooltip-row"],[1,"tooltip-row-circle"],[1,"name"]]},template:function t(e,n){if(1&e&&(Ou(0,"div",0),wu(1,"tb-truncated-path",1),Ou(2,"span",2),Ou(3,"button",3),Nu("click",(function t(){return n.resetDomain()})),Ob(4,"async"),Ob(5,"async"),wu(6,"mat-icon",4),Pu(),Ou(7,"button",5),Nu("click",(function t(){return n.onPinClicked.emit(!n.isPinned)})),wu(8,"mat-icon",6),Pu(),Ou(9,"button",7),Nu("click",(function t(){return n.onFullSizeToggle.emit()})),wu(10,"mat-icon",6),Pu(),Ou(11,"button",8),wu(12,"mat-icon",9),Pu(),Ou(13,"mat-menu",null,10),Ou(15,"button",11),Nu("click",(function t(){return n.toggleYScaleType()})),wu(16,"mat-icon",12),Ou(17,"span"),Mf(18,"Toggle Y-axis log scale"),Pu(),Pu(),Ou(19,"button",13),Nu("click",(function t(){return n.openDataDownloadDialog()})),wu(20,"mat-icon",14),Ou(21,"span"),Mf(22,"Download data"),Pu(),Pu(),Pu(),Pu(),Pu(),Ou(23,"div",15),Wm(24,Oft,1,0,"mat-spinner",16),Wm(25,Pft,2,10,"ng-container",17),Wm(26,Aft,16,4,"ng-template",null,18,Kb),Pu()),2&e){const t=Gm(14);Jc(1),Uu("title",n.tag),Uu("value",n.title),Jc(2),vu("disabled",!n.lineChart||!Pb(4,10,n.lineChart.getIsViewBoxOverridden()))("title",n.lineChart&&Pb(5,12,n.lineChart.getIsViewBoxOverridden())?"Line chart is already fitted to data. When data updates, the line chart will auto fit to its domain.":"Fit line chart domains to data"),Jc(4),Nm("title",n.isPinned?"Unpin card":"Pin card"),Jc(1),vu("svgIcon",n.isPinned?"keep_24px":"keep_outline_24px"),Jc(2),vu("svgIcon",n.showFullSize?"fullscreen_exit_24px":"fullscreen_24px"),Jc(1),vu("matMenuTriggerFor",t),Jc(13),vu("ngIf",n.loadState===n.DataLoadState.LOADING),Jc(1),vu("ngIf",n.isEverVisible)}},directives:[Y2,NH,cG,NG,DG,OG,av,P1,xft,ov],pipes:[Mv,wv],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;flex-direction:column;box-sizing:border-box;height:100%;overflow:auto;padding:16px;padding-top:4px}.heading[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between;font-size:14px;margin-bottom:4px;position:relative}.tag[_ngcontent-%COMP%]{overflow:hidden}.pin-button[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{height:18px}.controls[_ngcontent-%COMP%]{color:#616161;white-space:nowrap;flex-shrink:0;margin-right:-12px}body.dark-mode[_nghost-%COMP%]   .controls[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .controls[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}.chart-container[_ngcontent-%COMP%]{position:relative;flex:1}.chart-container[_ngcontent-%COMP%]   mat-spinner[_ngcontent-%COMP%]{position:absolute;right:11px;top:11px}.chart-container[_ngcontent-%COMP%]   line-chart[_ngcontent-%COMP%]{display:block;height:100%}.tooltip[_ngcontent-%COMP%]{border-spacing:4px;font-size:13px}.tooltip[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{text-align:left}.tooltip[_ngcontent-%COMP%]   .tooltip-row[_ngcontent-%COMP%]{white-space:nowrap}.tooltip[_ngcontent-%COMP%]   .tooltip-row-circle[_ngcontent-%COMP%]{align-items:center;display:inline-flex;height:12px;width:12px}.tooltip[_ngcontent-%COMP%]   .tooltip-row-circle[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{border-radius:50%;border:1px solid rgba(255,255,255,.4);display:inline-block;height:10px;width:10px}.tooltip[_ngcontent-%COMP%]   .closest[_ngcontent-%COMP%]   .tooltip-row-circle[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{border-color:#fff;box-shadow:inset 0 0 0 1px #fff}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Rft,[{type:h_,args:[{selector:"scalar-card-component",templateUrl:"scalar_card_component.ng.html",styleUrls:["scalar_card_component.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:ch},{type:HW}]}),{cardId:[{type:y_}],chartMetadataMap:[{type:y_}],DataDownloadComponent:[{type:y_}],dataSeries:[{type:y_}],ignoreOutliers:[{type:y_}],isCardVisible:[{type:y_}],isEverVisible:[{type:y_}],isPinned:[{type:y_}],loadState:[{type:y_}],showFullSize:[{type:y_}],smoothingEnabled:[{type:y_}],tag:[{type:y_}],title:[{type:y_}],tooltipSort:[{type:y_}],xAxisType:[{type:y_}],xScaleType:[{type:y_}],useDarkMode:[{type:y_}],onFullSizeToggle:[{type:__}],onPinClicked:[{type:__}],lineChart:[{type:Fr,args:[xft]}]});class Nft{constructor(t){this.store=t,this.DataDownloadComponent=b5,this.fullWidthChanged=new Ab,this.fullHeightChanged=new Ab,this.pinStateChanged=new Ab,this.isCardVisible$=this.store.select(DT).pipe(ht((t=>t.has(this.cardId))),ke()),this.isEverVisible$=this.isCardVisible$.pipe(hn((t=>!t),!0)),this.useDarkMode$=this.store.select(ME),this.ignoreOutliers$=this.store.select(VT),this.tooltipSort$=this.store.select(BT),this.xAxisType$=this.store.select(jT),this.xScaleType$=this.store.select(jT).pipe(ht((t=>{switch(t){case cR.STEP:case cR.RELATIVE:return r5.LINEAR;case cR.WALL_TIME:return r5.TIME;default:throw new Error(`Invalid xAxisType for line chart. ${t}`)}}))),this.scalarSmoothing$=this.store.select(WT),this.smoothingEnabled$=this.store.select(WT).pipe(ht((t=>t>0))),this.showFullSize=!1}isScalarCardMetadata(t){const{plugin:e}=t;return e===sR.SCALARS}onFullSizeToggle(){this.showFullSize=!this.showFullSize,this.fullWidthChanged.emit(this.showFullSize),this.fullHeightChanged.emit(this.showFullSize)}ngOnInit(){const t=this.store.select(kT,this.cardId).pipe(Gt((t=>!!t&&this.isScalarCardMetadata(t))),ht((t=>t)));function e(t){return JSON.stringify(["smoothed",t])}const n=this.store.select(PT,this.cardId).pipe(Gt((t=>Boolean(t))),ht((t=>t)),an(1)).pipe(ce(this.store.select(jT)),ht((([t,e])=>Object.keys(t).map((n=>({runId:n,points:this.stepSeriesToLineSeries(t[n],e)}))))),ke(Tft)).pipe(ce(this.store.select(jT)),ht((([t,e])=>t.map((t=>{let n=t.points.map((t=>{const n=1e3*t.wallTime,o=e===cR.STEP?t.x:n;return Object.assign(Object.assign({},t),{x:o,wallTime:n})}));if(e===cR.RELATIVE&&n.length){const t=n[0];n=n.map((e=>Object.assign(Object.assign({},e),{x:e.x-t.x})))}return{runId:t.runId,points:n}}))))).pipe(ce(this.store.select(GT)),ht((([t,e])=>e?(function n(t){var e;const n=[];for(const o of t){const t=[];let i=Number.isFinite(null===(e=o.points[0])||void 0===e?void 0:e.x)?o.points[0].x:-1/0,a=[];for(const e of o.points)Number.isFinite(e.x)?(e.x<i&&(t.push({seriesId:JSON.stringify([o.runId,t.length]),runId:o.runId,points:a}),a=[]),a.push(e),i=e.x):a.push(e);t.push({seriesId:JSON.stringify([o.runId,t.length]),runId:o.runId,points:a});for(let e=0;e<t.length;e++)n.push(Object.assign(Object.assign({},t[e]),{partitionIndex:e,partitionSize:t.length}))}return n})(t):t.map((t=>Object.assign(Object.assign({},t),{seriesId:t.runId,partitionIndex:0,partitionSize:1}))))),an(1));this.dataSeries$=n.pipe(ce(this.store.select(WT)),dn((([t,n])=>{const o=t.map((({seriesId:t,points:e})=>({id:t,points:e})));return n<=0?Z(o):Rt((function i(t,e){var n;return rR(this,void 0,void 0,(function*(){Number.isFinite(e)||(e=0),e=Math.max(0,Math.min(e,1));const o=[];for(const i of t){const t=null===(n=i.points[0])||void 0===n?void 0:n.y;if(i.points.every((e=>e.y==t))){o.push(i);continue}let a=i.points.length>0?0:NaN,r=0;const s=i.points.map((t=>{const n=t.y;if(Number.isFinite(n)){a=a*e+(1-e)*n,r++;const o=1===e?1:1-Math.pow(e,r);return{x:t.x,y:a/o}}return{x:t.x,y:n}}));o.push({id:i.id,points:s})}return o}))})(o,n)).pipe(ht((t=>{const n=o.map(((n,o)=>({id:e(n.id),points:t[o].points.map((({y:t},e)=>Object.assign(Object.assign({},n.points[e]),{y:t})))})));return[...o,...n]})))})),cn([])),this.chartMetadataMap$=n.pipe(dn((t=>Dt(t.map((t=>this.getRunDisplayName(t.runId).pipe(ht((e=>Object.assign(Object.assign({},t),{displayName:e}))))))))),ce(this.store.select(vN),this.store.select(CN),this.store.select(WT)),de(0),ht((([t,n,o,i])=>{var a;const r={},s=i>0;for(const e of t){const{seriesId:t,runId:i,displayName:s,partitionIndex:l,partitionSize:c}=e;r[t]={type:s5.ORIGINAL,id:t,displayName:c>1?`${s}: ${l}`:s,visible:Boolean(n&&n.get(i)),color:null!==(a=o[i])&&void 0!==a?a:"#fff",aux:!1,opacity:1}}if(!s)return r;for(const[t,n]of Object.entries(r)){const o=e(t);r[o]=Object.assign(Object.assign({},n),{id:o,type:s5.DERIVED,aux:!1,originalSeriesId:t}),n.aux=!0,n.opacity=.25}return r})),cn({})),this.loadState$=this.store.select(OT,this.cardId),this.tag$=t.pipe(ht((t=>t.tag))),this.title$=this.tag$.pipe(ht((t=>z2(t,this.groupName)))),this.isPinned$=this.store.select(IT,this.cardId)}getRunDisplayName(t){return Dt([this.store.select(sN,{runId:t}),this.store.select(PD),this.store.select(lN,{runId:t})]).pipe(ht((([e,n,o])=>q2(t,o,e?n[e]:null))))}stepSeriesToLineSeries(t,e){const n=e===cR.STEP;return t.map((t=>Object.assign(Object.assign({},t),{x:n?t.step:t.wallTime,y:t.value})))}}function Ift(t,e,n){const o=[],{left:i,right:a}=e,r=(a-i)/n;let s=0,l=0;for(let e=0;e<n;e++){const a=i+e*r,c=a+r,d=e===n-1;let p=l;for(l=0;s<t.length;){const e=t[s],n=zft(e,a,c,!d);if(p+=n.curr,l+=n.next,e.x+e.dx>c)break;s++}o.push({x:a,dx:r,y:p})}return o}function zft(t,e,n,o){const i=t.x,a=t.x+t.dx;if(i>n||a<e)return{curr:0,next:0};if(0===t.dx)return o&&a===n?{curr:.5*t.y,next:.5*t.y}:{curr:t.y,next:0};const r=Math.min(a,n)-Math.max(i,e);return{curr:t.y*r/t.dx,next:0}}Nft.ɵfac=function t(e){return new(e||Nft)(Mu(Ek))},Nft.ɵcmp=Uo({type:Nft,selectors:[["scalar-card"]],inputs:{DataDownloadComponent:"DataDownloadComponent",cardId:"cardId",groupName:"groupName"},outputs:{fullWidthChanged:"fullWidthChanged",fullHeightChanged:"fullHeightChanged",pinStateChanged:"pinStateChanged"},decls:15,vars:45,consts:[[3,"cardId","chartMetadataMap","DataDownloadComponent","dataSeries","ignoreOutliers","isCardVisible","isEverVisible","isPinned","loadState","showFullSize","smoothingEnabled","tag","title","tooltipSort","xAxisType","xScaleType","useDarkMode","onFullSizeToggle","onPinClicked"]],template:function t(e,n){1&e&&(Ou(0,"scalar-card-component",0),Nu("onFullSizeToggle",(function t(){return n.onFullSizeToggle()}))("onPinClicked",(function t(e){return n.pinStateChanged.emit(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Ob(7,"async"),Ob(8,"async"),Ob(9,"async"),Ob(10,"async"),Ob(11,"async"),Ob(12,"async"),Ob(13,"async"),Ob(14,"async"),Pu()),2&e&&vu("cardId",n.cardId)("chartMetadataMap",Pb(1,17,n.chartMetadataMap$))("DataDownloadComponent",n.DataDownloadComponent)("dataSeries",Pb(2,19,n.dataSeries$))("ignoreOutliers",Pb(3,21,n.ignoreOutliers$))("isCardVisible",Pb(4,23,n.isCardVisible$))("isEverVisible",Pb(5,25,n.isEverVisible$))("isPinned",Pb(6,27,n.isPinned$))("loadState",Pb(7,29,n.loadState$))("showFullSize",n.showFullSize)("smoothingEnabled",Pb(8,31,n.smoothingEnabled$))("tag",Pb(9,33,n.tag$))("title",Pb(10,35,n.title$))("tooltipSort",Pb(11,37,n.tooltipSort$))("xAxisType",Pb(12,39,n.xAxisType$))("xScaleType",Pb(13,41,n.xScaleType$))("useDarkMode",Pb(14,43,n.useDarkMode$))},directives:[Rft],pipes:[Mv],styles:["[_nghost-%COMP%] {\n        display: block;\n        height: 100%;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Nft,[{type:h_,args:[{selector:"scalar-card",template:'\n    <scalar-card-component\n      [cardId]="cardId"\n      [chartMetadataMap]="chartMetadataMap$ | async"\n      [DataDownloadComponent]="DataDownloadComponent"\n      [dataSeries]="dataSeries$ | async"\n      [ignoreOutliers]="ignoreOutliers$ | async"\n      [isCardVisible]="isCardVisible$ | async"\n      [isEverVisible]="isEverVisible$ | async"\n      [isPinned]="isPinned$ | async"\n      [loadState]="loadState$ | async"\n      [showFullSize]="showFullSize"\n      [smoothingEnabled]="smoothingEnabled$ | async"\n      [tag]="tag$ | async"\n      [title]="title$ | async"\n      [tooltipSort]="tooltipSort$ | async"\n      [xAxisType]="xAxisType$ | async"\n      [xScaleType]="xScaleType$ | async"\n      [useDarkMode]="useDarkMode$ | async"\n      (onFullSizeToggle)="onFullSizeToggle()"\n      (onPinClicked)="pinStateChanged.emit($event)"\n    ></scalar-card-component>\n  ',styles:["\n      :host {\n        display: block;\n        height: 100%;\n      }\n    "],changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{DataDownloadComponent:[{type:y_}],cardId:[{type:y_}],groupName:[{type:y_}],fullWidthChanged:[{type:__}],fullHeightChanged:[{type:__}],pinStateChanged:[{type:__}]});class Hft{constructor(t){this.host=t,this.element=document.createElement("vz-histogram-timeseries"),this.mode=TE.OFFSET,this.timeProperty=RE.STEP,this.element.mode=this.mode,this.element.timeProperty=this.timeProperty}ngOnInit(){this.host.nativeElement.appendChild(this.element)}ngOnChanges(t){if(t.name||t.data){const t=this.data.map((t=>{const{step:e,bins:n}=t;return{step:e,bins:n,wall_time:t.wallTime}}));this.element.setSeriesData(this.name,t)}t.mode&&(this.element.mode=this.mode),t.timeProperty&&(this.element.timeProperty=this.timeProperty),t.colorScale&&this.colorScale&&(this.element.colorScale=this.colorScale)}redraw(){this.element.redraw()}}function Fft(t,e){1&t&&(Ou(0,"span",12),wu(1,"mat-spinner",13),Pu())}function Lft(t,e){if(1&t){const t=Eu();Ou(0,"tb-histogram",14),Nu("onResize",(function e(){return ra(t),Lu().redraw()})),Pu()}if(2&t){const t=Lu();vu("name",t.runId)("data",t.data)("mode",t.mode)("timeProperty",t.timeProperty(t.xAxisType))("colorScale",t.runColorScale)("resizeEventDebouncePeriodInMs",t.RESIZE_REDRAW_DEBOUNCE_TIME_IN_MS)}}function Bft(t,e){1&t&&(Ou(0,"div",16),Mf(1," Data failed to load. "),Pu())}function Vft(t,e){if(1&t&&Wm(0,Bft,2,0,"div",15),2&t){const t=Lu();vu("ngIf",t.loadState===t.DataLoadState.FAILED)}}Hft.ɵfac=function t(e){return new(e||Hft)(Mu(ch))},Hft.ɵcmp=Uo({type:Hft,selectors:[["tb-histogram"]],inputs:{mode:"mode",timeProperty:"timeProperty",colorScale:"colorScale",name:"name",data:"data"},features:[Si],decls:0,vars:0,template:function t(e,n){},styles:["[_nghost-%COMP%] {\n        display: flex;\n      }"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Hft,[{type:h_,args:[{selector:"tb-histogram",template:"",styles:["\n      :host {\n        display: flex;\n      }\n    "]}]}],(function(){return[{type:ch}]}),{mode:[{type:y_}],timeProperty:[{type:y_}],colorScale:[{type:y_}],name:[{type:y_}],data:[{type:y_}]});const jft=function(t){return{backgroundColor:t}};class Uft{constructor(t){this.ref=t,this.RESIZE_REDRAW_DEBOUNCE_TIME_IN_MS=50,this.DataLoadState=BE,this.onFullSizeToggle=new Ab,this.onPinClicked=new Ab}timeProperty(t){switch(t){case cR.STEP:return RE.STEP;case cR.WALL_TIME:return RE.WALL_TIME;case cR.RELATIVE:return RE.RELATIVE;default:throw new Error("Invalid xAxisType for histogram time property.")}}redraw(){this.histogramComponent&&this.ref.nativeElement.clientHeight&&this.histogramComponent.redraw()}}Uft.ɵfac=function t(e){return new(e||Uft)(Mu(ch))},Uft.ɵcmp=Uo({type:Uft,selectors:[["histogram-card-component"]],viewQuery:function t(e,n){if(1&e&&Wb(Hft,1),2&e){let t;Ub(t=Yb())&&(n.histogramComponent=t.first)}},inputs:{loadState:"loadState",title:"title",tag:"tag",runId:"runId",data:"data",mode:"mode",xAxisType:"xAxisType",runColorScale:"runColorScale",showFullSize:"showFullSize",isPinned:"isPinned"},outputs:{onFullSizeToggle:"onFullSizeToggle",onPinClicked:"onPinClicked"},decls:14,vars:12,consts:function(){let t,e;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Pin card"):$localize`:A button to pin a card.␟e665dc712bd5f18d4dfa3a29e125d565cc51e2f6␟7284606426234375344:Pin card`,e="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Toggle full size mode"):$localize`:A button on a histogram card that toggles full size mode.␟fc8f767d0b9f930187a1bae34477ad28736ece33␟915721563638926597:Toggle full size mode`,[[1,"heading"],[1,"tag",3,"title","value"],[1,"run"],[1,"dot",3,"ngStyle"],[1,"run-text",3,"runId"],[1,"controls"],["mat-icon-button","","aria-label",t,1,"pin-button",3,"click"],[3,"svgIcon"],["mat-icon-button","","aria-label",e,"title","Toggle full size mode",3,"click"],["class","spinner",4,"ngIf"],["detectResize","",3,"name","data","mode","timeProperty","colorScale","resizeEventDebouncePeriodInMs","onResize",4,"ngIf","ngIfElse"],["noData",""],[1,"spinner"],["diameter","18"],["detectResize","",3,"name","data","mode","timeProperty","colorScale","resizeEventDebouncePeriodInMs","onResize"],["class","empty-message",4,"ngIf"],[1,"empty-message"]]},template:function t(e,n){if(1&e&&(Ou(0,"div",0),wu(1,"tb-truncated-path",1),Ou(2,"div",2),wu(3,"span",3),wu(4,"card-run-name",4),Pu(),Ou(5,"span",5),Ou(6,"button",6),Nu("click",(function t(){return n.onPinClicked.emit(!n.isPinned)})),wu(7,"mat-icon",7),Pu(),Ou(8,"button",8),Nu("click",(function t(){return n.onFullSizeToggle.emit()})),wu(9,"mat-icon",7),Pu(),Pu(),Wm(10,Fft,2,0,"span",9),Pu(),Wm(11,Lft,1,6,"tb-histogram",10),Wm(12,Vft,1,1,"ng-template",null,11,Kb)),2&e){const t=Gm(13);Jc(1),Uu("title",n.tag),Uu("value",n.title),Jc(2),vu("ngStyle",gb(10,jft,n.runColorScale(n.runId))),Jc(1),vu("runId",n.runId),Jc(2),Nm("title",n.isPinned?"Unpin card":"Pin card"),Jc(1),vu("svgIcon",n.isPinned?"keep_24px":"keep_outline_24px"),Jc(2),vu("svgIcon",n.showFullSize?"fullscreen_exit_24px":"fullscreen_24px"),Jc(1),vu("ngIf",n.loadState===n.DataLoadState.LOADING),Jc(1),vu("ngIf",n.data&&n.data.length)("ngIfElse",t)}},directives:[Y2,gv,X2,NH,cG,av,P1,Hft,qK],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;flex-direction:column;box-sizing:border-box;height:100%;overflow:auto;padding:16px;padding-top:4px}.heading[_ngcontent-%COMP%]{align-items:center;display:grid;grid-template-areas:"tag controls" "run spinner";grid-template-columns:1fr auto;font-size:14px;margin-bottom:4px}.tag[_ngcontent-%COMP%]{grid-area:tag;overflow:hidden}.pin-button[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{height:18px}.run[_ngcontent-%COMP%]{grid-area:run;display:flex;white-space:nowrap;font-size:13px}.run[_ngcontent-%COMP%]   .dot[_ngcontent-%COMP%]{flex:none;display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:4px}.run[_ngcontent-%COMP%]   .run-text[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;max-width:120px}.controls[_ngcontent-%COMP%]{color:#616161;white-space:nowrap;grid-area:controls;justify-self:flex-end;flex-shrink:0;margin-right:-12px}body.dark-mode[_nghost-%COMP%]   .controls[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .controls[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}.spinner[_ngcontent-%COMP%]{display:flex;grid-area:spinner;height:100%;justify-content:center;position:relative}mat-spinner[_ngcontent-%COMP%]{top:0;right:0;position:absolute}tb-histogram[_ngcontent-%COMP%]{flex-grow:1;overflow:hidden}.empty-message[_ngcontent-%COMP%]{margin-top:1em;font-size:13px}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Uft,[{type:h_,args:[{selector:"histogram-card-component",templateUrl:"histogram_card_component.ng.html",styleUrls:["histogram_card_component.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:ch}]}),{loadState:[{type:y_}],title:[{type:y_}],tag:[{type:y_}],runId:[{type:y_}],data:[{type:y_}],mode:[{type:y_}],xAxisType:[{type:y_}],runColorScale:[{type:y_}],showFullSize:[{type:y_}],isPinned:[{type:y_}],onFullSizeToggle:[{type:__}],onPinClicked:[{type:__}],histogramComponent:[{type:Fr,args:[Hft]}]});class Wft{constructor(t){this.store=t,this.fullWidthChanged=new Ab,this.fullHeightChanged=new Ab,this.pinStateChanged=new Ab,this.mode$=this.store.select(UT),this.xAxisType$=this.store.select(jT),this.showFullSize=!1}isHistogramCardMetadata(t){const{plugin:e}=t;return e===sR.HISTOGRAMS}onFullSizeToggle(){this.showFullSize=!this.showFullSize,this.fullWidthChanged.emit(this.showFullSize),this.fullHeightChanged.emit(this.showFullSize)}ngOnInit(){const t=this.store.select(kT,this.cardId).pipe(Gt((t=>!!t&&this.isHistogramCardMetadata(t))),ht((t=>t))),e=Dt([t,this.store.select(PT,this.cardId)]);this.data$=e.pipe(ht((([t,e])=>{const n=t.runId;return e&&e.hasOwnProperty(n)?(function o(t,e=30){if(!t.length||e<1)return[];const n=(function o(t){let e=null,n=null;for(const{bins:o}of t){if(!o.length)continue;const t=o[o.length-1],i=o[0].x,a=t.x+t.dx;(null===e||i<e)&&(e=i),(null===n||a>n)&&(n=a)}return null===e||null===n?null:{left:e,right:n}})(t);return n&&n.left===n.right&&(n.right=1.1*n.right+1,n.left=n.left/1.1-1),t.map((t=>({step:t.step,wallTime:t.wallTime,bins:n?Ift(t.bins,n,e):[]})))})(e[n].map((t=>{const{wallTime:e,step:n}=t;return{wallTime:e,step:n,bins:t.bins.map((t=>({x:t.min,dx:t.max-t.min,y:t.count})))}}))):[]}))),this.loadState$=this.store.select(OT,this.cardId),this.tag$=t.pipe(ht((t=>t.tag))),this.title$=this.tag$.pipe(ht((t=>z2(t,this.groupName)))),this.runId$=t.pipe(ht((t=>t.runId))),this.isPinned$=this.store.select(IT,this.cardId)}}function Gft(t,e){if(1&t){const t=Eu();Ou(0,"image-card",5),Nu("fullWidthChanged",(function e(n){return ra(t),Lu().onFullWidthChanged(n)}))("pinStateChanged",(function e(){return ra(t),Lu().onPinStateChanged()})),Pu()}if(2&t){const t=Lu();vu("cardId",t.cardId)("groupName",t.groupName)("runColorScale",t.runColorScale)}}function Yft(t,e){if(1&t){const t=Eu();Ou(0,"scalar-card",6),Nu("fullWidthChanged",(function e(n){return ra(t),Lu().onFullWidthChanged(n)}))("fullHeightChanged",(function e(n){return ra(t),Lu().onFullHeightChanged(n)}))("pinStateChanged",(function e(){return ra(t),Lu().onPinStateChanged()})),Pu()}if(2&t){const t=Lu();vu("cardId",t.cardId)("groupName",t.groupName)}}function qft(t,e){if(1&t){const t=Eu();Ou(0,"histogram-card",7),Nu("fullWidthChanged",(function e(n){return ra(t),Lu().onFullWidthChanged(n)}))("fullHeightChanged",(function e(n){return ra(t),Lu().onFullHeightChanged(n)}))("pinStateChanged",(function e(){return ra(t),Lu().onPinStateChanged()})),Pu()}if(2&t){const t=Lu();vu("cardId",t.cardId)("groupName",t.groupName)("runColorScale",t.runColorScale)}}function Zft(t,e){if(1&t&&(Ou(0,"div"),Mf(1),Pu()),2&t){const t=Lu();Jc(1),xf("Placeholder error for: ",t.cardId,"")}}Wft.ɵfac=function t(e){return new(e||Wft)(Mu(Ek))},Wft.ɵcmp=Uo({type:Wft,selectors:[["histogram-card"]],inputs:{cardId:"cardId",groupName:"groupName",runColorScale:"runColorScale"},outputs:{fullWidthChanged:"fullWidthChanged",fullHeightChanged:"fullHeightChanged",pinStateChanged:"pinStateChanged"},decls:9,vars:26,consts:[[3,"loadState","title","tag","runId","data","mode","xAxisType","runColorScale","showFullSize","isPinned","onFullSizeToggle","onPinClicked"]],template:function t(e,n){1&e&&(Ou(0,"histogram-card-component",0),Nu("onFullSizeToggle",(function t(){return n.onFullSizeToggle()}))("onPinClicked",(function t(e){return n.pinStateChanged.emit(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Ob(7,"async"),Ob(8,"async"),Pu()),2&e&&vu("loadState",Pb(1,10,n.loadState$))("title",Pb(2,12,n.title$))("tag",Pb(3,14,n.tag$))("runId",Pb(4,16,n.runId$))("data",Pb(5,18,n.data$))("mode",Pb(6,20,n.mode$))("xAxisType",Pb(7,22,n.xAxisType$))("runColorScale",n.runColorScale)("showFullSize",n.showFullSize)("isPinned",Pb(8,24,n.isPinned$))},directives:[Uft],pipes:[Mv],styles:["[_nghost-%COMP%] {\n        display: block;\n        height: 100%;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Wft,[{type:h_,args:[{selector:"histogram-card",template:'\n    <histogram-card-component\n      [loadState]="loadState$ | async"\n      [title]="title$ | async"\n      [tag]="tag$ | async"\n      [runId]="runId$ | async"\n      [data]="data$ | async"\n      [mode]="mode$ | async"\n      [xAxisType]="xAxisType$ | async"\n      [runColorScale]="runColorScale"\n      [showFullSize]="showFullSize"\n      [isPinned]="isPinned$ | async"\n      (onFullSizeToggle)="onFullSizeToggle()"\n      (onPinClicked)="pinStateChanged.emit($event)"\n    ></histogram-card-component>\n  ',styles:["\n      :host {\n        display: block;\n        height: 100%;\n      }\n    "],changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{cardId:[{type:y_}],groupName:[{type:y_}],runColorScale:[{type:y_}],fullWidthChanged:[{type:__}],fullHeightChanged:[{type:__}],pinStateChanged:[{type:__}]});class Xft{constructor(){this.PluginType=sR,this.fullWidthChanged=new Ab,this.fullHeightChanged=new Ab,this.pinStateChanged=new Ab}onFullWidthChanged(t){this.fullWidthChanged.emit(t)}onFullHeightChanged(t){this.fullHeightChanged.emit(t)}onPinStateChanged(){this.pinStateChanged.emit()}}Xft.ɵfac=function t(e){return new(e||Xft)},Xft.ɵcmp=Uo({type:Xft,selectors:[["card-view-component"]],inputs:{cardId:"cardId",groupName:"groupName",pluginType:"pluginType",runColorScale:"runColorScale"},outputs:{fullWidthChanged:"fullWidthChanged",fullHeightChanged:"fullHeightChanged",pinStateChanged:"pinStateChanged"},decls:5,vars:4,consts:[[3,"ngSwitch"],[3,"cardId","groupName","runColorScale","fullWidthChanged","pinStateChanged",4,"ngSwitchCase"],[3,"cardId","groupName","fullWidthChanged","fullHeightChanged","pinStateChanged",4,"ngSwitchCase"],[3,"cardId","groupName","runColorScale","fullWidthChanged","fullHeightChanged","pinStateChanged",4,"ngSwitchCase"],[4,"ngSwitchDefault"],[3,"cardId","groupName","runColorScale","fullWidthChanged","pinStateChanged"],[3,"cardId","groupName","fullWidthChanged","fullHeightChanged","pinStateChanged"],[3,"cardId","groupName","runColorScale","fullWidthChanged","fullHeightChanged","pinStateChanged"]],template:function t(e,n){1&e&&(ku(0,0),Wm(1,Gft,1,3,"image-card",1),Wm(2,Yft,1,2,"scalar-card",2),Wm(3,qft,1,3,"histogram-card",3),Wm(4,Zft,2,1,"div",4),Su()),2&e&&(vu("ngSwitch",n.pluginType),Jc(1),vu("ngSwitchCase",n.PluginType.IMAGES),Jc(1),vu("ngSwitchCase",n.PluginType.SCALARS),Jc(1),vu("ngSwitchCase",n.PluginType.HISTOGRAMS))},directives:[cv,dv,pv,i5,Nft,Wft],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Xft,[{type:h_,args:[{selector:"card-view-component",templateUrl:"card_view_component.ng.html",changeDetection:xo.OnPush}]}],null,{cardId:[{type:y_}],groupName:[{type:y_}],pluginType:[{type:y_}],runColorScale:[{type:y_}],fullWidthChanged:[{type:__}],fullHeightChanged:[{type:__}],pinStateChanged:[{type:__}]});class Kft{constructor(t){this.store=t,this.showFullWidth=!1,this.showFullHeight=!1,this.runColorScale$=this.store.select(CN).pipe(xn(350,void 0,{leading:!0,trailing:!0}),ht((t=>e=>{if(!t.hasOwnProperty(e))throw new Error(`[Color scale] unknown runId: ${e}.`);return t[e]})))}onFullWidthChanged(t){this.showFullWidth=t}onFullHeightChanged(t){this.showFullHeight=t}onPinStateChanged(){this.store.select(IT,this.cardId).pipe(Ne(1),kn(this.store.select(HT))).subscribe((([t,e])=>{this.store.dispatch(lQ({cardId:this.cardId,canCreateNewPins:e,wasPinned:t}))}))}}function Jft(t,e){1&t&&Du(0)}function Qft(t,e){if(1&t&&wu(0,"card-view",4),2&t){const t=e.$implicit,n=Lu();vu("cardId",t.cardId)("groupName",n.groupName)("pluginType",t.plugin)("cardObserver",n.cardObserver)("cardLazyLoader",t.cardId)}}function $ft(t,e){1&t&&Du(0)}function tgt(t,e){if(1&t){const t=Eu();Ou(0,"button",13),Nu("click",(function e(){ra(t);const n=Lu(3);return n.pageIndexChanged.emit(n.pageIndex-1)})),Mf(1," Previous "),Pu()}2&t&&vu("disabled",0===Lu(3).pageIndex)}function egt(t,e){1&t&&wu(0,"mat-icon",17)}function ngt(t,e){1&t&&wu(0,"mat-icon",18)}function ogt(t,e){if(1&t){const t=Eu();Ou(0,"button",14),Nu("click",(function e(){return ra(t),Lu(3).groupExpansionToggled.emit()})),Wm(1,egt,1,0,"mat-icon",15),Wm(2,ngt,1,0,"ng-template",null,16,Kb),Pu()}if(2&t){const t=Gm(3),e=Lu(3);Jc(1),vu("ngIf",e.isGroupExpanded)("ngIfElse",t)}}function igt(t,e){if(1&t){const t=Eu();Ou(0,"span",21),Ou(1,"input",22),Nu("input",(function e(n){return ra(t),Lu(4).onPaginationInputChange(n)}))("change",(function e(n){return ra(t),Lu(4).onPaginationInputChange(n)})),Pu(),Mf(2),Pu()}if(2&t){const t=Lu(4);Jc(1),vu("value",t.pageIndex+1)("max",t.numPages),Jc(1),xf(" of ",t.numPages,"")}}function agt(t,e){if(1&t){const t=Eu();Ou(0,"span"),Wm(1,igt,3,3,"span",19),Ou(2,"button",20),Nu("click",(function e(){ra(t);const n=Lu(3);return n.pageIndexChanged.emit(n.pageIndex+1)})),Mf(3," Next "),Pu(),Pu()}if(2&t){const t=Lu(2).isBottomControl,e=Lu();Jc(1),vu("ngIf",e.showPaginationInput(t)),Jc(1),vu("disabled",e.pageIndex+1>=e.numPages)}}function rgt(t,e){if(1&t&&(Ou(0,"div",6),Ou(1,"span",7),Wm(2,tgt,2,1,"button",8),Pu(),Ou(3,"span",9),Wm(4,ogt,4,2,"button",10),Pu(),Ou(5,"span",11),Wm(6,agt,4,2,"span",12),Pu(),Pu()),2&t){const t=Lu().isBottomControl,e=Lu();Jc(2),vu("ngIf",e.showPaginationControls),Jc(2),vu("ngIf",e.showExpand(t)),Jc(2),vu("ngIf",e.showPaginationControls)}}function sgt(t,e){if(1&t&&Wm(0,rgt,7,3,"div",5),2&t){const t=e.isBottomControl,n=Lu();vu("ngIf",n.showPaginationControls||n.showExpand(t))}}Kft.ɵfac=function t(e){return new(e||Kft)(Mu(Ek))},Kft.ɵcmp=Uo({type:Kft,selectors:[["card-view"]],hostVars:4,hostBindings:function t(e,n){2&e&&af("full-width",n.showFullWidth)("full-height",n.showFullHeight)},inputs:{cardId:"cardId",groupName:"groupName",pluginType:"pluginType"},decls:2,vars:6,consts:[[3,"cardId","groupName","pluginType","runColorScale","fullWidthChanged","fullHeightChanged","pinStateChanged"]],template:function t(e,n){1&e&&(Ou(0,"card-view-component",0),Nu("fullWidthChanged",(function t(e){return n.onFullWidthChanged(e)}))("fullHeightChanged",(function t(e){return n.onFullHeightChanged(e)}))("pinStateChanged",(function t(){return n.onPinStateChanged()})),Ob(1,"async"),Pu()),2&e&&vu("cardId",n.cardId)("groupName",n.groupName)("pluginType",n.pluginType)("runColorScale",Pb(1,4,n.runColorScale$))},directives:[Xft],pipes:[Mv],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{background-color:#fff}body.dark-mode   [_nghost-%COMP%]{background-color:#303030}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Kft,[{type:h_,args:[{selector:"card-view",template:'\n    <card-view-component\n      [cardId]="cardId"\n      [groupName]="groupName"\n      [pluginType]="pluginType"\n      [runColorScale]="runColorScale$ | async"\n      (fullWidthChanged)="onFullWidthChanged($event)"\n      (fullHeightChanged)="onFullHeightChanged($event)"\n      (pinStateChanged)="onPinStateChanged()"\n    >\n    </card-view-component>\n  ',styleUrls:["card_view_container.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{cardId:[{type:y_}],groupName:[{type:y_}],pluginType:[{type:y_}],showFullWidth:[{type:C_,args:["class.full-width"]}],showFullHeight:[{type:C_,args:["class.full-height"]}]});const lgt=function(){return{isBottomControl:!1}},cgt=function(){return{isBottomControl:!0}};class dgt{constructor(){this.PluginType=sR,this.pageIndexChanged=new Ab,this.groupExpansionToggled=new Ab}showExpand(t){return!!t&&this.isGroupExpandable}showPaginationInput(t){return t}trackByCards(t,e){return e.cardId}onPaginationInputChange(t){const e=t.target;if("input"===t.type&&""===e.value)return;const n=Number(e.value)-1,o=Math.min(Math.max(0,n),this.numPages-1);e.value!==String(o+1)&&(e.value=String(o+1)),this.pageIndexChanged.emit(o)}}dgt.ɵfac=function t(e){return new(e||dgt)},dgt.ɵcmp=Uo({type:dgt,selectors:[["metrics-card-grid-component"]],inputs:{isGroupExpandable:"isGroupExpandable",isGroupExpanded:"isGroupExpanded",groupName:"groupName",pageIndex:"pageIndex",numPages:"numPages",cardIdsWithMetadata:"cardIdsWithMetadata",cardObserver:"cardObserver",showPaginationControls:"showPaginationControls"},outputs:{pageIndexChanged:"pageIndexChanged",groupExpansionToggled:"groupExpansionToggled"},decls:6,vars:8,consts:function(){let t,e,n;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Previous page"):$localize`:A button that sets a group to the previous page.␟575e782fd27f2ee70a034a775efe9ad162472250␟3629960544875360046:Previous page`,e="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Expand group"):$localize`:A button that allows user to expand a tag group.␟ffaa11471b878a6dffe2e68c6f37064a9e074853␟5386054325274779258:Expand group`,n="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Next page"):$localize`:A button that sets a group to the next page.␟ce3cefb1cd0099aa5003dda16ec9eb21fd8ba789␟3337301694210287595:Next page`,[[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"card-grid"],[3,"cardId","groupName","pluginType","cardObserver","cardLazyLoader",4,"ngFor","ngForOf","ngForTrackBy"],["groupControls",""],[3,"cardId","groupName","pluginType","cardObserver","cardLazyLoader"],["class","group-controls",4,"ngIf"],[1,"group-controls"],[1,"prev-container"],["class","prev pagination-button","mat-button","","aria-label",t,3,"disabled","click",4,"ngIf"],[1,"expand-container"],["class","expand-group-button","mat-icon-button","","aria-label",e,3,"click",4,"ngIf"],[1,"input-and-next-container"],[4,"ngIf"],["mat-button","","aria-label",t,1,"prev","pagination-button",3,"disabled","click"],["mat-icon-button","","aria-label",e,1,"expand-group-button",3,"click"],["svgIcon","expand_less_24px",4,"ngIf","ngIfElse"],["expandMore",""],["svgIcon","expand_less_24px"],["svgIcon","expand_more_24px"],["class","pagination-input",4,"ngIf"],["mat-button","","aria-label",n,1,"next","pagination-button",3,"disabled","click"],[1,"pagination-input"],["type","number","min","1",3,"value","max","input","change"]]},template:function t(e,n){if(1&e&&(Wm(0,Jft,1,0,"ng-container",0),Ou(1,"div",1),Wm(2,Qft,1,5,"card-view",2),Pu(),Wm(3,$ft,1,0,"ng-container",0),Wm(4,sgt,1,1,"ng-template",null,3,Kb)),2&e){const t=Gm(5);vu("ngTemplateOutlet",t)("ngTemplateOutletContext",fb(6,lgt)),Jc(2),vu("ngForOf",n.cardIdsWithMetadata)("ngForTrackBy",n.trackByCards),Jc(1),vu("ngTemplateOutlet",t)("ngTemplateOutletContext",fb(7,cgt))}},directives:[hv,ov,Kft,N2,av,NH,cG],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.card-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill, minmax(335px, auto));gap:16px;padding:16px}card-view[_ngcontent-%COMP%]{border:1px solid #ebebeb;border-radius:4px;box-sizing:border-box;contain:strict;height:100%;min-height:320px}body.dark-mode[_nghost-%COMP%]   card-view[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   card-view[_ngcontent-%COMP%]{border:1px solid #555}card-view.full-width[_ngcontent-%COMP%]{contain:layout paint;grid-column-start:1;grid-column-end:-1}card-view.full-height[_ngcontent-%COMP%]{min-height:480px}.group-controls[_ngcontent-%COMP%]{color:#616161;display:grid;align-items:center;grid-template-columns:1fr 1fr 1fr;gap:16px;padding:0 16px}.group-controls[_ngcontent-%COMP%]:first-of-type{padding-top:16px}.group-controls[_ngcontent-%COMP%]:last-of-type{padding-bottom:16px}.prev-container[_ngcontent-%COMP%]{justify-self:flex-start}.expand-container[_ngcontent-%COMP%]{justify-self:center}.input-and-next-container[_ngcontent-%COMP%]{justify-self:flex-end}.pagination-input[_ngcontent-%COMP%]{margin-right:16px}.expand-group-button[_ngcontent-%COMP%], .pagination-button[_ngcontent-%COMP%]{background-color:#fff;color:#616161}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(dgt,[{type:h_,args:[{selector:"metrics-card-grid-component",templateUrl:"./card_grid_component.ng.html",styleUrls:["./card_grid_component.css"],changeDetection:xo.OnPush}]}],null,{isGroupExpandable:[{type:y_}],isGroupExpanded:[{type:y_}],groupName:[{type:y_}],pageIndex:[{type:y_}],numPages:[{type:y_}],cardIdsWithMetadata:[{type:y_}],cardObserver:[{type:y_}],showPaginationControls:[{type:y_}],pageIndexChanged:[{type:__}],groupExpansionToggled:[{type:__}]});class pgt{constructor(t){this.store=t,this.groupName=null,this.groupName$=new H(null),this.pageIndex$=new H(0),this.items$=new H([]),this.numPages$=Dt([this.items$,this.store.select(JG)]).pipe(ht((([t,e])=>Math.ceil(t.length/e)))),this.isGroupExpanded$=this.groupName$.pipe(dn((t=>null!==t?this.store.select(KT,t):Z(!0)))),this.showPaginationControls$=Dt([this.numPages$,this.store.select(JG),this.isGroupExpanded$]).pipe(ht((([t,e,n])=>!(t<=1)&&(e<=3||n)))),this.isGroupExpandable$=Dt([this.items$,this.store.select(JG)]).pipe(ht((([t,e])=>!(null===this.groupName||e<=3||t.length<=3)))),this.normalizedPageIndex$=Dt([this.pageIndex$,this.numPages$]).pipe(_n((([t,e])=>{0!==e&&(t>=e?this.pageIndex$.next(e-1):t<0&&this.pageIndex$.next(0))})),ht((([t,e])=>Math.min(Math.max(t,0),e-1))),an(1)),this.pagedItems$=Dt([this.items$,this.store.select(JG),this.normalizedPageIndex$,this.isGroupExpanded$]).pipe(ht((([t,e,n,o])=>{const i=e*n,a=e*n+Math.min(o?e:3,e);return t.slice(i,a)})))}ngOnChanges(t){t.cardIdsWithMetadata&&this.items$.next(this.cardIdsWithMetadata),t.groupName&&this.groupName$.next(this.groupName)}onPageIndexChanged(t){this.pageIndex$.next(t)}onGroupExpansionToggled(){if(null===this.groupName)throw new RangeError("Invariant error: expansion cannot be toggled when groupName is null");this.store.dispatch(sQ({tagGroup:this.groupName}))}}function mgt(t,e){if(1&t&&(Ou(0,"span",6),Mf(1),Pu()),2&t){const t=Lu().$implicit;Jc(1),xf("",t.items.length," cards")}}function ugt(t,e){if(1&t&&(Ou(0,"div",1),Ou(1,"div",2),Ou(2,"span"),Ou(3,"span",3),Mf(4),Pu(),Wm(5,mgt,2,1,"span",4),Pu(),Pu(),wu(6,"metrics-card-grid",5),Pu()),2&t){const t=e.$implicit,n=Lu();Jc(3),Uu("title",t.groupName),Jc(1),vf(t.groupName),Jc(1),vu("ngIf",t.items.length>1),Jc(1),vu("cardIdsWithMetadata",t.items)("cardObserver",n.cardObserver)("groupName",t.groupName)}}pgt.ɵfac=function t(e){return new(e||pgt)(Mu(Ek))},pgt.ɵcmp=Uo({type:pgt,selectors:[["metrics-card-grid"]],inputs:{groupName:"groupName",cardIdsWithMetadata:"cardIdsWithMetadata",cardObserver:"cardObserver"},features:[Si],decls:7,vars:20,consts:[[3,"isGroupExpandable","isGroupExpanded","groupName","pageIndex","numPages","showPaginationControls","cardIdsWithMetadata","cardObserver","pageIndexChanged","groupExpansionToggled"]],template:function t(e,n){1&e&&(Ou(0,"metrics-card-grid-component",0),Nu("pageIndexChanged",(function t(e){return n.onPageIndexChanged(e)}))("groupExpansionToggled",(function t(){return n.onGroupExpansionToggled()})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Pu()),2&e&&vu("isGroupExpandable",Pb(1,8,n.isGroupExpandable$))("isGroupExpanded",Pb(2,10,n.isGroupExpanded$))("groupName",n.groupName)("pageIndex",Pb(3,12,n.normalizedPageIndex$))("numPages",Pb(4,14,n.numPages$))("showPaginationControls",Pb(5,16,n.showPaginationControls$))("cardIdsWithMetadata",Pb(6,18,n.pagedItems$))("cardObserver",n.cardObserver)},directives:[dgt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(pgt,[{type:h_,args:[{selector:"metrics-card-grid",template:'\n    <metrics-card-grid-component\n      [isGroupExpandable]="isGroupExpandable$ | async"\n      [isGroupExpanded]="isGroupExpanded$ | async"\n      [groupName]="groupName"\n      [pageIndex]="normalizedPageIndex$ | async"\n      [numPages]="numPages$ | async"\n      [showPaginationControls]="showPaginationControls$ | async"\n      [cardIdsWithMetadata]="pagedItems$ | async"\n      [cardObserver]="cardObserver"\n      (pageIndexChanged)="onPageIndexChanged($event)"\n      (groupExpansionToggled)="onGroupExpansionToggled()"\n    >\n    </metrics-card-grid-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{groupName:[{type:y_}],cardIdsWithMetadata:[{type:y_}],cardObserver:[{type:y_}]});class fgt{constructor(){this.PluginType=sR}trackByGroup(t,e){return e.groupName}}fgt.ɵfac=function t(e){return new(e||fgt)},fgt.ɵcmp=Uo({type:fgt,selectors:[["metrics-card-groups-component"]],inputs:{cardGroups:"cardGroups",cardObserver:"cardObserver"},decls:1,vars:2,consts:[["class","card-group",4,"ngFor","ngForOf","ngForTrackBy"],[1,"card-group"],[1,"group-toolbar"],["aria-role","heading","aria-level","3",1,"group-title",3,"title"],["class","group-card-count",4,"ngIf"],[3,"cardIdsWithMetadata","cardObserver","groupName"],[1,"group-card-count"]],template:function t(e,n){1&e&&Wm(0,ugt,7,6,"div",0),2&e&&vu("ngForOf",n.cardGroups)("ngForTrackBy",n.trackByGroup)},directives:[ov,av,pgt],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.group-toolbar[_ngcontent-%COMP%]{background-color:#fff;border-bottom:1px solid #ebebeb;background-color:#fff;height:42px;padding:0 16px;border-top:1px solid #ebebeb;display:flex;align-items:center}body.dark-mode[_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%]{background-color:#303030}body.dark-mode[_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%]{border-bottom:1px solid #555}body.dark-mode[_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%]{border-top:1px solid #555}.card-group[_ngcontent-%COMP%]:first-of-type   .group-toolbar[_ngcontent-%COMP%]{border-top:none}.group-title[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.group-card-count[_ngcontent-%COMP%]{font-size:12px;font-weight:400;color:#616161;margin-left:6px}body.dark-mode[_nghost-%COMP%]   .group-card-count[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-card-count[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fgt,[{type:h_,args:[{selector:"metrics-card-groups-component",template:'\n    <div\n      *ngFor="let group of cardGroups; trackBy: trackByGroup"\n      class="card-group"\n    >\n      <div class="group-toolbar">\n        <span>\n          <span\n            class="group-title"\n            aria-role="heading"\n            aria-level="3"\n            title="{{ group.groupName }}"\n            >{{ group.groupName }}</span\n          >\n          <span *ngIf="group.items.length > 1" class="group-card-count"\n            >{{ group.items.length }} cards</span\n          >\n        </span>\n      </div>\n      <metrics-card-grid\n        [cardIdsWithMetadata]="group.items"\n        [cardObserver]="cardObserver"\n        [groupName]="group.groupName"\n      ></metrics-card-grid>\n    </div>\n  ',styleUrls:["card_groups_component.css"],changeDetection:xo.OnPush}]}],null,{cardGroups:[{type:y_}],cardObserver:[{type:y_}]});const ggt=zk(ET,vN,((t,e)=>t.filter((t=>!fR(t.plugin)||Boolean(e&&e.get(t.runId))))));class hgt{constructor(t){this.store=t,this.cardGroups$=this.store.select(ggt).pipe(ht((t=>(function e(t){const e=new Map,n=t.slice().sort(((t,e)=>H2(t.tag,e.tag)));for(const t of n){const n=t.tag.split("/",1)[0];e.has(n)||e.set(n,{groupName:n,items:[]}),e.get(n).items.push(t)}return[...e.values()]})(t))))}}function bgt(t,e){if(1&t&&(Ou(0,"span",5),Mf(1),Pu()),2&t){const t=Lu();Jc(1),xf("",t.cardIdsWithMetadata.length," cards")}}hgt.ɵfac=function t(e){return new(e||hgt)(Mu(Ek))},hgt.ɵcmp=Uo({type:hgt,selectors:[["metrics-card-groups"]],inputs:{cardObserver:"cardObserver"},decls:2,vars:4,consts:[[3,"cardGroups","cardObserver"]],template:function t(e,n){1&e&&(wu(0,"metrics-card-groups-component",0),Ob(1,"async")),2&e&&vu("cardGroups",Pb(1,2,n.cardGroups$))("cardObserver",n.cardObserver)},directives:[fgt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(hgt,[{type:h_,args:[{selector:"metrics-card-groups",template:'\n    <metrics-card-groups-component\n      [cardGroups]="cardGroups$ | async"\n      [cardObserver]="cardObserver"\n    ></metrics-card-groups-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{cardObserver:[{type:y_}]});class ygt{}ygt.ɵfac=function t(e){return new(e||ygt)},ygt.ɵcmp=Uo({type:ygt,selectors:[["metrics-filtered-view-component"]],inputs:{cardObserver:"cardObserver",cardIdsWithMetadata:"cardIdsWithMetadata"},decls:6,vars:3,consts:[[1,"group-toolbar"],[1,"group-text"],["aria-role","heading","aria-level","3",1,"group-title"],["class","group-card-count",4,"ngIf"],[3,"cardIdsWithMetadata","cardObserver"],[1,"group-card-count"]],template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"span",1),Ou(2,"span",2),Mf(3,"Tags matching filter"),Pu(),Wm(4,bgt,2,1,"span",3),Pu(),Pu(),wu(5,"metrics-card-grid",4)),2&e&&(Jc(4),vu("ngIf",n.cardIdsWithMetadata.length>1),Jc(1),vu("cardIdsWithMetadata",n.cardIdsWithMetadata)("cardObserver",n.cardObserver))},directives:[av,pgt],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.group-toolbar[_ngcontent-%COMP%]{background-color:#fff;border-bottom:1px solid #ebebeb;background-color:#fff;height:42px;padding:0 16px;display:flex;align-items:center;border-bottom:1px solid #ebebeb}body.dark-mode[_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%]{background-color:#303030}body.dark-mode[_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%]{border-bottom:1px solid #555}.group-text[_ngcontent-%COMP%]{display:flex;align-items:baseline}.group-title[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.group-card-count[_ngcontent-%COMP%]{font-size:12px;font-weight:400;color:#616161;margin-left:6px}body.dark-mode[_nghost-%COMP%]   .group-card-count[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-card-count[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(ygt,[{type:h_,args:[{selector:"metrics-filtered-view-component",template:'\n    <div class="group-toolbar">\n      <span class="group-text">\n        <span class="group-title" aria-role="heading" aria-level="3"\n          >Tags matching filter</span\n        >\n        <span *ngIf="cardIdsWithMetadata.length > 1" class="group-card-count"\n          >{{ cardIdsWithMetadata.length }} cards</span\n        >\n      </span>\n    </div>\n    <metrics-card-grid\n      [cardIdsWithMetadata]="cardIdsWithMetadata"\n      [cardObserver]="cardObserver"\n    ></metrics-card-grid>\n  ',styleUrls:["filtered_view_component.css"],changeDetection:xo.OnPush}]}],null,{cardObserver:[{type:y_}],cardIdsWithMetadata:[{type:y_}]});const _gt=zk(ET,vN,((t,e)=>t.filter((t=>!fR(t.plugin)||Boolean(e&&e.get(t.runId))))));class Cgt{constructor(t){this.store=t,this.cardIdsWithMetadata$=this.store.select(_gt).pipe(dn((t=>Dt([Z(t),this.store.select(XT)]))),ht((([t,e])=>{try{return{cardList:t,regex:new RegExp(e)}}catch(e){return{cardList:t,regex:null}}})),Gt((({regex:t})=>null!==t)),ht((({cardList:t,regex:e})=>t.filter((({tag:t})=>e.test(t))))),ht((t=>t.sort(((t,e)=>H2(t.tag,e.tag))))),ke(((t,e)=>t.length===e.length&&t.every(((t,n)=>t.cardId===e[n].cardId)))),cn([]))}}function Mgt(t,e){if(1&t&&(Ou(0,"span",7),Mf(1),Pu()),2&t){const t=Lu();Jc(1),xf("",t.cardIdsWithMetadata.length," cards")}}function vgt(t,e){if(1&t&&wu(0,"metrics-card-grid",8),2&t){const t=Lu();vu("cardIdsWithMetadata",t.cardIdsWithMetadata)("cardObserver",t.cardObserver)}}function xgt(t,e){1&t&&(Ou(0,"div",9),Mf(1,"Pin cards for a quick view and comparison"),Pu())}Cgt.ɵfac=function t(e){return new(e||Cgt)(Mu(Ek))},Cgt.ɵcmp=Uo({type:Cgt,selectors:[["metrics-filtered-view"]],inputs:{cardObserver:"cardObserver"},decls:2,vars:4,consts:[[3,"cardIdsWithMetadata","cardObserver"]],template:function t(e,n){1&e&&(wu(0,"metrics-filtered-view-component",0),Ob(1,"async")),2&e&&vu("cardIdsWithMetadata",Pb(1,2,n.cardIdsWithMetadata$))("cardObserver",n.cardObserver)},directives:[ygt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Cgt,[{type:h_,args:[{selector:"metrics-filtered-view",template:'\n    <metrics-filtered-view-component\n      [cardIdsWithMetadata]="cardIdsWithMetadata$ | async"\n      [cardObserver]="cardObserver"\n    ></metrics-filtered-view-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{cardObserver:[{type:y_}]});class Ogt{}Ogt.ɵfac=function t(e){return new(e||Ogt)},Ogt.ɵcmp=Uo({type:Ogt,selectors:[["metrics-pinned-view-component"]],inputs:{cardObserver:"cardObserver",cardIdsWithMetadata:"cardIdsWithMetadata"},decls:9,vars:3,consts:[[1,"group-toolbar"],["svgIcon","keep_24px"],[1,"group-text"],["aria-role","heading","aria-level","3",1,"group-title"],["class","group-card-count",4,"ngIf"],[3,"cardIdsWithMetadata","cardObserver",4,"ngIf","ngIfElse"],["emptyPinnedView",""],[1,"group-card-count"],[3,"cardIdsWithMetadata","cardObserver"],[1,"empty-message"]],template:function t(e,n){if(1&e&&(Ou(0,"div",0),wu(1,"mat-icon",1),Ou(2,"span",2),Ou(3,"span",3),Mf(4,"Pinned"),Pu(),Wm(5,Mgt,2,1,"span",4),Pu(),Pu(),Wm(6,vgt,1,2,"metrics-card-grid",5),Wm(7,xgt,2,0,"ng-template",null,6,Kb)),2&e){const t=Gm(8);Jc(5),vu("ngIf",n.cardIdsWithMetadata.length>1),Jc(1),vu("ngIf",n.cardIdsWithMetadata.length)("ngIfElse",t)}},directives:[cG,av,pgt],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.group-toolbar[_ngcontent-%COMP%]{background-color:#fff;border-bottom:1px solid #ebebeb;background-color:#fff;height:42px;padding:0 16px;display:flex;align-items:center}body.dark-mode[_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%]{background-color:#303030}body.dark-mode[_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-toolbar[_ngcontent-%COMP%]{border-bottom:1px solid #555}mat-icon[_ngcontent-%COMP%]{color:#616161;flex:none;margin-right:5px}body.dark-mode[_nghost-%COMP%]   mat-icon[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   mat-icon[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}.group-text[_ngcontent-%COMP%]{display:flex;align-items:baseline}.group-title[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.group-card-count[_ngcontent-%COMP%]{font-size:12px;font-weight:400;color:#616161;margin-left:6px}body.dark-mode[_nghost-%COMP%]   .group-card-count[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .group-card-count[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}.empty-message[_ngcontent-%COMP%]{color:#616161;text-align:center;padding:16px;font-size:13px;font-style:italic}body.dark-mode[_nghost-%COMP%]   .empty-message[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .empty-message[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Ogt,[{type:h_,args:[{selector:"metrics-pinned-view-component",template:'\n    <div class="group-toolbar">\n      <mat-icon svgIcon="keep_24px"></mat-icon>\n      <span class="group-text">\n        <span class="group-title" aria-role="heading" aria-level="3"\n          >Pinned</span\n        >\n        <span *ngIf="cardIdsWithMetadata.length > 1" class="group-card-count"\n          >{{ cardIdsWithMetadata.length }} cards</span\n        >\n      </span>\n    </div>\n    <metrics-card-grid\n      *ngIf="cardIdsWithMetadata.length; else emptyPinnedView"\n      [cardIdsWithMetadata]="cardIdsWithMetadata"\n      [cardObserver]="cardObserver"\n    ></metrics-card-grid>\n    <ng-template #emptyPinnedView>\n      <div class="empty-message">Pin cards for a quick view and comparison</div>\n    </ng-template>\n  ',styleUrls:["pinned_view_component.css"],changeDetection:xo.OnPush}]}],null,{cardObserver:[{type:y_}],cardIdsWithMetadata:[{type:y_}]});class Pgt{constructor(t){this.store=t,this.cardIdsWithMetadata$=this.store.select(NT).pipe(cn([]))}}function wgt(t,e){if(1&t&&(Ou(0,"mat-option",2),Mf(1),Pu()),2&t){const t=e.$implicit;vu("value",t.value)("disabled",t.disabled),Jc(1),xf(" ",t.displayText," ")}}Pgt.ɵfac=function t(e){return new(e||Pgt)(Mu(Ek))},Pgt.ɵcmp=Uo({type:Pgt,selectors:[["metrics-pinned-view"]],inputs:{cardObserver:"cardObserver"},decls:2,vars:4,consts:[[3,"cardIdsWithMetadata","cardObserver"]],template:function t(e,n){1&e&&(wu(0,"metrics-pinned-view-component",0),Ob(1,"async")),2&e&&vu("cardIdsWithMetadata",Pb(1,2,n.cardIdsWithMetadata$))("cardObserver",n.cardObserver)},directives:[Ogt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Pgt,[{type:h_,args:[{selector:"metrics-pinned-view",template:'\n    <metrics-pinned-view-component\n      [cardIdsWithMetadata]="cardIdsWithMetadata$ | async"\n      [cardObserver]="cardObserver"\n    ></metrics-pinned-view-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{cardObserver:[{type:y_}]});class kgt{constructor(){this.value="",this.options=[],this.selectionChange=new Ab}}function Sgt(t,e){if(1&t){const t=Eu();Ou(0,"section",20),Ou(1,"h3",1),Mf(2,"Images"),Pu(),Ou(3,"div",21),Ou(4,"div",22),Mf(5,"Brightness"),Pu(),Ou(6,"div",8),Ou(7,"mat-slider",23),Nu("input",(function e(n){return ra(t),Lu().imageBrightnessSliderChanged$.emit(n.value)})),Pu(),Ou(8,"button",24),Nu("click",(function e(){return ra(t),Lu().imageBrightnessReset.emit()})),wu(9,"mat-icon",25),Pu(),Pu(),Pu(),Ou(10,"div",26),Ou(11,"div",27),Mf(12,"Contrast"),Pu(),Ou(13,"div",8),Ou(14,"mat-slider",28),Nu("input",(function e(n){return ra(t),Lu().imageContrastSliderChanged$.emit(n.value)})),Pu(),Ou(15,"button",29),Nu("click",(function e(){return ra(t),Lu().imageContrastReset.emit()})),wu(16,"mat-icon",25),Pu(),Pu(),Pu(),Ou(17,"div",30),Ou(18,"mat-checkbox",14),Nu("change",(function e(n){return ra(t),Lu().imageShowActualSizeChanged.emit(n.checked)})),Mf(19,"Show actual image size"),Pu(),Pu(),Pu()}if(2&t){const t=Lu();Jc(7),vu("max",2e3)("min",0)("step",10)("value",t.imageBrightnessInMilli)("thumbLabel",!0)("displayWith",t.formatMilliToZeroth),Jc(7),vu("max",5e3)("min",0)("step",10)("value",t.imageContrastInMilli)("thumbLabel",!0)("displayWith",t.formatMilliToZeroth),Jc(4),vu("checked",t.imageShowActualSize)}}kgt.ɵfac=function t(e){return new(e||kgt)},kgt.ɵcmp=Uo({type:kgt,selectors:[["tb-dropdown"]],inputs:{value:"value",options:"options"},outputs:{selectionChange:"selectionChange"},decls:2,vars:2,consts:[[3,"value","selectionChange"],[3,"value","disabled",4,"ngFor","ngForOf"],[3,"value","disabled"]],template:function t(e,n){1&e&&(Ou(0,"mat-select",0),Nu("selectionChange",(function t(e){return n.selectionChange.emit(e.value)})),Wm(1,wgt,2,3,"mat-option",1),Pu()),2&e&&(vu("value",n.value),Jc(1),vu("ngForOf",n.options))},directives:[dW,ov,PH],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}mat-select[_ngcontent-%COMP%]{border:1px solid #8e98a3;border-radius:3px;box-sizing:border-box;padding:6px}mat-select[_ngcontent-%COMP%]:focus{outline-color:-webkit-focus-ring-color;outline-style:auto}']}),("undefined"==typeof ngDevMode||ngDevMode)&&db(kgt,[{type:h_,args:[{selector:"tb-dropdown",template:'\n    <mat-select\n      [value]="value"\n      (selectionChange)="selectionChange.emit($event.value)"\n    >\n      <mat-option\n        *ngFor="let option of options"\n        [value]="option.value"\n        [disabled]="option.disabled"\n      >\n        {{ option.displayText }}\n      </mat-option>\n    </mat-select>\n  ',styleUrls:["dropdown_component.css"]}]}],null,{value:[{type:y_}],options:[{type:y_}],selectionChange:[{type:__}]});class Dgt{constructor(t){this.locale=t,this.TooltipSortDropdownOptions=[{value:lR.DEFAULT,displayText:"Default"},{value:lR.ASCENDING,displayText:"Ascending"},{value:lR.DESCENDING,displayText:"Descending"},{value:lR.NEAREST,displayText:"Nearest"}],this.tooltipSortChanged=new Ab,this.ignoreOutliersChanged=new Ab,this.XAxisTypeDropdownOptions=[{value:cR.STEP,displayText:"Step"},{value:cR.RELATIVE,displayText:"Relative"},{value:cR.WALL_TIME,displayText:"Wall"}],this.xAxisTypeChanged=new Ab,this.HistogramModeDropdownOptions=[{value:TE.OFFSET,displayText:"Offset"},{value:TE.OVERLAY,displayText:"Overlay"}],this.histogramModeChanged=new Ab,this.MAX_SMOOTHING_VALUE=.999,this.MAX_SMOOTHING_SLIDER_VALUE=.99,this.scalarSmoothingControlChanged$=new Ab,this.scalarSmoothingChanged=this.scalarSmoothingControlChanged$.pipe(oe(250)),this.scalarPartitionXToggled=new Ab,this.imageBrightnessSliderChanged$=new Ab,this.imageBrightnessInMilliChanged=this.imageBrightnessSliderChanged$.pipe(oe(250)),this.imageBrightnessReset=new Ab,this.imageContrastSliderChanged$=new Ab,this.imageContrastInMilliChanged=this.imageContrastSliderChanged$.pipe(oe(250)),this.imageContrastReset=new Ab,this.imageShowActualSizeChanged=new Ab}onScalarSmoothingInput(t){const e=t.target;if(!e.value)return;const n=Math.min(Math.max(0,parseFloat(e.value)),.999);n!==parseFloat(e.value)&&(e.value=String(n)),this.scalarSmoothingControlChanged$.emit(n)}formatMilliToZeroth(t){return qM(t/1e3,this.locale||"en-US","1.0-2")}}Dgt.ɵfac=function t(e){return new(e||Dgt)(Mu(B_))},Dgt.ɵcmp=Uo({type:Dgt,selectors:[["metrics-dashboard-settings-component"]],inputs:{isImageSupportEnabled:"isImageSupportEnabled",tooltipSort:"tooltipSort",ignoreOutliers:"ignoreOutliers",xAxisType:"xAxisType",histogramMode:"histogramMode",scalarSmoothing:"scalarSmoothing",scalarPartitionX:"scalarPartitionX",imageBrightnessInMilli:"imageBrightnessInMilli",imageContrastInMilli:"imageContrastInMilli",imageShowActualSize:"imageShowActualSize"},outputs:{tooltipSortChanged:"tooltipSortChanged",ignoreOutliersChanged:"ignoreOutliersChanged",xAxisTypeChanged:"xAxisTypeChanged",histogramModeChanged:"histogramModeChanged",scalarSmoothingChanged:"scalarSmoothingChanged",scalarPartitionXToggled:"scalarPartitionXToggled",imageBrightnessInMilliChanged:"imageBrightnessInMilliChanged",imageBrightnessReset:"imageBrightnessReset",imageContrastInMilliChanged:"imageContrastInMilliChanged",imageContrastReset:"imageContrastReset",imageShowActualSizeChanged:"imageShowActualSizeChanged"},decls:35,vars:16,consts:function(){let t,e;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Reset brightness"):$localize`:A button to reset the image brightness setting␟c482b3a47ea0975fa8be01afb3fbec9b76628bd7␟1189161857240378395:Reset brightness`,e="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Reset contrast"):$localize`:A button to reset the image contrast setting␟ed712a8b927041be15252b29eb521ebb1374bad8␟5370703342923611955:Reset contrast`,[[1,"general"],[1,"section-title"],[1,"control-row","x-axis-type"],["id","x-axis-type-label",1,"control-name"],[3,"value","options","selectionChange"],[1,"scalars"],[1,"control-row","scalars-smoothing"],["id","scalars-smoothing-label",1,"control-name"],[1,"slider-row"],["aria-labelledby","scalars-smoothing-label","color","primary",3,"max","min","step","value","thumbLabel","input"],["aria-labelledby","scalars-smoothing-label","type","number","min","0","step","0.001",1,"slider-input",3,"max","value","input"],[1,"control-row","tooltip-sort"],[1,"control-name"],[1,"control-row","scalars-ignore-outliers"],[3,"checked","change"],[1,"control-row","scalars-partition-x"],["svgIcon","help_outline_24px","title","Non-monotonic steps can occur when reusing a logdir with multiple summary writers and overlapping steps. Line charts, without this option enabled, can appear zig zagged. This is common when restarting from a checkpoint.\n\nWhen enabled, a non-monotonic time series composed of N monotonic pieces will be shown as N monotonic lines.",1,"info"],[1,"Histograms"],[1,"control-row","histogram-mode"],["class","image",4,"ngIf"],[1,"image"],[1,"control-row","image-brightness"],["id","image-brightness-label",1,"control-name"],["aria-labelledby","image-brightness-label","color","primary",3,"max","min","step","value","thumbLabel","displayWith","input"],["mat-icon-button","","aria-label",t,"title","Reset brightness",1,"reset-button",3,"click"],["svgIcon","settings_backup_restore_24px"],[1,"control-row","image-contrast"],["id","image-constrast-label",1,"control-name"],["aria-labelledby","image-constrast-label","color","primary",3,"max","min","step","value","thumbLabel","displayWith","input"],["mat-icon-button","","aria-label",e,"title","Reset contrast",1,"reset-button",3,"click"],[1,"control-row","image-show-actual-size"]]},template:function t(e,n){1&e&&(Ou(0,"section",0),Ou(1,"h3",1),Mf(2,"General"),Pu(),Ou(3,"div",2),Ou(4,"div",3),Mf(5,"Horizontal Axis"),Pu(),Ou(6,"tb-dropdown",4),Nu("selectionChange",(function t(e){return n.xAxisTypeChanged.emit(e)})),Pu(),Pu(),Pu(),Ou(7,"section",5),Ou(8,"h3",1),Mf(9,"Scalars"),Pu(),Ou(10,"div",6),Ou(11,"div",7),Mf(12,"Smoothing"),Pu(),Ou(13,"div",8),Ou(14,"mat-slider",9),Nu("input",(function t(e){return n.scalarSmoothingControlChanged$.emit(e.value)})),Pu(),Ou(15,"input",10),Nu("input",(function t(e){return n.onScalarSmoothingInput(e)})),Pu(),Pu(),Pu(),Ou(16,"div",11),Ou(17,"div",12),Mf(18,"Tooltip sorting method"),Pu(),Ou(19,"tb-dropdown",4),Nu("selectionChange",(function t(e){return n.tooltipSortChanged.emit(e)})),Pu(),Pu(),Ou(20,"div",13),Ou(21,"mat-checkbox",14),Nu("change",(function t(e){return n.ignoreOutliersChanged.emit(e.checked)})),Mf(22,"Ignore outliers in chart scaling"),Pu(),Pu(),Ou(23,"div",15),Ou(24,"mat-checkbox",14),Nu("change",(function t(){return n.scalarPartitionXToggled.emit()})),Mf(25,"Partition non-monotonic X axis"),Pu(),wu(26,"mat-icon",16),Pu(),Pu(),Ou(27,"section",17),Ou(28,"h3",1),Mf(29,"Histograms"),Pu(),Ou(30,"div",18),Ou(31,"div",12),Mf(32,"Mode"),Pu(),Ou(33,"tb-dropdown",4),Nu("selectionChange",(function t(e){return n.histogramModeChanged.emit(e)})),Pu(),Pu(),Pu(),Wm(34,Sgt,20,13,"section",19)),2&e&&(Jc(6),vu("value",n.xAxisType)("options",n.XAxisTypeDropdownOptions),Jc(8),vu("max",n.MAX_SMOOTHING_SLIDER_VALUE)("min",0)("step",.01)("value",n.scalarSmoothing)("thumbLabel",!0),Jc(1),vu("max",n.MAX_SMOOTHING_VALUE)("value",n.scalarSmoothing),Jc(4),vu("value",n.tooltipSort)("options",n.TooltipSortDropdownOptions),Jc(2),vu("checked",n.ignoreOutliers),Jc(3),vu("checked",n.scalarPartitionX),Jc(9),vu("value",n.histogramMode)("options",n.HistogramModeDropdownOptions),Jc(1),vu("ngIf",n.isImageSupportEnabled))},directives:[kgt,vX,uY,cG,av,NH],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{color:#616161;font-size:12px}body.dark-mode   [_nghost-%COMP%]{color:rgba(255,255,255,.7)}section[_ngcontent-%COMP%]{border-bottom:1px solid #ebebeb;padding:16px}body.dark-mode[_nghost-%COMP%]   section[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   section[_ngcontent-%COMP%]{border-bottom:1px solid #555}.section-title[_ngcontent-%COMP%]{color:#212121;text-transform:uppercase;font-weight:500;font-size:13px;line-height:normal;margin:0 0 12px 0}body.dark-mode[_nghost-%COMP%]   .section-title[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .section-title[_ngcontent-%COMP%]{color:#fff}section[_ngcontent-%COMP%]   .control-row[_ngcontent-%COMP%]:not(:last-child){margin-bottom:12px}.control-name[_ngcontent-%COMP%]{margin-bottom:8px}.slider-row[_ngcontent-%COMP%]{display:flex;align-items:center;height:28px}.slider-row[_ngcontent-%COMP%]   .reset-button[_ngcontent-%COMP%]{margin-left:6px}.slider-row[_ngcontent-%COMP%]   .slider-input[_ngcontent-%COMP%]{background-color:inherit;border:1px solid #8e98a3;border-radius:2px;box-sizing:border-box;color:inherit;height:100%;margin-left:12px;padding:0 4px}body.dark-mode[_nghost-%COMP%]   .slider-row[_ngcontent-%COMP%]   .slider-input[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .slider-row[_ngcontent-%COMP%]   .slider-input[_ngcontent-%COMP%]{border-color:#425066}.scalars-smoothing[_ngcontent-%COMP%]   .slider-input[_ngcontent-%COMP%]{flex:none;width:5em}.scalars-partition-x[_ngcontent-%COMP%]{align-items:center;display:flex}.scalars-partition-x[_ngcontent-%COMP%]   .info[_ngcontent-%COMP%]{height:15px;margin-left:5px;width:15px}mat-slider[_ngcontent-%COMP%]{flex:1;margin-left:-8px;margin-right:-8px}tb-dropdown[_ngcontent-%COMP%]{display:block}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Dgt,[{type:h_,args:[{selector:"metrics-dashboard-settings-component",templateUrl:"settings_view_component.ng.html",changeDetection:xo.OnPush,styleUrls:["settings_view_component.css"]}]}],(function(){return[{type:void 0,decorators:[{type:ys,args:[B_]}]}]}),{isImageSupportEnabled:[{type:y_}],tooltipSort:[{type:y_}],tooltipSortChanged:[{type:__}],ignoreOutliers:[{type:y_}],ignoreOutliersChanged:[{type:__}],xAxisType:[{type:y_}],xAxisTypeChanged:[{type:__}],histogramMode:[{type:y_}],histogramModeChanged:[{type:__}],scalarSmoothing:[{type:y_}],scalarSmoothingChanged:[{type:__}],scalarPartitionX:[{type:y_}],scalarPartitionXToggled:[{type:__}],imageBrightnessInMilli:[{type:y_}],imageBrightnessInMilliChanged:[{type:__}],imageBrightnessReset:[{type:__}],imageContrastInMilli:[{type:y_}],imageContrastInMilliChanged:[{type:__}],imageContrastReset:[{type:__}],imageShowActualSize:[{type:y_}],imageShowActualSizeChanged:[{type:__}]});class Egt{constructor(t){this.store=t,this.isImageSupportEnabled$=this.store.select(bE).pipe(Gt(Boolean),Ne(1),kn(this.store.select(kE)),ht((([,t])=>t))),this.tooltipSort$=this.store.select(BT),this.ignoreOutliers$=this.store.select(VT),this.xAxisType$=this.store.select(jT),this.histogramMode$=this.store.select(UT),this.scalarSmoothing$=this.store.select(WT),this.scalarPartitionX$=this.store.select(GT),this.imageBrightnessInMilli$=this.store.select(YT),this.imageContrastInMilli$=this.store.select(qT),this.imageShowActualSize$=this.store.select(ZT)}onTooltipSortChanged(t){this.store.dispatch(WJ({sort:t}))}onIgnoreOutliersChanged(){this.store.dispatch(GJ())}onXAxisTypeChanged(t){this.store.dispatch(YJ({xAxisType:t}))}onHistogramModeChanged(t){this.store.dispatch(tQ({histogramMode:t}))}onScalarSmoothingChanged(t){this.store.dispatch(qJ({smoothing:t}))}onScalarPartitionXToggled(){this.store.dispatch(ZJ())}onImageBrightnessInMilliChanged(t){this.store.dispatch(XJ({brightnessInMilli:t}))}onImageBrightnessReset(){this.store.dispatch(JJ())}onImageContrastReset(){this.store.dispatch(QJ())}onImageContrastInMilliChanged(t){this.store.dispatch(KJ({contrastInMilli:t}))}onImageShowActualSizeChanged(){this.store.dispatch($J())}}Egt.ɵfac=function t(e){return new(e||Egt)(Mu(Ek))},Egt.ɵcmp=Uo({type:Egt,selectors:[["metrics-dashboard-settings"]],decls:11,vars:30,consts:[[3,"isImageSupportEnabled","tooltipSort","ignoreOutliers","xAxisType","histogramMode","scalarSmoothing","scalarPartitionX","imageBrightnessInMilli","imageContrastInMilli","imageShowActualSize","tooltipSortChanged","ignoreOutliersChanged","xAxisTypeChanged","histogramModeChanged","scalarSmoothingChanged","scalarPartitionXToggled","imageBrightnessInMilliChanged","imageBrightnessReset","imageContrastInMilliChanged","imageContrastReset","imageShowActualSizeChanged"]],template:function t(e,n){1&e&&(Ou(0,"metrics-dashboard-settings-component",0),Nu("tooltipSortChanged",(function t(e){return n.onTooltipSortChanged(e)}))("ignoreOutliersChanged",(function t(){return n.onIgnoreOutliersChanged()}))("xAxisTypeChanged",(function t(e){return n.onXAxisTypeChanged(e)}))("histogramModeChanged",(function t(e){return n.onHistogramModeChanged(e)}))("scalarSmoothingChanged",(function t(e){return n.onScalarSmoothingChanged(e)}))("scalarPartitionXToggled",(function t(){return n.onScalarPartitionXToggled()}))("imageBrightnessInMilliChanged",(function t(e){return n.onImageBrightnessInMilliChanged(e)}))("imageBrightnessReset",(function t(){return n.onImageBrightnessReset()}))("imageContrastInMilliChanged",(function t(e){return n.onImageContrastInMilliChanged(e)}))("imageContrastReset",(function t(){return n.onImageContrastReset()}))("imageShowActualSizeChanged",(function t(){return n.onImageShowActualSizeChanged()})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Ob(7,"async"),Ob(8,"async"),Ob(9,"async"),Ob(10,"async"),Pu()),2&e&&vu("isImageSupportEnabled",Pb(1,10,n.isImageSupportEnabled$))("tooltipSort",Pb(2,12,n.tooltipSort$))("ignoreOutliers",Pb(3,14,n.ignoreOutliers$))("xAxisType",Pb(4,16,n.xAxisType$))("histogramMode",Pb(5,18,n.histogramMode$))("scalarSmoothing",Pb(6,20,n.scalarSmoothing$))("scalarPartitionX",Pb(7,22,n.scalarPartitionX$))("imageBrightnessInMilli",Pb(8,24,n.imageBrightnessInMilli$))("imageContrastInMilli",Pb(9,26,n.imageContrastInMilli$))("imageShowActualSize",Pb(10,28,n.imageShowActualSize$))},directives:[Dgt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Egt,[{type:h_,args:[{selector:"metrics-dashboard-settings",template:'\n    <metrics-dashboard-settings-component\n      [isImageSupportEnabled]="isImageSupportEnabled$ | async"\n      [tooltipSort]="tooltipSort$ | async"\n      (tooltipSortChanged)="onTooltipSortChanged($event)"\n      [ignoreOutliers]="ignoreOutliers$ | async"\n      (ignoreOutliersChanged)="onIgnoreOutliersChanged()"\n      [xAxisType]="xAxisType$ | async"\n      (xAxisTypeChanged)="onXAxisTypeChanged($event)"\n      [histogramMode]="histogramMode$ | async"\n      (histogramModeChanged)="onHistogramModeChanged($event)"\n      [scalarSmoothing]="scalarSmoothing$ | async"\n      (scalarSmoothingChanged)="onScalarSmoothingChanged($event)"\n      [scalarPartitionX]="scalarPartitionX$ | async"\n      (scalarPartitionXToggled)="onScalarPartitionXToggled()"\n      [imageBrightnessInMilli]="imageBrightnessInMilli$ | async"\n      (imageBrightnessInMilliChanged)="onImageBrightnessInMilliChanged($event)"\n      (imageBrightnessReset)="onImageBrightnessReset()"\n      [imageContrastInMilli]="imageContrastInMilli$ | async"\n      (imageContrastInMilliChanged)="onImageContrastInMilliChanged($event)"\n      (imageContrastReset)="onImageContrastReset()"\n      [imageShowActualSize]="imageShowActualSize$ | async"\n      (imageShowActualSizeChanged)="onImageShowActualSizeChanged()"\n    >\n    </metrics-dashboard-settings-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class Agt{}function Rgt(t,e){1&t&&wu(0,"metrics-filtered-view",7),2&t&&vu("cardObserver",Lu().cardObserver)}function Tgt(t,e){1&t&&wu(0,"metrics-pinned-view",7),2&t&&vu("cardObserver",Lu().cardObserver)}function Ngt(t,e){if(1&t){const t=Eu();Ou(0,"div",9),Ou(1,"div",10),Ou(2,"h2",11),Mf(3,"Settings"),Pu(),Ou(4,"button",12),Nu("click",(function e(){return ra(t),Lu().onCloseSidepaneButtonClicked.emit()})),wu(5,"mat-icon",13),Pu(),Pu(),wu(6,"metrics-dashboard-right-pane"),Pu()}}Agt.ɵfac=function t(e){return new(e||Agt)},Agt.ɵcmp=Uo({type:Agt,selectors:[["metrics-dashboard-right-pane"]],decls:1,vars:0,template:function t(e,n){1&e&&wu(0,"metrics-dashboard-settings")},directives:[Egt],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Agt,[{type:h_,args:[{selector:"metrics-dashboard-right-pane",template:"<metrics-dashboard-settings></metrics-dashboard-settings>",changeDetection:xo.OnPush}]}],null,null);const Igt=function(t){return{checked:t,"settings-button":!0}};class zgt{constructor(t){this.host=t,this.onSettingsButtonClicked=new Ab,this.onCloseSidepaneButtonClicked=new Ab,this.cardObserver=new T2(this.host.nativeElement,"600px 0px 600px 0px")}}zgt.ɵfac=function t(e){return new(e||zgt)(Mu(ch))},zgt.ɵcmp=Uo({type:zgt,selectors:[["metrics-main-view-component"]],inputs:{showFilteredView:"showFilteredView",isSidepaneOpen:"isSidepaneOpen"},outputs:{onSettingsButtonClicked:"onSettingsButtonClicked",onCloseSidepaneButtonClicked:"onCloseSidepaneButtonClicked"},decls:12,vars:10,consts:function(){let t,e;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Toggle settings side pane"):$localize`:Label on a toolbar button to toggle the settings side pane.␟d3516db6bbe6860a55beab66e4969dac625b8d72␟7659285445580838925:Toggle settings side pane`,e="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Close side pane"):$localize`:Label on a button to close the settings side pane.␟04521dc0b6a65cf5c382944c9a8b4b844a3e9598␟8156766997747165871:Close side pane`,[[1,"toolbar"],[1,"right-items"],["mat-stroked-button","","aria-label",t,3,"ngClass","click"],["svgIcon","settings_24px"],[1,"split-content"],["cdkScrollable","",1,"main"],[3,"cardObserver",4,"ngIf"],[3,"cardObserver"],["class","sidebar",4,"ngIf"],[1,"sidebar"],[1,"header"],[1,"title"],["mat-icon-button","","aria-label",e,3,"click"],["svgIcon","close_24px"]]},template:function t(e,n){1&e&&(Ou(0,"div",0),wu(1,"metrics-tag-filter"),Ou(2,"div",1),Ou(3,"button",2),Nu("click",(function t(){return n.onSettingsButtonClicked.emit()})),wu(4,"mat-icon",3),Mf(5," Settings "),Pu(),Pu(),Pu(),Ou(6,"div",4),Ou(7,"div",5),Wm(8,Rgt,1,1,"metrics-filtered-view",6),Wm(9,Tgt,1,1,"metrics-pinned-view",6),wu(10,"metrics-card-groups",7),Pu(),Wm(11,Ngt,7,0,"div",8),Pu()),2&e&&(Jc(3),vu("ngClass",gb(8,Igt,n.isSidepaneOpen)),Nm("aria-pressed",n.isSidepaneOpen),Jc(5),vu("ngIf",n.showFilteredView),Jc(1),vu("ngIf",!n.showFilteredView),Jc(1),of("display",n.showFilteredView?"none":""),vu("cardObserver",n.cardObserver),Jc(1),vu("ngIf",n.isSidepaneOpen))},directives:[W2,NH,tv,cG,JH,av,hgt,Cgt,Pgt,Agt],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.toolbar[_ngcontent-%COMP%]{border-bottom:1px solid #ebebeb;flex:none;display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 16px}body.dark-mode[_nghost-%COMP%]   .toolbar[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .toolbar[_ngcontent-%COMP%]{border-bottom:1px solid #555}.toolbar[_ngcontent-%COMP%]   metrics-tag-filter[_ngcontent-%COMP%]{flex:1 1 100px}.toolbar[_ngcontent-%COMP%]   .right-items[_ngcontent-%COMP%]{border-left:1px solid #ebebeb;margin-left:16px;padding-left:16px}body.dark-mode[_nghost-%COMP%]   .toolbar[_ngcontent-%COMP%]   .right-items[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .toolbar[_ngcontent-%COMP%]   .right-items[_ngcontent-%COMP%]{border-left:1px solid #555}.split-content[_ngcontent-%COMP%]{display:flex;overflow-y:auto;flex:1}.main[_ngcontent-%COMP%], .sidebar[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto;will-change:transform;contain:strict}.main[_ngcontent-%COMP%]{background-color:#f5f6f7;flex:1 1;display:flex;flex-direction:column}body.dark-mode[_nghost-%COMP%]   .main[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .main[_ngcontent-%COMP%]{background-color:#3a3a3a}.main[_ngcontent-%COMP%]   metrics-filtered-view[_ngcontent-%COMP%], .main[_ngcontent-%COMP%]   metrics-pinned-view[_ngcontent-%COMP%]{border-bottom:1px solid #ebebeb}body.dark-mode[_nghost-%COMP%]   .main[_ngcontent-%COMP%]   metrics-filtered-view[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .main[_ngcontent-%COMP%]   metrics-filtered-view[_ngcontent-%COMP%]{border-bottom:1px solid #555}body.dark-mode[_nghost-%COMP%]   .main[_ngcontent-%COMP%]   metrics-pinned-view[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .main[_ngcontent-%COMP%]   metrics-pinned-view[_ngcontent-%COMP%]{border-bottom:1px solid #555}.sidebar[_ngcontent-%COMP%]{border-left:1px solid #ebebeb;flex:0 0 250px}body.dark-mode[_nghost-%COMP%]   .sidebar[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .sidebar[_ngcontent-%COMP%]{border-left:1px solid #555}.sidebar[_ngcontent-%COMP%]   .header[_ngcontent-%COMP%]{border-bottom:1px solid #ebebeb;display:flex;align-items:center;justify-content:space-between;height:42px;padding:0 16px}body.dark-mode[_nghost-%COMP%]   .sidebar[_ngcontent-%COMP%]   .header[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .sidebar[_ngcontent-%COMP%]   .header[_ngcontent-%COMP%]{border-bottom:1px solid #555}.sidebar[_ngcontent-%COMP%]   .header[_ngcontent-%COMP%]   .title[_ngcontent-%COMP%]{font-size:18px;font-weight:400;line-height:normal;margin:0}[_nghost-%COMP%]   .settings-button[_ngcontent-%COMP%]{color:#616161;display:inline-flex}body.dark-mode   [_nghost-%COMP%]   .settings-button[_ngcontent-%COMP%]{color:rgba(255,255,255,.7)}[_nghost-%COMP%]   .settings-button.checked[_ngcontent-%COMP%]{background-color:#e0e0e0;border-color:#e0e0e0}body.dark-mode   [_nghost-%COMP%]   .settings-button.checked[_ngcontent-%COMP%]{background-color:#212121}[_nghost-%COMP%]   .settings-button[_ngcontent-%COMP%]     .mat-button-wrapper{display:inline-flex;align-items:center}[_nghost-%COMP%]   .settings-button[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{margin-right:4px}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(zgt,[{type:h_,args:[{selector:"metrics-main-view-component",templateUrl:"main_view_component.ng.html",styleUrls:["main_view_component.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:ch}]}),{showFilteredView:[{type:y_}],isSidepaneOpen:[{type:y_}],onSettingsButtonClicked:[{type:__}],onCloseSidepaneButtonClicked:[{type:__}]});class Hgt{constructor(t){this.store=t,this.isSidepaneOpen=!0,this.showFilteredView$=this.store.select(XT).pipe(ht((t=>t.length>0)))}onSettingsButtonClicked(){this.isSidepaneOpen=!this.isSidepaneOpen}onCloseSidepaneButtonClicked(){this.isSidepaneOpen=!1}}Hgt.ɵfac=function t(e){return new(e||Hgt)(Mu(Ek))},Hgt.ɵcmp=Uo({type:Hgt,selectors:[["metrics-main-view"]],decls:2,vars:4,consts:[[3,"showFilteredView","isSidepaneOpen","onSettingsButtonClicked","onCloseSidepaneButtonClicked"]],template:function t(e,n){1&e&&(Ou(0,"metrics-main-view-component",0),Nu("onSettingsButtonClicked",(function t(){return n.onSettingsButtonClicked()}))("onCloseSidepaneButtonClicked",(function t(){return n.onCloseSidepaneButtonClicked()})),Ob(1,"async"),Pu()),2&e&&vu("showFilteredView",Pb(1,2,n.showFilteredView$))("isSidepaneOpen",n.isSidepaneOpen)},directives:[zgt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Hgt,[{type:h_,args:[{selector:"metrics-main-view",template:'\n    <metrics-main-view-component\n      [showFilteredView]="showFilteredView$ | async"\n      [isSidepaneOpen]="isSidepaneOpen"\n      (onSettingsButtonClicked)="onSettingsButtonClicked()"\n      (onCloseSidepaneButtonClicked)="onCloseSidepaneButtonClicked()"\n    ></metrics-main-view-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class Fgt{}Fgt.ɵfac=function t(e){return new(e||Fgt)},Fgt.ɵcmp=Uo({type:Fgt,selectors:[["metrics-dashboard"]],decls:3,vars:0,template:function t(e,n){1&e&&(Ou(0,"nav"),wu(1,"runs-selector"),Pu(),wu(2,"metrics-main-view"))},directives:[A2,Hgt],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;height:100%}nav[_ngcontent-%COMP%]{background-color:#fff;border-right:1px solid #ebebeb;flex:none;width:340px}body.dark-mode[_nghost-%COMP%]   nav[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   nav[_ngcontent-%COMP%]{background-color:#303030;border-right-color:#555}metrics-main-view[_ngcontent-%COMP%]{flex:1 1}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Fgt,[{type:h_,args:[{selector:"metrics-dashboard",template:"\n    <nav>\n      <runs-selector></runs-selector>\n    </nav>\n    <metrics-main-view></metrics-main-view>\n  ",styleUrls:["metrics_container.css"],changeDetection:xo.OnPush}]}],null,null);class Lgt{}Lgt.ɵfac=function t(e){return new(e||Lgt)},Lgt.ɵmod=Zo({type:Lgt}),Lgt.ɵinj=co({imports:[[Bv,f1,dG]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Lgt,{declarations:[g1],imports:[Bv,f1,dG],exports:[g1]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Lgt,[{type:k_,args:[{declarations:[g1],exports:[g1],imports:[Bv,f1,dG]}]}],null,null);class Bgt{}Bgt.ɵfac=function t(e){return new(e||Bgt)},Bgt.ɵmod=Zo({type:Bgt}),Bgt.ɵinj=co({imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Bgt,{declarations:[q1],imports:[Bv],exports:[q1]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Bgt,[{type:k_,args:[{imports:[Bv],exports:[q1],declarations:[q1]}]}],null,null);class Vgt{}Vgt.ɵfac=function t(e){return new(e||Vgt)},Vgt.ɵmod=Zo({type:Vgt}),Vgt.ɵinj=co({imports:[[z3,Bv,Lgt,CV,zH,yY,WW,AY,dG,zG,r$,w1,y$,G0,Bgt,HL]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Vgt,{declarations:[N1,I1,U1,W1,P2,D2],imports:[z3,Bv,Lgt,CV,zH,yY,WW,AY,dG,zG,r$,w1,y$,G0,Bgt,HL],exports:[D2]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Vgt,[{type:k_,args:[{imports:[z3,Bv,Lgt,CV,zH,yY,WW,AY,dG,zG,r$,w1,y$,G0,Bgt,HL],exports:[D2],entryComponents:[I1],declarations:[N1,I1,U1,W1,P2,D2]}]}],null,null);class jgt{}jgt.ɵfac=function t(e){return new(e||jgt)},jgt.ɵmod=Zo({type:jgt}),jgt.ɵinj=co({imports:[[Bv,Vgt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(jgt,{declarations:[E2,A2],imports:[Bv,Vgt],exports:[A2]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jgt,[{type:k_,args:[{imports:[Bv,Vgt],exports:[A2],declarations:[E2,A2]}]}],null,null);class Ugt{constructor(t){this.onVisibilityChange=new Ab,this.ngUnsubscribe$=new x,this.onEvent$=new x;const e=new IntersectionObserver((t=>{this.onEvent$.next(t)}));e.observe(t.nativeElement),this.ngUnsubscribe$.subscribe((()=>{e.unobserve(t.nativeElement)})),this.onEvent$.pipe(un(this.ngUnsubscribe$)).subscribe((t=>{const e=t.slice(-1)[0];this.onVisibilityChange.emit({visible:e.isIntersecting})}))}ngOnDestroy(){this.ngUnsubscribe$.next(),this.ngUnsubscribe$.complete()}waitForEventForTestOnly(){return new Promise((t=>this.onEvent$.pipe(Ne(1)).subscribe((()=>{t()}))))}}Ugt.ɵfac=function t(e){return new(e||Ugt)(Mu(ch))},Ugt.ɵdir=Jo({type:Ugt,selectors:[["","observeIntersection",""]],outputs:{onVisibilityChange:"onVisibilityChange"}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Ugt,[{type:g_,args:[{selector:"[observeIntersection]"}]}],(function(){return[{type:ch}]}),{onVisibilityChange:[{type:__}]});class Wgt{}Wgt.ɵfac=function t(e){return new(e||Wgt)},Wgt.ɵmod=Zo({type:Wgt}),Wgt.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Wgt,{declarations:[Ugt],exports:[Ugt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Wgt,[{type:k_,args:[{exports:[Ugt],declarations:[Ugt]}]}],null,null);const Ggt=["main"],Ygt=["xAxis"],qgt=["yAxis"],Zgt=["content"],Xgt=["histograms"];function Kgt(t,e){if(1&t&&(Ha(),Ou(0,"g"),Ou(1,"text"),Mf(2),Pu(),Pu()),2&t){const t=Lu();Nm("transform",t.getCssTranslate(t.tooltipData.xAxis.position,9)),Jc(2),vf(t.tooltipData.xAxis.label)}}function Jgt(t,e){if(1&t&&(Ha(),Ou(0,"g"),Ou(1,"text"),Mf(2),Pu(),Pu()),2&t){const t=Lu();Nm("transform",t.getGroupTransform(t.tooltipData.closestDatum)),Jc(1),Nm("y",t.tooltipData.yAxis.position),Jc(1),xf(" ",t.tooltipData.yAxis.label," ")}}function Qgt(t,e){if(1&t&&(Ha(),Ou(0,"g"),wu(1,"line",16),Pu()),2&t){const t=e.$implicit;Nm("transform",Lu().getCssTranslate(0,t))}}function $gt(t,e){1&t&&(Ha(),wu(0,"line",20))}function tht(t,e){if(1&t&&(Ha(),wu(0,"circle",21)),2&t){const t=Lu().$implicit,e=Lu();Nm("cx",e.getUiCoordFromBinForContent(e.getClosestBinFromBinCoordinate(t,e.tooltipData.xPositionInBinCoord)).x)("cy",e.getUiCoordFromBinForContent(e.getClosestBinFromBinCoordinate(t,e.tooltipData.xPositionInBinCoord)).y)}}function eht(t,e){if(1&t&&(Ha(),Ou(0,"g",17),Wm(1,$gt,1,0,"line",18),wu(2,"path"),Wm(3,tht,1,2,"circle",19),Pu()),2&t){const t=e.$implicit,n=Lu();of("color",n.getHistogramFill(t)),Nm("transform",n.getGroupTransform(t)),Jc(1),vu("ngIf",n.mode===n.HistogramMode.OFFSET),Jc(1),Nm("d",n.getHistogramPath(t)),Jc(1),vu("ngIf",n.tooltipData)}}function nht(t,e){if(1&t&&(Ha(),wu(0,"circle",21)),2&t){const t=Lu(2);Nm("cx",t.getUiCoordFromBinForContent(t.tooltipData.closestBin).x)("cy",t.getUiCoordFromBinForContent(t.tooltipData.closestBin).y)}}function oht(t,e){if(1&t&&(Ha(),Ou(0,"g",4),Ou(1,"g"),wu(2,"path"),Wm(3,nht,1,2,"circle",19),Pu(),Ou(4,"g",22),Ou(5,"text",23),Mf(6),Pu(),Pu(),Pu()),2&t){const t=Lu();Jc(1),Nm("transform",t.getGroupTransform(t.tooltipData.closestDatum)),Jc(1),Nm("d",t.getHistogramPath(t.tooltipData.closestDatum)),Jc(1),vu("ngIf",t.tooltipData.closestBin),Jc(1),Nm("transform",t.getCssTranslate(t.tooltipData.value.position.x,t.tooltipData.value.position.y)),Jc(2),vf(t.tooltipData.value.label)}}class iht{constructor(t){this.changeDetector=t,this.mode=TE.OFFSET,this.timeProperty=RE.STEP,this.HistogramMode=TE,this.tooltipData=null,this.ngUnsubscribe=new x,this.layout={histogramHeight:0,contentClientRect:{height:0,width:0}},this.scales=null,this.formatters={binNumber:Ltt(".3~s"),count:Ltt(".3n"),wallTime:Jet("%m/%d %X"),step:Ltt(".0f"),relative:t=>Ltt(".1r")(t/36e5)+"h"},this.domVisible=!1}ngOnChanges(){this.updateChartIfVisible()}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}ngAfterViewInit(){Vt(this.main.nativeElement,"mousemove",{passive:!0}).pipe(un(this.ngUnsubscribe)).subscribe((t=>this.onMouseMove(t)))}getCssTranslate(t,e){return`translate(${t}, ${e})`}getClosestBinFromBinCoordinate(t,e){if(!t.bins.length)return{x:0,dx:0,y:0};const n=t.bins[0],o=t.bins.slice(-1)[0];return e<n.x?n:e>=o.x+o.dx?o:t.bins.find((t=>t.x<=e&&e<t.x+t.dx))}getUiCoordFromBinForContent(t){return this.scales?{x:this.scales.binScale(sht(t)),y:this.scales.countScale(t.y)}:{x:0,y:0}}getHistogramPath(t){if(!this.scales||!t.bins.length)return"";const e=this.scales.binScale,n=this.scales.countScale,o=t.bins[0],i=t.bins.slice(-1)[0],a=[`M${e(sht(o))},${n(0)}`];for(const o of t.bins)a.push(`L${e(sht(o))},${n(o.y)}`);return a.push(`L${e(sht(i))},${n(0)}`),a.join("")}trackByWallTime(t){return t.wallTime}getGroupTransform(t){return this.scales&&this.mode!==TE.OVERLAY?`translate(0, ${this.scales.temporalScale(this.getTimeValue(t))})`:""}getHistogramFill(t){return this.scales?this.scales.d3ColorScale(this.getTimeValue(t)):""}getGridTickYLocs(){if(!this.scales||this.mode===TE.OFFSET)return[];const t=this.scales.countScale;return t.ticks().map((e=>t(e)))}onResize(){this.updateClientRects(),this.updateChartIfVisible()}onVisibilityChange({visible:t}){this.domVisible=t,t&&(this.updateClientRects(),this.updateChartIfVisible())}getTimeValue(t){switch(this.timeProperty){case RE.WALL_TIME:return t.wallTime;case RE.STEP:return t.step;case RE.RELATIVE:return t.wallTime-this.data[0].wallTime}}updateClientRects(){this.content&&(this.layout.contentClientRect=this.content.nativeElement.getBoundingClientRect(),this.layout.histogramHeight=this.layout.contentClientRect.height/2.5)}updateChartIfVisible(){this.domVisible&&(this.scales=this.computeScales(this.data),this.renderXAxis(),this.renderYAxis(),this.changeDetector.detectChanges())}computeScales(t){const{width:e,height:n}=this.layout.contentClientRect,{min:o,max:i}=rht(t,(t=>(function e(t,n){return t.reduce(((t,e)=>Math.min(t,n(e))),1/0)})(t.bins,(t=>t.x))),(t=>aht(t.bins,(({x:t,dx:e})=>t+e)))),a=aht(t,(t=>aht(t.bins,(({y:t})=>t)))),r=pet().domain([o,i]).nice(),s=this.mode!==TE.OVERLAY&&this.timeProperty==RE.WALL_TIME?Cot():pet(),l=t.map((t=>this.getTimeValue(t))),{min:c,max:d}=rht(l,(t=>t)),p=[c,d];s.domain(p);const m=pet();m.domain([0,a]);const u=H7(this.colorScale?this.colorScale(this.name):"#000"),f=pet();return f.domain(p),r.range([0,e]),f.range([u.brighter(),u.darker()]),f.interpolate(M8),this.mode===TE.OVERLAY?(s.range([n,n]),m.range([n,0])):(s.range([n-(this.mode===TE.OFFSET?n-this.layout.histogramHeight:0),n]),m.range([0,-this.layout.histogramHeight])),{binScale:r,d3ColorScale:f,countScale:m,temporalScale:s}}renderXAxis(){if(!this.scales)return;const{width:t}=this.layout.contentClientRect,e=W5(this.scales.binScale).ticks(Math.max(2,t/20));e.tickFormat(this.formatters.binNumber),e(r6(this.xAxis.nativeElement))}getYAxisFormatter(){if(this.mode===TE.OVERLAY)return this.formatters.count;switch(this.timeProperty){case RE.WALL_TIME:return this.formatters.wallTime;case RE.STEP:return this.formatters.step;case RE.RELATIVE:return this.formatters.relative;default:throw RangeError(`Y axis formatter for ${this.timeProperty} must be implemented`)}}renderYAxis(){if(!this.scales)return;const t=this.mode===TE.OVERLAY?this.scales.countScale:this.scales.temporalScale,{height:e}=this.layout.contentClientRect,n=U5(t).ticks(Math.max(2,e/15));n.tickFormat(this.getYAxisFormatter()),n(r6(this.yAxis.nativeElement))}findClosestDatumIndex(t){let e=t.target,n=e;for(;e&&e!==this.histograms.nativeElement;)n=e,e=e.parentElement;return e?Array.from(e.children).indexOf(n):-1}onMouseMoveForTestOnly(t){return this.onMouseMove(t)}onMouseMove(t){if(!this.scales)return;const e=t.offsetX,n=t.offsetY,o=this.findClosestDatumIndex(t);if(o<0)return;const i=this.scales.binScale.invert(e),a=this.data[o],r=this.getClosestBinFromBinCoordinate(a,i);this.tooltipData={value:{position:{x:e,y:n},label:this.mode===TE.OFFSET?this.formatters.count(r.y):`Step: ${this.formatters.step(a.step)}`},xAxis:{position:this.getUiCoordFromBinForContent(r).x,label:this.formatters.binNumber(sht(r))},yAxis:{position:this.scales.countScale(this.mode===TE.OFFSET?0:r.y),label:this.mode===TE.OFFSET?this.getYAxisFormatter()(this.getTimeValue(a)):this.formatters.binNumber(r.y)},xPositionInBinCoord:i,closestDatum:a,closestBin:r},this.changeDetector.detectChanges()}}function aht(t,e){return t.reduce(((t,n)=>Math.max(t,e(n))),-1/0)}function rht(t,e,n){n||(n=e);let o=1/0,i=-1/0;for(const a of t)o=Math.min(o,e(a)),i=Math.max(i,n(a));return{min:o,max:i}}function sht(t){return t.x+.5*t.dx}iht.ɵfac=function t(e){return new(e||iht)(Mu(Hh))},iht.ɵcmp=Uo({type:iht,selectors:[["tb-histogram-v2"]],viewQuery:function t(e,n){if(1&e&&(Wb(Ggt,1),Wb(Ygt,1),Wb(qgt,1),Wb(Zgt,1),Wb(Xgt,1)),2&e){let t;Ub(t=Yb())&&(n.main=t.first),Ub(t=Yb())&&(n.xAxis=t.first),Ub(t=Yb())&&(n.yAxis=t.first),Ub(t=Yb())&&(n.content=t.first),Ub(t=Yb())&&(n.histograms=t.first)}},inputs:{mode:"mode",timeProperty:"timeProperty",colorScale:"colorScale",name:"name",data:"data"},features:[Si],decls:20,vars:9,consts:[["detectResize","","observeIntersection","",3,"onResize","onVisibilityChange"],["main",""],[1,"axis","x-axis"],["xAxis",""],[1,"tooltip"],[4,"ngIf"],[1,"axis","y-axis"],["yAxis",""],[1,"content"],["content",""],[1,"grid"],[4,"ngFor","ngForOf"],[1,"histograms"],["histograms",""],["class","histogram",3,"color",4,"ngFor","ngForOf","ngForTrackBy"],["class","tooltip",4,"ngIf"],["x2","100%",1,"tick"],[1,"histogram"],["class","baseline","x2","100%",4,"ngIf"],["r","2",4,"ngIf"],["x2","100%",1,"baseline"],["r","2"],[1,"value-label"],["x","3","y","-3"]],template:function t(e,n){1&e&&(Ou(0,"div",0,1),Nu("onResize",(function t(){return n.onResize()}))("onVisibilityChange",(function t(e){return n.onVisibilityChange(e)})),Ha(),Ou(2,"svg",2),wu(3,"g",null,3),Ou(5,"g",4),Wm(6,Kgt,3,2,"g",5),Pu(),Pu(),Ou(7,"svg",6),wu(8,"g",null,7),Ou(10,"g",4),Wm(11,Jgt,3,3,"g",5),Pu(),Pu(),Ou(12,"svg",8,9),Ou(14,"g",10),Wm(15,Qgt,2,1,"g",11),Pu(),Ou(16,"g",12,13),Wm(18,eht,4,6,"g",14),Pu(),Wm(19,oht,7,5,"g",15),Pu(),Pu()),2&e&&(lf("main "+n.mode+" "+n.timeProperty),Jc(6),vu("ngIf",n.tooltipData),Jc(4),Nm("transform",n.getCssTranslate(9,0)),Jc(1),vu("ngIf",n.tooltipData),Jc(4),vu("ngForOf",n.getGridTickYLocs()),Jc(3),vu("ngForOf",n.data)("ngForTrackBy",n.trackByWallTime),Jc(1),vu("ngIf",n.tooltipData))},directives:[qK,Ugt,av,ov],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%], .main[_ngcontent-%COMP%]{display:inline-block;height:100%;width:100%}[_nghost-%COMP%]{box-sizing:border-box;padding:10px}.main[_ngcontent-%COMP%]{display:grid;grid-template-areas:"content y-axis" "x-axis .";grid-template-columns:1fr 50px;grid-template-rows:1fr 30px}.main.wall_time[_ngcontent-%COMP%]{grid-template-columns:1fr 75px}.tooltip[_ngcontent-%COMP%], .baseline[_ngcontent-%COMP%]{color:#000}body.dark-mode[_nghost-%COMP%]   .tooltip[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .tooltip[_ngcontent-%COMP%]{color:#fff}body.dark-mode[_nghost-%COMP%]   .baseline[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .baseline[_ngcontent-%COMP%]{color:#fff}.tooltip[_ngcontent-%COMP%]   text[_ngcontent-%COMP%]{font-weight:bold;font-size:10px}.tooltip[_ngcontent-%COMP%]   text[_ngcontent-%COMP%], .tooltip[_ngcontent-%COMP%]   circle[_ngcontent-%COMP%]{fill:currentColor}.tooltip[_ngcontent-%COMP%]   .value-label[_ngcontent-%COMP%]{dominant-baseline:ideographic;text-anchor:start}.axis[_ngcontent-%COMP%]    {color:#616161}body.dark-mode[_nghost-%COMP%]   .axis[_ngcontent-%COMP%]    , body.dark-mode   [_nghost-%COMP%]   .axis[_ngcontent-%COMP%]    {color:rgba(255,255,255,.7)}.axis[_ngcontent-%COMP%]     .domain, .axis[_ngcontent-%COMP%]     .tick text{display:none}.axis[_ngcontent-%COMP%]     .tick:nth-child(2n+1) text{display:initial}svg[_ngcontent-%COMP%]{height:100%;width:100%;pointer-events:visiblePainted}svg[_ngcontent-%COMP%]   line[_ngcontent-%COMP%], svg[_ngcontent-%COMP%]   circle[_ngcontent-%COMP%], svg[_ngcontent-%COMP%]   .tooltip[_ngcontent-%COMP%]{pointer-events:none}.x-axis[_ngcontent-%COMP%]{grid-area:x-axis}.x-axis[_ngcontent-%COMP%]   .tooltip[_ngcontent-%COMP%]{dominant-baseline:hanging;text-anchor:middle}.y-axis[_ngcontent-%COMP%]{grid-area:y-axis}.y-axis[_ngcontent-%COMP%]   .tooltip[_ngcontent-%COMP%]{dominant-baseline:middle;text-anchor:start}.content[_ngcontent-%COMP%]   .tick[_ngcontent-%COMP%], .axis[_ngcontent-%COMP%]     .tick line{stroke:#ddd}body.dark-mode[_nghost-%COMP%]   .content[_ngcontent-%COMP%]   .tick[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .content[_ngcontent-%COMP%]   .tick[_ngcontent-%COMP%]{stroke:#555}body.dark-mode[_nghost-%COMP%]   .axis[_ngcontent-%COMP%]     .tick line, body.dark-mode   [_nghost-%COMP%]   .axis[_ngcontent-%COMP%]     .tick line{stroke:#555}.content[_ngcontent-%COMP%]{grid-area:content}.content[_ngcontent-%COMP%]   .tick[_ngcontent-%COMP%]{stroke-width:1px;stroke-dasharray:2}.content[_ngcontent-%COMP%]   circle[_ngcontent-%COMP%], .content[_ngcontent-%COMP%]   path[_ngcontent-%COMP%]{fill:currentColor;stroke-opacity:.5;stroke-width:1px}.content[_ngcontent-%COMP%]   circle[_ngcontent-%COMP%]{stroke:#fff}.content[_ngcontent-%COMP%]   .baseline[_ngcontent-%COMP%]{stroke-opacity:.1;stroke-width:1px;stroke:currentColor;width:100%}.content[_ngcontent-%COMP%]   .tooltip[_ngcontent-%COMP%]   path[_ngcontent-%COMP%]{stroke-opacity:1;stroke:currentColor;fill:transparent}.offset[_ngcontent-%COMP%]   .content[_ngcontent-%COMP%]   .histograms[_ngcontent-%COMP%]   path[_ngcontent-%COMP%]{stroke:#fff}body.dark-mode[_nghost-%COMP%]   .offset[_ngcontent-%COMP%]   .content[_ngcontent-%COMP%]   .histograms[_ngcontent-%COMP%]   path[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .offset[_ngcontent-%COMP%]   .content[_ngcontent-%COMP%]   .histograms[_ngcontent-%COMP%]   path[_ngcontent-%COMP%]{stroke:#555}.overlay[_ngcontent-%COMP%]   .x-axis[_ngcontent-%COMP%]     .tick line{display:none}.overlay[_ngcontent-%COMP%]   .content[_ngcontent-%COMP%]   path[_ngcontent-%COMP%]{fill-opacity:0;stroke:currentColor}.tooltip[_ngcontent-%COMP%], .content[_ngcontent-%COMP%]   circle[_ngcontent-%COMP%]{display:none}.main[_ngcontent-%COMP%]:hover   .content[_ngcontent-%COMP%]   circle[_ngcontent-%COMP%], .main[_ngcontent-%COMP%]:hover   .tooltip[_ngcontent-%COMP%]{display:block}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(iht,[{type:h_,args:[{selector:"tb-histogram-v2",templateUrl:"histogram_v2_component.ng.html",styleUrls:["histogram_v2_component.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:Hh}]}),{main:[{type:Fr,args:["main"]}],xAxis:[{type:Fr,args:["xAxis"]}],yAxis:[{type:Fr,args:["yAxis"]}],content:[{type:Fr,args:["content"]}],histograms:[{type:Fr,args:["histograms"]}],mode:[{type:y_}],timeProperty:[{type:y_}],colorScale:[{type:y_}],name:[{type:y_}],data:[{type:y_}]});class lht{}lht.ɵfac=function t(e){return new(e||lht)},lht.ɵmod=Zo({type:lht}),lht.ɵinj=co({imports:[[Bv,AJ,Wgt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(lht,{declarations:[Hft,iht],imports:[Bv,AJ,Wgt],exports:[Hft,iht]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(lht,[{type:k_,args:[{declarations:[Hft,iht],exports:[Hft,iht],imports:[Bv,AJ,Wgt]}]}],null,null);class cht{}cht.ɵfac=function t(e){return new(e||cht)},cht.ɵmod=Zo({type:cht}),cht.ɵinj=co({imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(cht,{declarations:[Y2],imports:[Bv],exports:[Y2]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(cht,[{type:k_,args:[{declarations:[Y2],exports:[Y2],imports:[Bv]}]}],null,null);class dht{}dht.ɵfac=function t(e){return new(e||dht)},dht.ɵmod=Zo({type:dht}),dht.ɵinj=co({imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(dht,{declarations:[X2,Z2],imports:[Bv],exports:[X2]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(dht,[{type:k_,args:[{declarations:[X2,Z2],exports:[X2],imports:[Bv]}]}],null,null);class pht{}pht.ɵfac=function t(e){return new(e||pht)},pht.ɵmod=Zo({type:pht}),pht.ɵinj=co({imports:[[Bv,lht,zH,dG,w1,AJ,dht,cht]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(pht,{declarations:[Wft,Uft],imports:[Bv,lht,zH,dG,w1,AJ,dht,cht],exports:[Wft]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(pht,[{type:k_,args:[{declarations:[Wft,Uft],exports:[Wft],imports:[Bv,lht,zH,dG,w1,AJ,dht,cht]}]}],null,null);class mht{}mht.ɵfac=function t(e){return new(e||mht)},mht.ɵmod=Zo({type:mht}),mht.ɵinj=co({imports:[[Bv,zH,dG,w1,PX,dht,cht]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(mht,{declarations:[i5,o5],imports:[Bv,zH,dG,w1,PX,dht,cht],exports:[i5]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(mht,[{type:k_,args:[{declarations:[i5,o5],exports:[i5],imports:[Bv,zH,dG,w1,PX,dht,cht]}]}],null,null);class uht{}uht.ɵfac=function t(e){return new(e||uht)},uht.ɵmod=Zo({type:uht}),uht.ɵinj=co({imports:[[Bv,iL,zH,dG,AY,zG]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(uht,{declarations:[fft,cft,Kut],imports:[Bv,iL,zH,dG,AY,zG],exports:[fft,cft,Kut]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(uht,[{type:k_,args:[{declarations:[fft,cft,Kut],exports:[fft,cft,Kut],imports:[Bv,iL,zH,dG,AY,zG]}]}],null,null);class fht{}fht.ɵfac=function t(e){return new(e||fht)},fht.ɵmod=Zo({type:fht}),fht.ɵinj=co({imports:[[Bv,iL,uht,AJ]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(fht,{declarations:[xft],imports:[Bv,iL,uht,AJ],exports:[xft]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fht,[{type:k_,args:[{declarations:[xft],exports:[xft],imports:[Bv,iL,uht,AJ]}]}],null,null);class ght{}ght.ɵfac=function t(e){return new(e||ght)},ght.ɵmod=Zo({type:ght}),ght.ɵinj=co({imports:[[Bv,VU,zH,WW,AY,mW,dT]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(ght,{declarations:[b5,h5],imports:[Bv,VU,zH,WW,AY,mW,dT],exports:[b5]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(ght,[{type:k_,args:[{declarations:[b5,h5],exports:[b5],imports:[Bv,VU,zH,WW,AY,mW,dT],entryComponents:[b5]}]}],null,null);class hht{}hht.ɵfac=function t(e){return new(e||hht)},hht.ɵmod=Zo({type:hht}),hht.ɵinj=co({imports:[[Bv,ght,fht,zH,dG,zG,w1,AJ,cht]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(hht,{declarations:[Nft,Rft],imports:[Bv,ght,fht,zH,dG,zG,w1,AJ,cht],exports:[Nft]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(hht,[{type:k_,args:[{declarations:[Nft,Rft],exports:[Nft],imports:[Bv,ght,fht,zH,dG,zG,w1,AJ,cht]}]}],null,null);class bht{}bht.ɵfac=function t(e){return new(e||bht)},bht.ɵmod=Zo({type:bht}),bht.ɵinj=co({imports:[[Bv,mht,hht,pht]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(bht,{declarations:[N2,Xft,Kft],imports:[Bv,mht,hht,pht],exports:[N2,Kft]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(bht,[{type:k_,args:[{declarations:[N2,Xft,Kft],exports:[N2,Kft],imports:[Bv,mht,hht,pht]}]}],null,null);const yht=["button"],_ht=new Nr("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS"),Cht=new Nr("MatButtonToggleGroup"),Mht={provide:vV,useExisting:In((()=>Oht)),multi:!0};let vht=0;class xht{constructor(t,e){this.source=t,this.value=e}}class Oht{constructor(t,e){this._changeDetector=t,this._vertical=!1,this._multiple=!1,this._disabled=!1,this._controlValueAccessorChangeFn=()=>{},this._onTouched=()=>{},this._name="mat-button-toggle-group-"+vht++,this.valueChange=new Ab,this.change=new Ab,this.appearance=e&&e.appearance?e.appearance:"standard"}get name(){return this._name}set name(t){this._name=t,this._buttonToggles&&this._buttonToggles.forEach((t=>{t.name=this._name,t._markForCheck()}))}get vertical(){return this._vertical}set vertical(t){this._vertical=rI(t)}get value(){const t=this._selectionModel?this._selectionModel.selected:[];return this.multiple?t.map((t=>t.value)):t[0]?t[0].value:void 0}set value(t){this._setSelectionByValue(t),this.valueChange.emit(this.value)}get selected(){const t=this._selectionModel?this._selectionModel.selected:[];return this.multiple?t:t[0]||null}get multiple(){return this._multiple}set multiple(t){this._multiple=rI(t)}get disabled(){return this._disabled}set disabled(t){this._disabled=rI(t),this._buttonToggles&&this._buttonToggles.forEach((t=>t._markForCheck()))}ngOnInit(){this._selectionModel=new jH(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter((t=>t.checked)))}writeValue(t){this.value=t,this._changeDetector.markForCheck()}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}_emitChangeEvent(){const t=this.selected,e=Array.isArray(t)?t[t.length-1]:t,n=new xht(e,this.value);this._controlValueAccessorChangeFn(n.value),this.change.emit(n)}_syncButtonToggle(t,e,n=!1,o=!1){this.multiple||!this.selected||t.checked||(this.selected.checked=!1),this._selectionModel?e?this._selectionModel.select(t):this._selectionModel.deselect(t):o=!0,o?Promise.resolve().then((()=>this._updateModelValue(n))):this._updateModelValue(n)}_isSelected(t){return this._selectionModel&&this._selectionModel.isSelected(t)}_isPrechecked(t){return void 0!==this._rawValue&&(this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some((e=>null!=t.value&&e===t.value)):t.value===this._rawValue)}_setSelectionByValue(t){if(this._rawValue=t,this._buttonToggles)if(this.multiple&&t){if(!Array.isArray(t)&&("undefined"==typeof ngDevMode||ngDevMode))throw Error("Value must be an array in multiple-selection mode.");this._clearSelection(),t.forEach((t=>this._selectValue(t)))}else this._clearSelection(),this._selectValue(t)}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach((t=>t.checked=!1))}_selectValue(t){const e=this._buttonToggles.find((e=>null!=e.value&&e.value===t));e&&(e.checked=!0,this._selectionModel.select(e))}_updateModelValue(t){t&&this._emitChangeEvent(),this.valueChange.emit(this.value)}}Oht.ɵfac=function t(e){return new(e||Oht)(Mu(Hh),Mu(_ht,8))},Oht.ɵdir=Jo({type:Oht,selectors:[["mat-button-toggle-group"]],contentQueries:function t(e,n,o){if(1&e&&Gb(o,wht,1),2&e){let t;Ub(t=Yb())&&(n._buttonToggles=t)}},hostAttrs:["role","group",1,"mat-button-toggle-group"],hostVars:5,hostBindings:function t(e,n){2&e&&(Nm("aria-disabled",n.disabled),af("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard","standard"===n.appearance))},inputs:{appearance:"appearance",name:"name",vertical:"vertical",value:"value",multiple:"multiple",disabled:"disabled"},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[ih([Mht,{provide:Cht,useExisting:Oht}])]}),Oht.ctorParameters=()=>[{type:Hh},{type:void 0,decorators:[{type:_s},{type:ys,args:[_ht]}]}],Oht.propDecorators={_buttonToggles:[{type:zr,args:[In((()=>wht)),{descendants:!0}]}],appearance:[{type:y_}],name:[{type:y_}],vertical:[{type:y_}],value:[{type:y_}],valueChange:[{type:__}],multiple:[{type:y_}],disabled:[{type:y_}],change:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(Oht,[{type:g_,args:[{selector:"mat-button-toggle-group",providers:[Mht,{provide:Cht,useExisting:Oht}],host:{role:"group",class:"mat-button-toggle-group","[attr.aria-disabled]":"disabled","[class.mat-button-toggle-vertical]":"vertical","[class.mat-button-toggle-group-appearance-standard]":'appearance === "standard"'},exportAs:"matButtonToggleGroup"}]}],(function(){return[{type:Hh},{type:void 0,decorators:[{type:_s},{type:ys,args:[_ht]}]}]}),{valueChange:[{type:__}],change:[{type:__}],appearance:[{type:y_}],name:[{type:y_}],vertical:[{type:y_}],value:[{type:y_}],multiple:[{type:y_}],disabled:[{type:y_}],_buttonToggles:[{type:zr,args:[In((()=>wht)),{descendants:!0}]}]});const Pht=zz(class{});class wht extends Pht{constructor(t,e,n,o,i,a){super(),this._changeDetectorRef=e,this._elementRef=n,this._focusMonitor=o,this._isSingleSelector=!1,this._checked=!1,this.ariaLabelledby=null,this._disabled=!1,this.change=new Ab;const r=Number(i);this.tabIndex=r||0===r?r:null,this.buttonToggleGroup=t,this.appearance=a&&a.appearance?a.appearance:"standard"}get buttonId(){return`${this.id}-button`}get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(t){this._appearance=t}get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(t){const e=rI(t);e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(t){this._disabled=rI(t)}ngOnInit(){const t=this.buttonToggleGroup;this._isSingleSelector=t&&!t.multiple,this.id=this.id||"mat-button-toggle-"+vht++,this._isSingleSelector&&(this.name=t.name),t&&(t._isPrechecked(this)?this.checked=!0:t._isSelected(this)!==this._checked&&t._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){const t=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),t&&t._isSelected(this)&&t._syncButtonToggle(this,!1,!1,!0)}focus(t){this._buttonElement.nativeElement.focus(t)}_onButtonClick(){const t=!!this._isSingleSelector||!this._checked;t!==this._checked&&(this._checked=t,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.change.emit(new xht(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}}wht.ɵfac=function t(e){return new(e||wht)(Mu(Cht,8),Mu(Hh),Mu(ch),Mu(pz),Or("tabindex"),Mu(_ht,8))},wht.ɵcmp=Uo({type:wht,selectors:[["mat-button-toggle"]],viewQuery:function t(e,n){if(1&e&&Wb(yht,1),2&e){let t;Ub(t=Yb())&&(n._buttonElement=t.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:12,hostBindings:function t(e,n){1&e&&Nu("focus",(function t(){return n.focus()})),2&e&&(Nm("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),af("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-appearance-standard","standard"===n.appearance))},inputs:{disableRipple:"disableRipple",ariaLabelledby:["aria-labelledby","ariaLabelledby"],tabIndex:"tabIndex",appearance:"appearance",checked:"checked",disabled:"disabled",id:"id",name:"name",ariaLabel:["aria-label","ariaLabel"],value:"value"},outputs:{change:"change"},exportAs:["matButtonToggle"],features:[gm],ngContentSelectors:["*"],decls:6,vars:9,consts:[["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"id","disabled","click"],["button",""],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"]],template:function t(e,n){if(1&e&&(Vu(),Ou(0,"button",0,1),Nu("click",(function t(){return n._onButtonClick()})),Ou(2,"span",2),ju(3),Pu(),Pu(),wu(4,"span",3),wu(5,"span",4)),2&e){const t=Gm(1);vu("id",n.buttonId)("disabled",n.disabled||null),Nm("tabindex",n.disabled?-1:n.tabIndex)("aria-pressed",n.checked)("name",n.name||null)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),Jc(5),vu("matRippleTrigger",t)("matRippleDisabled",n.disableRipple||n.disabled)}},directives:[pH],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;border-radius:2px;-webkit-tap-highlight-color:transparent}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:4px}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}.cdk-high-contrast-active .mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:.5}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:.04}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.12}.cdk-high-contrast-active .mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.5}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{border-radius:inherit;pointer-events:none;opacity:0;top:0;left:0;right:0;bottom:0;position:absolute}.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 36px}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}\n"],encapsulation:2,changeDetection:0}),wht.ctorParameters=()=>[{type:Oht,decorators:[{type:_s},{type:ys,args:[Cht]}]},{type:Hh},{type:ch},{type:pz},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[_ht]}]}],wht.propDecorators={ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],_buttonElement:[{type:Fr,args:["button"]}],id:[{type:y_}],name:[{type:y_}],value:[{type:y_}],tabIndex:[{type:y_}],appearance:[{type:y_}],checked:[{type:y_}],disabled:[{type:y_}],change:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(wht,[{type:h_,args:[{selector:"mat-button-toggle",template:'<button #button class="mat-button-toggle-button mat-focus-indicator"\n        type="button"\n        [id]="buttonId"\n        [attr.tabindex]="disabled ? -1 : tabIndex"\n        [attr.aria-pressed]="checked"\n        [disabled]="disabled || null"\n        [attr.name]="name || null"\n        [attr.aria-label]="ariaLabel"\n        [attr.aria-labelledby]="ariaLabelledby"\n        (click)="_onButtonClick()">\n  <span class="mat-button-toggle-label-content">\n    <ng-content></ng-content>\n  </span>\n</button>\n\n<span class="mat-button-toggle-focus-overlay"></span>\n<span class="mat-button-toggle-ripple" matRipple\n     [matRippleTrigger]="button"\n     [matRippleDisabled]="this.disableRipple || this.disabled">\n</span>\n',encapsulation:Po.None,exportAs:"matButtonToggle",changeDetection:xo.OnPush,inputs:["disableRipple"],host:{"[class.mat-button-toggle-standalone]":"!buttonToggleGroup","[class.mat-button-toggle-checked]":"checked","[class.mat-button-toggle-disabled]":"disabled","[class.mat-button-toggle-appearance-standard]":'appearance === "standard"',class:"mat-button-toggle","[attr.aria-label]":"null","[attr.aria-labelledby]":"null","[attr.id]":"id","[attr.name]":"null","(focus)":"focus()",role:"presentation"},styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;border-radius:2px;-webkit-tap-highlight-color:transparent}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:4px}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}.cdk-high-contrast-active .mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:.5}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:.04}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.12}.cdk-high-contrast-active .mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.5}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{border-radius:inherit;pointer-events:none;opacity:0;top:0;left:0;right:0;bottom:0;position:absolute}.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 36px}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}\n"]}]}],(function(){return[{type:Oht,decorators:[{type:_s},{type:ys,args:[Cht]}]},{type:Hh},{type:ch},{type:pz},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:void 0,decorators:[{type:_s},{type:ys,args:[_ht]}]}]}),{ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],change:[{type:__}],tabIndex:[{type:y_}],appearance:[{type:y_}],checked:[{type:y_}],disabled:[{type:y_}],id:[{type:y_}],name:[{type:y_}],ariaLabel:[{type:y_,args:["aria-label"]}],_buttonElement:[{type:Fr,args:["button"]}],value:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class kht{}kht.ɵfac=function t(e){return new(e||kht)},kht.ɵmod=Zo({type:kht}),kht.ɵinj=co({imports:[[Tz,mH],Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(kht,{declarations:function(){return[Oht,wht]},imports:function(){return[Tz,mH]},exports:function(){return[Tz,Oht,wht]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(kht,[{type:k_,args:[{imports:[Tz,mH],exports:[Tz,Oht,wht],declarations:[Oht,wht]}]}],null,null);class Sht{}Sht.ɵfac=function t(e){return new(e||Sht)},Sht.ɵmod=Zo({type:Sht}),Sht.ɵinj=co({imports:[[Bv,mW]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Sht,{declarations:[kgt],imports:[Bv,mW],exports:[kgt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Sht,[{type:k_,args:[{declarations:[kgt],exports:[kgt],imports:[Bv,mW]}]}],null,null);class Dht{}Dht.ɵfac=function t(e){return new(e||Dht)},Dht.ɵmod=Zo({type:Dht}),Dht.ɵinj=co({imports:[[Bv,Sht,zH,kht,yY,dG,mW,PX,cT]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Dht,{declarations:[Agt,Dgt,Egt],imports:[Bv,Sht,zH,kht,yY,dG,mW,PX,cT],exports:[Agt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Dht,[{type:k_,args:[{declarations:[Agt,Dgt,Egt],exports:[Agt],imports:[Bv,Sht,zH,kht,yY,dG,mW,PX,cT]}]}],null,null);class Eht{}Eht.ɵfac=function t(e){return new(e||Eht)},Eht.ɵmod=Zo({type:Eht}),Eht.ɵinj=co({imports:[[bht,Bv,Lgt,f1,zH,dG,AY,Dht,iF]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Eht,{declarations:[dgt,pgt,fgt,hgt,ygt,Cgt,zgt,Hgt,U2,W2,Ogt,Pgt],imports:[bht,Bv,Lgt,f1,zH,dG,AY,Dht,iF],exports:[Hgt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Eht,[{type:k_,args:[{declarations:[dgt,pgt,fgt,hgt,ygt,Cgt,zgt,Hgt,U2,W2,Ogt,Pgt],exports:[Hgt],imports:[bht,Bv,Lgt,f1,zH,dG,AY,Dht,iF]}]}],null,null);class Aht{}function Rht(){return[{actionCreator:lQ,alertFromAction:t=>{const{wasPinned:e,canCreateNewPins:n}=t;return e||n?null:{localizedMessage:"Max pin limit exceeded. Remove existing pins before adding more. See https://github.com/tensorflow/tensorboard/issues/4242"}}}]}function Tht(){return zk(WT,(t=>({scalarSmoothing:t})))}function Nht(){return zk(VT,(t=>({ignoreOutliers:t})))}function Iht(){return zk(BT,(t=>({tooltipSortString:String(t)})))}Aht.ɵfac=function t(e){return new(e||Aht)},Aht.ɵmod=Zo({type:Aht}),Aht.ɵinj=co({imports:[[Bv,Dht,jgt,Eht]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Aht,{declarations:[Fgt],imports:[Bv,Dht,jgt,Eht],exports:[Fgt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Aht,[{type:k_,args:[{declarations:[Fgt],exports:[Fgt],imports:[Bv,Dht,jgt,Eht]}]}],null,null);class zht{}zht.ɵfac=function t(e){return new(e||zht)},zht.ɵmod=Zo({type:zht}),zht.ɵinj=co({providers:[{provide:wQ,useFactory:SQ,deps:[kQ]},{provide:kQ,useValue:CT}],imports:[[Bv,ED,CA,bq.forPlugin(dR,Fgt),dT,Aht,iS.forFeature(_T,CQ,wQ),LS.forFeature([PQ]),vA.registerAlertActions(Rht),kR.defineGlobalSetting(Tht),kR.defineGlobalSetting(Nht),kR.defineGlobalSetting(Iht)]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(zht,{imports:[Bv,ED,CA,bq,dT,Aht,oS,FS,vA,kR,kR,kR]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(zht,[{type:k_,args:[{imports:[Bv,ED,CA,bq.forPlugin(dR,Fgt),dT,Aht,iS.forFeature(_T,CQ,wQ),LS.forFeature([PQ]),vA.registerAlertActions(Rht),kR.defineGlobalSetting(Tht),kR.defineGlobalSetting(Nht),kR.defineGlobalSetting(Iht)],providers:[{provide:wQ,useFactory:SQ,deps:[kQ]},{provide:kQ,useValue:CT}],entryComponents:[Fgt]}]}],null,null);const Hht="npmi";var Fht,Lht,Bht,Vht;!(function(t){t[t.AND=0]="AND"})(Fht||(Fht={})),(function(t){t[t.METRIC=0]="METRIC",t[t.OPERATOR=1]="OPERATOR"})(Lht||(Lht={})),(function(t){t[t.DEFAULT=0]="DEFAULT",t[t.EMBEDDINGS=1]="EMBEDDINGS"})(Bht||(Bht={})),(function(t){t[t.DESCENDING=0]="DESCENDING",t[t.ASCENDNG=1]="ASCENDNG",t[t.SIMILAR=2]="SIMILAR",t[t.DISSIMILAR=3]="DISSIMILAR"})(Vht||(Vht={}));class jht{}jht.ɵfac=function t(e){return new(e||jht)},jht.ɵcmp=Uo({type:jht,selectors:[["npmi-inactive-view"]],decls:6,vars:0,consts:[[1,"container"],[1,"title"]],template:function t(e,n){1&e&&(Ou(0,"div"),Ou(1,"div",0),Ou(2,"div",1),Mf(3,"nPMI is inactive because no data is available."),Pu(),Ou(4,"div"),Mf(5," To use the nPMI, calculate nPMI values, and log them using the summary writer. "),Pu(),Pu(),Pu())},styles:[".container[_ngcontent-%COMP%] {\n  height: 100%;\n  font-family: Roboto;\n  font-size: 15px;\n  padding: 50px;\n}\n\n.title[_ngcontent-%COMP%] {\n  font-size: 135%;\n  font-weight: bold;\n  margin-bottom: 25px;\n}"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jht,[{type:h_,args:[{selector:"npmi-inactive-view",templateUrl:"./inactive_component.ng.html",styleUrls:["./inactive_component.css"]}]}],null,null);const Uht=Fk(Hht),Wht=zk(Uht,(t=>t.pluginDataLoaded.state)),Ght=zk(Uht,(t=>t.annotationData)),Yht=zk(Uht,(t=>t.runToMetrics)),qht=zk(Uht,(t=>t.embeddingDataSet)),Zht=zk(Uht,(t=>t.selectedAnnotations)),Xht=zk(Uht,(t=>t.flaggedAnnotations)),Kht=zk(Uht,(t=>t.hiddenAnnotations)),Jht=zk(Uht,(t=>t.annotationsRegex)),Qht=zk(Uht,(t=>t.metricsRegex)),$ht=zk(Uht,(t=>t.metricArithmetic)),tbt=zk(Uht,(t=>t.metricFilters)),ebt=zk(Uht,(t=>t.sort)),nbt=zk(Uht,(t=>t.pcExpanded)),obt=zk(Uht,(t=>t.annotationsExpanded)),ibt=zk(Uht,(t=>t.sidebarExpanded)),abt=zk(Uht,(t=>t.showCounts)),rbt=zk(Uht,(t=>t.showHiddenAnnotations)),sbt=zk(Uht,(t=>t.viewActive)),lbt=zk(Uht,(t=>t.sidebarWidth)),cbt=zk(Uht,(t=>t.embeddingsMetric)),dbt=zk(Uht,(t=>t.embeddingsSidebarWidth)),pbt=zk(Uht,(t=>t.embeddingsSidebarExpanded)),mbt=Ww("[NPMI] nPMI Loaded"),ubt=Ww("[NPMI] nPMI Plugin Data Requested"),fbt=Ww("[NPMI] nPMI Plugin Data Loaded",{_as:"props",_p:void 0}),gbt=Ww("[NPMI] nPMI Plugin Data Request Failed"),hbt=Ww("[NPMI] Adding/Removing Annotations to/from Selected",{_as:"props",_p:void 0}),bbt=Ww("[NPMI] Annotations Set",{_as:"props",_p:void 0}),ybt=Ww("[NPMI] Clearing the Annotation Selection"),_bt=Ww("[NPMI] Adding/Removing Annotations to/from Flagged",{_as:"props",_p:void 0}),Cbt=Ww("[NPMI] Adding/Removing Annotations to/from Hidden",{_as:"props",_p:void 0}),Mbt=Ww("[NPMI] Annotations Regex Changed",{_as:"props",_p:void 0}),vbt=Ww("[NPMI] Metrics Regex Changed",{_as:"props",_p:void 0}),xbt=Ww("[NPMI] Metric Filter Added",{_as:"props",_p:void 0}),Obt=Ww("[NPMI] Metric Filter Removed",{_as:"props",_p:void 0}),Pbt=Ww("[NPMI] Metric Filter Changed",{_as:"props",_p:void 0}),wbt=Ww("[NPMI] Annotation Sort Changed",{_as:"props",_p:void 0}),kbt=Ww("[NPMI] Similarity Sort Changed",{_as:"props",_p:void 0}),Sbt=Ww("[NPMI] Toggle PC Expanded"),Dbt=Ww("[NPMI] Toggle Annotations Expanded"),Ebt=Ww("[NPMI] Toggle Sidebar Expanded"),Abt=Ww("[NPMI] Show Counts Toggled"),Rbt=Ww("[NPMI] Show Hidden Annotations Toggled"),Tbt=Ww("[NPMI] Embeddings View Toggled",{_as:"props",_p:void 0}),Nbt=Ww("[NPMI] Sidebar Width Changed",{_as:"props",_p:void 0}),Ibt=Ww("[NPMI] Embeddings Sidebar Width Changed",{_as:"props",_p:void 0}),zbt=Ww("[NPMI] Toggle Embeddings Sidebar Expanded"),Hbt=Ww("[NPMI] Change Embedding DataSet",{_as:"props",_p:void 0});function Fbt(t){return t.startsWith("count@")}function Lbt(t){return t.startsWith("nPMI@")||t.startsWith("nPMI_diff@")}function Bbt(t){return t.startsWith("nPMI@")}function Vbt(t){return t.split("@",2)[1]}const jbt=mS({pluginDataLoaded:{state:BE.NOT_LOADED,lastLoadedTimeInMs:null},annotationData:{},runToMetrics:{},selectedAnnotations:[],flaggedAnnotations:[],hiddenAnnotations:[],annotationsRegex:"",metricsRegex:"",metricArithmetic:[],metricFilters:{},sort:{metric:"",order:Vht.DESCENDING},pcExpanded:!0,annotationsExpanded:!0,sidebarExpanded:!0,showCounts:!0,showHiddenAnnotations:!1,sidebarWidth:300,viewActive:Bht.DEFAULT,embeddingsMetric:"",embeddingsSidebarWidth:500,embeddingsSidebarExpanded:!0},pS(ubt,(t=>Object.assign(Object.assign({},t),{pluginDataLoaded:Object.assign(Object.assign({},t.pluginDataLoaded),{state:BE.LOADING})}))),pS(gbt,(t=>Object.assign(Object.assign({},t),{pluginDataLoaded:Object.assign(Object.assign({},t.pluginDataLoaded),{state:BE.FAILED})}))),pS(fbt,((t,{annotationData:e,metrics:n,embeddingDataSet:o})=>{const i={};for(const t in n){i[t]=[];for(const e of n[t])Lbt(e)&&i[t].push(e)}return Object.assign(Object.assign({},t),{runToMetrics:i,annotationData:e,embeddingDataSet:o,pluginDataLoaded:{state:BE.LOADED,lastLoadedTimeInMs:Date.now()}})})),pS(hbt,((t,{annotations:e})=>{const n=new Set([...t.selectedAnnotations,...e]);if(n.size===t.selectedAnnotations.length)for(const t of e)n.delete(t);return Object.assign(Object.assign({},t),{selectedAnnotations:[...n]})})),pS(bbt,((t,{annotations:e})=>Object.assign(Object.assign({},t),{selectedAnnotations:e}))),pS(ybt,(t=>Object.assign(Object.assign({},t),{selectedAnnotations:[]}))),pS(_bt,((t,{annotations:e})=>{const n=new Set([...t.flaggedAnnotations,...e]);if(n.size===t.flaggedAnnotations.length)for(const t of e)n.delete(t);return Object.assign(Object.assign({},t),{flaggedAnnotations:[...n],selectedAnnotations:[]})})),pS(Cbt,((t,{annotations:e})=>{const n=new Set([...t.hiddenAnnotations,...e]);if(n.size===t.hiddenAnnotations.length)for(const t of e)n.delete(t);return Object.assign(Object.assign({},t),{hiddenAnnotations:[...n],selectedAnnotations:[]})})),pS(Mbt,((t,{regex:e})=>Object.assign(Object.assign({},t),{annotationsRegex:e}))),pS(vbt,((t,{regex:e})=>Object.assign(Object.assign({},t),{metricsRegex:e}))),pS(xbt,((t,{metric:e})=>{if(t.metricFilters[e])return t;const n=[];return 0!==t.metricArithmetic.length&&n.push({kind:Lht.OPERATOR,operator:Fht.AND}),n.push({kind:Lht.METRIC,metric:e}),Object.assign(Object.assign({},t),{metricArithmetic:[...t.metricArithmetic,...n],metricFilters:Object.assign(Object.assign({},t.metricFilters),{[e]:{max:1,min:-1,includeNaN:!1}}),sort:{metric:e,order:Vht.DESCENDING}})})),pS(Obt,((t,{metric:e})=>{if(!t.metricFilters[e])return t;let n=0,o=0,i=2;const a=aR(t.metricFilters,["symbol"==typeof e?e:e+""]);for(const o in t.metricArithmetic){const i=t.metricArithmetic[o];i.kind===Lht.METRIC&&i.metric===e&&(n=parseInt(o))}return 0!==n&&(o=n-1,i=n+1),Object.assign(Object.assign({},t),{metricArithmetic:[...t.metricArithmetic.slice(0,o),...t.metricArithmetic.slice(i)],metricFilters:a})})),pS(Pbt,((t,{metric:e,max:n,min:o,includeNaN:i})=>t.metricFilters[e]?Object.assign(Object.assign({},t),{metricFilters:Object.assign(Object.assign({},t.metricFilters),{[e]:{max:n,min:o,includeNaN:i}})}):t)),pS(wbt,((t,{metric:e})=>{const n={metric:e,order:Vht.DESCENDING};return t.sort.metric===e&&t.sort.order===Vht.DESCENDING&&(n.order=Vht.ASCENDNG),Object.assign(Object.assign({},t),{sort:n})})),pS(kbt,((t,{annotation:e})=>{const n={metric:e,order:Vht.SIMILAR};return t.sort.metric===e&&t.sort.order===Vht.SIMILAR&&(n.order=Vht.DISSIMILAR),Object.assign(Object.assign({},t),{sort:n})})),pS(Sbt,(t=>Object.assign(Object.assign({},t),{pcExpanded:!t.pcExpanded}))),pS(Dbt,(t=>Object.assign(Object.assign({},t),{annotationsExpanded:!t.annotationsExpanded}))),pS(Ebt,(t=>Object.assign(Object.assign({},t),{sidebarExpanded:!t.sidebarExpanded}))),pS(Abt,(t=>Object.assign(Object.assign({},t),{showCounts:!t.showCounts}))),pS(Rbt,(t=>Object.assign(Object.assign({},t),{showHiddenAnnotations:!t.showHiddenAnnotations}))),pS(Tbt,((t,{metric:e})=>{let n=Bht.EMBEDDINGS,o=e;return e===t.embeddingsMetric&&(n=Bht.DEFAULT,o=""),Object.assign(Object.assign({},t),{viewActive:n,embeddingsMetric:o})})),pS(Nbt,((t,{sidebarWidth:e})=>Object.assign(Object.assign({},t),{sidebarWidth:e}))),pS(Ibt,((t,{sidebarWidth:e})=>Object.assign(Object.assign({},t),{embeddingsSidebarWidth:e}))),pS(zbt,(t=>Object.assign(Object.assign({},t),{embeddingsSidebarExpanded:!t.embeddingsSidebarExpanded}))),pS(Hbt,((t,{dataSet:e})=>Object.assign(Object.assign({},t),{embeddingDataSet:e}))));function Ubt(t,e){return jbt(t,e)}function Wbt(t,e){1&t&&wu(0,"mat-icon",7)}function Gbt(t,e){if(1&t&&(Ou(0,"mat-option",8),Mf(1),Pu()),2&t){const t=e.$implicit;vu("value",t),Jc(1),vf(t)}}class Ybt{constructor(){this.onRegexFilterValueChange=new Ab,this.onAddFilter=new Ab}onOptionSelected(t,e){this.onAddFilter.emit(t.option.value),e.value=""}}Ybt.ɵfac=function t(e){return new(e||Ybt)},Ybt.ɵcmp=Uo({type:Ybt,selectors:[["metric-search-component"]],hostVars:2,hostBindings:function t(e,n){2&e&&af("valid",n.isRegexFilterValid)},inputs:{completions:"completions",regexFilterValue:"regexFilterValue",isRegexFilterValid:"isRegexFilterValid"},outputs:{onRegexFilterValueChange:"onRegexFilterValueChange",onAddFilter:"onAddFilter"},decls:7,vars:4,consts:[["svgIcon","search_24px"],["matInput","","autocomplete","off","placeholder","Add Metric Filter",3,"value","matAutocomplete","input"],["matInput",""],["svgIcon","error_24px","class","error-icon","matTooltip","Invalid regex filter. The result may be stale.",4,"ngIf"],["autoActiveFirstOption","",3,"optionSelected"],["filterMatches","matAutocomplete"],[3,"value",4,"ngFor","ngForOf"],["svgIcon","error_24px","matTooltip","Invalid regex filter. The result may be stale.",1,"error-icon"],[3,"value"]],template:function t(e,n){if(1&e){const t=Eu();wu(0,"mat-icon",0),Ou(1,"input",1,2),Nu("input",(function t(e){return n.onRegexFilterValueChange.emit(e.target.value)})),Pu(),Wm(3,Wbt,1,0,"mat-icon",3),Ou(4,"mat-autocomplete",4,5),Nu("optionSelected",(function e(o){ra(t);const i=Gm(2);return n.onOptionSelected(o,i)})),Wm(6,Gbt,2,2,"mat-option",6),Pu()}if(2&e){const t=Gm(5);Jc(1),vu("value",n.regexFilterValue)("matAutocomplete",t),Jc(2),vu("ngIf",!n.isRegexFilterValid),Jc(3),vu("ngForOf",n.completions)}},directives:[cG,EY,m1,av,n1,ov,PH],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}mat-icon[_ngcontent-%COMP%]{flex:none;margin-right:5px}[_nghost-%COMP%]{display:flex;padding:0 10px;position:relative;font-size:.9em}[_nghost-%COMP%]:not(.valid){color:#c62828}[_nghost-%COMP%]:not(.valid)   input[_ngcontent-%COMP%]{caret-color:currentColor}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Ybt,[{type:h_,args:[{selector:"metric-search-component",templateUrl:"./metric_search_component.ng.html",styleUrls:["./metric_search_component.css"],changeDetection:xo.OnPush}]}],null,{completions:[{type:y_}],regexFilterValue:[{type:y_}],isRegexFilterValid:[{type:C_,args:["class.valid"]},{type:y_}],onRegexFilterValueChange:[{type:__}],onAddFilter:[{type:__}]});class qbt{constructor(t){this.store=t,this.metricsRegex$=this.store.select(Qht),this.activeRuns$=this.store.pipe(Rk(vN)).pipe(ht((t=>t?Array.from(t.entries()).filter((t=>t[1])).map((t=>t[0])):[]))),this.metricsForActiveRuns$=Dt(this.activeRuns$,this.store.select(Yht)).pipe(ht((([t,e])=>{const n=new Set;for(const o of t)if(e[o])for(const t of e[o])n.add(t);return[...n]}))),this.isMetricsFilterValid$=this.metricsRegex$.pipe(ht((t=>{try{return Boolean(new RegExp(t))}catch(t){return!1}}))),this.metricFilterKeys$=this.store.pipe(Rk(tbt)).pipe(ht((t=>Object.keys(t)))),this.completions$=Dt(this.metricsForActiveRuns$,this.metricsRegex$,this.metricFilterKeys$).pipe(ht((([t,e,n])=>{const o=t.filter((t=>!n.includes(t)));try{const t=new RegExp(e,"i");return o.filter((e=>t.test(e))).sort()}catch(t){return[]}})))}onFilterChange(t){this.store.dispatch(vbt({regex:t}))}onAddFilter(t){this.store.dispatch(xbt({metric:t})),this.store.dispatch(vbt({regex:""}))}}function Zbt(t,e,n){const o=[[e,...n]];if(!n.length||!t.length)return"data:text/csv;charset=utf-8,"+o.map((t=>t.join(","))).join("\n");const i=n.map((t=>Vbt(t)));for(const[n,a]of t){const t=a.filter((t=>t.run===e));if(t.length){const e=[n];for(const n of i){const o=t.find((t=>t.metric===n));e.push(void 0===o?"null":`${o.nPMIValue}`)}o.push(e)}}return"data:text/csv;charset=utf-8,"+o.map((t=>t.join(","))).join("\n")}qbt.ɵfac=function t(e){return new(e||qbt)(Mu(Ek))},qbt.ɵcmp=Uo({type:qbt,selectors:[["npmi-metric-search"]],decls:4,vars:9,consts:[[3,"regexFilterValue","completions","isRegexFilterValid","onRegexFilterValueChange","onAddFilter"]],template:function t(e,n){1&e&&(Ou(0,"metric-search-component",0),Nu("onRegexFilterValueChange",(function t(e){return n.onFilterChange(e)}))("onAddFilter",(function t(e){return n.onAddFilter(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("regexFilterValue",Pb(1,3,n.metricsRegex$))("completions",Pb(2,5,n.completions$))("isRegexFilterValid",Pb(3,7,n.isMetricsFilterValid$))},directives:[Ybt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(qbt,[{type:h_,args:[{selector:"npmi-metric-search",template:'\n    <metric-search-component\n      [regexFilterValue]="metricsRegex$ | async"\n      [completions]="completions$ | async"\n      [isRegexFilterValid]="isMetricsFilterValid$ | async"\n      (onRegexFilterValueChange)="onFilterChange($event)"\n      (onAddFilter)="onAddFilter($event)"\n    ></metric-search-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);const Xbt=function(t){return{"active-button":t}};class Kbt{downloadResults(){for(const t of this.runs){const e=Zbt(this.flaggedData,t,this.metrics),n=document.createElement("a");n.setAttribute("href",e),n.setAttribute("download",`report_${t}.csv`),n.click()}}}Kbt.ɵfac=function t(e){return new(e||Kbt)},Kbt.ɵcmp=Uo({type:Kbt,selectors:[["results-download-component"]],inputs:{numFlaggedAnnotations:"numFlaggedAnnotations",runs:"runs",flaggedData:"flaggedData",metrics:"metrics"},decls:4,vars:5,consts:[["mat-stroked-button","","title","Export CSV reports of all flagged annotations. Will generate one CSV per active run.",3,"disabled","ngClass","click"],[1,"button-contents"],["svgIcon","get_app_24px"]],template:function t(e,n){1&e&&(Ou(0,"button",0),Nu("click",(function t(){return n.downloadResults()})),Ou(1,"span",1),wu(2,"mat-icon",2),Mf(3),Pu(),Pu()),2&e&&(vu("disabled",0===n.numFlaggedAnnotations)("ngClass",gb(3,Xbt,n.numFlaggedAnnotations>0)),Jc(3),xf(" Flagged Rows (",n.numFlaggedAnnotations,") "))},directives:[NH,tv,cG],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.active-button[_ngcontent-%COMP%]{background-color:#ff9800;border:1px solid #ebebeb;color:#fff}.button-contents[_ngcontent-%COMP%]{align-items:center;display:flex;text-transform:uppercase}mat-icon[_ngcontent-%COMP%]{margin-right:6px}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Kbt,[{type:h_,args:[{selector:"results-download-component",templateUrl:"./results_download_component.ng.html",styleUrls:["./results_download_component.css"],changeDetection:xo.OnPush}]}],null,{numFlaggedAnnotations:[{type:y_}],runs:[{type:y_}],flaggedData:[{type:y_}],metrics:[{type:y_}]});class Jbt{constructor(t){this.store=t,this.flaggedAnnotations$=this.store.select(Xht),this.numFlaggedAnnotations$=this.flaggedAnnotations$.pipe(ht((t=>t.length))),this.activeRuns$=this.store.select(vN).pipe(ht((t=>t?Array.from(t.entries()).filter((t=>t[1])).map((t=>t[0])):[]))),this.flaggedData$=Dt([this.store.select(Ght),this.flaggedAnnotations$]).pipe(ht((([t,e])=>{const n=new Set(e);return Object.entries(t).filter((t=>n.has(t[0])))}))),this.metrics$=Dt([this.store.select(Yht),this.activeRuns$,this.store.select(tbt)]).pipe(ht((([t,e,n])=>{let o=Object.keys(n);for(const n of e)t[n]&&(o=o.concat(t[n].filter((t=>Bbt(t)))));return o=[...new Set(o)],o})))}}Jbt.ɵfac=function t(e){return new(e||Jbt)(Mu(Ek))},Jbt.ɵcmp=Uo({type:Jbt,selectors:[["npmi-results-download"]],decls:5,vars:12,consts:[[3,"numFlaggedAnnotations","runs","flaggedData","metrics"]],template:function t(e,n){1&e&&(wu(0,"results-download-component",0),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async")),2&e&&vu("numFlaggedAnnotations",Pb(1,4,n.numFlaggedAnnotations$))("runs",Pb(2,6,n.activeRuns$))("flaggedData",Pb(3,8,n.flaggedData$))("metrics",Pb(4,10,n.metrics$))},directives:[Kbt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Jbt,[{type:h_,args:[{selector:"npmi-results-download",template:'\n    <results-download-component\n      [numFlaggedAnnotations]="numFlaggedAnnotations$ | async"\n      [runs]="activeRuns$ | async"\n      [flaggedData]="flaggedData$ | async"\n      [metrics]="metrics$ | async"\n    ></results-download-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);const Qbt=new Nr("MatChipRemove"),$bt=new Nr("MatChipAvatar"),tyt=new Nr("MatChipTrailingIcon"),eyt=Hz(Iz(zz(class{constructor(t){this._elementRef=t}}),"primary"),-1);class nyt{}nyt.ɵfac=function t(e){return new(e||nyt)},nyt.ɵdir=Jo({type:nyt,selectors:[["mat-chip-avatar"],["","matChipAvatar",""]],hostAttrs:[1,"mat-chip-avatar"],features:[ih([{provide:$bt,useExisting:nyt}])]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(nyt,[{type:g_,args:[{selector:"mat-chip-avatar, [matChipAvatar]",host:{class:"mat-chip-avatar"},providers:[{provide:$bt,useExisting:nyt}]}]}],null,null);class oyt{}oyt.ɵfac=function t(e){return new(e||oyt)},oyt.ɵdir=Jo({type:oyt,selectors:[["mat-chip-trailing-icon"],["","matChipTrailingIcon",""]],hostAttrs:[1,"mat-chip-trailing-icon"],features:[ih([{provide:tyt,useExisting:oyt}])]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(oyt,[{type:g_,args:[{selector:"mat-chip-trailing-icon, [matChipTrailingIcon]",host:{class:"mat-chip-trailing-icon"},providers:[{provide:tyt,useExisting:oyt}]}]}],null,null);class iyt extends eyt{constructor(t,e,n,o,i,a,r,s){super(t),this._elementRef=t,this._ngZone=e,this._changeDetectorRef=i,this._hasFocus=!1,this.chipListSelectable=!0,this._chipListMultiple=!1,this._chipListDisabled=!1,this._selected=!1,this._selectable=!0,this._disabled=!1,this._removable=!0,this._onFocus=new x,this._onBlur=new x,this.selectionChange=new Ab,this.destroyed=new Ab,this.removed=new Ab,this._addHostClassName(),this._chipRippleTarget=a.createElement("div"),this._chipRippleTarget.classList.add("mat-chip-ripple"),this._elementRef.nativeElement.appendChild(this._chipRippleTarget),this._chipRipple=new cH(this,e,this._chipRippleTarget,n),this._chipRipple.setupTriggerEvents(t),this.rippleConfig=o||{},this._animationsDisabled="NoopAnimations"===r,this.tabIndex=null!=s&&parseInt(s)||-1}get rippleDisabled(){return this.disabled||this.disableRipple||this._animationsDisabled||!!this.rippleConfig.disabled}get selected(){return this._selected}set selected(t){const e=rI(t);e!==this._selected&&(this._selected=e,this._dispatchSelectionChange())}get value(){return void 0!==this._value?this._value:this._elementRef.nativeElement.textContent}set value(t){this._value=t}get selectable(){return this._selectable&&this.chipListSelectable}set selectable(t){this._selectable=rI(t)}get disabled(){return this._chipListDisabled||this._disabled}set disabled(t){this._disabled=rI(t)}get removable(){return this._removable}set removable(t){this._removable=rI(t)}get ariaSelected(){return this.selectable&&(this._chipListMultiple||this.selected)?this.selected.toString():null}_addHostClassName(){const t="mat-basic-chip",e=this._elementRef.nativeElement;e.hasAttribute(t)||e.tagName.toLowerCase()===t?e.classList.add(t):e.classList.add("mat-standard-chip")}ngOnDestroy(){this.destroyed.emit({chip:this}),this._chipRipple._removeTriggerEvents()}select(){this._selected||(this._selected=!0,this._dispatchSelectionChange(),this._changeDetectorRef.markForCheck())}deselect(){this._selected&&(this._selected=!1,this._dispatchSelectionChange(),this._changeDetectorRef.markForCheck())}selectViaInteraction(){this._selected||(this._selected=!0,this._dispatchSelectionChange(!0),this._changeDetectorRef.markForCheck())}toggleSelected(t=!1){return this._selected=!this.selected,this._dispatchSelectionChange(t),this._changeDetectorRef.markForCheck(),this.selected}focus(){this._hasFocus||(this._elementRef.nativeElement.focus(),this._onFocus.next({chip:this})),this._hasFocus=!0}remove(){this.removable&&this.removed.emit({chip:this})}_handleClick(t){this.disabled?t.preventDefault():t.stopPropagation()}_handleKeydown(t){if(!this.disabled)switch(t.keyCode){case 46:case 8:this.remove(),t.preventDefault();break;case nI:this.selectable&&this.toggleSelected(!0),t.preventDefault()}}_blur(){this._ngZone.onStable.pipe(Ne(1)).subscribe((()=>{this._ngZone.run((()=>{this._hasFocus=!1,this._onBlur.next({chip:this})}))}))}_dispatchSelectionChange(t=!1){this.selectionChange.emit({source:this,isUserInput:t,selected:this._selected})}}iyt.ɵfac=function t(e){return new(e||iyt)(Mu(ch),Mu(tC),Mu(fI),Mu(dH,8),Mu(Hh),Mu(UC),Mu(Nw,8),Or("tabindex"))},iyt.ɵdir=Jo({type:iyt,selectors:[["mat-basic-chip"],["","mat-basic-chip",""],["mat-chip"],["","mat-chip",""]],contentQueries:function t(e,n,o){if(1&e&&(Gb(o,$bt,1),Gb(o,tyt,1),Gb(o,Qbt,1)),2&e){let t;Ub(t=Yb())&&(n.avatar=t.first),Ub(t=Yb())&&(n.trailingIcon=t.first),Ub(t=Yb())&&(n.removeIcon=t.first)}},hostAttrs:["role","option",1,"mat-chip","mat-focus-indicator"],hostVars:14,hostBindings:function t(e,n){1&e&&Nu("click",(function t(e){return n._handleClick(e)}))("keydown",(function t(e){return n._handleKeydown(e)}))("focus",(function t(){return n.focus()}))("blur",(function t(){return n._blur()})),2&e&&(Nm("tabindex",n.disabled?null:n.tabIndex)("disabled",n.disabled||null)("aria-disabled",n.disabled.toString())("aria-selected",n.ariaSelected),af("mat-chip-selected",n.selected)("mat-chip-with-avatar",n.avatar)("mat-chip-with-trailing-icon",n.trailingIcon||n.removeIcon)("mat-chip-disabled",n.disabled)("_mat-animation-noopable",n._animationsDisabled))},inputs:{color:"color",disableRipple:"disableRipple",tabIndex:"tabIndex",selected:"selected",value:"value",selectable:"selectable",disabled:"disabled",removable:"removable"},outputs:{selectionChange:"selectionChange",destroyed:"destroyed",removed:"removed"},exportAs:["matChip"],features:[gm]}),iyt.ctorParameters=()=>[{type:ch},{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[dH]}]},{type:Hh},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]}],iyt.propDecorators={avatar:[{type:Hr,args:[$bt]}],trailingIcon:[{type:Hr,args:[tyt]}],removeIcon:[{type:Hr,args:[Qbt]}],selected:[{type:y_}],value:[{type:y_}],selectable:[{type:y_}],disabled:[{type:y_}],removable:[{type:y_}],selectionChange:[{type:__}],destroyed:[{type:__}],removed:[{type:__}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(iyt,[{type:g_,args:[{selector:"mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]",inputs:["color","disableRipple","tabIndex"],exportAs:"matChip",host:{class:"mat-chip mat-focus-indicator","[attr.tabindex]":"disabled ? null : tabIndex",role:"option","[class.mat-chip-selected]":"selected","[class.mat-chip-with-avatar]":"avatar","[class.mat-chip-with-trailing-icon]":"trailingIcon || removeIcon","[class.mat-chip-disabled]":"disabled","[class._mat-animation-noopable]":"_animationsDisabled","[attr.disabled]":"disabled || null","[attr.aria-disabled]":"disabled.toString()","[attr.aria-selected]":"ariaSelected","(click)":"_handleClick($event)","(keydown)":"_handleKeydown($event)","(focus)":"focus()","(blur)":"_blur()"}}]}],(function(){return[{type:ch},{type:tC},{type:fI},{type:void 0,decorators:[{type:_s},{type:ys,args:[dH]}]},{type:Hh},{type:void 0,decorators:[{type:ys,args:[UC]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]},{type:String,decorators:[{type:Rr,args:["tabindex"]}]}]}),{selectionChange:[{type:__}],destroyed:[{type:__}],removed:[{type:__}],selected:[{type:y_}],value:[{type:y_}],selectable:[{type:y_}],disabled:[{type:y_}],removable:[{type:y_}],avatar:[{type:Hr,args:[$bt]}],trailingIcon:[{type:Hr,args:[tyt]}],removeIcon:[{type:Hr,args:[Qbt]}]});class ayt{constructor(t,e){this._parentChip=t,"BUTTON"===e.nativeElement.nodeName&&e.nativeElement.setAttribute("type","button")}_handleClick(t){const e=this._parentChip;e.removable&&!e.disabled&&e.remove(),t.stopPropagation()}}ayt.ɵfac=function t(e){return new(e||ayt)(Mu(iyt),Mu(ch))},ayt.ɵdir=Jo({type:ayt,selectors:[["","matChipRemove",""]],hostAttrs:[1,"mat-chip-remove","mat-chip-trailing-icon"],hostBindings:function t(e,n){1&e&&Nu("click",(function t(e){return n._handleClick(e)}))},features:[ih([{provide:Qbt,useExisting:ayt}])]}),ayt.ctorParameters=()=>[{type:iyt},{type:ch}],("undefined"==typeof ngDevMode||ngDevMode)&&db(ayt,[{type:g_,args:[{selector:"[matChipRemove]",host:{class:"mat-chip-remove mat-chip-trailing-icon","(click)":"_handleClick($event)"},providers:[{provide:Qbt,useExisting:ayt}]}]}],(function(){return[{type:iyt},{type:ch}]}),null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const ryt=new Nr("mat-chips-default-options"),syt=Fz(
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class{constructor(t,e,n,o){this._defaultErrorStateMatcher=t,this._parentForm=e,this._parentFormGroup=n,this.ngControl=o}});let lyt=0;class cyt{constructor(t,e){this.source=t,this.value=e}}class dyt extends syt{constructor(t,e,n,o,i,a,r){super(a,o,i,r),this._elementRef=t,this._changeDetectorRef=e,this._dir=n,this.ngControl=r,this.controlType="mat-chip-list",this._lastDestroyedChipIndex=null,this._destroyed=new x,this._uid="mat-chip-list-"+lyt++,this._tabIndex=0,this._userTabIndex=null,this._onTouched=()=>{},this._onChange=()=>{},this._multiple=!1,this._compareWith=(t,e)=>t===e,this._required=!1,this._disabled=!1,this.ariaOrientation="horizontal",this._selectable=!0,this.change=new Ab,this.valueChange=new Ab,this.ngControl&&(this.ngControl.valueAccessor=this)}get selected(){return this.multiple?this._selectionModel.selected:this._selectionModel.selected[0]}get role(){return this.empty?null:"listbox"}get multiple(){return this._multiple}set multiple(t){this._multiple=rI(t),this._syncChipsState()}get compareWith(){return this._compareWith}set compareWith(t){this._compareWith=t,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(t){this.writeValue(t),this._value=t}get id(){return this._chipInput?this._chipInput.id:this._uid}get required(){return this._required}set required(t){this._required=rI(t),this.stateChanges.next()}get placeholder(){return this._chipInput?this._chipInput.placeholder:this._placeholder}set placeholder(t){this._placeholder=t,this.stateChanges.next()}get focused(){return this._chipInput&&this._chipInput.focused||this._hasFocusedChip()}get empty(){return(!this._chipInput||this._chipInput.empty)&&(!this.chips||0===this.chips.length)}get shouldLabelFloat(){return!this.empty||this.focused}get disabled(){return this.ngControl?!!this.ngControl.disabled:this._disabled}set disabled(t){this._disabled=rI(t),this._syncChipsState()}get selectable(){return this._selectable}set selectable(t){this._selectable=rI(t),this.chips&&this.chips.forEach((t=>t.chipListSelectable=this._selectable))}set tabIndex(t){this._userTabIndex=t,this._tabIndex=t}get chipSelectionChanges(){return Wt(...this.chips.map((t=>t.selectionChange)))}get chipFocusChanges(){return Wt(...this.chips.map((t=>t._onFocus)))}get chipBlurChanges(){return Wt(...this.chips.map((t=>t._onBlur)))}get chipRemoveChanges(){return Wt(...this.chips.map((t=>t.destroyed)))}ngAfterContentInit(){this._keyManager=new VI(this.chips).withWrap().withVerticalOrientation().withHomeAndEnd().withHorizontalOrientation(this._dir?this._dir.value:"ltr"),this._dir&&this._dir.change.pipe(un(this._destroyed)).subscribe((t=>this._keyManager.withHorizontalOrientation(t))),this._keyManager.tabOut.pipe(un(this._destroyed)).subscribe((()=>{this._allowFocusEscape()})),this.chips.changes.pipe(cn(null),un(this._destroyed)).subscribe((()=>{this.disabled&&Promise.resolve().then((()=>{this._syncChipsState()})),this._resetChips(),this._initializeSelection(),this._updateTabIndex(),this._updateFocusForDestroyedChips(),this.stateChanges.next()}))}ngOnInit(){this._selectionModel=new jH(this.multiple,void 0,!1),this.stateChanges.next()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==this._disabled&&(this.disabled=!!this.ngControl.disabled))}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete(),this.stateChanges.complete(),this._dropSubscriptions()}registerInput(t){this._chipInput=t,this._elementRef.nativeElement.setAttribute("data-mat-chip-input",t.id)}setDescribedByIds(t){this._ariaDescribedby=t.join(" ")}writeValue(t){this.chips&&this._setSelectionByValue(t,!1)}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t,this.stateChanges.next()}onContainerClick(t){this._originatesFromChip(t)||this.focus()}focus(t){this.disabled||this._chipInput&&this._chipInput.focused||(this.chips.length>0?(this._keyManager.setFirstItemActive(),this.stateChanges.next()):(this._focusInput(t),this.stateChanges.next()))}_focusInput(t){this._chipInput&&this._chipInput.focus(t)}_keydown(t){const e=t.target;8===t.keyCode&&this._isInputEmpty(e)?(this._keyManager.setLastItemActive(),t.preventDefault()):e&&e.classList.contains("mat-chip")&&(this._keyManager.onKeydown(t),this.stateChanges.next())}_updateTabIndex(){this._tabIndex=this._userTabIndex||(0===this.chips.length?-1:0)}_updateFocusForDestroyedChips(){if(null!=this._lastDestroyedChipIndex)if(this.chips.length){const t=Math.min(this._lastDestroyedChipIndex,this.chips.length-1);this._keyManager.setActiveItem(t)}else this.focus();this._lastDestroyedChipIndex=null}_isValidIndex(t){return t>=0&&t<this.chips.length}_isInputEmpty(t){return!(!t||"input"!==t.nodeName.toLowerCase()||t.value)}_setSelectionByValue(t,e=!0){if(this._clearSelection(),this.chips.forEach((t=>t.deselect())),Array.isArray(t))t.forEach((t=>this._selectValue(t,e))),this._sortValues();else{const n=this._selectValue(t,e);n&&e&&this._keyManager.setActiveItem(n)}}_selectValue(t,e=!0){const n=this.chips.find((e=>null!=e.value&&this._compareWith(e.value,t)));return n&&(e?n.selectViaInteraction():n.select(),this._selectionModel.select(n)),n}_initializeSelection(){Promise.resolve().then((()=>{(this.ngControl||this._value)&&(this._setSelectionByValue(this.ngControl?this.ngControl.value:this._value,!1),this.stateChanges.next())}))}_clearSelection(t){this._selectionModel.clear(),this.chips.forEach((e=>{e!==t&&e.deselect()})),this.stateChanges.next()}_sortValues(){this._multiple&&(this._selectionModel.clear(),this.chips.forEach((t=>{t.selected&&this._selectionModel.select(t)})),this.stateChanges.next())}_propagateChanges(t){let e=null;e=Array.isArray(this.selected)?this.selected.map((t=>t.value)):this.selected?this.selected.value:t,this._value=e,this.change.emit(new cyt(this,e)),this.valueChange.emit(e),this._onChange(e),this._changeDetectorRef.markForCheck()}_blur(){this._hasFocusedChip()||this._keyManager.setActiveItem(-1),this.disabled||(this._chipInput?setTimeout((()=>{this.focused||this._markAsTouched()})):this._markAsTouched())}_markAsTouched(){this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next()}_allowFocusEscape(){-1!==this._tabIndex&&(this._tabIndex=-1,setTimeout((()=>{this._tabIndex=this._userTabIndex||0,this._changeDetectorRef.markForCheck()})))}_resetChips(){this._dropSubscriptions(),this._listenToChipsFocus(),this._listenToChipsSelection(),this._listenToChipsRemoved()}_dropSubscriptions(){this._chipFocusSubscription&&(this._chipFocusSubscription.unsubscribe(),this._chipFocusSubscription=null),this._chipBlurSubscription&&(this._chipBlurSubscription.unsubscribe(),this._chipBlurSubscription=null),this._chipSelectionSubscription&&(this._chipSelectionSubscription.unsubscribe(),this._chipSelectionSubscription=null),this._chipRemoveSubscription&&(this._chipRemoveSubscription.unsubscribe(),this._chipRemoveSubscription=null)}_listenToChipsSelection(){this._chipSelectionSubscription=this.chipSelectionChanges.subscribe((t=>{t.source.selected?this._selectionModel.select(t.source):this._selectionModel.deselect(t.source),this.multiple||this.chips.forEach((t=>{!this._selectionModel.isSelected(t)&&t.selected&&t.deselect()})),t.isUserInput&&this._propagateChanges()}))}_listenToChipsFocus(){this._chipFocusSubscription=this.chipFocusChanges.subscribe((t=>{let e=this.chips.toArray().indexOf(t.chip);this._isValidIndex(e)&&this._keyManager.updateActiveItem(e),this.stateChanges.next()})),this._chipBlurSubscription=this.chipBlurChanges.subscribe((()=>{this._blur(),this.stateChanges.next()}))}_listenToChipsRemoved(){this._chipRemoveSubscription=this.chipRemoveChanges.subscribe((t=>{const e=t.chip,n=this.chips.toArray().indexOf(t.chip);this._isValidIndex(n)&&e._hasFocus&&(this._lastDestroyedChipIndex=n)}))}_originatesFromChip(t){let e=t.target;for(;e&&e!==this._elementRef.nativeElement;){if(e.classList.contains("mat-chip"))return!0;e=e.parentElement}return!1}_hasFocusedChip(){return this.chips&&this.chips.some((t=>t._hasFocus))}_syncChipsState(){this.chips&&this.chips.forEach((t=>{t._chipListDisabled=this._disabled,t._chipListMultiple=this.multiple}))}}dyt.ɵfac=function t(e){return new(e||dyt)(Mu(ch),Mu(Hh),Mu(Mz,8),Mu(Bj,8),Mu(lU,8),Mu(eH),Mu(nj,10))},dyt.ɵcmp=Uo({type:dyt,selectors:[["mat-chip-list"]],contentQueries:function t(e,n,o){if(1&e&&Gb(o,iyt,1),2&e){let t;Ub(t=Yb())&&(n.chips=t)}},hostAttrs:[1,"mat-chip-list"],hostVars:15,hostBindings:function t(e,n){1&e&&Nu("focus",(function t(){return n.focus()}))("blur",(function t(){return n._blur()}))("keydown",(function t(e){return n._keydown(e)})),2&e&&(kf("id",n._uid),Nm("tabindex",n.disabled?null:n._tabIndex)("aria-describedby",n._ariaDescribedby||null)("aria-required",n.role?n.required:null)("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-multiselectable",n.multiple)("role",n.role)("aria-orientation",n.ariaOrientation),af("mat-chip-list-disabled",n.disabled)("mat-chip-list-invalid",n.errorState)("mat-chip-list-required",n.required))},inputs:{ariaOrientation:["aria-orientation","ariaOrientation"],multiple:"multiple",compareWith:"compareWith",value:"value",required:"required",placeholder:"placeholder",disabled:"disabled",selectable:"selectable",tabIndex:"tabIndex",errorStateMatcher:"errorStateMatcher"},outputs:{change:"change",valueChange:"valueChange"},exportAs:["matChipList"],features:[ih([{provide:iV,useExisting:dyt}]),gm],ngContentSelectors:["*"],decls:2,vars:0,consts:[[1,"mat-chip-list-wrapper"]],template:function t(e,n){1&e&&(Vu(),Ou(0,"div",0),ju(1),Pu())},styles:['.mat-chip{position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transform:translateZ(0);border:none;-webkit-appearance:none;-moz-appearance:none}.mat-standard-chip{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;padding:7px 12px;border-radius:16px;align-items:center;cursor:default;min-height:32px;height:1px}._mat-animation-noopable.mat-standard-chip{transition:none;animation:none}.mat-standard-chip .mat-chip-remove.mat-icon{width:18px;height:18px}.mat-standard-chip::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;opacity:0;content:"";pointer-events:none;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-standard-chip:hover::after{opacity:.12}.mat-standard-chip:focus{outline:none}.mat-standard-chip:focus::after{opacity:.16}.cdk-high-contrast-active .mat-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-standard-chip:focus{outline:dotted 2px}.mat-standard-chip.mat-chip-disabled::after{opacity:0}.mat-standard-chip.mat-chip-disabled .mat-chip-remove,.mat-standard-chip.mat-chip-disabled .mat-chip-trailing-icon{cursor:default}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar,.mat-standard-chip.mat-chip-with-avatar{padding-top:0;padding-bottom:0}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-right:8px;padding-left:0}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-left:8px;padding-right:0}.mat-standard-chip.mat-chip-with-trailing-icon{padding-top:7px;padding-bottom:7px;padding-right:8px;padding-left:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon{padding-left:8px;padding-right:12px}.mat-standard-chip.mat-chip-with-avatar{padding-left:0;padding-right:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-avatar{padding-right:0;padding-left:12px}.mat-standard-chip .mat-chip-avatar{width:24px;height:24px;margin-right:8px;margin-left:4px}[dir=rtl] .mat-standard-chip .mat-chip-avatar{margin-left:8px;margin-right:4px}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{width:18px;height:18px;cursor:pointer}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-standard-chip .mat-chip-remove,[dir=rtl] .mat-standard-chip .mat-chip-trailing-icon{margin-right:8px;margin-left:0}.mat-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit;overflow:hidden}.mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:-4px}.mat-chip-list-wrapper input.mat-input-element,.mat-chip-list-wrapper .mat-standard-chip{margin:4px}.mat-chip-list-stacked .mat-chip-list-wrapper{flex-direction:column;align-items:flex-start}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-standard-chip{width:100%}.mat-chip-avatar{border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden;object-fit:cover}input.mat-chip-input{width:150px;margin:4px;flex:1 0 150px}\n'],encapsulation:2,changeDetection:0}),dyt.ctorParameters=()=>[{type:ch},{type:Hh},{type:Mz,decorators:[{type:_s}]},{type:Bj,decorators:[{type:_s}]},{type:lU,decorators:[{type:_s}]},{type:eH},{type:nj,decorators:[{type:_s},{type:Cs}]}],dyt.propDecorators={errorStateMatcher:[{type:y_}],multiple:[{type:y_}],compareWith:[{type:y_}],value:[{type:y_}],required:[{type:y_}],placeholder:[{type:y_}],disabled:[{type:y_}],ariaOrientation:[{type:y_,args:["aria-orientation"]}],selectable:[{type:y_}],tabIndex:[{type:y_}],change:[{type:__}],valueChange:[{type:__}],chips:[{type:zr,args:[iyt,{descendants:!0}]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(dyt,[{type:h_,args:[{selector:"mat-chip-list",template:'<div class="mat-chip-list-wrapper"><ng-content></ng-content></div>',exportAs:"matChipList",host:{"[attr.tabindex]":"disabled ? null : _tabIndex","[attr.aria-describedby]":"_ariaDescribedby || null","[attr.aria-required]":"role ? required : null","[attr.aria-disabled]":"disabled.toString()","[attr.aria-invalid]":"errorState","[attr.aria-multiselectable]":"multiple","[attr.role]":"role","[class.mat-chip-list-disabled]":"disabled","[class.mat-chip-list-invalid]":"errorState","[class.mat-chip-list-required]":"required","[attr.aria-orientation]":"ariaOrientation",class:"mat-chip-list","(focus)":"focus()","(blur)":"_blur()","(keydown)":"_keydown($event)","[id]":"_uid"},providers:[{provide:iV,useExisting:dyt}],encapsulation:Po.None,changeDetection:xo.OnPush,styles:['.mat-chip{position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transform:translateZ(0);border:none;-webkit-appearance:none;-moz-appearance:none}.mat-standard-chip{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;padding:7px 12px;border-radius:16px;align-items:center;cursor:default;min-height:32px;height:1px}._mat-animation-noopable.mat-standard-chip{transition:none;animation:none}.mat-standard-chip .mat-chip-remove.mat-icon{width:18px;height:18px}.mat-standard-chip::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;opacity:0;content:"";pointer-events:none;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-standard-chip:hover::after{opacity:.12}.mat-standard-chip:focus{outline:none}.mat-standard-chip:focus::after{opacity:.16}.cdk-high-contrast-active .mat-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-standard-chip:focus{outline:dotted 2px}.mat-standard-chip.mat-chip-disabled::after{opacity:0}.mat-standard-chip.mat-chip-disabled .mat-chip-remove,.mat-standard-chip.mat-chip-disabled .mat-chip-trailing-icon{cursor:default}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar,.mat-standard-chip.mat-chip-with-avatar{padding-top:0;padding-bottom:0}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-right:8px;padding-left:0}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-left:8px;padding-right:0}.mat-standard-chip.mat-chip-with-trailing-icon{padding-top:7px;padding-bottom:7px;padding-right:8px;padding-left:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon{padding-left:8px;padding-right:12px}.mat-standard-chip.mat-chip-with-avatar{padding-left:0;padding-right:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-avatar{padding-right:0;padding-left:12px}.mat-standard-chip .mat-chip-avatar{width:24px;height:24px;margin-right:8px;margin-left:4px}[dir=rtl] .mat-standard-chip .mat-chip-avatar{margin-left:8px;margin-right:4px}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{width:18px;height:18px;cursor:pointer}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-standard-chip .mat-chip-remove,[dir=rtl] .mat-standard-chip .mat-chip-trailing-icon{margin-right:8px;margin-left:0}.mat-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit;overflow:hidden}.mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:-4px}.mat-chip-list-wrapper input.mat-input-element,.mat-chip-list-wrapper .mat-standard-chip{margin:4px}.mat-chip-list-stacked .mat-chip-list-wrapper{flex-direction:column;align-items:flex-start}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-standard-chip{width:100%}.mat-chip-avatar{border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden;object-fit:cover}input.mat-chip-input{width:150px;margin:4px;flex:1 0 150px}\n']}]}],(function(){return[{type:ch},{type:Hh},{type:Mz,decorators:[{type:_s}]},{type:Bj,decorators:[{type:_s}]},{type:lU,decorators:[{type:_s}]},{type:eH},{type:nj,decorators:[{type:_s},{type:Cs}]}]}),{ariaOrientation:[{type:y_,args:["aria-orientation"]}],change:[{type:__}],valueChange:[{type:__}],multiple:[{type:y_}],compareWith:[{type:y_}],value:[{type:y_}],required:[{type:y_}],placeholder:[{type:y_}],disabled:[{type:y_}],selectable:[{type:y_}],tabIndex:[{type:y_}],errorStateMatcher:[{type:y_}],chips:[{type:zr,args:[iyt,{descendants:!0}]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let pyt=0;class myt{constructor(t,e){this._elementRef=t,this._defaultOptions=e,this.focused=!1,this._addOnBlur=!1,this.separatorKeyCodes=this._defaultOptions.separatorKeyCodes,this.chipEnd=new Ab,this.placeholder="",this.id="mat-chip-list-input-"+pyt++,this._disabled=!1,this._inputElement=this._elementRef.nativeElement}set chipList(t){t&&(this._chipList=t,this._chipList.registerInput(this))}get addOnBlur(){return this._addOnBlur}set addOnBlur(t){this._addOnBlur=rI(t)}get disabled(){return this._disabled||this._chipList&&this._chipList.disabled}set disabled(t){this._disabled=rI(t)}get empty(){return!this._inputElement.value}ngOnChanges(){this._chipList.stateChanges.next()}_keydown(t){t&&9===t.keyCode&&!aI(t,"shiftKey")&&this._chipList._allowFocusEscape(),this._emitChipEnd(t)}_blur(){this.addOnBlur&&this._emitChipEnd(),this.focused=!1,this._chipList.focused||this._chipList._blur(),this._chipList.stateChanges.next()}_focus(){this.focused=!0,this._chipList.stateChanges.next()}_emitChipEnd(t){!this._inputElement.value&&t&&this._chipList._keydown(t),t&&!this._isSeparatorKey(t)||(this.chipEnd.emit({input:this._inputElement,value:this._inputElement.value}),t&&t.preventDefault())}_onInput(){this._chipList.stateChanges.next()}focus(t){this._inputElement.focus(t)}_isSeparatorKey(t){return!aI(t)&&new Set(this.separatorKeyCodes).has(t.keyCode)}}myt.ɵfac=function t(e){return new(e||myt)(Mu(ch),Mu(ryt))},myt.ɵdir=Jo({type:myt,selectors:[["input","matChipInputFor",""]],hostAttrs:[1,"mat-chip-input","mat-input-element"],hostVars:5,hostBindings:function t(e,n){1&e&&Nu("keydown",(function t(e){return n._keydown(e)}))("blur",(function t(){return n._blur()}))("focus",(function t(){return n._focus()}))("input",(function t(){return n._onInput()})),2&e&&(kf("id",n.id),Nm("disabled",n.disabled||null)("placeholder",n.placeholder||null)("aria-invalid",n._chipList&&n._chipList.ngControl?n._chipList.ngControl.invalid:null)("aria-required",n._chipList&&n._chipList.required||null))},inputs:{separatorKeyCodes:["matChipInputSeparatorKeyCodes","separatorKeyCodes"],placeholder:"placeholder",id:"id",chipList:["matChipInputFor","chipList"],addOnBlur:["matChipInputAddOnBlur","addOnBlur"],disabled:"disabled"},outputs:{chipEnd:"matChipInputTokenEnd"},exportAs:["matChipInput","matChipInputFor"],features:[Si]}),myt.ctorParameters=()=>[{type:ch},{type:void 0,decorators:[{type:ys,args:[ryt]}]}],myt.propDecorators={chipList:[{type:y_,args:["matChipInputFor"]}],addOnBlur:[{type:y_,args:["matChipInputAddOnBlur"]}],separatorKeyCodes:[{type:y_,args:["matChipInputSeparatorKeyCodes"]}],chipEnd:[{type:__,args:["matChipInputTokenEnd"]}],placeholder:[{type:y_}],id:[{type:y_}],disabled:[{type:y_}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(myt,[{type:g_,args:[{selector:"input[matChipInputFor]",exportAs:"matChipInput, matChipInputFor",host:{class:"mat-chip-input mat-input-element","(keydown)":"_keydown($event)","(blur)":"_blur()","(focus)":"_focus()","(input)":"_onInput()","[id]":"id","[attr.disabled]":"disabled || null","[attr.placeholder]":"placeholder || null","[attr.aria-invalid]":"_chipList && _chipList.ngControl ? _chipList.ngControl.invalid : null","[attr.aria-required]":"_chipList && _chipList.required || null"}}]}],(function(){return[{type:ch},{type:void 0,decorators:[{type:ys,args:[ryt]}]}]}),{separatorKeyCodes:[{type:y_,args:["matChipInputSeparatorKeyCodes"]}],chipEnd:[{type:__,args:["matChipInputTokenEnd"]}],placeholder:[{type:y_}],id:[{type:y_}],chipList:[{type:y_,args:["matChipInputFor"]}],addOnBlur:[{type:y_,args:["matChipInputAddOnBlur"]}],disabled:[{type:y_}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const uyt=[dyt,iyt,myt,ayt,nyt,oyt],fyt={separatorKeyCodes:[tI]};class gyt{}gyt.ɵfac=function t(e){return new(e||gyt)},gyt.ɵmod=Zo({type:gyt}),gyt.ɵinj=co({providers:[eH,{provide:ryt,useValue:fyt}],imports:[[Tz]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(gyt,{declarations:function(){return[dyt,iyt,myt,ayt,nyt,oyt]},imports:function(){return[Tz]},exports:function(){return[dyt,iyt,myt,ayt,nyt,oyt]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(gyt,[{type:k_,args:[{imports:[Tz],exports:uyt,declarations:uyt,providers:[eH,{provide:ryt,useValue:fyt}]}]}],null,null);const hyt=function(t,e){return{"embedding-selected":t,"embedding-unselected":e}};function byt(t,e){if(1&t){const t=Eu();Ou(0,"mat-icon",5),Nu("click",(function e(){ra(t);const n=Lu();return n.onSelect.emit(n.metric)})),Pu()}if(2&t){const t=Lu();vu("ngClass",hb(1,hyt,t.embeddingsMetric===t.metric,t.embeddingsMetric!==t.metric))}}const yyt=function(t){return{width:t}},_yt=function(t){return{"value-invalid":t}};class Cyt{constructor(){this.onRemove=new Ab,this.onSelect=new Ab,this.onFilterChange=new Ab,this.focusMin=!1,this.focusMax=!1,this.ngUnsubscribe=new x}ngOnInit(){this.minFormControl=new Ij(this.filterValues.min,[TV.required,TV.min(-1),TV.max(1),this.minValueValidator.bind(this)]),this.maxFormControl=new Ij(this.filterValues.max,[TV.required,TV.min(-1),TV.max(1),this.maxValueValidator.bind(this)]),this.minFormControl.valueChanges.pipe(un(this.ngUnsubscribe)).subscribe((()=>{this.minFormControl.valid&&this.maxFormControl.valid&&this.onFilterChange.emit({min:parseFloat(this.minFormControl.value),max:parseFloat(this.maxFormControl.value)})})),this.maxFormControl.valueChanges.pipe(un(this.ngUnsubscribe)).subscribe((()=>{this.minFormControl.valid&&this.maxFormControl.valid&&this.onFilterChange.emit({min:parseFloat(this.minFormControl.value),max:parseFloat(this.maxFormControl.value)})}))}ngOnChanges(t){this.minFormControl&&this.maxFormControl&&(this.minFormControl.setValue(this.filterValues.min,{emitEvent:!1}),this.maxFormControl.setValue(this.filterValues.max,{emitEvent:!1}))}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}minValueValidator(t){return this.maxFormControl&&"NaN"!==t.value?isNaN(parseFloat(t.value))?{value:"the string you entered is neither NaN nor a number"}:parseFloat(t.value)>parseFloat(this.maxFormControl.value)?{value:"the number you entered is larger than the max value"}:null:null}maxValueValidator(t){return this.minFormControl?"NaN"===this.minFormControl.value&&"NaN"===t.value?null:isNaN(parseFloat(t.value))?{value:"the string you entered is neither NaN nor a number"}:t.value<this.minFormControl.value?{value:"the number you entered is smaller than the min value"}:null:null}getErrorDescription(t){if(t){const e=Object.keys(t)[0];return"required"===e?"you did not enter anything":"min"===e?"the number must be at least -1.0":"max"===e?"the number is bigger than 1.0":t[e]}return""}}Cyt.ɵfac=function t(e){return new(e||Cyt)},Cyt.ɵcmp=Uo({type:Cyt,selectors:[["metric-arithmetic-element-component"]],inputs:{metric:"metric",filterValues:"filterValues",hasEmbeddingsData:"hasEmbeddingsData",embeddingsMetric:"embeddingsMetric"},outputs:{onRemove:"onRemove",onSelect:"onSelect",onFilterChange:"onFilterChange"},features:[Si],decls:10,vars:22,consts:[[1,"filter-chip",3,"removed"],["class","embeddings-button","svgIcon","group_work_24px",3,"ngClass","click",4,"ngIf"],[1,"metric-arithmetic-element-range",3,"keydown"],["matInput","",1,"input-field",3,"value","matTooltip","matTooltipDisabled","ngStyle","ngClass","formControl","focus","focusout"],["matChipRemove","","svgIcon","cancel_24px"],["svgIcon","group_work_24px",1,"embeddings-button",3,"ngClass","click"]],template:function t(e,n){1&e&&(Ou(0,"mat-chip",0),Nu("removed",(function t(){return n.onRemove.emit(n.metric)})),Wm(1,byt,1,4,"mat-icon",1),Mf(2),Ou(3,"div",2),Nu("keydown",(function t(e){return e.stopPropagation()})),Mf(4," [ "),Ou(5,"input",3),Nu("focus",(function t(){return n.focusMin=!0}))("focusout",(function t(){return n.focusMin=!1})),Pu(),Mf(6," ; "),Ou(7,"input",3),Nu("focus",(function t(){return n.focusMax=!0}))("focusout",(function t(){return n.focusMax=!1})),Pu(),Mf(8," ] "),Pu(),wu(9,"mat-icon",4),Pu()),2&e&&(Jc(1),vu("ngIf",n.hasEmbeddingsData),Jc(1),xf(" ",n.metric," "),Jc(3),vu("value",n.filterValues.min)("matTooltip",n.getErrorDescription(n.minFormControl.errors))("matTooltipDisabled",!n.minFormControl.invalid)("ngStyle",gb(14,yyt,n.focusMin?"100px":n.minFormControl.value.toString().length+"ch"))("ngClass",gb(16,_yt,!n.minFormControl.valid))("formControl",n.minFormControl),Jc(2),vu("value",n.filterValues.max)("matTooltip",n.getErrorDescription(n.maxFormControl.errors))("matTooltipDisabled",!n.maxFormControl.invalid)("ngStyle",gb(18,yyt,n.focusMax?"100px":n.maxFormControl.value.toString().length+"ch"))("ngClass",gb(20,_yt,!n.maxFormControl.valid))("formControl",n.maxFormControl))},directives:[iyt,av,kV,WQ,gv,tv,aj,rU,cG,ayt],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.filter-chip[_ngcontent-%COMP%]{align-items:center;display:flex;margin-left:5px}.metric-arithmetic-element-range[_ngcontent-%COMP%]{align-items:center;background-color:#fff;font-size:.8em;height:30px;justify-content:center;line-height:30px;padding:0 5px;margin-left:5px}.input-field[_ngcontent-%COMP%]{background-color:transparent;border:none;font-family:monospace;font-size:1.1em;transition:width 1s}.input-field[_ngcontent-%COMP%]:focus{background-color:rgba(0,0,0,.12);border:none;outline:none}.value-invalid[_ngcontent-%COMP%]{color:#f44336}.embedding-selected[_ngcontent-%COMP%]{color:#f57c00;opacity:1}.embedding-unselected[_ngcontent-%COMP%]{opacity:.4}.embeddings-button[_ngcontent-%COMP%]{width:18px;height:18px;margin-right:8px;cursor:pointer}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Cyt,[{type:h_,args:[{selector:"metric-arithmetic-element-component",templateUrl:"./metric_arithmetic_element_component.ng.html",styleUrls:["./metric_arithmetic_element_component.css"],changeDetection:xo.OnPush}]}],null,{metric:[{type:y_}],filterValues:[{type:y_}],hasEmbeddingsData:[{type:y_}],embeddingsMetric:[{type:y_}],onRemove:[{type:__}],onSelect:[{type:__}],onFilterChange:[{type:__}]});class Myt{constructor(t){this.store=t,this.filterValues$=this.store.pipe(Rk(tbt)).pipe(ht((t=>{const e=t[this.metric];return e?{min:e.includeNaN?"NaN":this.roundToThreeDecimalPoints(e.min),max:e.max<e.min?"NaN":this.roundToThreeDecimalPoints(e.max)}:{min:-1,max:1}}))),this.hasEmbeddingsData$=this.store.pipe(Rk(qht)).pipe(ht((t=>void 0!==t))),this.embeddingsMetric$=this.store.pipe(Rk(cbt))}remove(t){this.store.dispatch(Obt({metric:t}))}select(t){this.store.dispatch(Tbt({metric:t}))}filterChange(t){const e=isNaN(t.min)?-1:t.min,n=isNaN(t.max)?-2:t.max,o=isNaN(t.min);this.store.dispatch(Pbt({metric:this.metric,max:n,min:e,includeNaN:o}))}roundToThreeDecimalPoints(t){return Math.round(1e3*(t+Number.EPSILON))/1e3}}Myt.ɵfac=function t(e){return new(e||Myt)(Mu(Ek))},Myt.ɵcmp=Uo({type:Myt,selectors:[["npmi-metric-arithmetic-element"]],inputs:{metric:"metric"},decls:4,vars:10,consts:[[3,"metric","filterValues","hasEmbeddingsData","embeddingsMetric","onRemove","onSelect","onFilterChange"]],template:function t(e,n){1&e&&(Ou(0,"metric-arithmetic-element-component",0),Nu("onRemove",(function t(e){return n.remove(e)}))("onSelect",(function t(e){return n.select(e)}))("onFilterChange",(function t(e){return n.filterChange(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("metric",n.metric)("filterValues",Pb(1,4,n.filterValues$))("hasEmbeddingsData",Pb(2,6,n.hasEmbeddingsData$))("embeddingsMetric",Pb(3,8,n.embeddingsMetric$))},directives:[Cyt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Myt,[{type:h_,args:[{selector:"npmi-metric-arithmetic-element",template:'\n    <metric-arithmetic-element-component\n      [metric]="metric"\n      [filterValues]="filterValues$ | async"\n      [hasEmbeddingsData]="hasEmbeddingsData$ | async"\n      [embeddingsMetric]="embeddingsMetric$ | async"\n      (onRemove)="remove($event)"\n      (onSelect)="select($event)"\n      (onFilterChange)="filterChange($event)"\n    ></metric-arithmetic-element-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{metric:[{type:y_}]});class vyt{constructor(){this.Operator=Fht}}function xyt(t,e){1&t&&wu(0,"npmi-metric-arithmetic-element",4),2&t&&vu("metric",Lu().$implicit.metric)}function Oyt(t,e){1&t&&wu(0,"npmi-metric-arithmetic-operator",5),2&t&&vu("operator",Lu().$implicit.operator)}function Pyt(t,e){if(1&t&&(Ou(0,"div"),Wm(1,xyt,1,1,"npmi-metric-arithmetic-element",2),Wm(2,Oyt,1,1,"npmi-metric-arithmetic-operator",3),Pu()),2&t){const t=e.$implicit,n=Lu();Jc(1),vu("ngIf",t.kind===n.ArithmeticKind.METRIC),Jc(1),vu("ngIf",t.kind===n.ArithmeticKind.OPERATOR)}}vyt.ɵfac=function t(e){return new(e||vyt)},vyt.ɵcmp=Uo({type:vyt,selectors:[["npmi-metric-arithmetic-operator"]],inputs:{operator:"operator"},decls:2,vars:1,template:function t(e,n){1&e&&(Ou(0,"mat-chip"),Mf(1),Pu()),2&e&&(Jc(1),xf(" ",n.operator===n.Operator.AND?"&":""," "))},directives:[iyt],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(vyt,[{type:h_,args:[{selector:"npmi-metric-arithmetic-operator",template:"\n    <mat-chip>\n      {{ operator === Operator.AND ? '&' : '' }}\n    </mat-chip>\n  ",changeDetection:xo.OnPush}]}],null,{operator:[{type:y_}]});class wyt{constructor(){this.ArithmeticKind=Lht}}wyt.ɵfac=function t(e){return new(e||wyt)},wyt.ɵcmp=Uo({type:wyt,selectors:[["metric-arithmetic-component"]],inputs:{metricArithmetic:"metricArithmetic"},decls:2,vars:2,consts:[[3,"selectable"],[4,"ngFor","ngForOf"],[3,"metric",4,"ngIf"],[3,"operator",4,"ngIf"],[3,"metric"],[3,"operator"]],template:function t(e,n){1&e&&(Ou(0,"mat-chip-list",0),Wm(1,Pyt,3,2,"div",1),Pu()),2&e&&(vu("selectable",!1),Jc(1),vu("ngForOf",n.metricArithmetic))},directives:[dyt,ov,av,Myt,vyt],styles:["[_nghost-%COMP%]{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(wyt,[{type:h_,args:[{selector:"metric-arithmetic-component",templateUrl:"./metric_arithmetic_component.ng.html",styleUrls:["./metric_arithmetic_component.css"],changeDetection:xo.OnPush}]}],null,{metricArithmetic:[{type:y_}]});class kyt{constructor(t){this.store=t,this.metricArithmetic$=this.store.pipe(Rk($ht))}}kyt.ɵfac=function t(e){return new(e||kyt)(Mu(Ek))},kyt.ɵcmp=Uo({type:kyt,selectors:[["npmi-metric-arithmetic"]],decls:2,vars:3,consts:[[3,"metricArithmetic"]],template:function t(e,n){1&e&&(wu(0,"metric-arithmetic-component",0),Ob(1,"async")),2&e&&vu("metricArithmetic",Pb(1,1,n.metricArithmetic$))},directives:[wyt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(kyt,[{type:h_,args:[{selector:"npmi-metric-arithmetic",template:'\n    <metric-arithmetic-component\n      [metricArithmetic]="metricArithmetic$ | async"\n    ></metric-arithmetic-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class Syt{}function Dyt(t,e,n){if(n)return t;const o=Object.assign({},t);return e.forEach((t=>delete o[t])),o}Syt.ɵfac=function t(e){return new(e||Syt)},Syt.ɵcmp=Uo({type:Syt,selectors:[["npmi-data-selection"]],decls:4,vars:0,consts:[[1,"data-selection"],[1,"metrics-selector"]],template:function t(e,n){1&e&&(Ou(0,"div",0),wu(1,"npmi-metric-search",1),wu(2,"npmi-results-download"),Pu(),wu(3,"npmi-metric-arithmetic"))},directives:[qbt,Jbt,kyt],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;flex-direction:column;background-color:#fff;border:1px solid #ebebeb;padding:10px 20px}.data-selection[_ngcontent-%COMP%]{display:flex;align-items:center}.metrics-selector[_ngcontent-%COMP%]{flex:1 1}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Syt,[{type:h_,args:[{selector:"npmi-data-selection",templateUrl:"./data_selection_component.ng.html",styleUrls:["./data_selection_component.css"],changeDetection:xo.OnPush}]}],null,null);const Eyt=["chart"];class Ayt{constructor(){this.onRemove=new Ab,this.onUpdateFilter=new Ab,this.height=300,this.chartWidth=0,this.chartHeight=0,this.drawHeight=0,this.drawWidth=0,this.margin={top:20,right:10,bottom:20,left:10},this.drawMargin={top:0,right:0,bottom:20,left:20},this.brush=(function t(){return(function t(e){var n,o=mtt,i=ptt,a=utt,r=!0,s=Y5("start","brush","end"),l=6;function c(t){var n=t.property("__brush",h).selectAll(".overlay").data([dtt("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",att.overlay).merge(n).each((function(){var t=ftt(this).extent;r6(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),t.selectAll(".selection").data([dtt("selection")]).enter().append("rect").attr("class","selection").attr("cursor",att.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var o=t.selectAll(".handle").data(e.handles,(function(t){return t.type}));o.exit().remove(),o.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return att[t.type]})),t.each(d).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",u).filter(a).on("touchstart.brush",u).on("touchmove.brush",f).on("touchend.brush touchcancel.brush",g).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(){var t=r6(this),e=ftt(this).selection;e?(t.selectAll(".selection").style("display",null).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?e[1][0]-l/2:e[0][0]-l/2})).attr("y",(function(t){return"s"===t.type[0]?e[1][1]-l/2:e[0][1]-l/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?e[1][0]-e[0][0]+l:l})).attr("height",(function(t){return"e"===t.type||"w"===t.type?e[1][1]-e[0][1]+l:l}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function p(t,e,n){var o=t.__brush.emitter;return!o||n&&o.clean?new m(t,e,n):o}function m(t,e,n){this.that=t,this.args=e,this.state=t.__brush,this.active=0,this.clean=n}function u(){if((!n||Z4.touches)&&i.apply(this,arguments)){var t,o,a,s,l,c,m,u,f,g,h,b=this,y=Z4.target.__data__.type,_="selection"===(r&&Z4.metaKey?y="overlay":y)?K9:r&&Z4.altKey?$9:Q9,C=e===itt?null:ltt[y],M=e===ott?null:ctt[y],v=ftt(b),x=v.extent,O=v.selection,P=x[0][0],w=x[0][1],k=x[1][0],S=x[1][1],D=0,E=0,A=C&&M&&r&&Z4.shiftKey,R=Z4.touches?ntt(Z4.changedTouches[0].identifier):c6,T=R(b),N=T,I=p(b,arguments,!0).beforestart();"overlay"===y?(O&&(f=!0),v.selection=O=[[t=e===itt?P:T[0],a=e===ott?w:T[1]],[l=e===itt?k:t,m=e===ott?S:a]]):(t=O[0][0],a=O[0][1],l=O[1][0],m=O[1][1]),o=t,s=a,c=l,u=m;var z=r6(b).attr("pointer-events","none"),H=z.selectAll(".overlay").attr("cursor",att[y]);if(Z4.touches)I.moved=L,I.ended=V;else{var F=r6(Z4.view).on("mousemove.brush",L,!0).on("mouseup.brush",V,!0);r&&F.on("keydown.brush",j,!0).on("keyup.brush",U,!0),p6(Z4.view)}Y9(),G8(b),d.call(b),I.start()}function L(){var t=R(b);!A||g||h||(Math.abs(t[0]-N[0])>Math.abs(t[1]-N[1])?h=!0:g=!0),N=t,f=!0,q9(),B()}function B(){var e;switch(D=N[0]-T[0],E=N[1]-T[1],_){case J9:case K9:C&&(D=Math.max(P-t,Math.min(k-l,D)),o=t+D,c=l+D),M&&(E=Math.max(w-a,Math.min(S-m,E)),s=a+E,u=m+E);break;case Q9:C<0?(D=Math.max(P-t,Math.min(k-t,D)),o=t+D,c=l):C>0&&(D=Math.max(P-l,Math.min(k-l,D)),o=t,c=l+D),M<0?(E=Math.max(w-a,Math.min(S-a,E)),s=a+E,u=m):M>0&&(E=Math.max(w-m,Math.min(S-m,E)),s=a,u=m+E);break;case $9:C&&(o=Math.max(P,Math.min(k,t-D*C)),c=Math.max(P,Math.min(k,l+D*C))),M&&(s=Math.max(w,Math.min(S,a-E*M)),u=Math.max(w,Math.min(S,m+E*M)))}c<o&&(C*=-1,e=t,t=l,l=e,e=o,o=c,c=e,y in rtt&&H.attr("cursor",att[y=rtt[y]])),u<s&&(M*=-1,e=a,a=m,m=e,e=s,s=u,u=e,y in stt&&H.attr("cursor",att[y=stt[y]])),v.selection&&(O=v.selection),g&&(o=O[0][0],c=O[1][0]),h&&(s=O[0][1],u=O[1][1]),O[0][0]===o&&O[0][1]===s&&O[1][0]===c&&O[1][1]===u||(v.selection=[[o,s],[c,u]],d.call(b),I.brush())}function V(){if(Y9(),Z4.touches){if(Z4.touches.length)return;n&&clearTimeout(n),n=setTimeout((function(){n=null}),500)}else m6(Z4.view,f),F.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);z.attr("pointer-events","all"),H.attr("cursor",att.overlay),v.selection&&(O=v.selection),gtt(O)&&(v.selection=null,d.call(b)),I.end()}function j(){switch(Z4.keyCode){case 16:A=C&&M;break;case 18:_===Q9&&(C&&(l=c-D*C,t=o+D*C),M&&(m=u-E*M,a=s+E*M),_=$9,B());break;case 32:_!==Q9&&_!==$9||(C<0?l=c-D:C>0&&(t=o-D),M<0?m=u-E:M>0&&(a=s-E),_=J9,H.attr("cursor",att.selection),B());break;default:return}q9()}function U(){switch(Z4.keyCode){case 16:A&&(g=h=A=!1,B());break;case 18:_===$9&&(C<0?l=c:C>0&&(t=o),M<0?m=u:M>0&&(a=s),_=Q9,B());break;case 32:_===J9&&(Z4.altKey?(C&&(l=c-D*C,t=o+D*C),M&&(m=u-E*M,a=s+E*M),_=$9):(C<0?l=c:C>0&&(t=o),M<0?m=u:M>0&&(a=s),_=Q9),H.attr("cursor",att[y]),B());break;default:return}q9()}}function f(){p(this,arguments).moved()}function g(){p(this,arguments).ended()}function h(){var t=this.__brush||{selection:null};return t.extent=ett(o.apply(this,arguments)),t.dim=e,t}return c.move=function(t,n){t.selection?t.on("start.brush",(function(){p(this,arguments).beforestart().start()})).on("interrupt.brush end.brush",(function(){p(this,arguments).end()})).tween("brush",(function(){var t=this,o=t.__brush,i=p(t,arguments),a=o.selection,r=e.input("function"==typeof n?n.apply(this,arguments):n,o.extent),s=o8(a,r);function l(e){o.selection=1===e&&null===r?null:s(e),d.call(t),i.brush()}return null!==a&&null!==r?l:l(1)})):t.each((function(){var t=this,o=arguments,i=t.__brush,a=e.input("function"==typeof n?n.apply(t,o):n,i.extent),r=p(t,o).beforestart();G8(t),i.selection=null===a?null:a,d.call(t),r.start().brush().end()}))},c.clear=function(t){c.move(t,null)},m.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting?(this.starting=!1,this.emit("start")):this.emit("brush"),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){!(function n(t,e,o,i){var a=Z4;t.sourceEvent=Z4,Z4=t;try{e.apply(o,i)}finally{Z4=a}})(new G9(c,t,e.output(this.state.selection)),s.apply,s,[t,this.that,this.args])}},c.extent=function(t){return arguments.length?(o="function"==typeof t?t:W9(ett(t)),c):o},c.filter=function(t){return arguments.length?(i="function"==typeof t?t:W9(!!t),c):i},c.touchable=function(t){return arguments.length?(a="function"==typeof t?t:W9(!!t),c):a},c.handleSize=function(t){return arguments.length?(l=+t,c):l},c.keyModifiers=function(t){return arguments.length?(r=!!t,c):r},c.on=function(){var t=s.on.apply(s,arguments);return t===s?c:t},c})(itt)})(),this.maxBinSize=0,this.area=(function e(){var t=Dot,e=null,n=wot(0),o=Eot,i=wot(!0),a=null,r=Sot,s=null;function l(l){var c,d,p,m,u,f=l.length,g=!1,h=new Array(f),b=new Array(f);for(null==a&&(s=r(u=Mtt())),c=0;c<=f;++c){if(!(c<f&&i(m=l[c],c,l))===g)if(g=!g)d=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),p=c-1;p>=d;--p)s.point(h[p],b[p]);s.lineEnd(),s.areaEnd()}g&&(h[c]=+t(m,c,l),b[c]=+n(m,c,l),s.point(e?+e(m,c,l):h[c],o?+o(m,c,l):b[c]))}if(u)return s=null,u+""||null}function c(){return Aot().defined(i).curve(r).context(a)}return l.x=function(n){return arguments.length?(t="function"==typeof n?n:wot(+n),e=null,l):t},l.x0=function(e){return arguments.length?(t="function"==typeof e?e:wot(+e),l):t},l.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:wot(+t),l):e},l.y=function(t){return arguments.length?(n="function"==typeof t?t:wot(+t),o=null,l):n},l.y0=function(t){return arguments.length?(n="function"==typeof t?t:wot(+t),l):n},l.y1=function(t){return arguments.length?(o=null==t?null:"function"==typeof t?t:wot(+t),l):o},l.lineX0=l.lineY0=function(){return c().x(t).y(n)},l.lineY1=function(){return c().x(t).y(o)},l.lineX1=function(){return c().x(e).y(n)},l.defined=function(t){return arguments.length?(i="function"==typeof t?t:wot(!!t),l):i},l.curve=function(t){return arguments.length?(r=t,null!=a&&(s=r(a)),l):r},l.context=function(t){return arguments.length?(null==t?a=s=null:s=r(a=t),l):a},l})().x0(function(t){return this.xScaleNum(-t.length)}.bind(this)).x1(function(t){return this.xScaleNum(t.length)}.bind(this)).y(function(t){return t.x0===-1/0?this.chartHeight-this.drawMargin.top:this.yScale((t.x1+t.x0)/2)}.bind(this)).curve(Iot)}ngAfterViewInit(){this.updateDimensions(),this.svg=r6(this.chartContainer.nativeElement).select("svg"),this.mainContainer=this.svg.append("g").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`),this.drawContainer=this.mainContainer.append("g").attr("transform",`translate(${this.drawMargin.left}, ${this.drawMargin.top})`),this.dotsGroup=this.drawContainer.append("g").attr("class","dotsGroup"),this.yAxisGroup=this.mainContainer.append("g").attr("class","axis axis--y"),this.xAxisGroup=this.mainContainer.append("g").attr("class","axis axis--x"),this.miscGroup=this.drawContainer.append("g"),this.xScale=Ktt().padding(.05),this.xAxis=W5(this.xScale),this.yScale=pet().range([this.drawHeight,0]),this.yAxis=(function t(e){return j5(4,e)})(this.yScale),this.xScaleNum=pet(),this.initializeBrush(),this.drawMisc(),this.redraw()}ngOnChanges(t){this.svg&&this.redraw()}redraw(){this.updateDimensions(),this.setMaxBinSize(),this.updateAxes(),this.draw()}updateDimensions(){this.chartWidth=this.width-this.margin.left-this.margin.right,this.drawWidth=this.chartWidth-this.drawMargin.left-this.drawMargin.right,this.chartHeight=this.height-this.margin.top-this.margin.bottom,this.drawHeight=this.chartHeight-this.drawMargin.top-this.drawMargin.bottom}setMaxBinSize(){Object.values(this.chartData.violinData).forEach((t=>{const e=t.map((t=>t.length)),n=Math.max(...e);this.maxBinSize=Math.max(n,this.maxBinSize)}))}updateAxes(){this.xScale.range([0,this.drawWidth]).domain(Object.keys(this.chartData.violinData)),this.yScale.domain([this.chartData.extremes.min,this.chartData.extremes.max]),this.xScaleNum.range([0,this.xScale.bandwidth()]).domain([-this.maxBinSize,this.maxBinSize])}initializeBrush(){this.brush.on("end",this.brushMoved.bind(this))}draw(){this.drawAxes(),this.drawPlot(),this.refreshMisc(),this.refreshBrush()}drawAxes(){this.yAxisGroup.attr("transform",`translate(${this.drawMargin.left},\n      ${this.drawMargin.top})`).call(this.yAxis),this.xAxisGroup.attr("transform",`translate(${this.drawMargin.left},\n      ${this.drawMargin.top+this.chartHeight})`).call(this.xAxis)}drawPlot(){const t=this.dotsGroup.selectAll(".violin-plot").data(Object.entries(this.chartData.violinData));t.enter().append("path").attr("class","violin-plot").style("stroke",function(t){return this.colorScale(t[0])}.bind(this)).style("fill",function(t){return`${this.colorScale(t[0])}33`}.bind(this)).attr("transform",function(t){return`translate(${this.xScale(t[0])}, 0)`}.bind(this)).datum((function(t){return t[1]})).attr("d",this.area),t.attr("transform",function(t){return`translate(${this.xScale(t[0])}, 0)`}.bind(this)).datum((function(t){return t[1]})).attr("d",this.area),t.exit().remove()}drawMisc(){this.zeroLine=this.miscGroup.append("line").style("stroke","black").attr("x1",0).attr("y1",this.yScale(0)).attr("x2",this.drawWidth).attr("y2",this.yScale(0)),this.nanText=this.miscGroup.append("text").style("fill","black").text("NaN").attr("font-size","10px").attr("text-anchor","end").attr("alignment-baseline","middle").attr("x",-5).attr("y",this.chartHeight-this.drawMargin.top),this.nanLine=this.miscGroup.append("line").style("stroke","grey").style("stroke-dasharray","3, 3").attr("x1",0).attr("y1",this.chartHeight-this.drawMargin.top).attr("x2",this.drawWidth).attr("y2",this.chartHeight-this.drawMargin.top)}refreshMisc(){this.zeroLine.attr("y1",this.yScale(0)).attr("x2",this.drawWidth).attr("y2",this.yScale(0)),this.nanText.attr("y",this.chartHeight-this.drawMargin.top),this.nanLine.attr("y1",this.drawHeight+this.drawMargin.top).attr("x2",this.drawWidth).attr("y2",this.drawHeight+this.drawMargin.top)}refreshBrush(){this.brush.extent([[0,0],[this.drawWidth,this.drawHeight+this.margin.top]]);const t=[0,this.drawHeight+this.margin.top];if(this.filter.max<this.filter.min)t[0]=this.filter.includeNaN?this.yScale(this.chartData.extremes.min):t[1];else{if(!this.filter.includeNaN){const e=Math.max(this.chartData.extremes.min,this.filter.min);t[1]=this.yScale(e)}const e=Math.min(this.chartData.extremes.max,this.filter.max);t[0]=this.yScale(e)}this.drawContainer.call(this.brush).call(this.brush.move,t)}brushMoved(){if(!Z4)return;if(!Z4.sourceEvent)return;const t=Z4.selection;if(t){let e=!1,n=-2,o=this.chartData.extremes.min;t[0]<=this.drawHeight+this.margin.top&&t[1]>=this.drawHeight&&(e=!0),t[0]<this.drawHeight&&(n=this.yScale.invert(t[0])),t[1]<this.drawHeight&&(o=this.yScale.invert(t[1])),this.onUpdateFilter.emit({max:n,min:o,includeNaN:e})}else this.onUpdateFilter.emit({max:1,min:-1,includeNaN:!0})}}Ayt.ɵfac=function t(e){return new(e||Ayt)},Ayt.ɵcmp=Uo({type:Ayt,selectors:[["violin-filter-component"]],viewQuery:function t(e,n){if(1&e&&Wb(Eyt,3,ch),2&e){let t;Ub(t=Yb())&&(n.chartContainer=t.first)}},inputs:{metricName:"metricName",filter:"filter",chartData:"chartData",width:"width",colorScale:"colorScale"},outputs:{onRemove:"onRemove",onUpdateFilter:"onUpdateFilter"},features:[Si],decls:9,vars:1,consts:function(){let t;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Remove Filter"):$localize`:Label for a button that removes a metric filter.␟a6bfad58bb363d5c891d0a5474b1d77ef90a34da␟8454961797762907624:Remove Filter`,[[1,"chart-container"],["title","Shows the nPMI value distribution per run. Ranges of selected values can be manipulated by modifying the grey box.",1,"chart-head"],[1,"chart-heading"],["mat-icon-button","","aria-label",t,3,"click"],["svgIcon","clear_24px"],[1,"chart"],["chart",""],[1,"draw-area"]]},template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"div",1),Ou(2,"div",2),Mf(3),Pu(),Ou(4,"button",3),Nu("click",(function t(){return n.onRemove.emit()})),wu(5,"mat-icon",4),Pu(),Pu(),Ou(6,"div",5,6),Ha(),wu(8,"svg",7),Pu(),Pu()),2&e&&(Jc(3),vf(n.metricName))},directives:[NH,cG],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.chart-container[_ngcontent-%COMP%]{background-color:#fff;border-bottom:1px solid #ebebeb;display:flex;flex-direction:column;overflow:hidden}.chart[_ngcontent-%COMP%]{height:300px;width:100%}.chart-head[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between}.chart-heading[_ngcontent-%COMP%]{font-size:13px;padding-left:10px;padding-top:10px}.draw-area[_ngcontent-%COMP%]{height:100%;width:100%}.stroked-line[_ngcontent-%COMP%]{stroke:rgba(0,0,0,.12);stroke-dasharray:3 3}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Ayt,[{type:h_,args:[{selector:"violin-filter-component",templateUrl:"./violin_filter_component.ng.html",styleUrls:["./violin_filter_component.css"],changeDetection:xo.OnPush}]}],null,{metricName:[{type:y_}],filter:[{type:y_}],chartData:[{type:y_}],width:[{type:y_}],colorScale:[{type:y_}],onRemove:[{type:__}],onUpdateFilter:[{type:__}],chartContainer:[{type:Fr,args:["chart",{static:!0,read:ch}]}]});class Ryt{constructor(t){this.store=t,this.activeRuns$=this.store.pipe(Rk(vN)).pipe(ht((t=>t?Array.from(t.entries()).filter((t=>t[1])).map((t=>t[0])):[]))),this.visibleAnnotations$=Dt([this.store.select(Ght),this.store.select(Kht),this.store.select(rbt)]).pipe(ht((([t,e,n])=>Dyt(t,e,n)))),this.chartWidth$=this.store.pipe(Rk(lbt)).pipe(ht((t=>Math.max(150,t)))),this.runColorScale$=this.store.select(CN).pipe(ht((t=>e=>{if(!t.hasOwnProperty(e))throw new Error(`[Color scale] unknown runId: ${e}.`);return t[e]})))}ngOnInit(){this.chartData$=Dt([this.visibleAnnotations$,this.activeRuns$]).pipe(ht((([t,e])=>(function n(t,e,o){const i={},a={},r=new Set(e),s=Vbt(o),l={max:-1,min:1};Object.values(t).forEach((t=>{t.forEach((t=>{const e=t.run;if(r.has(e)&&t.metric===s)if(null===t.nPMIValue)a[e]?a[e].push(null):a[e]=[null];else{const n=t.nPMIValue;l.max=l.max<n?n:l.max,l.min=l.min>n?n:l.min,i[t.run]?i[e].push(n):i[e]=[n]}}))}));const c={},d=T5().domain([l.min,l.max]).value((t=>t)),p=T5().domain([-1/0,1/0]).thresholds(0).value((t=>t));for(const t of r)if(c[t]=d(i[t]),a[t]){const e=p(a[t]);c[t].unshift(e[0])}return{violinData:c,extremes:l}})(t,e,this.metricName))))}removeMetric(){this.store.dispatch(Obt({metric:this.metricName}))}updateFilter(t){this.store.dispatch(Pbt(Object.assign({metric:this.metricName},t)))}}function Tyt(t,e){if(1&t&&wu(0,"npmi-violin-filter",8),2&t){const t=e.$implicit;vu("metricName",t[0])("filter",t[1])}}function Nyt(t,e){1&t&&(Ou(0,"div",9),Ou(1,"span",10),Mf(2," You can add more filters at the top. "),Pu(),Pu())}Ryt.ɵfac=function t(e){return new(e||Ryt)(Mu(Ek))},Ryt.ɵcmp=Uo({type:Ryt,selectors:[["npmi-violin-filter"]],inputs:{metricName:"metricName",filter:"filter"},decls:4,vars:11,consts:[[3,"metricName","filter","chartData","width","colorScale","onRemove","onUpdateFilter"]],template:function t(e,n){1&e&&(Ou(0,"violin-filter-component",0),Nu("onRemove",(function t(){return n.removeMetric()}))("onUpdateFilter",(function t(e){return n.updateFilter(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("metricName",n.metricName)("filter",n.filter)("chartData",Pb(1,5,n.chartData$))("width",Pb(2,7,n.chartWidth$))("colorScale",Pb(3,9,n.runColorScale$))},directives:[Ayt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Ryt,[{type:h_,args:[{selector:"npmi-violin-filter",template:'\n    <violin-filter-component\n      [metricName]="metricName"\n      [filter]="filter"\n      [chartData]="chartData$ | async"\n      [width]="chartWidth$ | async"\n      [colorScale]="runColorScale$ | async"\n      (onRemove)="removeMetric()"\n      (onUpdateFilter)="updateFilter($event)"\n    ></violin-filter-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{metricName:[{type:y_}],filter:[{type:y_}]});class Iyt{constructor(){this.toggleSidebarExpanded=new Ab}}Iyt.ɵfac=function t(e){return new(e||Iyt)},Iyt.ɵcmp=Uo({type:Iyt,selectors:[["violin-filters-component"]],inputs:{sidebarExpanded:"sidebarExpanded",metricFilters:"metricFilters"},outputs:{toggleSidebarExpanded:"toggleSidebarExpanded"},decls:9,vars:2,consts:function(){let t;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Expand/Hide Sidebar"):$localize`:Label for a button that expands/hides the sidebar.␟48c29903ce881ab61088f8d49d827203716aaed4␟4658602991970260215:Expand/Hide Sidebar`,[[1,"filters-toolbar"],[1,"filters-title"],[1,"side-toggle"],["mat-icon-button","","aria-label",t,3,"click"],["svgIcon","chevron_left_24px"],[1,"filters"],[3,"metricName","filter",4,"ngFor","ngForOf"],["class","filters-hint",4,"ngIf"],[3,"metricName","filter"],[1,"filters-hint"],[1,"filters-hint-text"]]},template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"h3",1),Mf(2,"Active Filters"),Pu(),Ou(3,"div",2),Ou(4,"button",3),Nu("click",(function t(){return n.toggleSidebarExpanded.emit()})),wu(5,"mat-icon",4),Pu(),Pu(),Pu(),Ou(6,"div",5),Wm(7,Tyt,1,2,"npmi-violin-filter",6),Pu(),Wm(8,Nyt,3,0,"div",7)),2&e&&(Jc(7),vu("ngForOf",n.metricFilters),Jc(1),vu("ngIf",0===n.metricFilters.length))},directives:[NH,cG,ov,av,Ryt],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.filters-toolbar[_ngcontent-%COMP%]{align-items:center;border-bottom:1px solid #ebebeb;display:flex;height:42px;justify-content:space-between;padding:0 10px}.filters-title[_ngcontent-%COMP%]{display:inline;font-size:14px;font-weight:500}.side-toggle[_ngcontent-%COMP%]{align-items:center;background-color:#fff;border-radius:3px;border:1px solid #ebebeb;display:flex;height:30px;justify-content:center;width:30px}.filters[_ngcontent-%COMP%]{overflow-y:auto}.filters-hint[_ngcontent-%COMP%]{align-items:center;display:flex;height:42px;padding:0 16px}.filters-hint-text[_ngcontent-%COMP%]{color:rgba(0,0,0,.38)}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Iyt,[{type:h_,args:[{selector:"violin-filters-component",templateUrl:"./violin_filters_component.ng.html",styleUrls:["./violin_filters_component.css"],changeDetection:xo.OnPush}]}],null,{sidebarExpanded:[{type:y_}],metricFilters:[{type:y_}],toggleSidebarExpanded:[{type:__}]});class zyt{constructor(t){this.store=t,this.sidebarExpanded$=this.store.select(ibt),this.metricFilters$=this.store.select(tbt).pipe(ht((t=>Object.entries(t))))}onToggleSidebarExpanded(){this.store.dispatch(Ebt())}}function Hyt(t,e,n){return t.length!=e.length?n:e.map(((e,n)=>e-t[n])).map((t=>Math.pow(t,2))).reduce(((t,e)=>t+e),0)}zyt.ɵfac=function t(e){return new(e||zyt)(Mu(Ek))},zyt.ɵcmp=Uo({type:zyt,selectors:[["npmi-violin-filters"]],decls:3,vars:6,consts:[[3,"sidebarExpanded","metricFilters","toggleSidebarExpanded"]],template:function t(e,n){1&e&&(Ou(0,"violin-filters-component",0),Nu("toggleSidebarExpanded",(function t(){return n.onToggleSidebarExpanded()})),Ob(1,"async"),Ob(2,"async"),Pu()),2&e&&vu("sidebarExpanded",Pb(1,2,n.sidebarExpanded$))("metricFilters",Pb(2,4,n.metricFilters$))},directives:[Iyt],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(zyt,[{type:h_,args:[{selector:"npmi-violin-filters",template:'\n    <violin-filters-component\n      [sidebarExpanded]="sidebarExpanded$ | async"\n      [metricFilters]="metricFilters$ | async"\n      (toggleSidebarExpanded)="onToggleSidebarExpanded()"\n    ></violin-filters-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);const Fyt=["thumbContainer"],Lyt=["toggleBar"],Byt=["input"],Vyt=function(){return{enterDuration:150}},jyt=new Nr("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1})});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
let Uyt=0;const Wyt={provide:vV,useExisting:In((()=>qyt)),multi:!0};class Gyt{constructor(t,e){this.source=t,this.checked=e}}const Yyt=Hz(Iz(zz(Nz(class{constructor(t){this._elementRef=t}})),"accent"));class qyt extends Yyt{constructor(t,e,n,o,i,a){super(t),this._focusMonitor=e,this._changeDetectorRef=n,this.defaults=i,this._animationMode=a,this._onChange=t=>{},this._onTouched=()=>{},this._uniqueId="mat-slide-toggle-"+ ++Uyt,this._required=!1,this._checked=!1,this.name=null,this.id=this._uniqueId,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this.change=new Ab,this.toggleChange=new Ab,this.tabIndex=parseInt(o)||0}get required(){return this._required}set required(t){this._required=rI(t)}get checked(){return this._checked}set checked(t){this._checked=rI(t),this._changeDetectorRef.markForCheck()}get inputId(){return`${this.id||this._uniqueId}-input`}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe((t=>{"keyboard"===t||"program"===t?this._inputElement.nativeElement.focus():t||Promise.resolve().then((()=>this._onTouched()))}))}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}_onChangeEvent(t){t.stopPropagation(),this.toggleChange.emit(),this.defaults.disableToggleValue?this._inputElement.nativeElement.checked=this.checked:(this.checked=this._inputElement.nativeElement.checked,this._emitChangeEvent())}_onInputClick(t){t.stopPropagation()}writeValue(t){this.checked=!!t}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetectorRef.markForCheck()}focus(t,e){e?this._focusMonitor.focusVia(this._inputElement,e,t):this._inputElement.nativeElement.focus(t)}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(new Gyt(this,this.checked))}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}}qyt.ɵfac=function t(e){return new(e||qyt)(Mu(ch),Mu(pz),Mu(Hh),Or("tabindex"),Mu(jyt),Mu(Nw,8))},qyt.ɵcmp=Uo({type:qyt,selectors:[["mat-slide-toggle"]],viewQuery:function t(e,n){if(1&e&&(Wb(Fyt,1),Wb(Lyt,1),Wb(Byt,1)),2&e){let t;Ub(t=Yb())&&(n._thumbEl=t.first),Ub(t=Yb())&&(n._thumbBarEl=t.first),Ub(t=Yb())&&(n._inputElement=t.first)}},hostAttrs:[1,"mat-slide-toggle"],hostVars:12,hostBindings:function t(e,n){2&e&&(kf("id",n.id),Nm("tabindex",n.disabled?null:-1)("aria-label",null)("aria-labelledby",null),af("mat-checked",n.checked)("mat-disabled",n.disabled)("mat-slide-toggle-label-before","before"==n.labelPosition)("_mat-animation-noopable","NoopAnimations"===n._animationMode))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex",name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],required:"required",checked:"checked"},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[ih([Wyt]),gm],ngContentSelectors:["*"],decls:16,vars:18,consts:[[1,"mat-slide-toggle-label"],["label",""],[1,"mat-slide-toggle-bar"],["toggleBar",""],["type","checkbox","role","switch",1,"mat-slide-toggle-input","cdk-visually-hidden",3,"id","required","tabIndex","checked","disabled","change","click"],["input",""],[1,"mat-slide-toggle-thumb-container"],["thumbContainer",""],[1,"mat-slide-toggle-thumb"],["mat-ripple","",1,"mat-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered","matRippleRadius","matRippleAnimation"],[1,"mat-ripple-element","mat-slide-toggle-persistent-ripple"],[1,"mat-slide-toggle-content",3,"cdkObserveContent"],["labelContent",""],[2,"display","none"]],template:function t(e,n){if(1&e&&(Vu(),Ou(0,"label",0,1),Ou(2,"div",2,3),Ou(4,"input",4,5),Nu("change",(function t(e){return n._onChangeEvent(e)}))("click",(function t(e){return n._onInputClick(e)})),Pu(),Ou(6,"div",6,7),wu(8,"div",8),Ou(9,"div",9),wu(10,"div",10),Pu(),Pu(),Pu(),Ou(11,"span",11,12),Nu("cdkObserveContent",(function t(){return n._onLabelTextChange()})),Ou(13,"span",13),Mf(14," "),Pu(),ju(15),Pu(),Pu()),2&e){const t=Gm(1),e=Gm(12);Nm("for",n.inputId),Jc(2),af("mat-slide-toggle-bar-no-side-margin",!e.textContent||!e.textContent.trim()),Jc(2),vu("id",n.inputId)("required",n.required)("tabIndex",n.tabIndex)("checked",n.checked)("disabled",n.disabled),Nm("name",n.name)("aria-checked",n.checked.toString())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),Jc(5),vu("matRippleTrigger",t)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0)("matRippleRadius",20)("matRippleAnimation",fb(17,Vyt))}},directives:[pH,SI],styles:[".mat-slide-toggle{display:inline-block;height:24px;max-width:100%;line-height:24px;white-space:nowrap;outline:none;-webkit-tap-highlight-color:transparent}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(16px, 0, 0)}[dir=rtl] .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(-16px, 0, 0)}.mat-slide-toggle.mat-disabled{opacity:.38}.mat-slide-toggle.mat-disabled .mat-slide-toggle-label,.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb-container{cursor:default}.mat-slide-toggle-label{display:flex;flex:1;flex-direction:row;align-items:center;height:inherit;cursor:pointer}.mat-slide-toggle-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-slide-toggle-label-before .mat-slide-toggle-label{order:1}.mat-slide-toggle-label-before .mat-slide-toggle-bar{order:2}[dir=rtl] .mat-slide-toggle-label-before .mat-slide-toggle-bar,.mat-slide-toggle-bar{margin-right:8px;margin-left:0}[dir=rtl] .mat-slide-toggle-bar,.mat-slide-toggle-label-before .mat-slide-toggle-bar{margin-left:8px;margin-right:0}.mat-slide-toggle-bar-no-side-margin{margin-left:0;margin-right:0}.mat-slide-toggle-thumb-container{position:absolute;z-index:1;width:20px;height:20px;top:-3px;left:0;transform:translate3d(0, 0, 0);transition:all 80ms linear;transition-property:transform}._mat-animation-noopable .mat-slide-toggle-thumb-container{transition:none}[dir=rtl] .mat-slide-toggle-thumb-container{left:auto;right:0}.mat-slide-toggle-thumb{height:20px;width:20px;border-radius:50%}.mat-slide-toggle-bar{position:relative;width:36px;height:14px;flex-shrink:0;border-radius:8px}.mat-slide-toggle-input{bottom:0;left:10px}[dir=rtl] .mat-slide-toggle-input{left:auto;right:10px}.mat-slide-toggle-bar,.mat-slide-toggle-thumb{transition:all 80ms linear;transition-property:background-color;transition-delay:50ms}._mat-animation-noopable .mat-slide-toggle-bar,._mat-animation-noopable .mat-slide-toggle-thumb{transition:none}.mat-slide-toggle .mat-slide-toggle-ripple{position:absolute;top:calc(50% - 20px);left:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-slide-toggle .mat-slide-toggle-ripple .mat-ripple-element:not(.mat-slide-toggle-persistent-ripple){opacity:.12}.mat-slide-toggle-persistent-ripple{width:100%;height:100%;transform:none}.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:.04}.mat-slide-toggle:not(.mat-disabled).cdk-keyboard-focused .mat-slide-toggle-persistent-ripple{opacity:.12}.mat-slide-toggle-persistent-ripple,.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:0}@media(hover: none){.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{display:none}}.cdk-high-contrast-active .mat-slide-toggle-thumb,.cdk-high-contrast-active .mat-slide-toggle-bar{border:1px solid}.cdk-high-contrast-active .mat-slide-toggle.cdk-keyboard-focused .mat-slide-toggle-bar{outline:2px dotted;outline-offset:5px}\n"],encapsulation:2,changeDetection:0}),qyt.ctorParameters=()=>[{type:ch},{type:pz},{type:Hh},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:void 0,decorators:[{type:ys,args:[jyt]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}],qyt.propDecorators={_thumbEl:[{type:Fr,args:["thumbContainer"]}],_thumbBarEl:[{type:Fr,args:["toggleBar"]}],name:[{type:y_}],id:[{type:y_}],labelPosition:[{type:y_}],ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],required:[{type:y_}],checked:[{type:y_}],change:[{type:__}],toggleChange:[{type:__}],_inputElement:[{type:Fr,args:["input"]}]},("undefined"==typeof ngDevMode||ngDevMode)&&db(qyt,[{type:h_,args:[{selector:"mat-slide-toggle",exportAs:"matSlideToggle",host:{class:"mat-slide-toggle","[id]":"id","[attr.tabindex]":"disabled ? null : -1","[attr.aria-label]":"null","[attr.aria-labelledby]":"null","[class.mat-checked]":"checked","[class.mat-disabled]":"disabled","[class.mat-slide-toggle-label-before]":'labelPosition == "before"',"[class._mat-animation-noopable]":'_animationMode === "NoopAnimations"'},template:'<label [attr.for]="inputId" class="mat-slide-toggle-label" #label>\n  <div #toggleBar class="mat-slide-toggle-bar"\n       [class.mat-slide-toggle-bar-no-side-margin]="!labelContent.textContent || !labelContent.textContent.trim()">\n\n    <input #input class="mat-slide-toggle-input cdk-visually-hidden" type="checkbox"\n           role="switch"\n           [id]="inputId"\n           [required]="required"\n           [tabIndex]="tabIndex"\n           [checked]="checked"\n           [disabled]="disabled"\n           [attr.name]="name"\n           [attr.aria-checked]="checked.toString()"\n           [attr.aria-label]="ariaLabel"\n           [attr.aria-labelledby]="ariaLabelledby"\n           (change)="_onChangeEvent($event)"\n           (click)="_onInputClick($event)">\n\n    <div class="mat-slide-toggle-thumb-container" #thumbContainer>\n      <div class="mat-slide-toggle-thumb"></div>\n      <div class="mat-slide-toggle-ripple mat-focus-indicator" mat-ripple\n           [matRippleTrigger]="label"\n           [matRippleDisabled]="disableRipple || disabled"\n           [matRippleCentered]="true"\n           [matRippleRadius]="20"\n           [matRippleAnimation]="{enterDuration: 150}">\n\n        <div class="mat-ripple-element mat-slide-toggle-persistent-ripple"></div>\n      </div>\n    </div>\n\n  </div>\n\n  <span class="mat-slide-toggle-content" #labelContent (cdkObserveContent)="_onLabelTextChange()">\n    \x3c!-- Add an invisible span so JAWS can read the label --\x3e\n    <span style="display:none">&nbsp;</span>\n    <ng-content></ng-content>\n  </span>\n</label>\n',providers:[Wyt],inputs:["disabled","disableRipple","color","tabIndex"],encapsulation:Po.None,changeDetection:xo.OnPush,styles:[".mat-slide-toggle{display:inline-block;height:24px;max-width:100%;line-height:24px;white-space:nowrap;outline:none;-webkit-tap-highlight-color:transparent}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(16px, 0, 0)}[dir=rtl] .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(-16px, 0, 0)}.mat-slide-toggle.mat-disabled{opacity:.38}.mat-slide-toggle.mat-disabled .mat-slide-toggle-label,.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb-container{cursor:default}.mat-slide-toggle-label{display:flex;flex:1;flex-direction:row;align-items:center;height:inherit;cursor:pointer}.mat-slide-toggle-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-slide-toggle-label-before .mat-slide-toggle-label{order:1}.mat-slide-toggle-label-before .mat-slide-toggle-bar{order:2}[dir=rtl] .mat-slide-toggle-label-before .mat-slide-toggle-bar,.mat-slide-toggle-bar{margin-right:8px;margin-left:0}[dir=rtl] .mat-slide-toggle-bar,.mat-slide-toggle-label-before .mat-slide-toggle-bar{margin-left:8px;margin-right:0}.mat-slide-toggle-bar-no-side-margin{margin-left:0;margin-right:0}.mat-slide-toggle-thumb-container{position:absolute;z-index:1;width:20px;height:20px;top:-3px;left:0;transform:translate3d(0, 0, 0);transition:all 80ms linear;transition-property:transform}._mat-animation-noopable .mat-slide-toggle-thumb-container{transition:none}[dir=rtl] .mat-slide-toggle-thumb-container{left:auto;right:0}.mat-slide-toggle-thumb{height:20px;width:20px;border-radius:50%}.mat-slide-toggle-bar{position:relative;width:36px;height:14px;flex-shrink:0;border-radius:8px}.mat-slide-toggle-input{bottom:0;left:10px}[dir=rtl] .mat-slide-toggle-input{left:auto;right:10px}.mat-slide-toggle-bar,.mat-slide-toggle-thumb{transition:all 80ms linear;transition-property:background-color;transition-delay:50ms}._mat-animation-noopable .mat-slide-toggle-bar,._mat-animation-noopable .mat-slide-toggle-thumb{transition:none}.mat-slide-toggle .mat-slide-toggle-ripple{position:absolute;top:calc(50% - 20px);left:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-slide-toggle .mat-slide-toggle-ripple .mat-ripple-element:not(.mat-slide-toggle-persistent-ripple){opacity:.12}.mat-slide-toggle-persistent-ripple{width:100%;height:100%;transform:none}.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:.04}.mat-slide-toggle:not(.mat-disabled).cdk-keyboard-focused .mat-slide-toggle-persistent-ripple{opacity:.12}.mat-slide-toggle-persistent-ripple,.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:0}@media(hover: none){.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{display:none}}.cdk-high-contrast-active .mat-slide-toggle-thumb,.cdk-high-contrast-active .mat-slide-toggle-bar{border:1px solid}.cdk-high-contrast-active .mat-slide-toggle.cdk-keyboard-focused .mat-slide-toggle-bar{outline:2px dotted;outline-offset:5px}\n"]}]}],(function(){return[{type:ch},{type:pz},{type:Hh},{type:String,decorators:[{type:Rr,args:["tabindex"]}]},{type:void 0,decorators:[{type:ys,args:[jyt]}]},{type:String,decorators:[{type:_s},{type:ys,args:[Nw]}]}]}),{name:[{type:y_}],id:[{type:y_}],labelPosition:[{type:y_}],ariaLabel:[{type:y_,args:["aria-label"]}],ariaLabelledby:[{type:y_,args:["aria-labelledby"]}],change:[{type:__}],toggleChange:[{type:__}],required:[{type:y_}],checked:[{type:y_}],_thumbEl:[{type:Fr,args:["thumbContainer"]}],_thumbBarEl:[{type:Fr,args:["toggleBar"]}],_inputElement:[{type:Fr,args:["input"]}]});
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
const Zyt={provide:EV,useExisting:In((()=>Xyt)),multi:!0};class Xyt extends kU{}Xyt.ɵfac=function t(e){return Kyt(e||Xyt)},Xyt.ɵdir=Jo({type:Xyt,selectors:[["mat-slide-toggle","required","","formControlName",""],["mat-slide-toggle","required","","formControl",""],["mat-slide-toggle","required","","ngModel",""]],features:[ih([Zyt]),gm]});const Kyt=vr(Xyt);("undefined"==typeof ngDevMode||ngDevMode)&&db(Xyt,[{type:g_,args:[{selector:"mat-slide-toggle[required][formControlName],\n             mat-slide-toggle[required][formControl], mat-slide-toggle[required][ngModel]",providers:[Zyt]}]}],null,null);
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
class Jyt{}Jyt.ɵfac=function t(e){return new(e||Jyt)},Jyt.ɵmod=Zo({type:Jyt}),Jyt.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Jyt,{declarations:[Xyt],exports:[Xyt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Jyt,[{type:k_,args:[{exports:[Xyt],declarations:[Xyt]}]}],null,null);class Qyt{}function $yt(t,e){1&t&&wu(0,"mat-icon",3)}Qyt.ɵfac=function t(e){return new(e||Qyt)},Qyt.ɵmod=Zo({type:Qyt}),Qyt.ɵinj=co({imports:[[Jyt,mH,Tz,DI],Jyt,Tz]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(Qyt,{declarations:function(){return[qyt]},imports:function(){return[Jyt,mH,Tz,DI]},exports:function(){return[Jyt,qyt,Tz]}}),("undefined"==typeof ngDevMode||ngDevMode)&&db(Qyt,[{type:k_,args:[{imports:[Jyt,mH,Tz,DI],exports:[Jyt,qyt,Tz],declarations:[qyt]}]}],null,null);class t_t{constructor(){this.onRegexFilterValueChange=new Ab}}t_t.ɵfac=function t(e){return new(e||t_t)},t_t.ɵcmp=Uo({type:t_t,selectors:[["npmi-annotations-search-component"]],hostVars:2,hostBindings:function t(e,n){2&e&&af("valid",n.isRegexFilterValid)},inputs:{regexFilterValue:"regexFilterValue",isRegexFilterValid:"isRegexFilterValid"},outputs:{onRegexFilterValueChange:"onRegexFilterValueChange"},decls:3,vars:2,consts:[["svgIcon","search_24px"],["autocomplete","off","placeholder","Filter Annotations",3,"value","input"],["svgIcon","error_24px","class","error-icon","matTooltip","Invalid regex filter. The result may be stale.",4,"ngIf"],["svgIcon","error_24px","matTooltip","Invalid regex filter. The result may be stale.",1,"error-icon"]],template:function t(e,n){1&e&&(wu(0,"mat-icon",0),Ou(1,"input",1),Nu("input",(function t(e){return n.onRegexFilterValueChange.emit(e.target.value)})),Pu(),Wm(2,$yt,1,0,"mat-icon",2)),2&e&&(Jc(1),vu("value",n.regexFilterValue),Jc(1),vu("ngIf",!n.isRegexFilterValid))},directives:[cG,av],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;position:relative}[_nghost-%COMP%]:not(.valid){color:#c62828}[_nghost-%COMP%]:not(.valid)   input[_ngcontent-%COMP%]{caret-color:currentColor}[_nghost-%COMP%]:not(.valid)   .error-icon[_ngcontent-%COMP%]{color:#c62828;position:absolute;right:0}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(t_t,[{type:h_,args:[{selector:"npmi-annotations-search-component",templateUrl:"./annotations_search_component.ng.html",styleUrls:["./annotations_search_component.css"],changeDetection:xo.OnPush}]}],null,{regexFilterValue:[{type:y_}],onRegexFilterValueChange:[{type:__}],isRegexFilterValid:[{type:C_,args:["class.valid"]},{type:y_}]});class e_t{constructor(t){this.store=t,this.annotationsFilter$=this.store.select(Jht),this.isAnnotationsFilterValid$=this.annotationsFilter$.pipe(ht((t=>{try{return new RegExp(t),!0}catch(t){return!1}})))}filterChange(t){this.store.dispatch(Mbt({regex:t}))}}function n_t(t,e){if(1&t){const t=Eu();ku(0),Ou(1,"button",5),Nu("click",(function e(){ra(t);const n=Lu();return n.onFlagAnnotations.emit(n.selectedAnnotations)})),wu(2,"mat-icon",6),Pu(),Ou(3,"button",7),Nu("click",(function e(){ra(t);const n=Lu();return n.onHideAnnotations.emit(n.selectedAnnotations)})),wu(4,"mat-icon",8),Pu(),Su()}if(2&t){const t=Lu();Jc(1),vu("disabled",0===t.selectedAnnotations.length),Jc(2),vu("disabled",0===t.selectedAnnotations.length)}}function o_t(t,e){if(1&t){const t=Eu();ku(0),Ou(1,"mat-slide-toggle",9),Nu("change",(function e(){return ra(t),Lu().onToggleShowCounts.emit()})),Mf(2," Sample Count "),Pu(),Ou(3,"mat-slide-toggle",10),Nu("change",(function e(){return ra(t),Lu().onToggleShowHidden.emit()})),Mf(4," Show Hidden "),Pu(),wu(5,"npmi-annotations-search"),Su()}if(2&t){const t=Lu();Jc(1),vu("checked",t.showCounts),Jc(2),vu("checked",t.showHidden)}}e_t.ɵfac=function t(e){return new(e||e_t)(Mu(Ek))},e_t.ɵcmp=Uo({type:e_t,selectors:[["npmi-annotations-search"]],decls:3,vars:6,consts:[[3,"regexFilterValue","isRegexFilterValid","onRegexFilterValueChange"]],template:function t(e,n){1&e&&(Ou(0,"npmi-annotations-search-component",0),Nu("onRegexFilterValueChange",(function t(e){return n.filterChange(e)})),Ob(1,"async"),Ob(2,"async"),Pu()),2&e&&vu("regexFilterValue",Pb(1,2,n.annotationsFilter$))("isRegexFilterValid",Pb(2,4,n.isAnnotationsFilterValid$))},directives:[t_t],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(e_t,[{type:h_,args:[{selector:"npmi-annotations-search",template:'\n    <npmi-annotations-search-component\n      [regexFilterValue]="annotationsFilter$ | async"\n      [isRegexFilterValid]="isAnnotationsFilterValid$ | async"\n      (onRegexFilterValueChange)="filterChange($event)"\n    ></npmi-annotations-search-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class i_t{constructor(){this.onFlagAnnotations=new Ab,this.onHideAnnotations=new Ab,this.onToggleExpanded=new Ab,this.onToggleShowCounts=new Ab,this.onToggleShowHidden=new Ab}}i_t.ɵfac=function t(e){return new(e||i_t)},i_t.ɵcmp=Uo({type:i_t,selectors:[["npmi-annotations-list-toolbar-component"]],inputs:{numAnnotations:"numAnnotations",expanded:"expanded",selectedAnnotations:"selectedAnnotations",annotationsExpanded:"annotationsExpanded",showCounts:"showCounts",showHidden:"showHidden"},outputs:{onFlagAnnotations:"onFlagAnnotations",onHideAnnotations:"onHideAnnotations",onToggleExpanded:"onToggleExpanded",onToggleShowCounts:"onToggleShowCounts",onToggleShowHidden:"onToggleShowHidden"},decls:7,vars:4,consts:function(){let t,e,n;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Hides/Shows the Annotations List"):$localize`:Label for a button that hides/shows the annotations list.␟b3603ba33e5308dd8c5e805e508b2f7233df89d4␟7336374413056342492:Hides/Shows the Annotations List`,e="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Flag Selected Annotations"):$localize`:Label for a button that flags selected annotations.␟5692ad8831038a90c5863a1e9adf9748cac3cad8␟2244099891313336595:Flag Selected Annotations`,n="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Hide Selected Annotations"):$localize`:Label for a button that hides selected annotations.␟0342cdb3358fa8e3fa27220a8258a7287430b70f␟5462832391092087485:Hide Selected Annotations`,[[1,"annotations-title-container"],[1,"annotations-title"],[4,"ngIf"],["mat-icon-button","","aria-label",t,1,"expand-button",3,"click"],[3,"svgIcon"],["mat-icon-button","","aria-label",e,"title","Flagging annotations adds them to your investigation results, which can later be exported.",3,"disabled","click"],["svgIcon","flag_24px"],["mat-icon-button","","aria-label",n,"title","Removing non-critical annotations unclutters the view. Removed annotations are removed from all visualizations.",3,"disabled","click"],["svgIcon","visibility_off_24px"],["title","Hides and shows the sample count where applicable (how many samples belong to a category).",1,"show-toggle",3,"checked","change"],["title","Hides and shows hidden annotations in all visualizations.",1,"show-toggle",3,"checked","change"]]},template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"h3",1),Mf(2),Pu(),Wm(3,n_t,5,2,"ng-container",2),Pu(),Wm(4,o_t,6,2,"ng-container",2),Ou(5,"button",3),Nu("click",(function t(){return n.onToggleExpanded.emit()})),wu(6,"mat-icon",4),Pu()),2&e&&(Jc(2),xf("Annotations (",n.numAnnotations,")"),Jc(1),vu("ngIf",n.expanded),Jc(1),vu("ngIf",n.expanded),Jc(2),vu("svgIcon",n.expanded?"expand_less_24px":"expand_more_24px"))},directives:[av,NH,cG,qyt,e_t],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{align-items:center;box-sizing:border-box;display:flex;flex-direction:row;padding:0 16px;width:100%}.annotations-title[_ngcontent-%COMP%]{display:inline;font-size:.9em;font-weight:500;padding-right:10px}.annotations-title-container[_ngcontent-%COMP%]{align-items:center;display:flex;flex-wrap:nowrap;flex:1 1;height:42px}.show-toggle[_ngcontent-%COMP%]{font-size:.9em;margin-right:.8em}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(i_t,[{type:h_,args:[{selector:"npmi-annotations-list-toolbar-component",templateUrl:"./annotations_list_toolbar_component.ng.html",styleUrls:["./annotations_list_toolbar_component.css"],changeDetection:xo.OnPush}]}],null,{numAnnotations:[{type:y_}],expanded:[{type:y_}],selectedAnnotations:[{type:y_}],annotationsExpanded:[{type:y_}],showCounts:[{type:y_}],showHidden:[{type:y_}],onFlagAnnotations:[{type:__}],onHideAnnotations:[{type:__}],onToggleExpanded:[{type:__}],onToggleShowCounts:[{type:__}],onToggleShowHidden:[{type:__}]});class a_t{constructor(t){this.store=t,this.selectedAnnotations$=this.store.select(Zht),this.annotationsExpanded$=this.store.select(obt),this.showCounts$=this.store.select(abt),this.showHidden$=this.store.select(rbt),this.annotationsFilter$=this.store.select(Jht),this.isAnnotationsFilterValid$=this.annotationsFilter$.pipe(ht((t=>{try{return Boolean(new RegExp(t))}catch(t){return!1}})))}filterChange(t){this.store.dispatch(Mbt({regex:t}))}flagAnnotations(t){this.store.dispatch(_bt({annotations:t}))}hideAnnotations(t){this.store.dispatch(Cbt({annotations:t}))}toggleExpanded(){this.store.dispatch(Dbt())}toggleShowCounts(){this.store.dispatch(Abt())}toggleShowHidden(){this.store.dispatch(Rbt())}}a_t.ɵfac=function t(e){return new(e||a_t)(Mu(Ek))},a_t.ɵcmp=Uo({type:a_t,selectors:[["npmi-annotations-list-toolbar"]],inputs:{numAnnotations:"numAnnotations",expanded:"expanded"},decls:5,vars:14,consts:[[3,"numAnnotations","expanded","selectedAnnotations","annotationsExpanded","showCounts","showHidden","onFlagAnnotations","onHideAnnotations","onToggleExpanded","onToggleShowCounts","onToggleShowHidden"]],template:function t(e,n){1&e&&(Ou(0,"npmi-annotations-list-toolbar-component",0),Nu("onFlagAnnotations",(function t(e){return n.flagAnnotations(e)}))("onHideAnnotations",(function t(e){return n.hideAnnotations(e)}))("onToggleExpanded",(function t(){return n.toggleExpanded()}))("onToggleShowCounts",(function t(){return n.toggleShowCounts()}))("onToggleShowHidden",(function t(){return n.toggleShowHidden()})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Pu()),2&e&&vu("numAnnotations",n.numAnnotations)("expanded",n.expanded)("selectedAnnotations",Pb(1,6,n.selectedAnnotations$))("annotationsExpanded",Pb(2,8,n.annotationsExpanded$))("showCounts",Pb(3,10,n.showCounts$))("showHidden",Pb(4,12,n.showHidden$))},directives:[i_t],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(a_t,[{type:h_,args:[{selector:"npmi-annotations-list-toolbar",template:'\n    <npmi-annotations-list-toolbar-component\n      [numAnnotations]="numAnnotations"\n      [expanded]="expanded"\n      [selectedAnnotations]="selectedAnnotations$ | async"\n      [annotationsExpanded]="annotationsExpanded$ | async"\n      [showCounts]="showCounts$ | async"\n      [showHidden]="showHidden$ | async"\n      (onFlagAnnotations)="flagAnnotations($event)"\n      (onHideAnnotations)="hideAnnotations($event)"\n      (onToggleExpanded)="toggleExpanded()"\n      (onToggleShowCounts)="toggleShowCounts()"\n      (onToggleShowHidden)="toggleShowHidden()"\n    ></npmi-annotations-list-toolbar-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{numAnnotations:[{type:y_}],expanded:[{type:y_}]});const r_t=["glyph"];class s_t{ngAfterViewInit(){this.svg=r6(this.glyphSVG.nativeElement),this.mainContainer=this.svg.append("g"),this.draw()}draw(){"circle"==this.shape?this.mainContainer.append("circle").attr("fill",this.color).attr("stroke","black").attr("cx",5).attr("cy",5).attr("r",5):"bar"==this.shape?this.mainContainer.append("rect").attr("fill",this.color).attr("x",0).attr("y",0).attr("width",10).attr("height",10):"runIndicator"==this.shape&&this.mainContainer.append("g").append("path").attr("fill",this.color).attr("stroke","black").attr("d","M 2 0 L 10 0 L 7 5 L 10 10 L 2 10 Z")}}s_t.ɵfac=function t(e){return new(e||s_t)},s_t.ɵcmp=Uo({type:s_t,selectors:[["npmi-legend-element"]],viewQuery:function t(e,n){if(1&e&&Wb(r_t,3,ch),2&e){let t;Ub(t=Yb())&&(n.glyphSVG=t.first)}},inputs:{text:"text",color:"color",shape:"shape"},decls:4,vars:1,consts:[[1,"glyph"],["glyph",""],[1,"legend-element-title"]],template:function t(e,n){1&e&&(Ha(),wu(0,"svg",0,1),Fa(),Ou(2,"div",2),Mf(3),Pu()),2&e&&(Jc(3),vf(n.text))},styles:["[_nghost-%COMP%]{align-items:center;display:flex;padding-right:10px}.legend-element-title[_ngcontent-%COMP%]{font-size:.8em;padding-left:5px}.glyph[_ngcontent-%COMP%]{width:10px;height:10px}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(s_t,[{type:h_,args:[{selector:"npmi-legend-element",templateUrl:"./legend_element_component.ng.html",styleUrls:["./legend_element_component.css"],changeDetection:xo.OnPush}]}],null,{text:[{type:y_}],color:[{type:y_}],shape:[{type:y_}],glyphSVG:[{type:Fr,args:["glyph",{static:!0,read:ch}]}]});class l_t{}function c_t(t,e){if(1&t&&wu(0,"mat-icon",8),2&t){const t=Lu(2);vu("svgIcon",t.sort.order===t.SortOrder.DESCENDING?"arrow_downward_24px":"arrow_upward_24px")("ngClass",t.sort.order===t.SortOrder.DESCENDING?"down-icon":"up-icon")}}function d_t(t,e){if(1&t){const t=Eu();Ou(0,"div",4),Ou(1,"div",5),Ou(2,"div",6),Nu("click",(function n(){ra(t);const o=e.$implicit;return Lu().onChangeSort.emit(o)})),Mf(3),Wm(4,c_t,1,2,"mat-icon",7),Pu(),Pu(),Pu()}if(2&t){const t=e.$implicit,n=Lu();Jc(3),xf(" ",n.stripMetric(t)," "),Jc(1),vu("ngIf",t===n.sort.metric)}}l_t.ɵfac=function t(e){return new(e||l_t)},l_t.ɵcmp=Uo({type:l_t,selectors:[["npmi-annotations-list-legend"]],decls:4,vars:0,consts:[["text","run indicator","color","rgb(0,0,0)","shape","runIndicator"],["text","positive correlation","color","rgb(109, 174, 213)","shape","bar"],["text","negative correlation","color","rgb(249, 105, 76)","shape","bar"],["text","sample count","color","rgb(151, 151, 151)","shape","circle"]],template:function t(e,n){1&e&&(wu(0,"npmi-legend-element",0),wu(1,"npmi-legend-element",1),wu(2,"npmi-legend-element",2),wu(3,"npmi-legend-element",3))},directives:[s_t],styles:["[_nghost-%COMP%]{display:flex;padding:0 16px}"]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(l_t,[{type:h_,args:[{selector:"npmi-annotations-list-legend",templateUrl:"./legend_component.ng.html",styleUrls:["./legend_component.css"]}]}],null,null);class p_t{constructor(){this.onChangeSort=new Ab,this.onAllAnnotationsToggled=new Ab,this.SortOrder=Vht}stripMetric(t){return Vbt(t)}}p_t.ɵfac=function t(e){return new(e||p_t)},p_t.ɵcmp=Uo({type:p_t,selectors:[["npmi-annotations-list-header-component"]],inputs:{numAnnotations:"numAnnotations",selectedAnnotations:"selectedAnnotations",activeMetrics:"activeMetrics",sort:"sort"},outputs:{onChangeSort:"onChangeSort",onAllAnnotationsToggled:"onAllAnnotationsToggled"},decls:4,vars:2,consts:[[1,"toggle-all-container"],[3,"checked","change"],[1,"annotations-header-containers"],["class","header-column",4,"ngFor","ngForOf"],[1,"header-column"],[1,"header-container"],["tabindex","0","role","button","title","Change the sort by clicking any of the metrics.",1,"header-clickable",3,"click"],["class","sort-icon",3,"svgIcon","ngClass",4,"ngIf"],[1,"sort-icon",3,"svgIcon","ngClass"]],template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"mat-checkbox",1),Nu("change",(function t(e){return n.onAllAnnotationsToggled.emit(e.checked)})),Pu(),Pu(),Ou(2,"div",2),Wm(3,d_t,5,2,"div",3),Pu()),2&e&&(Jc(1),vu("checked",n.selectedAnnotations.length===n.numAnnotations),Jc(2),vu("ngForOf",n.activeMetrics))},directives:[uY,ov,av,cG,tv],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{border-bottom:2px solid #ebebeb;display:flex;height:28px;align-items:flex-end;margin-top:8px}.annotations-header-containers[_ngcontent-%COMP%]{display:flex;font-size:.9em;font-weight:500;flex-grow:1}.header-column[_ngcontent-%COMP%]{flex:1 1}.header-container[_ngcontent-%COMP%]{display:inline-block}.header-clickable[_ngcontent-%COMP%]{cursor:pointer;display:flex;outline:none}.toggle-all-container[_ngcontent-%COMP%]{margin-left:10px;width:90px}.sort-icon[_ngcontent-%COMP%]{height:16px}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(p_t,[{type:h_,args:[{selector:"npmi-annotations-list-header-component",templateUrl:"./header_component.ng.html",styleUrls:["./header_component.css"],changeDetection:xo.OnPush}]}],null,{numAnnotations:[{type:y_}],selectedAnnotations:[{type:y_}],activeMetrics:[{type:y_}],sort:[{type:y_}],onChangeSort:[{type:__}],onAllAnnotationsToggled:[{type:__}]});class m_t{constructor(t){this.store=t,this.selectedAnnotations$=this.store.select(Zht),this.annotationSort$=this.store.select(ebt)}changeSort(t){this.store.dispatch(wbt({metric:t}))}allAnnotationsToggled(t){this.store.dispatch(bbt(t?{annotations:Object.keys(this.annotations)}:{annotations:[]}))}}m_t.ɵfac=function t(e){return new(e||m_t)(Mu(Ek))},m_t.ɵcmp=Uo({type:m_t,selectors:[["npmi-annotations-list-header"]],inputs:{numAnnotations:"numAnnotations",annotations:"annotations",activeMetrics:"activeMetrics"},decls:3,vars:8,consts:[[3,"numAnnotations","selectedAnnotations","sort","activeMetrics","onChangeSort","onAllAnnotationsToggled"]],template:function t(e,n){1&e&&(Ou(0,"npmi-annotations-list-header-component",0),Nu("onChangeSort",(function t(e){return n.changeSort(e)}))("onAllAnnotationsToggled",(function t(e){return n.allAnnotationsToggled(e)})),Ob(1,"async"),Ob(2,"async"),Pu()),2&e&&vu("numAnnotations",n.numAnnotations)("selectedAnnotations",Pb(1,4,n.selectedAnnotations$))("sort",Pb(2,6,n.annotationSort$))("activeMetrics",n.activeMetrics)},directives:[p_t],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(m_t,[{type:h_,args:[{selector:"npmi-annotations-list-header",template:'\n    <npmi-annotations-list-header-component\n      [numAnnotations]="numAnnotations"\n      [selectedAnnotations]="selectedAnnotations$ | async"\n      [sort]="annotationSort$ | async"\n      [activeMetrics]="activeMetrics"\n      (onChangeSort)="changeSort($event)"\n      (onAllAnnotationsToggled)="allAnnotationsToggled($event)"\n    ></npmi-annotations-list-header-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{numAnnotations:[{type:y_}],annotations:[{type:y_}],activeMetrics:[{type:y_}]});const u_t=["chart"],f_t=["hintClip"];function g_t(t,e){1&t&&wu(0,"mat-icon",12)}function h_t(t,e){1&t&&wu(0,"mat-icon",13)}function b_t(t,e){if(1&t&&wu(0,"mat-icon",14),2&t){const t=Lu();vu("svgIcon",t.sort.order===t.SortOrder.SIMILAR?"arrow_downward_24px":"arrow_upward_24px")("ngClass",t.sort.order===t.SortOrder.SIMILAR?"down-icon":"up-icon")}}class y_t{constructor(){this.selected=!1,this.onShowSimilarAnnotations=new Ab,this.SortOrder=Vht,this.width=10,this.chartWidth=10,this.chartHeight=10,this.maxDotRadius=10,this.countDotOffset=70,this.countTextPadding=2,this.margin={top:0,right:0,bottom:0,left:100},this.strokeColor="#fff",this.textClass="default-text",this.runs=[]}onResize(t){this.redraw()}ngAfterViewInit(){this.svg=r6(this.annotationContainer.nativeElement).select("svg"),this.xScale=Qtt().padding(0),this.yScale=Qtt().padding(0),this.sizeScale=pet().domain([0,1]),this.countSizeScale=pet().range([2,this.maxDotRadius]),this.mainContainer=this.svg.append("g").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`),this.barsGroup=this.mainContainer.append("g"),this.countDotsGroup=this.mainContainer.append("g"),this.textsGroup=this.mainContainer.append("g"),this.countTextsGroup=this.mainContainer.append("g"),this.runHintGroup=this.svg.append("g"),this.redraw()}ngOnChanges(t){this.svg&&this.redraw()}redraw(){this.selected=this.selectedAnnotations.includes(this.annotation),this.updateDimensions(),this.setTextClass(),this.updateAxes(),this.draw()}updateDimensions(){const t=new Set;this.data.forEach((e=>{t.add(e.run)})),this.runs=[...t],this.svg.style("height",this.numActiveRuns*this.runHeight+"px"),this.chartHeight=this.runs.length*this.runHeight-this.margin.top-this.margin.bottom,this.width=this.annotationContainer.nativeElement.clientWidth||10,this.chartWidth=this.width-this.margin.left-this.margin.right}setTextClass(){this.textClass="default-text",this.flaggedAnnotations.includes(this.annotation)?this.textClass="flag-text":this.hiddenAnnotations.includes(this.annotation)&&(this.textClass="hidden-text")}updateAxes(){this.xScale.rangeRound([0,this.chartWidth-this.chartWidth/this.activeMetrics.length]).domain(this.activeMetrics.map((t=>Vbt(t)))),this.yScale.rangeRound([0,this.chartHeight-this.runHeight]).domain(this.runs),this.sizeScale.range([0,this.chartWidth/this.activeMetrics.length]),this.countSizeScale.domain([0,this.maxCount])}draw(){this.drawRunIndicators(),this.drawRunHintTexts(),this.drawBars(),this.drawTexts(),this.showCounts?(this.drawCountDots(),this.drawCountTexts()):(this.countDotsGroup.selectAll(".count-dot").remove(),this.countTextsGroup.selectAll(".count-background-text").remove(),this.countTextsGroup.selectAll(".count-text").remove())}drawRunIndicators(){r6(this.clipPathElement.nativeElement).select("rect").attr("width",this.margin.left-30).attr("height",this.chartHeight);const t=this.runHintGroup.selectAll(".hint").data(this.runs),e=t.enter().append("g").attr("class","hint");e.append("path").attr("d","M 0 0 L 15 0 L 10 10 L 15 20 L 0 20 Z"),e.merge(t).attr("transform",function(t){return`translate(10, ${this.yScale(t)+5})`}.bind(this)).attr("fill",function(t){return this.colorScale(t)}.bind(this)),t.exit().remove()}drawRunHintTexts(){const t=this.runHintGroup.selectAll(".hint-text").data(this.runs);t.enter().append("text").attr("x",25).attr("font-size","10px").attr("alignment-baseline","middle").attr("clip-path","url(#hint-clip)").merge(t).attr("y",function(t){return this.yScale(t)+15}.bind(this)).attr("class",`hint-text ${this.textClass}`).text((t=>{var e;return(null===(e=this.runIdToRuns.get(t))||void 0===e?void 0:e.name)||""})),t.exit().remove()}drawBars(){const t=this.barsGroup.selectAll(".bar").data(this.data);t.enter().append("rect").attr("class","bar").attr("height",20).merge(t).attr("fill",(t=>null===t.nPMIValue?"":t.nPMIValue>=0?xot(t.nPMIValue):Pot(-1*t.nPMIValue))).attr("x",function(t){return this.xScale(t.metric)}.bind(this)).attr("y",function(t){return this.yScale(t.run)+5}.bind(this)).attr("width",function(t){return null===t.nPMIValue?0:this.sizeScale(Math.abs(t.nPMIValue))}.bind(this)),t.exit().remove()}drawCountDots(){const t=this.countDotsGroup.selectAll(".count-dot").data(this.data);t.enter().append("circle").attr("class","count-dot").attr("stroke","black").merge(t).attr("fill",function(t){return null===t.countValue?"":Oot(t.countValue/this.maxCount)}.bind(this)).attr("cx",function(t){return this.xScale(t.metric)+this.countDotOffset}.bind(this)).attr("cy",function(t){return this.yScale(t.run)+this.runHeight/2}.bind(this)).attr("r",function(t){return null===t.countValue?0:this.countSizeScale(t.countValue)}.bind(this)),t.exit().remove()}drawTexts(){const t=this.textsGroup.selectAll(".npmi-background-text").data(this.data);t.enter().append("text").attr("class","npmi-background-text").attr("stroke-width",3).attr("stroke-linejoin","round").attr("stroke",this.strokeColor).attr("font-size","13px").attr("alignment-baseline","middle").merge(t).attr("x",function(t){return this.xScale(t.metric)+5}.bind(this)).attr("y",function(t){return this.yScale(t.run)+this.runHeight/2}.bind(this)).text((t=>null===t.nPMIValue?"null":Math.round(1e3*(t.nPMIValue+Number.EPSILON))/1e3)),t.exit().remove();const e=this.textsGroup.selectAll(".npmi-text").data(this.data);e.enter().append("text").attr("class","npmi-text").attr("font-size","13px").attr("alignment-baseline","middle").merge(e).attr("x",function(t){return this.xScale(t.metric)+5}.bind(this)).attr("y",function(t){return this.yScale(t.run)+this.runHeight/2}.bind(this)).text((t=>null===t.nPMIValue?"null":Math.round(1e3*(t.nPMIValue+Number.EPSILON))/1e3)),e.exit().remove()}drawCountTexts(){const t=this.countTextsGroup.selectAll(".count-background-text").data(this.data);t.enter().append("text").attr("class","count-background-text").attr("stroke-width",3).attr("stroke-linejoin","round").attr("stroke",this.strokeColor).attr("font-size","10px").attr("alignment-baseline","middle").merge(t).attr("x",function(t){return this.xScale(t.metric)+this.countDotOffset+this.countTextPadding+this.maxDotRadius}.bind(this)).attr("y",function(t){return this.yScale(t.run)+this.runHeight/2}.bind(this)).text((t=>null===t.countValue?"":Intl.NumberFormat().format(t.countValue))),t.exit().remove();const e=this.countTextsGroup.selectAll(".count-text").data(this.data);e.enter().append("text").attr("class","count-text").attr("font-size","10px").attr("alignment-baseline","middle").merge(e).attr("x",function(t){return this.xScale(t.metric)+this.countDotOffset+this.countTextPadding+this.maxDotRadius}.bind(this)).attr("y",function(t){return this.yScale(t.run)+this.runHeight/2}.bind(this)).text((t=>null===t.countValue?"":Intl.NumberFormat().format(t.countValue))),e.exit().remove()}similaritySort(t){this.hasEmbedding&&(t.stopPropagation(),this.onShowSimilarAnnotations.emit())}}y_t.ɵfac=function t(e){return new(e||y_t)},y_t.ɵcmp=Uo({type:y_t,selectors:[["annotation-component"]],viewQuery:function t(e,n){if(1&e&&(Wb(u_t,3,ch),Wb(f_t,3,ch)),2&e){let t;Ub(t=Yb())&&(n.annotationContainer=t.first),Ub(t=Yb())&&(n.clipPathElement=t.first)}},hostVars:2,hostBindings:function t(e,n){1&e&&Nu("resize",(function t(){return n.onResize()}),!1,ql),2&e&&af("selected-row",n.selected)},inputs:{data:"data",maxCount:"maxCount",selectedAnnotations:"selectedAnnotations",flaggedAnnotations:"flaggedAnnotations",hiddenAnnotations:"hiddenAnnotations",activeMetrics:"activeMetrics",numActiveRuns:"numActiveRuns",showCounts:"showCounts",annotation:"annotation",runHeight:"runHeight",hasEmbedding:"hasEmbedding",sort:"sort",sidebarWidth:"sidebarWidth",colorScale:"colorScale",runIdToRuns:"runIdToRuns"},outputs:{onShowSimilarAnnotations:"onShowSimilarAnnotations"},features:[Si],decls:14,vars:10,consts:[[1,"annotation-title"],[1,"annotation-checkbox",3,"checked","click"],[1,"annotation-button",3,"ngClass","click"],["class","flagged-icon","svgIcon","flag_24px",4,"ngIf"],["class","hidden-icon","svgIcon","visibility_off_24px",4,"ngIf"],["class","annotation-icon",3,"svgIcon","ngClass",4,"ngIf"],[1,"chart-div"],["chart",""],[1,"chart-svg"],["id","hint-clip"],["hintClip",""],["x","0","y","0"],["svgIcon","flag_24px",1,"flagged-icon"],["svgIcon","visibility_off_24px",1,"hidden-icon"],[1,"annotation-icon",3,"svgIcon","ngClass"]],template:function t(e,n){1&e&&(Ou(0,"div",0),Ou(1,"mat-checkbox",1),Nu("click",(function t(e){return e.preventDefault()})),Pu(),Ou(2,"button",2),Nu("click",(function t(e){return n.similaritySort(e)})),Mf(3),Pu(),Wm(4,g_t,1,0,"mat-icon",3),Wm(5,h_t,1,0,"mat-icon",4),Wm(6,b_t,1,2,"mat-icon",5),Pu(),Ou(7,"div",6,7),Ha(),Ou(9,"svg",8),Ou(10,"defs"),Ou(11,"clipPath",9,10),wu(13,"rect",11),Pu(),Pu(),Pu(),Pu()),2&e&&(af("flagged-annotation",n.flaggedAnnotations.includes(n.annotation))("hidden-annotation",n.hiddenAnnotations.includes(n.annotation)&&!n.flaggedAnnotations.includes(n.annotation)),Jc(1),vu("checked",n.selectedAnnotations.includes(n.annotation)),Jc(1),vu("ngClass",n.hasEmbedding?"clickable-annotation":""),Jc(1),xf(" ",n.annotation," "),Jc(1),vu("ngIf",n.flaggedAnnotations.includes(n.annotation)),Jc(1),vu("ngIf",n.hiddenAnnotations.includes(n.annotation)),Jc(1),vu("ngIf",n.annotation===n.sort.metric))},directives:[uY,tv,av,cG],styles:['.mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small .mat-badge-content{font-size:9px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong,.mat-body-2{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button,.mat-raised-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button,.mat-fab,.mat-mini-fab{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-subtitle,.mat-card-content{font-size:14px}.mat-checkbox{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-trailing-icon.mat-icon,.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper{top:-0.84375em;padding-top:.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0 1em 0}.mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header,.mat-grid-tile-footer{font-size:14px}.mat-grid-tile-header .mat-line,.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2),.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-0.0625em}.mat-menu-item{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical,.mat-stepper-horizontal{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:normal}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node,.mat-nested-tree-node{font-weight:400;font-size:14px}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator{position:relative}.mat-mdc-focus-indicator{position:relative}:host{padding-top:5px}.annotation-title{align-items:center;display:flex;font-size:13px;height:20px;padding:0 10px;user-select:none}.selected-row{background-color:#e0e0e0;display:block}.flagged-annotation{color:#f57c00}.hidden-annotation{color:#757575}.annotation-checkbox{padding-right:5px}.flagged-icon{transform:scale(0.6)}.hidden-icon{transform:scale(0.6)}.annotation-icon{transform:scale(0.6)}.chart-div{border-bottom:1px solid #ebebeb}.chart-svg{width:100%;user-select:none}.default-text{fill:#000}.flag-text{fill:#f57c00}.hidden-text{fill:#757575}.clickable-annotation{cursor:pointer}button{all:unset}\n'],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(y_t,[{type:h_,args:[{selector:"annotation-component",templateUrl:"./annotation_component.ng.html",styleUrls:["./annotation_component.css"],changeDetection:xo.OnPush,encapsulation:Po.None}]}],null,{data:[{type:y_}],maxCount:[{type:y_}],selectedAnnotations:[{type:y_}],flaggedAnnotations:[{type:y_}],hiddenAnnotations:[{type:y_}],activeMetrics:[{type:y_}],numActiveRuns:[{type:y_}],showCounts:[{type:y_}],annotation:[{type:y_}],runHeight:[{type:y_}],hasEmbedding:[{type:y_}],sort:[{type:y_}],sidebarWidth:[{type:y_}],colorScale:[{type:y_}],runIdToRuns:[{type:y_}],annotationContainer:[{type:Fr,args:["chart",{static:!0,read:ch}]}],clipPathElement:[{type:Fr,args:["hintClip",{static:!0,read:ch}]}],selected:[{type:C_,args:["class.selected-row"]}],onResize:[{type:M_,args:["window:resize"]}],onShowSimilarAnnotations:[{type:__}]});class __t{constructor(t){this.store=t,this.sort$=this.store.select(ebt),this.flaggedAnnotations$=this.store.select(Xht),this.hiddenAnnotations$=this.store.select(Kht),this.selectedAnnotations$=this.store.select(Zht),this.showCounts$=this.store.select(abt),this.sidebarWidth$=this.store.select(lbt),this.runColorScale$=this.store.select(CN).pipe(ht((t=>e=>{if(!t.hasOwnProperty(e))throw new Error(`[Color scale] unknown runId: ${e}.`);return t[e]}))),this.runIdToRuns$=this.store.select(pN)}showSimilarAnnotations(){this.store.dispatch(kbt({annotation:this.annotation}))}}function C_t(t,e){if(1&t){const t=Eu();Ou(0,"npmi-annotation",5),Nu("click",(function n(o){ra(t);const i=e.$implicit;return Lu(2).rowClicked(o,i)})),Pu()}if(2&t){const t=e.$implicit,n=Lu(2);vu("data",n.annotations[t])("activeMetrics",n.activeMetrics)("numActiveRuns",n.numActiveRuns)("maxCount",n.maxCount)("annotation",t)("runHeight",n.runHeight)("hasEmbedding",n.embeddingData&&void 0!==n.embeddingData[t])}}function M_t(t,e){if(1&t&&(ku(0),wu(1,"npmi-annotations-list-legend"),wu(2,"npmi-annotations-list-header",2),Ou(3,"cdk-virtual-scroll-viewport",3),Wm(4,C_t,1,7,"npmi-annotation",4),Pu(),Su()),2&t){const t=Lu();Jc(2),vu("annotations",t.annotations)("numAnnotations",t.numAnnotations)("activeMetrics",t.activeMetrics),Jc(1),Uu("itemSize",t.numActiveRuns*t.runHeight+25),Jc(1),vu("cdkVirtualForOf",t.sortedAnnotations)}}__t.ɵfac=function t(e){return new(e||__t)(Mu(Ek))},__t.ɵcmp=Uo({type:__t,selectors:[["npmi-annotation"]],inputs:{data:"data",maxCount:"maxCount",activeMetrics:"activeMetrics",numActiveRuns:"numActiveRuns",annotation:"annotation",runHeight:"runHeight",hasEmbedding:"hasEmbedding"},decls:9,vars:31,consts:[[3,"data","maxCount","activeMetrics","numActiveRuns","annotation","runHeight","hasEmbedding","sort","selectedAnnotations","flaggedAnnotations","hiddenAnnotations","showCounts","sidebarWidth","colorScale","runIdToRuns","onShowSimilarAnnotations"]],template:function t(e,n){1&e&&(Ou(0,"annotation-component",0),Nu("onShowSimilarAnnotations",(function t(){return n.showSimilarAnnotations()})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Ob(7,"async"),Ob(8,"async"),Pu()),2&e&&vu("data",n.data)("maxCount",n.maxCount)("activeMetrics",n.activeMetrics)("numActiveRuns",n.numActiveRuns)("annotation",n.annotation)("runHeight",n.runHeight)("hasEmbedding",n.hasEmbedding)("sort",Pb(1,15,n.sort$))("selectedAnnotations",Pb(2,17,n.selectedAnnotations$))("flaggedAnnotations",Pb(3,19,n.flaggedAnnotations$))("hiddenAnnotations",Pb(4,21,n.hiddenAnnotations$))("showCounts",Pb(5,23,n.showCounts$))("sidebarWidth",Pb(6,25,n.sidebarWidth$))("colorScale",Pb(7,27,n.runColorScale$))("runIdToRuns",Pb(8,29,n.runIdToRuns$))},directives:[y_t],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(__t,[{type:h_,args:[{selector:"npmi-annotation",template:'\n    <annotation-component\n      [data]="data"\n      [maxCount]="maxCount"\n      [activeMetrics]="activeMetrics"\n      [numActiveRuns]="numActiveRuns"\n      [annotation]="annotation"\n      [runHeight]="runHeight"\n      [hasEmbedding]="hasEmbedding"\n      [sort]="sort$ | async"\n      [selectedAnnotations]="selectedAnnotations$ | async"\n      [flaggedAnnotations]="flaggedAnnotations$ | async"\n      [hiddenAnnotations]="hiddenAnnotations$ | async"\n      [showCounts]="showCounts$ | async"\n      [sidebarWidth]="sidebarWidth$ | async"\n      [colorScale]="runColorScale$ | async"\n      [runIdToRuns]="runIdToRuns$ | async"\n      (onShowSimilarAnnotations)="showSimilarAnnotations()"\n    ></annotation-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{data:[{type:y_}],maxCount:[{type:y_}],activeMetrics:[{type:y_}],numActiveRuns:[{type:y_}],annotation:[{type:y_}],runHeight:[{type:y_}],hasEmbedding:[{type:y_}]});class v_t{constructor(){this.onRowClick=new Ab,this.runHeight=30}rowClicked(t,e){if(t.shiftKey){let t=this.sortedAnnotations.indexOf(e);if(0===this.selectedAnnotations.length)this.onRowClick.emit(this.sortedAnnotations.slice(0,t+1));else{const e=this.sortedAnnotations.indexOf(this.selectedAnnotations[this.selectedAnnotations.length-1]);this.onRowClick.emit(e<t?this.sortedAnnotations.slice(e,t+1):this.sortedAnnotations.slice(t,e+1))}}else this.onRowClick.emit([e])}}v_t.ɵfac=function t(e){return new(e||v_t)},v_t.ɵcmp=Uo({type:v_t,selectors:[["annotations-list-component"]],inputs:{annotations:"annotations",embeddingData:"embeddingData",annotationsExpanded:"annotationsExpanded",numAnnotations:"numAnnotations",annotationSort:"annotationSort",activeMetrics:"activeMetrics",numActiveRuns:"numActiveRuns",sortedAnnotations:"sortedAnnotations",selectedAnnotations:"selectedAnnotations",maxCount:"maxCount"},outputs:{onRowClick:"onRowClick"},decls:2,vars:3,consts:[[3,"numAnnotations","expanded"],[4,"ngIf"],[3,"annotations","numAnnotations","activeMetrics"],["minBufferPx","300","maxBufferPx","600",1,"annotation-rows",3,"itemSize"],[3,"data","activeMetrics","numActiveRuns","maxCount","annotation","runHeight","hasEmbedding","click",4,"cdkVirtualFor","cdkVirtualForOf"],[3,"data","activeMetrics","numActiveRuns","maxCount","annotation","runHeight","hasEmbedding","click"]],template:function t(e,n){1&e&&(wu(0,"npmi-annotations-list-toolbar",0),Wm(1,M_t,5,5,"ng-container",1)),2&e&&(vu("numAnnotations",n.numAnnotations)("expanded",n.annotationsExpanded),Jc(1),vu("ngIf",n.annotationsExpanded))},directives:[a_t,av,l_t,m_t,tF,XH,nF,__t],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{background-color:#fff;border:1px solid #ebebeb;display:flex;flex-direction:column;height:calc(100% - 2px);width:calc(100% - 2px)}.annotation-rows[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1 1;overflow-y:auto}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(v_t,[{type:h_,args:[{selector:"annotations-list-component",templateUrl:"./annotations_list_component.ng.html",styleUrls:["./annotations_list_component.css"],changeDetection:xo.OnPush}]}],null,{annotations:[{type:y_}],embeddingData:[{type:y_}],annotationsExpanded:[{type:y_}],numAnnotations:[{type:y_}],annotationSort:[{type:y_}],activeMetrics:[{type:y_}],numActiveRuns:[{type:y_}],sortedAnnotations:[{type:y_}],selectedAnnotations:[{type:y_}],maxCount:[{type:y_}],onRowClick:[{type:__}]});class x_t{constructor(t){this.store=t,this.annotationsExpanded$=this.store.pipe(Rk(obt)),this.activeRuns$=this.store.pipe(Rk(vN)).pipe(ht((t=>t?Array.from(t.entries()).filter((t=>t[1])).map((t=>t[0])):[]))),this.embeddingData$=this.store.pipe(Rk(qht)),this.numActiveRuns$=this.activeRuns$.pipe(ht((t=>t.length))),this.activeMetrics$=Dt([this.store.select(Yht),this.activeRuns$,this.store.select(tbt)]).pipe(ht((([t,e,n])=>{let o=[];for(const n of e)t[n]&&(o=o.concat(t[n].filter((t=>Bbt(t)))));return o=[...new Set([...Object.keys(n),...o])],o}))),this.visibleAnnotations$=Dt([this.store.select(Ght),this.store.select(Kht),this.store.select(rbt)]).pipe(ht((([t,e,n])=>Dyt(t,e,n)))),this.filteredAnnotations$=Dt([this.visibleAnnotations$,this.store.select($ht),this.store.select(tbt),this.activeRuns$,this.activeMetrics$,this.store.select(Jht)]).pipe(ht((([t,e,n,o,i,a])=>(function r(t,e,n,o,i,a){const r={},s=new Set(e),l=new Set(i.map((t=>Vbt(t)))),c=new RegExp(a,"i");return Object.entries(t).forEach((t=>{if(!c.test(t[0]))return;let e=t[1];e=e.filter((t=>s.has(t.run)&&l.has(t.metric))),(function i(t,e,n){return t.every((t=>{if(t.kind===Lht.OPERATOR)return!0;const o=e[t.metric];return void 0===o||n.some((e=>e.metric===Vbt(t.metric)&&(null===e.nPMIValue?o.includeNaN:e.nPMIValue<=o.max&&e.nPMIValue>=o.min)))}))})(n,o,e)&&0!==e.length&&(r[t[0]]=e)})),r})(t,o,e,n,i,a)))).pipe(on()),this.numAnnotations$=this.filteredAnnotations$.pipe(ht((t=>Object.keys(t).length))),this.sortedAnnotations$=Dt([this.filteredAnnotations$,this.store.pipe(Rk(ebt)),this.embeddingData$]).pipe(ht((([t,e,n])=>(function o(t,e,n){const o=Object.keys(t),i=e.order===Vht.DISSIMILAR||e.order===Vht.SIMILAR;return""===e.metric||(void 0===n||void 0===n.points[e.metric])&&i?o:(function s(t,e,n){return t.sort(n?(t,n)=>e[t]-e[n]:(t,n)=>e[n]-e[t])})(o,i?(function a(t,e,n){const o={};let i=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;n.order===Vht.SIMILAR&&(i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY);for(const r of t)o[r]=r===n.metric?i:void 0===e.points[r]?a:e.points[r].vector?Hyt(e.points[n.metric].vector,e.points[r].vector,a):a;return o})(o,n,e):(function r(t,e,n){const o=Vbt(n.metric),i={};if(n.order===Vht.DESCENDING)for(const n of t)i[n]=Math.max(...e[n].filter((t=>t.metric===o)).map((t=>null===t.nPMIValue?-1/0:t.nPMIValue)));else for(const n of t)i[n]=Math.min(...e[n].filter((t=>t.metric===o)).map((t=>null===t.nPMIValue?1/0:t.nPMIValue)));return i})(o,t,e),e.order===Vht.ASCENDNG||e.order===Vht.SIMILAR)})(t,e,n)))),this.selectedAnnotations$=this.store.pipe(Rk(Zht)),this.maxCount$=this.filteredAnnotations$.pipe(ht((t=>{let e=0;return Object.values(t).forEach((t=>{t.forEach((t=>{t.countValue&&(e=Math.max(e,t.countValue))}))})),e})))}rowClicked(t){this.store.dispatch(hbt({annotations:t}))}}x_t.ɵfac=function t(e){return new(e||x_t)(Mu(Ek))},x_t.ɵcmp=Uo({type:x_t,selectors:[["npmi-annotations-list"]],decls:10,vars:27,consts:[[3,"annotations","embeddingData","annotationsExpanded","numAnnotations","activeMetrics","numActiveRuns","sortedAnnotations","selectedAnnotations","maxCount","onRowClick"]],template:function t(e,n){1&e&&(Ou(0,"annotations-list-component",0),Nu("onRowClick",(function t(e){return n.rowClicked(e)})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Ob(7,"async"),Ob(8,"async"),Ob(9,"async"),Pu()),2&e&&vu("annotations",Pb(1,9,n.filteredAnnotations$))("embeddingData",Pb(2,11,n.embeddingData$))("annotationsExpanded",Pb(3,13,n.annotationsExpanded$))("numAnnotations",Pb(4,15,n.numAnnotations$))("activeMetrics",Pb(5,17,n.activeMetrics$))("numActiveRuns",Pb(6,19,n.numActiveRuns$))("sortedAnnotations",Pb(7,21,n.sortedAnnotations$))("selectedAnnotations",Pb(8,23,n.selectedAnnotations$))("maxCount",Pb(9,25,n.maxCount$))},directives:[v_t],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(x_t,[{type:h_,args:[{selector:"npmi-annotations-list",template:'\n    <annotations-list-component\n      [annotations]="filteredAnnotations$ | async"\n      [embeddingData]="embeddingData$ | async"\n      [annotationsExpanded]="annotationsExpanded$ | async"\n      [numAnnotations]="numAnnotations$ | async"\n      [activeMetrics]="activeMetrics$ | async"\n      [numActiveRuns]="numActiveRuns$ | async"\n      [sortedAnnotations]="sortedAnnotations$ | async"\n      [selectedAnnotations]="selectedAnnotations$ | async"\n      [maxCount]="maxCount$ | async"\n      (onRowClick)="rowClicked($event)"\n    ></annotations-list-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);const O_t=["chart"];class P_t{constructor(){this.width=0,this.chartWidth=0,this.height=300,this.margin={top:20,right:40,bottom:20,left:40},this.chartHeight=this.height-this.margin.top-this.margin.bottom}onResize(t){this.redraw()}ngAfterViewInit(){this.svg=r6(this.svgElement.nativeElement),this.mainContainer=this.svg.append("g").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`),this.coordinatesGroup=this.mainContainer.append("g"),this.labelsGroup=this.mainContainer.append("g"),this.axisGroup=this.mainContainer.append("g"),this.xScale=Qtt().padding(.1),this.yScale=pet().range([this.chartHeight,0]),this.yAxis=U5(this.yScale),this.redraw()}ngOnChanges(t){this.svg&&this.redraw()}redraw(){this.updateDimensions(),this.updateAxes(),this.draw()}updateDimensions(){this.width=this.svgElement.nativeElement.clientWidth||10,this.chartWidth=this.width-this.margin.left-this.margin.right}updateAxes(){this.xScale.rangeRound([0,this.chartWidth]).domain(this.activeMetrics),this.yScale.domain([this.coordinateData.extremes.min,this.coordinateData.extremes.max])}draw(){this.drawAxes(),this.drawAxisLabels(),this.drawCoordinates(),this.drawLabels()}drawAxes(){const t=this.axisGroup.selectAll(".axis-y").data(this.activeMetrics);t.enter().append("g").attr("class","axis-y").merge(t).attr("transform",function(t){return`translate(${this.xScale(t)}, 0)`}.bind(this)).call(this.yAxis),t.exit().remove()}drawAxisLabels(){const t=this.axisGroup.selectAll(".axis-bg-text").data(this.activeMetrics);t.enter().append("text").attr("class","axis-bg-text").attr("font-size","13px").attr("stroke-width",2).attr("stroke-linejoin","round").attr("stroke","white").merge(t).text((t=>t)).attr("transform",function(t){return`translate(${this.xScale(t)-5}, ${this.yScale(this.coordinateData.extremes.min)}) rotate(-90)`}.bind(this)),t.exit().remove();const e=this.axisGroup.selectAll(".axis-text").data(this.activeMetrics);e.enter().append("text").attr("font-size","13px").attr("class","axis-text").merge(e).text((t=>t)).attr("transform",function(t){return`translate(${this.xScale(t)-5}, ${this.yScale(this.coordinateData.extremes.min)}) rotate(-90)`}.bind(this)),e.exit().remove()}drawCoordinates(){const t=this.coordinatesGroup.selectAll(".coord").data(this.coordinateData.coordinates);t.enter().append("path").attr("class","coord").attr("fill","none").merge(t).attr("d",this.path.bind(this)).attr("stroke",function(t){return this.colorScale(t.runId)}.bind(this)),t.exit().remove();const e=this.coordinatesGroup.selectAll(".hiddenCoord").data(this.coordinateData.coordinates);e.enter().append("path").attr("class","hiddenCoord").attr("stroke-width","10px").attr("fill","none").attr("stroke","rgba(0, 0, 0, 0.0)").on("mouseover",this.handleCoordinateMouseOver.bind(this)).on("mouseout",this.handleCoordinateMouseOut.bind(this)).merge(e).attr("d",this.path.bind(this)),e.exit().remove()}path(t){return t.values.sort(((t,e)=>this.activeMetrics.indexOf(t.metric)-this.activeMetrics.indexOf(e.metric))),Aot()(t.values.map(function(t){let e=this.yScale(t.nPMIValue);return[this.xScale(t.metric),e]}.bind(this)))}handleCoordinateMouseOver(t,e){this.labelsGroup.selectAll(".coordinate-label").filter((function(e){return!(e.annotation===t.annotation)})).style("opacity",.1),this.coordinatesGroup.selectAll(".coord").filter((function(e){return!(e.annotation===t.annotation)})).style("opacity",.1)}handleCoordinateMouseOut(){this.labelsGroup.selectAll(".coordinate-label").style("opacity",1),this.coordinatesGroup.selectAll(".coord").style("opacity",1)}drawLabels(){const t=30/this.xScale.step(),e=this.coordinateData.coordinates.length<30?this.coordinateData.coordinates:[],n=this.labelsGroup.selectAll(".coordinate-label").data(e);n.enter().append("text").attr("class","coordinate-label").attr("font-size","10px").merge(n).text((function(t){return t.annotation})).attr("x",this.xScale(this.activeMetrics[0])+30).attr("y",function(e){const n=this.yScale(e.values[0].nPMIValue?e.values[0].nPMIValue:0),o=this.yScale(e.values[1].nPMIValue?e.values[1].nPMIValue:0);return(1-t)*n+t*o}.bind(this)),n.exit().remove()}}P_t.ɵfac=function t(e){return new(e||P_t)},P_t.ɵcmp=Uo({type:P_t,selectors:[["parallel-coordinates-component"]],viewQuery:function t(e,n){if(1&e&&Wb(O_t,3,ch),2&e){let t;Ub(t=Yb())&&(n.svgElement=t.first)}},hostBindings:function t(e,n){1&e&&Nu("resize",(function t(e){return n.onResize(e)}),!1,ql)},inputs:{activeMetrics:"activeMetrics",coordinateData:"coordinateData",sidebarWidth:"sidebarWidth",colorScale:"colorScale"},features:[Si],decls:2,vars:0,consts:[[1,"pc-chart"],["chart",""]],template:function t(e,n){1&e&&(Ha(),wu(0,"svg",0,1))},styles:[".pc-chart[_ngcontent-%COMP%]{height:300px;width:100%}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(P_t,[{type:h_,args:[{selector:"parallel-coordinates-component",templateUrl:"./parallel_coordinates_component.ng.html",styleUrls:["./parallel_coordinates_component.css"],changeDetection:xo.OnPush}]}],null,{activeMetrics:[{type:y_}],coordinateData:[{type:y_}],sidebarWidth:[{type:y_}],colorScale:[{type:y_}],svgElement:[{type:Fr,args:["chart",{static:!0,read:ch}]}],onResize:[{type:M_,args:["window:resize",["$event"]]}]});class w_t{constructor(t){this.store=t,this.activeRuns$=this.store.pipe(Rk(vN)).pipe(ht((t=>t?Array.from(t.entries()).filter((t=>t[1])).map((t=>t[0])):[]))),this.activeMetrics$=Dt(this.store.select(Yht),this.activeRuns$,this.store.select(tbt)).pipe(ht((([t,e,n])=>{let o=[];for(const n of e)t[n]&&(o=o.concat(t[n].filter((t=>Bbt(t)))));return o=[...new Set([...Object.keys(n),...o])],o.map((t=>Vbt(t)))}))),this.coordinateData$=Dt([this.store.select(Ght),this.store.select(Zht),this.activeRuns$,this.activeMetrics$]).pipe(ht((([t,e,n,o])=>(function i(t,e,n,o){const i=[],a={max:-1,min:1},r=new Set(n),s=new Set(o);return 0===r.size||0===s.size||0===Object.keys(t).length?{coordinates:[],extremes:{min:-1,max:1}}:(e.forEach((e=>{const n={};t[e].forEach((t=>{r.has(t.run)&&s.has(t.metric)&&(n[t.run]?n[t.run].push(t):n[t.run]=[t],null!==t.nPMIValue?(a.max=Math.max(a.max,t.nPMIValue),a.min=Math.min(a.min,t.nPMIValue)):(a.max=Math.max(a.max,0),a.min=Math.min(a.min,0)))}));for(const t of Object.keys(n))i.push({annotation:e,runId:t,values:n[t]})})),a.max<a.min&&(a.max=1,a.min=-1),{coordinates:i,extremes:a})})(t,e,n,o)))),this.sidebarWidth$=this.store.select(lbt),this.runColorScale$=this.store.select(CN).pipe(ht((t=>e=>{if(!t.hasOwnProperty(e))throw new Error(`[Color scale] unknown runId: ${e}.`);return t[e]})))}}function k_t(t,e){1&t&&wu(0,"mat-icon",9)}function S_t(t,e){1&t&&wu(0,"mat-icon",10)}function D_t(t,e){1&t&&wu(0,"npmi-parallel-coordinates")}w_t.ɵfac=function t(e){return new(e||w_t)(Mu(Ek))},w_t.ɵcmp=Uo({type:w_t,selectors:[["npmi-parallel-coordinates"]],decls:5,vars:12,consts:[[3,"activeMetrics","coordinateData","sidebarWidth","colorScale"]],template:function t(e,n){1&e&&(wu(0,"parallel-coordinates-component",0),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async")),2&e&&vu("activeMetrics",Pb(1,4,n.activeMetrics$))("coordinateData",Pb(2,6,n.coordinateData$))("sidebarWidth",Pb(3,8,n.sidebarWidth$))("colorScale",Pb(4,10,n.runColorScale$))},directives:[P_t],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(w_t,[{type:h_,args:[{selector:"npmi-parallel-coordinates",template:'\n    <parallel-coordinates-component\n      [activeMetrics]="activeMetrics$ | async"\n      [coordinateData]="coordinateData$ | async"\n      [sidebarWidth]="sidebarWidth$ | async"\n      [colorScale]="runColorScale$ | async"\n    ></parallel-coordinates-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class E_t{constructor(){this.onClearSelectedAnnotations=new Ab,this.onToggleExpanded=new Ab}}E_t.ɵfac=function t(e){return new(e||E_t)},E_t.ɵcmp=Uo({type:E_t,selectors:[["selected-annotations-component"]],inputs:{pcExpanded:"pcExpanded",selectedAnnotations:"selectedAnnotations"},outputs:{onClearSelectedAnnotations:"onClearSelectedAnnotations",onToggleExpanded:"onToggleExpanded"},decls:11,vars:4,consts:function(){let t,e;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Clear Annotation Selection"):$localize`:Label for a button that clears the annotation selection.␟2b52289f2c4b7f5b182ed23c9154722ecd46a2d4␟2494660520341308830:Clear Annotation Selection`,e="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Expand/Hide Selected Annotations"):$localize`:Label for a button that expands or hides selected annotations.␟8f4ad305c19e3655f3189e3e264e83fb76f7bb95␟5670797784070952095:Expand/Hide Selected Annotations`,[[1,"pc-container"],[1,"pc-toolbar"],[1,"pc-title"],["mat-icon-button","","aria-label",t,"title","Deselects all selected annotations.",1,"clear-button",3,"disabled","click"],["svgIcon","clear_24px"],["mat-icon-button","","aria-label",e,1,"expand-button",3,"click"],["svgIcon","expand_less_24px","class","expand-less-icon",4,"ngIf","ngIfElse"],["notExpanded",""],[4,"ngIf"],["svgIcon","expand_less_24px",1,"expand-less-icon"],["svgIcon","expand_more_24px",1,"expand-icon"]]},template:function t(e,n){if(1&e&&(Ou(0,"div",0),Ou(1,"div",1),Ou(2,"h3",2),Mf(3,"Selected Annotations"),Pu(),Ou(4,"button",3),Nu("click",(function t(){return n.onClearSelectedAnnotations.emit()})),wu(5,"mat-icon",4),Pu(),Ou(6,"button",5),Nu("click",(function t(){return n.onToggleExpanded.emit()})),Wm(7,k_t,1,0,"mat-icon",6),Wm(8,S_t,1,0,"ng-template",null,7,Kb),Pu(),Pu(),Wm(10,D_t,1,0,"npmi-parallel-coordinates",8),Pu()),2&e){const t=Gm(9);Jc(4),vu("disabled",0===n.selectedAnnotations.length),Jc(3),vu("ngIf",n.pcExpanded)("ngIfElse",t),Jc(3),vu("ngIf",n.pcExpanded)}},directives:[NH,cG,av,w_t],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.pc-container[_ngcontent-%COMP%]{background-color:#fff;border:1px solid #ebebeb}.pc-toolbar[_ngcontent-%COMP%]{align-items:center;border-bottom:1px solid #ebebeb;display:flex;height:42px;padding:0 16px}.pc-title[_ngcontent-%COMP%]{font-size:14px;font-weight:500;display:inline;flex:1 1}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(E_t,[{type:h_,args:[{selector:"selected-annotations-component",templateUrl:"./selected_annotations_component.ng.html",styleUrls:["./selected_annotations_component.css"],changeDetection:xo.OnPush}]}],null,{pcExpanded:[{type:y_}],selectedAnnotations:[{type:y_}],onClearSelectedAnnotations:[{type:__}],onToggleExpanded:[{type:__}]});class A_t{constructor(t){this.store=t,this.pcExpanded$=this.store.pipe(Rk(nbt)),this.selectedAnnotations$=this.store.select(Zht)}clearSelectedAnnotations(){this.store.dispatch(ybt())}toggleExpanded(){this.store.dispatch(Sbt())}}function R_t(t,e){1&t&&(Ou(0,"div",6),Ou(1,"div",7),wu(2,"npmi-violin-filters",8),Ou(3,"div",9),wu(4,"runs-selector"),Pu(),Pu(),Pu()),2&t&&of("width",Lu().sidebarWidth,"px")}function T_t(t,e){if(1&t){const t=Eu();Ou(0,"div",10),Nu("mousedown",(function e(){return ra(t),Lu().resizeGrabbed.emit()})),Pu()}}function N_t(t,e){1&t&&(Ou(0,"div",11),wu(1,"npmi-annotations-list",12),wu(2,"npmi-selected-annotations"),Pu())}function I_t(t,e){1&t&&(Ou(0,"div",13),Mf(1,"You need to select at least one run."),Pu())}function z_t(t,e){if(1&t){const t=Eu();Ou(0,"div",14),Ou(1,"button",15),Nu("click",(function e(){return ra(t),Lu().toggleSidebarExpanded.emit()})),wu(2,"mat-icon",16),Pu(),Pu()}}A_t.ɵfac=function t(e){return new(e||A_t)(Mu(Ek))},A_t.ɵcmp=Uo({type:A_t,selectors:[["npmi-selected-annotations"]],decls:3,vars:6,consts:[[3,"pcExpanded","selectedAnnotations","onClearSelectedAnnotations","onToggleExpanded"]],template:function t(e,n){1&e&&(Ou(0,"selected-annotations-component",0),Nu("onClearSelectedAnnotations",(function t(){return n.clearSelectedAnnotations()}))("onToggleExpanded",(function t(){return n.toggleExpanded()})),Ob(1,"async"),Ob(2,"async"),Pu()),2&e&&vu("pcExpanded",Pb(1,2,n.pcExpanded$))("selectedAnnotations",Pb(2,4,n.selectedAnnotations$))},directives:[E_t],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(A_t,[{type:h_,args:[{selector:"npmi-selected-annotations",template:'\n    <selected-annotations-component\n      [pcExpanded]="pcExpanded$ | async"\n      [selectedAnnotations]="selectedAnnotations$ | async"\n      (onClearSelectedAnnotations)="clearSelectedAnnotations()"\n      (onToggleExpanded)="toggleExpanded()"\n    ></selected-annotations-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class H_t{constructor(){this.toggleSidebarExpanded=new Ab,this.resizeTriggered=new Ab,this.resizeGrabbed=new Ab,this.resizeReleased=new Ab}}H_t.ɵfac=function t(e){return new(e||H_t)},H_t.ɵcmp=Uo({type:H_t,selectors:[["main-component"]],inputs:{runActive:"runActive",sidebarExpanded:"sidebarExpanded",sidebarWidth:"sidebarWidth"},outputs:{toggleSidebarExpanded:"toggleSidebarExpanded",resizeTriggered:"resizeTriggered",resizeGrabbed:"resizeGrabbed",resizeReleased:"resizeReleased"},decls:8,vars:5,consts:function(){let t;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Toggle Sidebar"):$localize`:Label for a button that toggles the sidebar.␟f63b57932d179cca62ac9fcae63dd7f5e6fa389f␟4485009347444704878:Toggle Sidebar`,[[1,"content",3,"mouseup","mousemove"],["class","sidebar-container",3,"width",4,"ngIf"],["class","grabber",3,"mousedown",4,"ngIf"],["class","analysis-container",4,"ngIf","ngIfElse"],["noRun",""],["class","side-toggle",4,"ngIf"],[1,"sidebar-container"],[1,"sidebar-contents"],[1,"violin-filters"],[1,"run-selector"],[1,"grabber",3,"mousedown"],[1,"analysis-container"],[1,"annotations-list"],[1,"noRun"],[1,"side-toggle"],["mat-icon-button","","aria-label",t,3,"click"],["svgIcon","chevron_right_24px"]]},template:function t(e,n){if(1&e&&(wu(0,"npmi-data-selection"),Ou(1,"div",0),Nu("mouseup",(function t(){return n.resizeReleased.emit()}))("mousemove",(function t(e){return n.resizeTriggered.emit(e)})),Wm(2,R_t,5,2,"div",1),Wm(3,T_t,1,0,"div",2),Wm(4,N_t,3,0,"div",3),Wm(5,I_t,2,0,"ng-template",null,4,Kb),Pu(),Wm(7,z_t,3,0,"div",5)),2&e){const t=Gm(6);Jc(2),vu("ngIf",n.sidebarExpanded),Jc(1),vu("ngIf",n.sidebarExpanded),Jc(1),vu("ngIf",!0===n.runActive)("ngIfElse",t),Jc(3),vu("ngIf",!n.sidebarExpanded)}},directives:[Syt,av,zyt,A2,x_t,A_t,NH,cG],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.content[_ngcontent-%COMP%]{display:flex;flex:1;min-height:0px;width:100%}.sidebar-container[_ngcontent-%COMP%]{height:100%;overflow:hidden}.sidebar-contents[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column;min-width:150px}.analysis-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;flex:1 1}.run-selector[_ngcontent-%COMP%]{max-height:100%;width:100%}.violin-filters[_ngcontent-%COMP%]{min-height:0px;width:100%}.side-toggle[_ngcontent-%COMP%]{width:30px;height:30px;position:absolute;left:10px;bottom:10px;border:1px solid #ebebeb;border-radius:3px;display:flex;align-items:center;justify-content:center}.grabber[_ngcontent-%COMP%]{content:"";cursor:ew-resize;height:100%;width:3px;overflow:hidden;background-color:rgba(0,0,0,.12)}.annotations-list[_ngcontent-%COMP%]{width:100%;min-height:0px;flex:1 1}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(H_t,[{type:h_,args:[{selector:"main-component",templateUrl:"./main_component.ng.html",styleUrls:["./main_component.css"],changeDetection:xo.OnPush}]}],null,{runActive:[{type:y_}],sidebarExpanded:[{type:y_}],sidebarWidth:[{type:y_}],toggleSidebarExpanded:[{type:__}],resizeTriggered:[{type:__}],resizeGrabbed:[{type:__}],resizeReleased:[{type:__}]});class F_t{constructor(t){this.store=t,this.runActive$=this.store.pipe(Rk(vN)).pipe(ht((t=>!!t&&[...t.values()].includes(!0)))),this.sidebarExpanded$=this.store.pipe(Rk(ibt)),this.sidebarWidth$=this.store.pipe(Rk(lbt)),this.resizing=!1}onToggleSidebarExpanded(){this.store.dispatch(Ebt())}onResizeTriggered(t){this.resizing&&this.store.dispatch(Nbt({sidebarWidth:t.clientX}))}onResizeGrabbed(){this.resizing=!0}onResizeReleased(){this.resizing=!1}}function L_t(t,e){1&t&&(Ou(0,"div",6),Ou(1,"div",7),Ou(2,"div",8),wu(3,"runs-selector"),Pu(),Pu(),Pu()),2&t&&of("width",Lu().sidebarWidth,"px")}function B_t(t,e){if(1&t){const t=Eu();Ou(0,"div",9),Nu("mousedown",(function e(){return ra(t),Lu().resizeGrabbed.emit()})),Pu()}}function V_t(t,e){1&t&&(Ou(0,"div",10),wu(1,"npmi-annotations-list",11),wu(2,"npmi-selected-annotations"),Pu())}function j_t(t,e){1&t&&(Ou(0,"div",12),Mf(1,"You need to select at least one run."),Pu())}function U_t(t,e){if(1&t){const t=Eu();Ou(0,"div",13),Ou(1,"button",14),Nu("click",(function e(){return ra(t),Lu().toggleSidebarExpanded.emit()})),wu(2,"mat-icon",15),Pu(),Pu()}}F_t.ɵfac=function t(e){return new(e||F_t)(Mu(Ek))},F_t.ɵcmp=Uo({type:F_t,selectors:[["npmi-main"]],decls:4,vars:9,consts:[[3,"runActive","sidebarExpanded","sidebarWidth","toggleSidebarExpanded","resizeTriggered","resizeGrabbed","resizeReleased"]],template:function t(e,n){1&e&&(Ou(0,"main-component",0),Nu("toggleSidebarExpanded",(function t(){return n.onToggleSidebarExpanded()}))("resizeTriggered",(function t(e){return n.onResizeTriggered(e)}))("resizeGrabbed",(function t(){return n.onResizeGrabbed()}))("resizeReleased",(function t(){return n.onResizeReleased()})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("runActive",Pb(1,3,n.runActive$))("sidebarExpanded",Pb(2,5,n.sidebarExpanded$))("sidebarWidth",Pb(3,7,n.sidebarWidth$))},directives:[H_t],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(F_t,[{type:h_,args:[{selector:"npmi-main",template:'\n    <main-component\n      [runActive]="runActive$ | async"\n      [sidebarExpanded]="sidebarExpanded$ | async"\n      [sidebarWidth]="sidebarWidth$ | async"\n      (toggleSidebarExpanded)="onToggleSidebarExpanded()"\n      (resizeTriggered)="onResizeTriggered($event)"\n      (resizeGrabbed)="onResizeGrabbed()"\n      (resizeReleased)="onResizeReleased()"\n    ></main-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class W_t{constructor(){this.toggleSidebarExpanded=new Ab,this.resizeTriggered=new Ab,this.resizeGrabbed=new Ab,this.resizeReleased=new Ab}}W_t.ɵfac=function t(e){return new(e||W_t)},W_t.ɵcmp=Uo({type:W_t,selectors:[["embeddings-component"]],inputs:{runActive:"runActive",sidebarExpanded:"sidebarExpanded",sidebarWidth:"sidebarWidth"},outputs:{toggleSidebarExpanded:"toggleSidebarExpanded",resizeTriggered:"resizeTriggered",resizeGrabbed:"resizeGrabbed",resizeReleased:"resizeReleased"},decls:8,vars:5,consts:function(){let t;return t="undefined"!=typeof ngI18nClosureMode&&ngI18nClosureMode?goog.getMsg("Toggle Sidebar"):$localize`:Label for a button that toggles the sidebar.␟f63b57932d179cca62ac9fcae63dd7f5e6fa389f␟4485009347444704878:Toggle Sidebar`,[[1,"content",3,"mouseup","mousemove"],["class","sidebar-container",3,"width",4,"ngIf"],["class","grabber",3,"mousedown",4,"ngIf"],["class","analysis-container",4,"ngIf","ngIfElse"],["noRun",""],["class","side-toggle",4,"ngIf"],[1,"sidebar-container"],[1,"sidebar-contents"],[1,"run-selector"],[1,"grabber",3,"mousedown"],[1,"analysis-container"],[1,"annotations-list"],[1,"noRun"],[1,"side-toggle"],["mat-icon-button","","aria-label",t,3,"click"],["svgIcon","chevron_right_24px"]]},template:function t(e,n){if(1&e&&(wu(0,"npmi-data-selection"),Ou(1,"div",0),Nu("mouseup",(function t(){return n.resizeReleased.emit()}))("mousemove",(function t(e){return n.resizeTriggered.emit(e)})),Wm(2,L_t,4,2,"div",1),Wm(3,B_t,1,0,"div",2),Wm(4,V_t,3,0,"div",3),Wm(5,j_t,2,0,"ng-template",null,4,Kb),Pu(),Wm(7,U_t,3,0,"div",5)),2&e){const t=Gm(6);Jc(2),vu("ngIf",n.sidebarExpanded),Jc(1),vu("ngIf",n.sidebarExpanded),Jc(1),vu("ngIf",!0===n.runActive)("ngIfElse",t),Jc(3),vu("ngIf",!n.sidebarExpanded)}},directives:[Syt,av,A2,x_t,A_t,NH,cG],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.content[_ngcontent-%COMP%]{display:flex;flex:1;min-height:0px;width:100%}.sidebar-container[_ngcontent-%COMP%]{height:100%;overflow:hidden}.sidebar-contents[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column;min-width:150px}.analysis-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;flex:1 1}.run-selector[_ngcontent-%COMP%]{max-height:100%;width:100%}.side-toggle[_ngcontent-%COMP%]{width:30px;height:30px;position:absolute;left:10px;bottom:10px;border:1px solid #ebebeb;border-radius:3px;display:flex;align-items:center;justify-content:center}.grabber[_ngcontent-%COMP%]{content:"";cursor:ew-resize;height:100%;width:3px;overflow:hidden;background-color:rgba(0,0,0,.12)}.annotations-list[_ngcontent-%COMP%]{width:100%;min-height:0px;flex:1 1}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(W_t,[{type:h_,args:[{selector:"embeddings-component",templateUrl:"./embeddings_component.ng.html",styleUrls:["./embeddings_component.css"],changeDetection:xo.OnPush}]}],null,{runActive:[{type:y_}],sidebarExpanded:[{type:y_}],sidebarWidth:[{type:y_}],toggleSidebarExpanded:[{type:__}],resizeTriggered:[{type:__}],resizeGrabbed:[{type:__}],resizeReleased:[{type:__}]});class G_t{constructor(t){this.store=t,this.runActive$=this.store.pipe(Rk(vN)).pipe(ht((t=>!!t&&[...t.values()].includes(!0)))),this.sidebarExpanded$=this.store.pipe(Rk(pbt)),this.sidebarWidth$=this.store.pipe(Rk(dbt)),this.resizing=!1}onToggleSidebarExpanded(){this.store.dispatch(zbt())}onResizeTriggered(t){this.resizing&&this.store.dispatch(Ibt({sidebarWidth:t.clientX}))}onResizeGrabbed(){this.resizing=!0}onResizeReleased(){this.resizing=!1}}function Y_t(t,e){1&t&&wu(0,"npmi-inactive-view")}function q_t(t,e){1&t&&wu(0,"npmi-main")}function Z_t(t,e){1&t&&wu(0,"npmi-embeddings")}function X_t(t,e){if(1&t&&(Wm(0,q_t,1,0,"npmi-main",3),Wm(1,Z_t,1,0,"npmi-embeddings",3)),2&t){const t=Lu();vu("ngIf",t.activeView===t.ViewActive.DEFAULT),Jc(1),vu("ngIf",t.activeView===t.ViewActive.EMBEDDINGS)}}G_t.ɵfac=function t(e){return new(e||G_t)(Mu(Ek))},G_t.ɵcmp=Uo({type:G_t,selectors:[["npmi-embeddings"]],decls:4,vars:9,consts:[[3,"runActive","sidebarExpanded","sidebarWidth","toggleSidebarExpanded","resizeTriggered","resizeGrabbed","resizeReleased"]],template:function t(e,n){1&e&&(Ou(0,"embeddings-component",0),Nu("toggleSidebarExpanded",(function t(){return n.onToggleSidebarExpanded()}))("resizeTriggered",(function t(e){return n.onResizeTriggered(e)}))("resizeGrabbed",(function t(){return n.onResizeGrabbed()}))("resizeReleased",(function t(){return n.onResizeReleased()})),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Pu()),2&e&&vu("runActive",Pb(1,3,n.runActive$))("sidebarExpanded",Pb(2,5,n.sidebarExpanded$))("sidebarWidth",Pb(3,7,n.sidebarWidth$))},directives:[W_t],pipes:[Mv],encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(G_t,[{type:h_,args:[{selector:"npmi-embeddings",template:'\n    <embeddings-component\n      [runActive]="runActive$ | async"\n      [sidebarExpanded]="sidebarExpanded$ | async"\n      [sidebarWidth]="sidebarWidth$ | async"\n      (toggleSidebarExpanded)="onToggleSidebarExpanded()"\n      (resizeTriggered)="onResizeTriggered($event)"\n      (resizeGrabbed)="onResizeGrabbed()"\n      (resizeReleased)="onResizeReleased()"\n    ></embeddings-component>\n  ',changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),null);class K_t{constructor(){this.ViewActive=Bht}}K_t.ɵfac=function t(e){return new(e||K_t)},K_t.ɵcmp=Uo({type:K_t,selectors:[["npmi-component"]],inputs:{runs:"runs",activeView:"activeView"},decls:4,vars:2,consts:[[1,"npmi-container"],[4,"ngIf","ngIfElse"],["dataAvailable",""],[4,"ngIf"]],template:function t(e,n){if(1&e&&(Ou(0,"div",0),Wm(1,Y_t,1,0,"npmi-inactive-view",1),Wm(2,X_t,2,2,"ng-template",null,2,Kb),Pu()),2&e){const t=Gm(3);Jc(1),vu("ngIf",0===n.runs.size)("ngIfElse",t)}},directives:[av,jht,F_t,G_t],styles:["[_nghost-%COMP%]{display:flex;height:100%}.npmi-container[_ngcontent-%COMP%]{flex:1 1}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(K_t,[{type:h_,args:[{selector:"npmi-component",templateUrl:"./npmi_component.ng.html",styleUrls:["./npmi_component.css"],changeDetection:xo.OnPush}]}],null,{runs:[{type:y_}],activeView:[{type:y_}]});class J_t{constructor(t){this.store=t,this.runs$=this.store.pipe(Rk(vN)),this.activeView$=this.store.pipe(Rk(sbt))}ngOnInit(){this.store.dispatch(mbt())}}J_t.ɵfac=function t(e){return new(e||J_t)(Mu(Ek))},J_t.ɵcmp=Uo({type:J_t,selectors:[["npmi"]],decls:3,vars:6,consts:[[3,"runs","activeView"]],template:function t(e,n){1&e&&(wu(0,"npmi-component",0),Ob(1,"async"),Ob(2,"async")),2&e&&vu("runs",Pb(1,2,n.runs$))("activeView",Pb(2,4,n.activeView$))},directives:[K_t],pipes:[Mv],encapsulation:2}),("undefined"==typeof ngDevMode||ngDevMode)&&db(J_t,[{type:h_,args:[{selector:"npmi",template:'\n    <npmi-component\n      [runs]="runs$ | async"\n      [activeView]="activeView$ | async"\n    ></npmi-component>\n  '}]}],(function(){return[{type:Ek}]}),null);var Q_t=Yx((function(t,e){var n=Gx&&Gx.__values||function(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}};function o(t,e){return Math.floor(e()*t)}function i(t){for(var e=[],n=0;n<t;n++)e.push(void 0);return e}function a(t,e){return i(t).map((function(){return e}))}function r(t){return a(t,0)}function s(t){return t.reduce((function(t,e){return t+e}))}Object.defineProperty(e,"__esModule",{value:!0}),e.tauRandInt=o,e.tauRand=function l(t){return t()},e.norm=function c(t){var e,o,i=0;try{for(var a=n(t),r=a.next();!r.done;r=a.next())i+=Math.pow(r.value,2)}catch(t){e={error:t}}finally{try{r&&!r.done&&(o=a.return)&&o.call(a)}finally{if(e)throw e.error}}return Math.sqrt(i)},e.empty=i,e.range=function d(t){return i(t).map((function(t,e){return e}))},e.filled=a,e.zeros=r,e.ones=function p(t){return a(t,1)},e.linear=function m(t,e,n){return i(n).map((function(o,i){return t+i*((e-t)/(n-1))}))},e.sum=s,e.mean=function u(t){return s(t)/t.length},e.max=function f(t){for(var e=0,n=0;n<t.length;n++)e=t[n]>e?t[n]:e;return e},e.max2d=function g(t){for(var e=0,n=0;n<t.length;n++)for(var o=0;o<t[n].length;o++)e=t[n][o]>e?t[n][o]:e;return e},e.rejectionSample=function h(t,e,n){for(var i=r(t),a=0;a<t;a++)for(var s=!0;s;){for(var l=o(e,n),c=!1,d=0;d<a;d++)if(l===i[d]){c=!0;break}c||(s=!1),i[a]=l}return i},e.reshape2d=function b(t,e,n){var o=[],i=0;if(t.length!==e*n)throw new Error("Array dimensions must match input length.");for(var a=0;a<e;a++){for(var r=[],s=0;s<n;s++)r.push(t[i]),i+=1;o.push(r)}return o}})),$_t=Yx((function(t,e){var n=Gx&&Gx.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e};Object.defineProperty(e,"__esModule",{value:!0});var o=n(Q_t);function i(t,e){var n=function(n){return o.empty(t).map((function(){return o.filled(e,n)}))},i=[];return i.push(n(-1)),i.push(n(1/0)),i.push(n(0)),i}function a(t,e,n,o,i){e=Math.floor(e);var a=t[0][e];if(n>=t[1][e][0])return 0;for(var s=0;s<a.length;s++)if(o===a[s])return 0;return r(t,e,n,o,i)}function r(t,e,n,o,i){var a=t[0][e],r=t[1][e],s=t[2][e];if(n>=r[0])return 0;r[0]=n,a[0]=o,s[0]=i;for(var l=0,c=0;;){var d=2*l+1,p=d+1,m=t[0][0].length;if(d>=m)break;if(p>=m){if(!(r[d]>n))break;c=d}else if(r[d]>=r[p]){if(!(n<r[d]))break;c=d}else{if(!(n<r[p]))break;c=p}r[l]=r[c],a[l]=a[c],s[l]=s[c],l=c}return r[l]=n,a[l]=o,s[l]=i,1}function s(t,e,n,o){for(;2*o+1<n;){var i=2*o+1,a=i+1,r=o;if(t[r]<t[i]&&(r=i),a<n&&t[r]<t[a]&&(r=a),r===o)break;var s=t[o];t[o]=t[r],t[r]=s;var l=e[o];e[o]=e[r],e[r]=l,o=r}}e.makeHeap=i,e.rejectionSample=function l(t,e,n){for(var i=o.zeros(t),a=0;a<t;a++){for(var r=!0,s=0;r;){s=o.tauRandInt(e,n);for(var l=!1,c=0;c<a;c++)if(s===i[c]){l=!0;break}l||(r=!1)}i[a]=s}return i},e.heapPush=a,e.uncheckedHeapPush=r,e.buildCandidates=function c(t,e,n,r,s){for(var l=i(e,r),c=0;c<e;c++)for(var d=0;d<n;d++)if(!(t[0][c][d]<0)){var p=t[0][c][d],m=t[2][c][d],u=o.tauRand(s);a(l,c,u,p,m),a(l,p,u,c,m),t[2][c][d]=0}return l},e.deheapSort=function d(t){for(var e=t[0],n=t[1],o=0;o<e.length;o++)for(var i=e[o],a=n[o],r=0;r<i.length-1;r++){var l=i.length-r-1,c=a.length-r-1,d=i[0];i[0]=i[l],i[l]=d;var p=a[0];a[0]=a[c],a[c]=p,s(a,i,c,0)}return{indices:e,weights:n}},e.smallestFlagged=function p(t,e){for(var n=t[0][e],o=t[1][e],i=t[2][e],a=1/0,r=-1,s=0;s>n.length;s++)1===i[s]&&o[s]<a&&(a=o[s],r=s);return r>=0?(i[r]=0,Math.floor(n[r])):-1}})),tCt=Yx((function(t,e){var n,o=Gx&&Gx.__read||function(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,i,a=n.call(t),r=[];try{for(;(void 0===e||e-- >0)&&!(o=a.next()).done;)r.push(o.value)}catch(t){i={error:t}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(i)throw i.error}}return r},i=Gx&&Gx.__values||function(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}},a=Gx&&Gx.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e};Object.defineProperty(e,"__esModule",{value:!0});var r=a(Q_t),s=(function(){function t(t,e,n,o){if(this.entries=new Map,this.nRows=0,this.nCols=0,t.length!==e.length||t.length!==n.length)throw new Error("rows, cols and values arrays must all have the same length");this.nRows=o[0],this.nCols=o[1];for(var i=0;i<n.length;i++){var a=t[i],r=e[i];this.checkDims(a,r);var s=this.makeKey(a,r);this.entries.set(s,{value:n[i],row:a,col:r})}}return t.prototype.makeKey=function(t,e){return t+":"+e},t.prototype.checkDims=function(t,e){if(!(t<this.nRows&&e<this.nCols))throw new Error("row and/or col specified outside of matrix dimensions")},t.prototype.set=function(t,e,n){this.checkDims(t,e);var o=this.makeKey(t,e);this.entries.has(o)?this.entries.get(o).value=n:this.entries.set(o,{value:n,row:t,col:e})},t.prototype.get=function(t,e,n){void 0===n&&(n=0),this.checkDims(t,e);var o=this.makeKey(t,e);return this.entries.has(o)?this.entries.get(o).value:n},t.prototype.getAll=function(t){void 0===t&&(t=!0);var e=[];return this.entries.forEach((function(t){e.push(t)})),t&&e.sort((function(t,e){return t.row===e.row?t.col-e.col:t.row-e.row})),e},t.prototype.getDims=function(){return[this.nRows,this.nCols]},t.prototype.getRows=function(){return Array.from(this.entries,(function(t){return o(t,2)[1].row}))},t.prototype.getCols=function(){return Array.from(this.entries,(function(t){return o(t,2)[1].col}))},t.prototype.getValues=function(){return Array.from(this.entries,(function(t){return o(t,2)[1].value}))},t.prototype.forEach=function(t){this.entries.forEach((function(e){return t(e.value,e.row,e.col)}))},t.prototype.map=function(e){var n=[];this.entries.forEach((function(t){n.push(e(t.value,t.row,t.col))}));var o=[this.nRows,this.nCols];return new t(this.getRows(),this.getCols(),n,o)},t.prototype.toArray=function(){var t=this,e=r.empty(this.nRows).map((function(){return r.zeros(t.nCols)}));return this.entries.forEach((function(t){e[t.row][t.col]=t.value})),e},t})();e.SparseMatrix=s,e.transpose=function l(t){var e=[],n=[],o=[];return t.forEach((function(t,i,a){e.push(i),n.push(a),o.push(t)})),new s(n,e,o,[t.nCols,t.nRows])},e.identity=function c(t){for(var e=o(t,1)[0],n=new s([],[],[],t),i=0;i<e;i++)n.set(i,i,1);return n},e.pairwiseMultiply=function d(t,e){return y(t,e,(function(t,e){return t*e}))},e.add=function p(t,e){return y(t,e,(function(t,e){return t+e}))},e.subtract=function m(t,e){return y(t,e,(function(t,e){return t-e}))},e.maximum=function u(t,e){return y(t,e,(function(t,e){return t>e?t:e}))},e.multiplyScalar=function f(t,e){return t.map((function(t){return t*e}))},e.eliminateZeros=function g(t){for(var e=new Set,n=t.getValues(),o=t.getRows(),i=t.getCols(),a=0;a<n.length;a++)0===n[a]&&e.add(a);var r=function(t,n){return!e.has(n)},l=n.filter(r),c=o.filter(r),d=i.filter(r);return new s(c,d,l,t.getDims())},e.normalize=function h(t,e){var n,o;void 0===e&&(e="l2");var a=b[e],r=new Map;t.forEach((function(t,e,n){var o=r.get(e)||[];o.push(n),r.set(e,o)}));var l=new s([],[],[],t.getDims()),c=function(e){for(var n=r.get(e).sort(),o=n.map((function(n){return t.get(e,n)})),i=a(o),s=0;s<i.length;s++)l.set(e,n[s],i[s])};try{for(var d=i(r.keys()),p=d.next();!p.done;p=d.next())c(p.value)}catch(t){n={error:t}}finally{try{p&&!p.done&&(o=d.return)&&o.call(d)}finally{if(n)throw n.error}}return l};var b=((n={}).max=function(t){for(var e=-1/0,n=0;n<t.length;n++)e=t[n]>e?t[n]:e;return t.map((function(t){return t/e}))},n.l1=function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n];return t.map((function(t){return t/e}))},n.l2=function(t){for(var e=0,n=0;n<t.length;n++)e+=Math.pow(t[n],2);return t.map((function(t){return Math.sqrt(Math.pow(t,2)/e)}))},n);function y(t,e,n){for(var o=new Set,i=[],a=[],r=[],l=function(o,s){i.push(o),a.push(s);var l=n(t.get(o,s),e.get(o,s));r.push(l)},c=t.getValues(),d=t.getRows(),p=t.getCols(),m=0;m<c.length;m++)o.add((h=d[m])+":"+(b=p[m])),l(h,b);var u=e.getValues(),f=e.getRows(),g=e.getCols();for(m=0;m<u.length;m++){var h,b;o.has((h=f[m])+":"+(b=g[m]))||l(h,b)}return new s(i,a,r,[t.nRows,t.nCols])}e.getCSR=function _(t){var e=[];t.forEach((function(t,n,o){e.push({value:t,row:n,col:o})})),e.sort((function(t,e){return t.row===e.row?t.col-e.col:t.row-e.row}));for(var n=[],o=[],i=[],a=-1,r=0;r<e.length;r++){var s=e[r],l=s.row,c=s.col,d=s.value;l!==a&&(a=l,i.push(r)),n.push(c),o.push(d)}return{indices:n,values:o,indptr:i}}})),eCt=Yx((function(t,e){var n=Gx&&Gx.__read||function(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,i,a=n.call(t),r=[];try{for(;(void 0===e||e-- >0)&&!(o=a.next()).done;)r.push(o.value)}catch(t){i={error:t}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(i)throw i.error}}return r},o=Gx&&Gx.__spread||function(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(n(arguments[e]));return t},i=Gx&&Gx.__values||function(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}},a=Gx&&Gx.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e};Object.defineProperty(e,"__esModule",{value:!0});var r,s=a(Q_t);function l(t,e,n,o,i){if(void 0===n&&(n=30),e.length>n){var a=(function r(t,e,n){for(var o=t[0].length,i=s.tauRandInt(e.length,n),a=s.tauRandInt(e.length,n),r=e[i],l=e[a=(a+=i===a?1:0)%e.length],c=0,d=s.zeros(o),p=0;p<d.length;p++)d[p]=t[r][p]-t[l][p],c-=d[p]*(t[r][p]+t[l][p])/2;var m=0,u=0,f=s.zeros(e.length);for(p=0;p<e.length;p++){for(var g=c,h=0;h<o;h++)g+=d[h]*t[e[p]][h];0===g?(f[p]=s.tauRandInt(2,n),0===f[p]?m+=1:u+=1):g>0?(f[p]=0,m+=1):(f[p]=1,u+=1)}var b=s.zeros(m),y=s.zeros(u);for(m=0,u=0,p=0;p<f.length;p++)0===f[p]?(b[m]=e[p],m+=1):(y[u]=e[p],u+=1);return{indicesLeft:b,indicesRight:y,hyperplane:d,offset:c}})(t,e,i),c=a.indicesRight,d=a.hyperplane,p=a.offset;return{leftChild:l(t,a.indicesLeft,n,o+1,i),rightChild:l(t,c,n,o+1,i),isLeaf:!1,hyperplane:d,offset:p}}return{indices:e,isLeaf:!0}}function c(t,e,n,i,a,r,s){var l;if(t.isLeaf)return i[r][0]=-s,(l=a[s]).splice.apply(l,o([0,t.indices.length],t.indices)),{nodeNum:r,leafNum:s+=1};e[r]=t.hyperplane,n[r]=t.offset,i[r][0]=r+1;var d=r,p=c(t.leftChild,e,n,i,a,r+1,s);return s=p.leafNum,i[d][1]=(r=p.nodeNum)+1,{nodeNum:(p=c(t.rightChild,e,n,i,a,r+1,s)).nodeNum,leafNum:p.leafNum}}function d(t){return t.isLeaf?1:1+d(t.leftChild)+d(t.rightChild)}function p(t){return t.isLeaf?1:p(t.leftChild)+p(t.rightChild)}function m(t,e,n,o){for(var i=e,a=0;a<n.length;a++)i+=t[a]*n[a];return 0===i?s.tauRandInt(2,o):i>0?0:1}e.FlatTree=r=function r(t,e,n,o){this.hyperplanes=t,this.offsets=e,this.children=n,this.indices=o},e.makeForest=function u(t,e,n,o){var i=Math.max(10,e);return s.range(n).map((function(e,n){return(function a(t,e,n,o){return void 0===e&&(e=30),l(t,s.range(t.length),e,n,o)})(t,i,n,o)})).map((function(t){return(function e(t,n){var o=d(t),i=p(t),a=s.range(o).map((function(){return s.zeros(t.hyperplane?t.hyperplane.length:0)})),l=s.zeros(o),m=s.range(o).map((function(){return[-1,-1]})),u=s.range(i).map((function(){return s.range(n).map((function(){return-1}))}));return c(t,a,l,m,u,0,0),new r(a,l,m,u)})(t,i)}))},e.makeLeafArray=function f(t){var e,n;if(t.length>0){var a=[];try{for(var r=i(t),s=r.next();!s.done;s=r.next())a.push.apply(a,o(s.value.indices))}catch(t){e={error:t}}finally{try{s&&!s.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}return a}return[[-1]]},e.searchFlatTree=function g(t,e,n){for(var o=0;e.children[o][0]>0;)o=0===m(e.hyperplanes[o],e.offsets[o],t,n)?e.children[o][0]:e.children[o][1];return e.indices[-1*e.children[o][0]]}})),nCt=Yx((function(t,e){var n=Gx&&Gx.__values||function(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}},o=Gx&&Gx.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e};Object.defineProperty(e,"__esModule",{value:!0});var i=o($_t),a=o(tCt),r=o(eCt),s=o(Q_t);e.makeNNDescent=function l(t,e){return function n(o,a,r,l,c,d,p,m){void 0===l&&(l=10),void 0===c&&(c=50),void 0===d&&(d=.001),void 0===p&&(p=.5),void 0===m&&(m=!0);for(var u=o.length,f=i.makeHeap(o.length,r),g=0;g<o.length;g++)for(var h=i.rejectionSample(r,o.length,e),b=0;b<h.length;b++){var y=t(o[g],o[h[b]]);i.heapPush(f,g,y,h[b],1),i.heapPush(f,h[b],y,g,1)}if(m)for(var _=0;_<a.length;_++)for(g=0;g<a[_].length&&!(a[_][g]<0);g++)for(b=g+1;b<a[_].length&&!(a[_][b]<0);b++)y=t(o[a[_][g]],o[a[_][b]]),i.heapPush(f,a[_][g],y,a[_][b],1),i.heapPush(f,a[_][b],y,a[_][g],1);for(_=0;_<l;_++){var C=i.buildCandidates(f,u,r,c,e),M=0;for(g=0;g<u;g++)for(b=0;b<c;b++){var v=Math.floor(C[0][g][b]);if(!(v<0||s.tauRand(e)<p))for(var x=0;x<c;x++){var O=Math.floor(C[0][g][x]);O<0||!C[2][g][b]&&!C[2][g][x]||(y=t(o[v],o[O]),M+=i.heapPush(f,v,y,O,1),M+=i.heapPush(f,O,y,v,1))}}if(M<=d*r*o.length)break}return i.deheapSort(f)}},e.makeInitializations=function c(t){return{initFromRandom:function e(n,o,a,r,l){for(var c=0;c<a.length;c++)for(var d=s.rejectionSample(n,o.length,l),p=0;p<d.length;p++)if(!(d[p]<0)){var m=t(o[d[p]],a[c]);i.heapPush(r,c,m,d[p],1)}},initFromTree:function n(e,o,a,s,l){for(var c=0;c<a.length;c++)for(var d=r.searchFlatTree(a[c],e,l),p=0;p<d.length;p++){if(d[p]<0)return;var m=t(o[d[p]],a[c]);i.heapPush(s,c,m,d[p],1)}}}},e.makeInitializedNNSearch=function d(t){return function e(o,r,s,l){for(var c,d,p=a.getCSR(r),m=p.indices,u=p.indptr,f=0;f<l.length;f++)for(var g=new Set(s[0][f]);;){var h=i.smallestFlagged(s,f);if(-1===h)break;var b=m.slice(u[h],u[h+1]);try{for(var y=n(b),_=y.next();!_.done;_=y.next()){var C=_.value;if(C!==h&&-1!==C&&!g.has(C)){var M=t(o[C],l[f]);i.uncheckedHeapPush(s,f,M,C,1),g.add(C)}}}catch(t){c={error:t}}finally{try{_&&!_.done&&(d=y.return)&&d.call(y)}finally{if(c)throw c.error}}}return s}},e.initializeSearch=function p(t,e,o,a,r,s,l){var c,d,p=i.makeHeap(o.length,a);if(r(a,e,o,p,l),t)try{for(var m=n(t),u=m.next();!u.done;u=m.next())s(u.value,e,o,p,l)}catch(t){c={error:t}}finally{try{u&&!u.done&&(d=m.return)&&d.call(m)}finally{if(c)throw c.error}}return p}}));const oCt=Object.prototype.toString;function iCt(t){return oCt.call(t).endsWith("Array]")}function aCt(t,e,n){let o=0;const i=n(e);for(let e=0;e<t.x.length;e++)o+=Math.abs(t.y[e]-i(t.x[e]));return o}const rCt=Object.prototype.toString;function sCt(t){return rCt.call(t).endsWith("Array]")}function lCt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!sCt(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");var n=e.fromIndex,o=void 0===n?0:n,i=e.toIndex,a=void 0===i?t.length:i;if(o<0||o>=t.length||!Number.isInteger(o))throw new Error("fromIndex must be a positive integer smaller than length");if(a<=o||a>t.length||!Number.isInteger(a))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var r=t[o],s=o+1;s<a;s++)t[s]>r&&(r=t[s]);return r}function cCt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!sCt(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");var n=e.fromIndex,o=void 0===n?0:n,i=e.toIndex,a=void 0===i?t.length:i;if(o<0||o>=t.length||!Number.isInteger(o))throw new Error("fromIndex must be a positive integer smaller than length");if(a<=o||a>t.length||!Number.isInteger(a))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var r=t[o],s=o+1;s<a;s++)t[s]<r&&(r=t[s]);return r}function dCt(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!sCt(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");if(void 0!==n.output){if(!sCt(n.output))throw new TypeError("output option must be an array if specified");e=n.output}else e=new Array(t.length);var o=cCt(t),i=lCt(t);if(o===i)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var a=n.min,r=void 0===a?n.autoMinMax?o:0:a,s=n.max,l=void 0===s?n.autoMinMax?i:1:s;if(r>=l)throw new RangeError("min option must be smaller than max option");for(var c=(l-r)/(i-o),d=0;d<t.length;d++)e[d]=(t[d]-o)*c+r;return e}const pCt=" ".repeat(2),mCt=" ".repeat(4);function uCt(t,e={}){const{maxRows:n=15,maxColumns:o=10,maxNumSize:i=8}=e;return`${t.constructor.name} {\n${pCt}[\n${mCt}${(function a(t,e,n,o){const{rows:i,columns:a}=t,r=Math.min(i,e),s=Math.min(a,n),l=[];for(let e=0;e<r;e++){let n=[];for(let i=0;i<s;i++)n.push(fCt(t.get(e,i),o));l.push(`${n.join(" ")}`)}return s!==a&&(l[l.length-1]+=` ... ${a-n} more columns`),r!==i&&l.push(`... ${i-e} more rows`),l.join(`\n${mCt}`)})(t,n,o,i)}\n${pCt}]\n${pCt}rows: ${t.rows}\n${pCt}columns: ${t.columns}\n}`}function fCt(t,e){const n=String(t);if(n.length<=e)return n.padEnd(e," ");const o=t.toPrecision(e-2);if(o.length<=e)return o;const i=t.toExponential(e-2),a=i.indexOf("e"),r=i.slice(a);return i.slice(0,e-r.length)+r}function gCt(t,e,n){if(e<0||e>(n?t.rows:t.rows-1))throw new RangeError("Row index out of range")}function hCt(t,e,n){if(e<0||e>(n?t.columns:t.columns-1))throw new RangeError("Column index out of range")}function bCt(t,e){if(e.to1DArray&&(e=e.to1DArray()),e.length!==t.columns)throw new RangeError("vector size must be the same as the number of columns");return e}function yCt(t,e){if(e.to1DArray&&(e=e.to1DArray()),e.length!==t.rows)throw new RangeError("vector size must be the same as the number of rows");return e}function _Ct(t,e){if("object"!=typeof e)throw new TypeError("unexpected type for row indices");if(e.some((e=>e<0||e>=t.rows)))throw new RangeError("row indices are out of range");return Array.isArray(e)||(e=Array.from(e)),e}function CCt(t,e){if("object"!=typeof e)throw new TypeError("unexpected type for column indices");if(e.some((e=>e<0||e>=t.columns)))throw new RangeError("column indices are out of range");return Array.isArray(e)||(e=Array.from(e)),e}function MCt(t,e,n,o,i){if(5!==arguments.length)throw new RangeError("expected 4 arguments");if(xCt("startRow",e),xCt("endRow",n),xCt("startColumn",o),xCt("endColumn",i),e>n||o>i||e<0||e>=t.rows||n<0||n>=t.rows||o<0||o>=t.columns||i<0||i>=t.columns)throw new RangeError("Submatrix indices are out of range")}function vCt(t,e=0){let n=[];for(let o=0;o<t;o++)n.push(e);return n}function xCt(t,e){if("number"!=typeof e)throw new TypeError(`${t} must be a number`)}function OCt(t){if(t.isEmpty())throw new Error("Empty matrix has no elements to index")}class PCt{static from1DArray(t,e,n){if(t*e!==n.length)throw new RangeError("data length does not match given dimensions");let o=new SCt(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)o.set(i,t,n[i*e+t]);return o}static rowVector(t){let e=new SCt(1,t.length);for(let n=0;n<t.length;n++)e.set(0,n,t[n]);return e}static columnVector(t){let e=new SCt(t.length,1);for(let n=0;n<t.length;n++)e.set(n,0,t[n]);return e}static zeros(t,e){return new SCt(t,e)}static ones(t,e){return new SCt(t,e).fill(1)}static rand(t,e,n={}){if("object"!=typeof n)throw new TypeError("options must be an object");const{random:o=Math.random}=n;let i=new SCt(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.set(n,t,o());return i}static randInt(t,e,n={}){if("object"!=typeof n)throw new TypeError("options must be an object");const{min:o=0,max:i=1e3,random:a=Math.random}=n;if(!Number.isInteger(o))throw new TypeError("min must be an integer");if(!Number.isInteger(i))throw new TypeError("max must be an integer");if(o>=i)throw new RangeError("min must be smaller than max");let r=i-o,s=new SCt(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++){let e=o+Math.round(a()*r);s.set(n,t,e)}return s}static eye(t,e,n){void 0===e&&(e=t),void 0===n&&(n=1);let o=Math.min(t,e),i=this.zeros(t,e);for(let t=0;t<o;t++)i.set(t,t,n);return i}static diag(t,e,n){let o=t.length;void 0===e&&(e=o),void 0===n&&(n=e);let i=Math.min(o,e,n),a=this.zeros(e,n);for(let e=0;e<i;e++)a.set(e,e,t[e]);return a}static min(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let n=t.rows,o=t.columns,i=new SCt(n,o);for(let a=0;a<n;a++)for(let n=0;n<o;n++)i.set(a,n,Math.min(t.get(a,n),e.get(a,n)));return i}static max(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let n=t.rows,o=t.columns,i=new this(n,o);for(let a=0;a<n;a++)for(let n=0;n<o;n++)i.set(a,n,Math.max(t.get(a,n),e.get(a,n)));return i}static checkMatrix(t){return PCt.isMatrix(t)?t:new SCt(t)}static isMatrix(t){return null!=t&&"Matrix"===t.klass}get size(){return this.rows*this.columns}apply(t){if("function"!=typeof t)throw new TypeError("callback must be a function");for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)t.call(this,e,n);return this}to1DArray(){let t=[];for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)t.push(this.get(e,n));return t}to2DArray(){let t=[];for(let e=0;e<this.rows;e++){t.push([]);for(let n=0;n<this.columns;n++)t[e].push(this.get(e,n))}return t}toJSON(){return this.to2DArray()}isRowVector(){return 1===this.rows}isColumnVector(){return 1===this.columns}isVector(){return 1===this.rows||1===this.columns}isSquare(){return this.rows===this.columns}isEmpty(){return 0===this.rows||0===this.columns}isSymmetric(){if(this.isSquare()){for(let t=0;t<this.rows;t++)for(let e=0;e<=t;e++)if(this.get(t,e)!==this.get(e,t))return!1;return!0}return!1}isEchelonForm(){let t=0,e=0,n=-1,o=!0,i=!1;for(;t<this.rows&&o;){for(e=0,i=!1;e<this.columns&&!1===i;)0===this.get(t,e)?e++:1===this.get(t,e)&&e>n?(i=!0,n=e):(o=!1,i=!0);t++}return o}isReducedEchelonForm(){let t=0,e=0,n=-1,o=!0,i=!1;for(;t<this.rows&&o;){for(e=0,i=!1;e<this.columns&&!1===i;)0===this.get(t,e)?e++:1===this.get(t,e)&&e>n?(i=!0,n=e):(o=!1,i=!0);for(let n=e+1;n<this.rows;n++)0!==this.get(t,n)&&(o=!1);t++}return o}echelonForm(){let t=this.clone(),e=0,n=0;for(;e<t.rows&&n<t.columns;){let o=e;for(let i=e;i<t.rows;i++)t.get(i,n)>t.get(o,n)&&(o=i);if(0===t.get(o,n))n++;else{t.swapRows(e,o);let i=t.get(e,n);for(let o=n;o<t.columns;o++)t.set(e,o,t.get(e,o)/i);for(let o=e+1;o<t.rows;o++){let i=t.get(o,n)/t.get(e,n);t.set(o,n,0);for(let a=n+1;a<t.columns;a++)t.set(o,a,t.get(o,a)-t.get(e,a)*i)}e++,n++}}return t}reducedEchelonForm(){let t=this.echelonForm(),e=t.columns,n=t.rows,o=n-1;for(;o>=0;)if(0===t.maxRow(o))o--;else{let i=0,a=!1;for(;i<n&&!1===a;)1===t.get(o,i)?a=!0:i++;for(let n=0;n<o;n++){let a=t.get(n,i);for(let r=i;r<e;r++){let e=t.get(n,r)-a*t.get(o,r);t.set(n,r,e)}}o--}return t}set(){throw new Error("set method is unimplemented")}get(){throw new Error("get method is unimplemented")}repeat(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{rows:e=1,columns:n=1}=t;if(!Number.isInteger(e)||e<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(n)||n<=0)throw new TypeError("columns must be a positive integer");let o=new SCt(this.rows*e,this.columns*n);for(let t=0;t<e;t++)for(let e=0;e<n;e++)o.setSubMatrix(this,this.rows*t,this.columns*e);return o}fill(t){for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.set(e,n,t);return this}neg(){return this.mulS(-1)}getRow(t){gCt(this,t);let e=[];for(let n=0;n<this.columns;n++)e.push(this.get(t,n));return e}getRowVector(t){return SCt.rowVector(this.getRow(t))}setRow(t,e){gCt(this,t),e=bCt(this,e);for(let n=0;n<this.columns;n++)this.set(t,n,e[n]);return this}swapRows(t,e){gCt(this,t),gCt(this,e);for(let n=0;n<this.columns;n++){let o=this.get(t,n);this.set(t,n,this.get(e,n)),this.set(e,n,o)}return this}getColumn(t){hCt(this,t);let e=[];for(let n=0;n<this.rows;n++)e.push(this.get(n,t));return e}getColumnVector(t){return SCt.columnVector(this.getColumn(t))}setColumn(t,e){hCt(this,t),e=yCt(this,e);for(let n=0;n<this.rows;n++)this.set(n,t,e[n]);return this}swapColumns(t,e){hCt(this,t),hCt(this,e);for(let n=0;n<this.rows;n++){let o=this.get(n,t);this.set(n,t,this.get(n,e)),this.set(n,e,o)}return this}addRowVector(t){t=bCt(this,t);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.set(e,n,this.get(e,n)+t[n]);return this}subRowVector(t){t=bCt(this,t);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.set(e,n,this.get(e,n)-t[n]);return this}mulRowVector(t){t=bCt(this,t);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.set(e,n,this.get(e,n)*t[n]);return this}divRowVector(t){t=bCt(this,t);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.set(e,n,this.get(e,n)/t[n]);return this}addColumnVector(t){t=yCt(this,t);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.set(e,n,this.get(e,n)+t[e]);return this}subColumnVector(t){t=yCt(this,t);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.set(e,n,this.get(e,n)-t[e]);return this}mulColumnVector(t){t=yCt(this,t);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.set(e,n,this.get(e,n)*t[e]);return this}divColumnVector(t){t=yCt(this,t);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.set(e,n,this.get(e,n)/t[e]);return this}mulRow(t,e){gCt(this,t);for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)*e);return this}mulColumn(t,e){hCt(this,t);for(let n=0;n<this.rows;n++)this.set(n,t,this.get(n,t)*e);return this}max(){if(this.isEmpty())return NaN;let t=this.get(0,0);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.get(e,n)>t&&(t=this.get(e,n));return t}maxIndex(){OCt(this);let t=this.get(0,0),e=[0,0];for(let n=0;n<this.rows;n++)for(let o=0;o<this.columns;o++)this.get(n,o)>t&&(t=this.get(n,o),e[0]=n,e[1]=o);return e}min(){if(this.isEmpty())return NaN;let t=this.get(0,0);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)this.get(e,n)<t&&(t=this.get(e,n));return t}minIndex(){OCt(this);let t=this.get(0,0),e=[0,0];for(let n=0;n<this.rows;n++)for(let o=0;o<this.columns;o++)this.get(n,o)<t&&(t=this.get(n,o),e[0]=n,e[1]=o);return e}maxRow(t){if(gCt(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let n=1;n<this.columns;n++)this.get(t,n)>e&&(e=this.get(t,n));return e}maxRowIndex(t){gCt(this,t),OCt(this);let e=this.get(t,0),n=[t,0];for(let o=1;o<this.columns;o++)this.get(t,o)>e&&(e=this.get(t,o),n[1]=o);return n}minRow(t){if(gCt(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let n=1;n<this.columns;n++)this.get(t,n)<e&&(e=this.get(t,n));return e}minRowIndex(t){gCt(this,t),OCt(this);let e=this.get(t,0),n=[t,0];for(let o=1;o<this.columns;o++)this.get(t,o)<e&&(e=this.get(t,o),n[1]=o);return n}maxColumn(t){if(hCt(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let n=1;n<this.rows;n++)this.get(n,t)>e&&(e=this.get(n,t));return e}maxColumnIndex(t){hCt(this,t),OCt(this);let e=this.get(0,t),n=[0,t];for(let o=1;o<this.rows;o++)this.get(o,t)>e&&(e=this.get(o,t),n[0]=o);return n}minColumn(t){if(hCt(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let n=1;n<this.rows;n++)this.get(n,t)<e&&(e=this.get(n,t));return e}minColumnIndex(t){hCt(this,t),OCt(this);let e=this.get(0,t),n=[0,t];for(let o=1;o<this.rows;o++)this.get(o,t)<e&&(e=this.get(o,t),n[0]=o);return n}diag(){let t=Math.min(this.rows,this.columns),e=[];for(let n=0;n<t;n++)e.push(this.get(n,n));return e}norm(t="frobenius"){let e=0;if("max"===t)return this.max();if("frobenius"===t){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)e+=this.get(t,n)*this.get(t,n);return Math.sqrt(e)}throw new RangeError(`unknown norm type: ${t}`)}cumulativeSum(){let t=0;for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)t+=this.get(e,n),this.set(e,n,t);return this}dot(t){PCt.isMatrix(t)&&(t=t.to1DArray());let e=this.to1DArray();if(e.length!==t.length)throw new RangeError("vectors do not have the same size");let n=0;for(let o=0;o<e.length;o++)n+=e[o]*t[o];return n}mmul(t){t=SCt.checkMatrix(t);let e=this.rows,n=this.columns,o=t.columns,i=new SCt(e,o),a=new Float64Array(n);for(let r=0;r<o;r++){for(let e=0;e<n;e++)a[e]=t.get(e,r);for(let t=0;t<e;t++){let e=0;for(let o=0;o<n;o++)e+=this.get(t,o)*a[o];i.set(t,r,e)}}return i}strassen2x2(t){t=SCt.checkMatrix(t);let e=new SCt(2,2);const n=this.get(0,0),o=t.get(0,0),i=this.get(0,1),a=t.get(0,1),r=this.get(1,0),s=t.get(1,0),l=this.get(1,1),c=t.get(1,1),d=(n+l)*(o+c),p=(r+l)*o,m=n*(a-c),u=l*(s-o),f=(n+i)*c,g=m+f,h=p+u,b=d-p+m+(r-n)*(o+a);return e.set(0,0,d+u-f+(i-l)*(s+c)),e.set(0,1,g),e.set(1,0,h),e.set(1,1,b),e}strassen3x3(t){t=SCt.checkMatrix(t);let e=new SCt(3,3);const n=this.get(0,0),o=this.get(0,1),i=this.get(0,2),a=this.get(1,0),r=this.get(1,1),s=this.get(1,2),l=this.get(2,0),c=this.get(2,1),d=this.get(2,2),p=t.get(0,0),m=t.get(0,1),u=t.get(0,2),f=t.get(1,0),g=t.get(1,1),h=t.get(1,2),b=t.get(2,0),y=t.get(2,1),_=t.get(2,2),C=(n-a)*(-m+g),M=(-n+a+r)*(p-m+g),v=(a+r)*(-p+m),x=n*p,O=(-n+l+c)*(p-u+h),P=(-n+l)*(u-h),w=(l+c)*(-p+u),k=(-i+c+d)*(g+b-y),S=(i-d)*(g-y),D=i*b,E=(c+d)*(-b+y),A=(-i+r+s)*(h+b-_),R=(i-s)*(h-_),T=(r+s)*(-b+_),N=(n+o+i-a-r-c-d)*g+M+v+x+k+D+E,I=x+O+w+(n+o+i-r-s-l-c)*h+D+A+T,z=C+r*(-p+m+f-g-h-b+_)+M+x+D+A+R,H=C+M+v+x+s*y,F=D+A+R+T+a*u,L=x+O+P+c*(-p+u+f-g-h-b+y)+k+S+D,B=k+S+D+E+l*m,V=x+O+P+w+d*_;return e.set(0,0,x+D+o*f),e.set(0,1,N),e.set(0,2,I),e.set(1,0,z),e.set(1,1,H),e.set(1,2,F),e.set(2,0,L),e.set(2,1,B),e.set(2,2,V),e}mmulStrassen(t){t=SCt.checkMatrix(t);let e=this.clone(),n=e.rows,o=e.columns,i=t.rows,a=t.columns;function r(t,e,n){if(t.rows===e&&t.columns===n)return t;{let o=PCt.zeros(e,n);return o=o.setSubMatrix(t,0,0),o}}o!==i&&console.warn(`Multiplying ${n} x ${o} and ${i} x ${a} matrix: dimensions do not match.`);let s=Math.max(n,i),l=Math.max(o,a);return e=r(e,s,l),(function t(e,n,o,i){if(o<=512||i<=512)return e.mmul(n);o%2==1&&i%2==1?(e=r(e,o+1,i+1),n=r(n,o+1,i+1)):o%2==1?(e=r(e,o+1,i),n=r(n,o+1,i)):i%2==1&&(e=r(e,o,i+1),n=r(n,o,i+1));let a=parseInt(e.rows/2,10),s=parseInt(e.columns/2,10),l=e.subMatrix(0,a-1,0,s-1),c=n.subMatrix(0,a-1,0,s-1),d=e.subMatrix(0,a-1,s,e.columns-1),p=n.subMatrix(0,a-1,s,n.columns-1),m=e.subMatrix(a,e.rows-1,0,s-1),u=n.subMatrix(a,n.rows-1,0,s-1),f=e.subMatrix(a,e.rows-1,s,e.columns-1),g=n.subMatrix(a,n.rows-1,s,n.columns-1),h=t(PCt.add(l,f),PCt.add(c,g),a,s),b=t(PCt.add(m,f),c,a,s),y=t(l,PCt.sub(p,g),a,s),_=t(f,PCt.sub(u,c),a,s),C=t(PCt.add(l,d),g,a,s),M=t(PCt.sub(m,l),PCt.add(c,p),a,s),v=t(PCt.sub(d,f),PCt.add(u,g),a,s),x=PCt.add(h,_);x.sub(C),x.add(v);let O=PCt.add(y,C),P=PCt.add(b,_),w=PCt.sub(h,b);w.add(y),w.add(M);let k=PCt.zeros(2*x.rows,2*x.columns);return k=k.setSubMatrix(x,0,0),k=k.setSubMatrix(O,x.rows,0),k=k.setSubMatrix(P,0,x.columns),k=k.setSubMatrix(w,x.rows,x.columns),k.subMatrix(0,o-1,0,i-1)})(e,t=r(t,s,l),s,l)}scaleRows(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{min:e=0,max:n=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(n))throw new TypeError("max must be a number");if(e>=n)throw new RangeError("min must be smaller than max");let o=new SCt(this.rows,this.columns);for(let t=0;t<this.rows;t++){const i=this.getRow(t);i.length>0&&dCt(i,{min:e,max:n,output:i}),o.setRow(t,i)}return o}scaleColumns(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{min:e=0,max:n=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(n))throw new TypeError("max must be a number");if(e>=n)throw new RangeError("min must be smaller than max");let o=new SCt(this.rows,this.columns);for(let t=0;t<this.columns;t++){const i=this.getColumn(t);i.length&&dCt(i,{min:e,max:n,output:i}),o.setColumn(t,i)}return o}flipRows(){const t=Math.ceil(this.columns/2);for(let e=0;e<this.rows;e++)for(let n=0;n<t;n++){let t=this.get(e,n),o=this.get(e,this.columns-1-n);this.set(e,n,o),this.set(e,this.columns-1-n,t)}return this}flipColumns(){const t=Math.ceil(this.rows/2);for(let e=0;e<this.columns;e++)for(let n=0;n<t;n++){let t=this.get(n,e),o=this.get(this.rows-1-n,e);this.set(n,e,o),this.set(this.rows-1-n,e,t)}return this}kroneckerProduct(t){t=SCt.checkMatrix(t);let e=this.rows,n=this.columns,o=t.rows,i=t.columns,a=new SCt(e*o,n*i);for(let r=0;r<e;r++)for(let e=0;e<n;e++)for(let n=0;n<o;n++)for(let s=0;s<i;s++)a.set(o*r+n,i*e+s,this.get(r,e)*t.get(n,s));return a}kroneckerSum(t){if(t=SCt.checkMatrix(t),!this.isSquare()||!t.isSquare())throw new Error("Kronecker Sum needs two Square Matrices");let e=this.rows,n=t.rows,o=this.kroneckerProduct(SCt.eye(n,n)),i=SCt.eye(e,e).kroneckerProduct(t);return o.add(i)}transpose(){let t=new SCt(this.columns,this.rows);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)t.set(n,e,this.get(e,n));return t}sortRows(t=wCt){for(let e=0;e<this.rows;e++)this.setRow(e,this.getRow(e).sort(t));return this}sortColumns(t=wCt){for(let e=0;e<this.columns;e++)this.setColumn(e,this.getColumn(e).sort(t));return this}subMatrix(t,e,n,o){MCt(this,t,e,n,o);let i=new SCt(e-t+1,o-n+1);for(let a=t;a<=e;a++)for(let e=n;e<=o;e++)i.set(a-t,e-n,this.get(a,e));return i}subMatrixRow(t,e,n){if(void 0===e&&(e=0),void 0===n&&(n=this.columns-1),e>n||e<0||e>=this.columns||n<0||n>=this.columns)throw new RangeError("Argument out of range");let o=new SCt(t.length,n-e+1);for(let i=0;i<t.length;i++)for(let a=e;a<=n;a++){if(t[i]<0||t[i]>=this.rows)throw new RangeError(`Row index out of range: ${t[i]}`);o.set(i,a-e,this.get(t[i],a))}return o}subMatrixColumn(t,e,n){if(void 0===e&&(e=0),void 0===n&&(n=this.rows-1),e>n||e<0||e>=this.rows||n<0||n>=this.rows)throw new RangeError("Argument out of range");let o=new SCt(n-e+1,t.length);for(let i=0;i<t.length;i++)for(let a=e;a<=n;a++){if(t[i]<0||t[i]>=this.columns)throw new RangeError(`Column index out of range: ${t[i]}`);o.set(a-e,i,this.get(a,t[i]))}return o}setSubMatrix(t,e,n){if((t=SCt.checkMatrix(t)).isEmpty())return this;MCt(this,e,e+t.rows-1,n,n+t.columns-1);for(let o=0;o<t.rows;o++)for(let i=0;i<t.columns;i++)this.set(e+o,n+i,t.get(o,i));return this}selection(t,e){let n=(function o(t,e,n){return{row:_Ct(t,e),column:CCt(t,n)}})(this,t,e),i=new SCt(t.length,e.length);for(let t=0;t<n.row.length;t++){let e=n.row[t];for(let o=0;o<n.column.length;o++)i.set(t,o,this.get(e,n.column[o]))}return i}trace(){let t=Math.min(this.rows,this.columns),e=0;for(let n=0;n<t;n++)e+=this.get(n,n);return e}clone(){let t=new SCt(this.rows,this.columns);for(let e=0;e<this.rows;e++)for(let n=0;n<this.columns;n++)t.set(e,n,this.get(e,n));return t}sum(t){switch(t){case"row":return(function e(t){let e=vCt(t.rows);for(let n=0;n<t.rows;++n)for(let o=0;o<t.columns;++o)e[n]+=t.get(n,o);return e})(this);case"column":return(function n(t){let e=vCt(t.columns);for(let n=0;n<t.rows;++n)for(let o=0;o<t.columns;++o)e[o]+=t.get(n,o);return e})(this);case void 0:return(function o(t){let e=0;for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)e+=t.get(n,o);return e})(this);default:throw new Error(`invalid option: ${t}`)}}product(t){switch(t){case"row":return(function e(t){let e=vCt(t.rows,1);for(let n=0;n<t.rows;++n)for(let o=0;o<t.columns;++o)e[n]*=t.get(n,o);return e})(this);case"column":return(function n(t){let e=vCt(t.columns,1);for(let n=0;n<t.rows;++n)for(let o=0;o<t.columns;++o)e[o]*=t.get(n,o);return e})(this);case void 0:return(function o(t){let e=1;for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)e*=t.get(n,o);return e})(this);default:throw new Error(`invalid option: ${t}`)}}mean(t){const e=this.sum(t);switch(t){case"row":for(let t=0;t<this.rows;t++)e[t]/=this.columns;return e;case"column":for(let t=0;t<this.columns;t++)e[t]/=this.rows;return e;case void 0:return e/this.size;default:throw new Error(`invalid option: ${t}`)}}variance(t,e={}){if("object"==typeof t&&(e=t,t=void 0),"object"!=typeof e)throw new TypeError("options must be an object");const{unbiased:n=!0,mean:o=this.mean(t)}=e;if("boolean"!=typeof n)throw new TypeError("unbiased must be a boolean");switch(t){case"row":if(!Array.isArray(o))throw new TypeError("mean must be an array");return(function i(t,e,n){const o=t.rows,i=t.columns,a=[];for(let r=0;r<o;r++){let o=0,s=0,l=0;for(let e=0;e<i;e++)l=t.get(r,e)-n[r],o+=l,s+=l*l;a.push(e?(s-o*o/i)/(i-1):(s-o*o/i)/i)}return a})(this,n,o);case"column":if(!Array.isArray(o))throw new TypeError("mean must be an array");return(function a(t,e,n){const o=t.rows,i=t.columns,a=[];for(let r=0;r<i;r++){let i=0,s=0,l=0;for(let e=0;e<o;e++)l=t.get(e,r)-n[r],i+=l,s+=l*l;a.push(e?(s-i*i/o)/(o-1):(s-i*i/o)/o)}return a})(this,n,o);case void 0:if("number"!=typeof o)throw new TypeError("mean must be a number");return(function r(t,e,n){const o=t.rows,i=t.columns,a=o*i;let r=0,s=0,l=0;for(let e=0;e<o;e++)for(let o=0;o<i;o++)l=t.get(e,o)-n,r+=l,s+=l*l;return e?(s-r*r/a)/(a-1):(s-r*r/a)/a})(this,n,o);default:throw new Error(`invalid option: ${t}`)}}standardDeviation(t,e){"object"==typeof t&&(e=t,t=void 0);const n=this.variance(t,e);if(void 0===t)return Math.sqrt(n);for(let t=0;t<n.length;t++)n[t]=Math.sqrt(n[t]);return n}center(t,e={}){if("object"==typeof t&&(e=t,t=void 0),"object"!=typeof e)throw new TypeError("options must be an object");const{center:n=this.mean(t)}=e;switch(t){case"row":if(!Array.isArray(n))throw new TypeError("center must be an array");return(function o(t,e){for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)t.set(n,o,t.get(n,o)-e[n])})(this,n),this;case"column":if(!Array.isArray(n))throw new TypeError("center must be an array");return(function i(t,e){for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)t.set(n,o,t.get(n,o)-e[o])})(this,n),this;case void 0:if("number"!=typeof n)throw new TypeError("center must be a number");return(function a(t,e){for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)t.set(n,o,t.get(n,o)-e)})(this,n),this;default:throw new Error(`invalid option: ${t}`)}}scale(t,e={}){if("object"==typeof t&&(e=t,t=void 0),"object"!=typeof e)throw new TypeError("options must be an object");let n=e.scale;switch(t){case"row":if(void 0===n)n=(function o(t){const e=[];for(let n=0;n<t.rows;n++){let o=0;for(let e=0;e<t.columns;e++)o+=Math.pow(t.get(n,e),2)/(t.columns-1);e.push(Math.sqrt(o))}return e})(this);else if(!Array.isArray(n))throw new TypeError("scale must be an array");return(function i(t,e){for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)t.set(n,o,t.get(n,o)/e[n])})(this,n),this;case"column":if(void 0===n)n=(function a(t){const e=[];for(let n=0;n<t.columns;n++){let o=0;for(let e=0;e<t.rows;e++)o+=Math.pow(t.get(e,n),2)/(t.rows-1);e.push(Math.sqrt(o))}return e})(this);else if(!Array.isArray(n))throw new TypeError("scale must be an array");return(function r(t,e){for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)t.set(n,o,t.get(n,o)/e[o])})(this,n),this;case void 0:if(void 0===n)n=(function s(t){const e=t.size-1;let n=0;for(let o=0;o<t.columns;o++)for(let i=0;i<t.rows;i++)n+=Math.pow(t.get(i,o),2)/e;return Math.sqrt(n)})(this);else if("number"!=typeof n)throw new TypeError("scale must be a number");return(function l(t,e){for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)t.set(n,o,t.get(n,o)/e)})(this,n),this;default:throw new Error(`invalid option: ${t}`)}}toString(t){return uCt(this,t)}}function wCt(t,e){return t-e}PCt.prototype.klass="Matrix","undefined"!=typeof Symbol&&(PCt.prototype[Symbol.for("nodejs.util.inspect.custom")]=function kCt(){return uCt(this)}),PCt.random=PCt.rand,PCt.randomInt=PCt.randInt,PCt.diagonal=PCt.diag,PCt.prototype.diagonal=PCt.prototype.diag,PCt.identity=PCt.eye,PCt.prototype.negate=PCt.prototype.neg,PCt.prototype.tensorProduct=PCt.prototype.kroneckerProduct;class SCt extends PCt{constructor(t,e){if(super(),SCt.isMatrix(t))return t.clone();if(Number.isInteger(t)&&t>=0){if(this.data=[],!(Number.isInteger(e)&&e>=0))throw new TypeError("nColumns must be a positive integer");for(let n=0;n<t;n++)this.data.push(new Float64Array(e))}else{if(!Array.isArray(t))throw new TypeError("First argument must be a positive number or an array");{const n=t;if("number"!=typeof(e=(t=n.length)?n[0].length:0))throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let o=0;o<t;o++){if(n[o].length!==e)throw new RangeError("Inconsistent array dimensions");this.data.push(Float64Array.from(n[o]))}}}this.rows=t,this.columns=e}set(t,e,n){return this.data[t][e]=n,this}get(t,e){return this.data[t][e]}removeRow(t){return gCt(this,t),this.data.splice(t,1),this.rows-=1,this}addRow(t,e){return void 0===e&&(e=t,t=this.rows),gCt(this,t,!0),e=Float64Array.from(bCt(this,e)),this.data.splice(t,0,e),this.rows+=1,this}removeColumn(t){hCt(this,t);for(let e=0;e<this.rows;e++){const n=new Float64Array(this.columns-1);for(let o=0;o<t;o++)n[o]=this.data[e][o];for(let o=t+1;o<this.columns;o++)n[o-1]=this.data[e][o];this.data[e]=n}return this.columns-=1,this}addColumn(t,e){void 0===e&&(e=t,t=this.columns),hCt(this,t,!0),e=yCt(this,e);for(let n=0;n<this.rows;n++){const o=new Float64Array(this.columns+1);let i=0;for(;i<t;i++)o[i]=this.data[n][i];for(o[i++]=e[n];i<this.columns+1;i++)o[i]=this.data[n][i-1];this.data[n]=o}return this.columns+=1,this}}!(function DCt(t,e){t.prototype.add=function t(e){return"number"==typeof e?this.addS(e):this.addM(e)},t.prototype.addS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)+e);return this},t.prototype.addM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)+n.get(t,e));return this},t.add=function t(n,o){return new e(n).add(o)},t.prototype.sub=function t(e){return"number"==typeof e?this.subS(e):this.subM(e)},t.prototype.subS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)-e);return this},t.prototype.subM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)-n.get(t,e));return this},t.sub=function t(n,o){return new e(n).sub(o)},t.prototype.subtract=t.prototype.sub,t.prototype.subtractS=t.prototype.subS,t.prototype.subtractM=t.prototype.subM,t.subtract=t.sub,t.prototype.mul=function t(e){return"number"==typeof e?this.mulS(e):this.mulM(e)},t.prototype.mulS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)*e);return this},t.prototype.mulM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)*n.get(t,e));return this},t.mul=function t(n,o){return new e(n).mul(o)},t.prototype.multiply=t.prototype.mul,t.prototype.multiplyS=t.prototype.mulS,t.prototype.multiplyM=t.prototype.mulM,t.multiply=t.mul,t.prototype.div=function t(e){return"number"==typeof e?this.divS(e):this.divM(e)},t.prototype.divS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)/e);return this},t.prototype.divM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)/n.get(t,e));return this},t.div=function t(n,o){return new e(n).div(o)},t.prototype.divide=t.prototype.div,t.prototype.divideS=t.prototype.divS,t.prototype.divideM=t.prototype.divM,t.divide=t.div,t.prototype.mod=function t(e){return"number"==typeof e?this.modS(e):this.modM(e)},t.prototype.modS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)%e);return this},t.prototype.modM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)%n.get(t,e));return this},t.mod=function t(n,o){return new e(n).mod(o)},t.prototype.modulus=t.prototype.mod,t.prototype.modulusS=t.prototype.modS,t.prototype.modulusM=t.prototype.modM,t.modulus=t.mod,t.prototype.and=function t(e){return"number"==typeof e?this.andS(e):this.andM(e)},t.prototype.andS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)&e);return this},t.prototype.andM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)&n.get(t,e));return this},t.and=function t(n,o){return new e(n).and(o)},t.prototype.or=function t(e){return"number"==typeof e?this.orS(e):this.orM(e)},t.prototype.orS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)|e);return this},t.prototype.orM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)|n.get(t,e));return this},t.or=function t(n,o){return new e(n).or(o)},t.prototype.xor=function t(e){return"number"==typeof e?this.xorS(e):this.xorM(e)},t.prototype.xorS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)^e);return this},t.prototype.xorM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)^n.get(t,e));return this},t.xor=function t(n,o){return new e(n).xor(o)},t.prototype.leftShift=function t(e){return"number"==typeof e?this.leftShiftS(e):this.leftShiftM(e)},t.prototype.leftShiftS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)<<e);return this},t.prototype.leftShiftM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)<<n.get(t,e));return this},t.leftShift=function t(n,o){return new e(n).leftShift(o)},t.prototype.signPropagatingRightShift=function t(e){return"number"==typeof e?this.signPropagatingRightShiftS(e):this.signPropagatingRightShiftM(e)},t.prototype.signPropagatingRightShiftS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)>>e);return this},t.prototype.signPropagatingRightShiftM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)>>n.get(t,e));return this},t.signPropagatingRightShift=function t(n,o){return new e(n).signPropagatingRightShift(o)},t.prototype.rightShift=function t(e){return"number"==typeof e?this.rightShiftS(e):this.rightShiftM(e)},t.prototype.rightShiftS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,this.get(t,n)>>>e);return this},t.prototype.rightShiftM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,this.get(t,e)>>>n.get(t,e));return this},t.rightShift=function t(n,o){return new e(n).rightShift(o)},t.prototype.zeroFillRightShift=t.prototype.rightShift,t.prototype.zeroFillRightShiftS=t.prototype.rightShiftS,t.prototype.zeroFillRightShiftM=t.prototype.rightShiftM,t.zeroFillRightShift=t.rightShift,t.prototype.not=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,~this.get(t,e));return this},t.not=function t(n){return new e(n).not()},t.prototype.abs=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.abs(this.get(t,e)));return this},t.abs=function t(n){return new e(n).abs()},t.prototype.acos=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.acos(this.get(t,e)));return this},t.acos=function t(n){return new e(n).acos()},t.prototype.acosh=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.acosh(this.get(t,e)));return this},t.acosh=function t(n){return new e(n).acosh()},t.prototype.asin=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.asin(this.get(t,e)));return this},t.asin=function t(n){return new e(n).asin()},t.prototype.asinh=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.asinh(this.get(t,e)));return this},t.asinh=function t(n){return new e(n).asinh()},t.prototype.atan=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.atan(this.get(t,e)));return this},t.atan=function t(n){return new e(n).atan()},t.prototype.atanh=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.atanh(this.get(t,e)));return this},t.atanh=function t(n){return new e(n).atanh()},t.prototype.cbrt=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cbrt(this.get(t,e)));return this},t.cbrt=function t(n){return new e(n).cbrt()},t.prototype.ceil=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.ceil(this.get(t,e)));return this},t.ceil=function t(n){return new e(n).ceil()},t.prototype.clz32=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.clz32(this.get(t,e)));return this},t.clz32=function t(n){return new e(n).clz32()},t.prototype.cos=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cos(this.get(t,e)));return this},t.cos=function t(n){return new e(n).cos()},t.prototype.cosh=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cosh(this.get(t,e)));return this},t.cosh=function t(n){return new e(n).cosh()},t.prototype.exp=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.exp(this.get(t,e)));return this},t.exp=function t(n){return new e(n).exp()},t.prototype.expm1=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.expm1(this.get(t,e)));return this},t.expm1=function t(n){return new e(n).expm1()},t.prototype.floor=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.floor(this.get(t,e)));return this},t.floor=function t(n){return new e(n).floor()},t.prototype.fround=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.fround(this.get(t,e)));return this},t.fround=function t(n){return new e(n).fround()},t.prototype.log=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log(this.get(t,e)));return this},t.log=function t(n){return new e(n).log()},t.prototype.log1p=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log1p(this.get(t,e)));return this},t.log1p=function t(n){return new e(n).log1p()},t.prototype.log10=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log10(this.get(t,e)));return this},t.log10=function t(n){return new e(n).log10()},t.prototype.log2=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log2(this.get(t,e)));return this},t.log2=function t(n){return new e(n).log2()},t.prototype.round=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.round(this.get(t,e)));return this},t.round=function t(n){return new e(n).round()},t.prototype.sign=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sign(this.get(t,e)));return this},t.sign=function t(n){return new e(n).sign()},t.prototype.sin=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sin(this.get(t,e)));return this},t.sin=function t(n){return new e(n).sin()},t.prototype.sinh=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sinh(this.get(t,e)));return this},t.sinh=function t(n){return new e(n).sinh()},t.prototype.sqrt=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sqrt(this.get(t,e)));return this},t.sqrt=function t(n){return new e(n).sqrt()},t.prototype.tan=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.tan(this.get(t,e)));return this},t.tan=function t(n){return new e(n).tan()},t.prototype.tanh=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.tanh(this.get(t,e)));return this},t.tanh=function t(n){return new e(n).tanh()},t.prototype.trunc=function t(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.trunc(this.get(t,e)));return this},t.trunc=function t(n){return new e(n).trunc()},t.pow=function t(n,o){return new e(n).pow(o)},t.prototype.pow=function t(e){return"number"==typeof e?this.powS(e):this.powM(e)},t.prototype.powS=function t(e){for(let t=0;t<this.rows;t++)for(let n=0;n<this.columns;n++)this.set(t,n,Math.pow(this.get(t,n),e));return this},t.prototype.powM=function t(n){if(n=e.checkMatrix(n),this.rows!==n.rows||this.columns!==n.columns)throw new RangeError("Matrices dimensions must be equal");for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.pow(this.get(t,e),n.get(t,e)));return this}})(PCt,SCt);class ECt extends PCt{constructor(t){super(),this.data=t,this.rows=t.length,this.columns=t[0].length}set(t,e,n){return this.data[t][e]=n,this}get(t,e){return this.data[t][e]}}class ACt{constructor(t){let e,n,o,i,a,r,s,l,c,d=(t=ECt.checkMatrix(t)).clone(),p=d.rows,m=d.columns,u=new Float64Array(p),f=1;for(e=0;e<p;e++)u[e]=e;for(l=new Float64Array(p),n=0;n<m;n++){for(e=0;e<p;e++)l[e]=d.get(e,n);for(e=0;e<p;e++){for(c=Math.min(e,n),a=0,o=0;o<c;o++)a+=d.get(e,o)*l[o];l[e]-=a,d.set(e,n,l[e])}for(i=n,e=n+1;e<p;e++)Math.abs(l[e])>Math.abs(l[i])&&(i=e);if(i!==n){for(o=0;o<m;o++)r=d.get(i,o),d.set(i,o,d.get(n,o)),d.set(n,o,r);s=u[i],u[i]=u[n],u[n]=s,f=-f}if(n<p&&0!==d.get(n,n))for(e=n+1;e<p;e++)d.set(e,n,d.get(e,n)/d.get(n,n))}this.LU=d,this.pivotVector=u,this.pivotSign=f}isSingular(){let t=this.LU,e=t.columns;for(let n=0;n<e;n++)if(0===t.get(n,n))return!0;return!1}solve(t){t=SCt.checkMatrix(t);let e=this.LU;if(e.rows!==t.rows)throw new Error("Invalid matrix dimensions");if(this.isSingular())throw new Error("LU matrix is singular");let n,o,i,a=t.columns,r=t.subMatrixRow(this.pivotVector,0,a-1),s=e.columns;for(i=0;i<s;i++)for(n=i+1;n<s;n++)for(o=0;o<a;o++)r.set(n,o,r.get(n,o)-r.get(i,o)*e.get(n,i));for(i=s-1;i>=0;i--){for(o=0;o<a;o++)r.set(i,o,r.get(i,o)/e.get(i,i));for(n=0;n<i;n++)for(o=0;o<a;o++)r.set(n,o,r.get(n,o)-r.get(i,o)*e.get(n,i))}return r}get determinant(){let t=this.LU;if(!t.isSquare())throw new Error("Matrix must be square");let e=this.pivotSign,n=t.columns;for(let o=0;o<n;o++)e*=t.get(o,o);return e}get lowerTriangularMatrix(){let t=this.LU,e=t.rows,n=t.columns,o=new SCt(e,n);for(let i=0;i<e;i++)for(let e=0;e<n;e++)o.set(i,e,i>e?t.get(i,e):i===e?1:0);return o}get upperTriangularMatrix(){let t=this.LU,e=t.rows,n=t.columns,o=new SCt(e,n);for(let i=0;i<e;i++)for(let e=0;e<n;e++)o.set(i,e,i<=e?t.get(i,e):0);return o}get pivotPermutationVector(){return Array.from(this.pivotVector)}}function RCt(t,e){let n=0;return Math.abs(t)>Math.abs(e)?(n=e/t,Math.abs(t)*Math.sqrt(1+n*n)):0!==e?(n=t/e,Math.abs(e)*Math.sqrt(1+n*n)):0}class TCt{constructor(t){let e,n,o,i,a=(t=ECt.checkMatrix(t)).clone(),r=t.rows,s=t.columns,l=new Float64Array(s);for(o=0;o<s;o++){let t=0;for(e=o;e<r;e++)t=RCt(t,a.get(e,o));if(0!==t){for(a.get(o,o)<0&&(t=-t),e=o;e<r;e++)a.set(e,o,a.get(e,o)/t);for(a.set(o,o,a.get(o,o)+1),n=o+1;n<s;n++){for(i=0,e=o;e<r;e++)i+=a.get(e,o)*a.get(e,n);for(i=-i/a.get(o,o),e=o;e<r;e++)a.set(e,n,a.get(e,n)+i*a.get(e,o))}}l[o]=-t}this.QR=a,this.Rdiag=l}solve(t){t=SCt.checkMatrix(t);let e=this.QR,n=e.rows;if(t.rows!==n)throw new Error("Matrix row dimensions must agree");if(!this.isFullRank())throw new Error("Matrix is rank deficient");let o,i,a,r,s=t.columns,l=t.clone(),c=e.columns;for(a=0;a<c;a++)for(i=0;i<s;i++){for(r=0,o=a;o<n;o++)r+=e.get(o,a)*l.get(o,i);for(r=-r/e.get(a,a),o=a;o<n;o++)l.set(o,i,l.get(o,i)+r*e.get(o,a))}for(a=c-1;a>=0;a--){for(i=0;i<s;i++)l.set(a,i,l.get(a,i)/this.Rdiag[a]);for(o=0;o<a;o++)for(i=0;i<s;i++)l.set(o,i,l.get(o,i)-l.get(a,i)*e.get(o,a))}return l.subMatrix(0,c-1,0,s-1)}isFullRank(){let t=this.QR.columns;for(let e=0;e<t;e++)if(0===this.Rdiag[e])return!1;return!0}get upperTriangularMatrix(){let t,e,n=this.QR,o=n.columns,i=new SCt(o,o);for(t=0;t<o;t++)for(e=0;e<o;e++)i.set(t,e,t<e?n.get(t,e):t===e?this.Rdiag[t]:0);return i}get orthogonalMatrix(){let t,e,n,o,i=this.QR,a=i.rows,r=i.columns,s=new SCt(a,r);for(n=r-1;n>=0;n--){for(t=0;t<a;t++)s.set(t,n,0);for(s.set(n,n,1),e=n;e<r;e++)if(0!==i.get(n,n)){for(o=0,t=n;t<a;t++)o+=i.get(t,n)*s.get(t,e);for(o=-o/i.get(n,n),t=n;t<a;t++)s.set(t,e,s.get(t,e)+o*i.get(t,n))}}return s}}class NCt{constructor(t,e={}){if((t=ECt.checkMatrix(t)).isEmpty())throw new Error("Matrix must be non-empty");let n=t.rows,o=t.columns;const{computeLeftSingularVectors:i=!0,computeRightSingularVectors:a=!0,autoTranspose:r=!1}=e;let s,l=Boolean(i),c=Boolean(a),d=!1;if(n<o)if(r){s=t.transpose(),n=s.rows,o=s.columns,d=!0;let e=l;l=c,c=e}else s=t.clone(),console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose");else s=t.clone();let p=Math.min(n,o),m=Math.min(n+1,o),u=new Float64Array(m),f=new SCt(n,p),g=new SCt(o,o),h=new Float64Array(o),b=new Float64Array(n),y=new Float64Array(m);for(let t=0;t<m;t++)y[t]=t;let _=Math.min(n-1,o),C=Math.max(0,Math.min(o-2,n)),M=Math.max(_,C);for(let t=0;t<M;t++){if(t<_){u[t]=0;for(let e=t;e<n;e++)u[t]=RCt(u[t],s.get(e,t));if(0!==u[t]){s.get(t,t)<0&&(u[t]=-u[t]);for(let e=t;e<n;e++)s.set(e,t,s.get(e,t)/u[t]);s.set(t,t,s.get(t,t)+1)}u[t]=-u[t]}for(let e=t+1;e<o;e++){if(t<_&&0!==u[t]){let o=0;for(let i=t;i<n;i++)o+=s.get(i,t)*s.get(i,e);o=-o/s.get(t,t);for(let i=t;i<n;i++)s.set(i,e,s.get(i,e)+o*s.get(i,t))}h[e]=s.get(t,e)}if(l&&t<_)for(let e=t;e<n;e++)f.set(e,t,s.get(e,t));if(t<C){h[t]=0;for(let e=t+1;e<o;e++)h[t]=RCt(h[t],h[e]);if(0!==h[t]){h[t+1]<0&&(h[t]=0-h[t]);for(let e=t+1;e<o;e++)h[e]/=h[t];h[t+1]+=1}if(h[t]=-h[t],t+1<n&&0!==h[t]){for(let e=t+1;e<n;e++)b[e]=0;for(let e=t+1;e<n;e++)for(let n=t+1;n<o;n++)b[e]+=h[n]*s.get(e,n);for(let e=t+1;e<o;e++){let o=-h[e]/h[t+1];for(let i=t+1;i<n;i++)s.set(i,e,s.get(i,e)+o*b[i])}}if(c)for(let e=t+1;e<o;e++)g.set(e,t,h[e])}}let v=Math.min(o,n+1);if(_<o&&(u[_]=s.get(_,_)),n<v&&(u[v-1]=0),C+1<v&&(h[C]=s.get(C,v-1)),h[v-1]=0,l){for(let t=_;t<p;t++){for(let e=0;e<n;e++)f.set(e,t,0);f.set(t,t,1)}for(let t=_-1;t>=0;t--)if(0!==u[t]){for(let e=t+1;e<p;e++){let o=0;for(let i=t;i<n;i++)o+=f.get(i,t)*f.get(i,e);o=-o/f.get(t,t);for(let i=t;i<n;i++)f.set(i,e,f.get(i,e)+o*f.get(i,t))}for(let e=t;e<n;e++)f.set(e,t,-f.get(e,t));f.set(t,t,1+f.get(t,t));for(let e=0;e<t-1;e++)f.set(e,t,0)}else{for(let e=0;e<n;e++)f.set(e,t,0);f.set(t,t,1)}}if(c)for(let t=o-1;t>=0;t--){if(t<C&&0!==h[t])for(let e=t+1;e<o;e++){let n=0;for(let i=t+1;i<o;i++)n+=g.get(i,t)*g.get(i,e);n=-n/g.get(t+1,t);for(let i=t+1;i<o;i++)g.set(i,e,g.get(i,e)+n*g.get(i,t))}for(let e=0;e<o;e++)g.set(e,t,0);g.set(t,t,1)}let x=v-1,O=Number.EPSILON;for(;v>0;){let t,e;for(t=v-2;t>=-1&&-1!==t;t--){const e=Number.MIN_VALUE+O*Math.abs(u[t]+Math.abs(u[t+1]));if(Math.abs(h[t])<=e||Number.isNaN(h[t])){h[t]=0;break}}if(t===v-2)e=4;else{let n;for(n=v-1;n>=t&&n!==t;n--){let e=(n!==v?Math.abs(h[n]):0)+(n!==t+1?Math.abs(h[n-1]):0);if(Math.abs(u[n])<=O*e){u[n]=0;break}}n===t?e=3:n===v-1?e=1:(e=2,t=n)}switch(t++,e){case 1:{let e=h[v-2];h[v-2]=0;for(let n=v-2;n>=t;n--){let i=RCt(u[n],e),a=u[n]/i,r=e/i;if(u[n]=i,n!==t&&(e=-r*h[n-1],h[n-1]=a*h[n-1]),c)for(let t=0;t<o;t++)i=a*g.get(t,n)+r*g.get(t,v-1),g.set(t,v-1,-r*g.get(t,n)+a*g.get(t,v-1)),g.set(t,n,i)}break}case 2:{let e=h[t-1];h[t-1]=0;for(let o=t;o<v;o++){let i=RCt(u[o],e),a=u[o]/i,r=e/i;if(u[o]=i,e=-r*h[o],h[o]=a*h[o],l)for(let e=0;e<n;e++)i=a*f.get(e,o)+r*f.get(e,t-1),f.set(e,t-1,-r*f.get(e,o)+a*f.get(e,t-1)),f.set(e,o,i)}break}case 3:{const e=Math.max(Math.abs(u[v-1]),Math.abs(u[v-2]),Math.abs(h[v-2]),Math.abs(u[t]),Math.abs(h[t])),i=u[v-1]/e,a=u[v-2]/e,r=h[v-2]/e,s=u[t]/e,d=h[t]/e,p=((a+i)*(a-i)+r*r)/2,m=i*r*(i*r);let b=0;0===p&&0===m||(b=p<0?0-Math.sqrt(p*p+m):Math.sqrt(p*p+m),b=m/(p+b));let y=(s+i)*(s-i)+b,_=s*d;for(let e=t;e<v-1;e++){let i=RCt(y,_);0===i&&(i=Number.MIN_VALUE);let a=y/i,r=_/i;if(e!==t&&(h[e-1]=i),y=a*u[e]+r*h[e],h[e]=a*h[e]-r*u[e],_=r*u[e+1],u[e+1]=a*u[e+1],c)for(let t=0;t<o;t++)i=a*g.get(t,e)+r*g.get(t,e+1),g.set(t,e+1,-r*g.get(t,e)+a*g.get(t,e+1)),g.set(t,e,i);if(i=RCt(y,_),0===i&&(i=Number.MIN_VALUE),a=y/i,r=_/i,u[e]=i,y=a*h[e]+r*u[e+1],u[e+1]=-r*h[e]+a*u[e+1],_=r*h[e+1],h[e+1]=a*h[e+1],l&&e<n-1)for(let t=0;t<n;t++)i=a*f.get(t,e)+r*f.get(t,e+1),f.set(t,e+1,-r*f.get(t,e)+a*f.get(t,e+1)),f.set(t,e,i)}h[v-2]=y;break}case 4:if(u[t]<=0&&(u[t]=u[t]<0?-u[t]:0,c))for(let e=0;e<=x;e++)g.set(e,t,-g.get(e,t));for(;t<x&&!(u[t]>=u[t+1]);){let e=u[t];if(u[t]=u[t+1],u[t+1]=e,c&&t<o-1)for(let n=0;n<o;n++)e=g.get(n,t+1),g.set(n,t+1,g.get(n,t)),g.set(n,t,e);if(l&&t<n-1)for(let o=0;o<n;o++)e=f.get(o,t+1),f.set(o,t+1,f.get(o,t)),f.set(o,t,e);t++}v--}}if(d){let t=g;g=f,f=t}this.m=n,this.n=o,this.s=u,this.U=f,this.V=g}solve(t){let e=t,n=this.threshold,o=this.s.length,i=SCt.zeros(o,o);for(let t=0;t<o;t++)Math.abs(this.s[t])<=n?i.set(t,t,0):i.set(t,t,1/this.s[t]);let a=this.U,r=this.rightSingularVectors,s=r.mmul(i),l=r.rows,c=a.rows,d=SCt.zeros(l,c);for(let t=0;t<l;t++)for(let e=0;e<c;e++){let n=0;for(let i=0;i<o;i++)n+=s.get(t,i)*a.get(e,i);d.set(t,e,n)}return d.mmul(e)}solveForDiagonal(t){return this.solve(SCt.diag(t))}inverse(){let t=this.V,e=this.threshold,n=t.rows,o=t.columns,i=new SCt(n,this.s.length);for(let a=0;a<n;a++)for(let n=0;n<o;n++)Math.abs(this.s[n])>e&&i.set(a,n,t.get(a,n)/this.s[n]);let a=this.U,r=a.rows,s=a.columns,l=new SCt(n,r);for(let t=0;t<n;t++)for(let e=0;e<r;e++){let n=0;for(let o=0;o<s;o++)n+=i.get(t,o)*a.get(e,o);l.set(t,e,n)}return l}get condition(){return this.s[0]/this.s[Math.min(this.m,this.n)-1]}get norm2(){return this.s[0]}get rank(){let t=Math.max(this.m,this.n)*this.s[0]*Number.EPSILON,e=0,n=this.s;for(let o=0,i=n.length;o<i;o++)n[o]>t&&e++;return e}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return SCt.diag(this.s)}}function ICt(t,e,n,o,i){let a=SCt.eye(e.length,e.length,n*o*o);const r=i(e);let s=new Float64Array(t.x.length);for(let e=0;e<t.x.length;e++)s[e]=r(t.x[e]);let l=(function c(t,e,n,o,i){const a=n.length,r=t.x.length;let s=new Array(a);for(let l=0;l<a;l++){s[l]=new Array(r);let a=n.slice();a[l]+=o;let c=i(a);for(let n=0;n<r;n++)s[l][n]=e[n]-c(t.x[n])}return new SCt(s)})(t,s,e,o,i),d=(function p(t,e){const n=t.x.length;let o=new Array(n);for(let i=0;i<n;i++)o[i]=[t.y[i]-e[i]];return new SCt(o)})(t,s),m=(function u(t,e=!1){return t=ECt.checkMatrix(t),e?new NCt(t).inverse():(function n(t,e,o=!1){return t=ECt.checkMatrix(t),e=ECt.checkMatrix(e),o?new NCt(t).solve(e):t.isSquare()?new ACt(t).solve(e):new TCt(t).solve(e)})(t,SCt.eye(t.rows))})(a.add(l.mmul(l.transpose())));return(e=(e=new SCt([e])).sub(m.mmul(l).mmul(d).mul(o).transpose())).to1DArray()}var zCt=qx(Object.freeze({__proto__:null,default:function HCt(t,e,n={}){let{maxIterations:o=100,gradientDifference:i=.1,damping:a=0,errorTolerance:r=.01,minValues:s,maxValues:l,initialValues:c}=n;if(a<=0)throw new Error("The damping option must be a positive number");if(!t.x||!t.y)throw new Error("The data parameter must have x and y elements");if(!iCt(t.x)||t.x.length<2||!iCt(t.y)||t.y.length<2)throw new Error("The data parameter elements must be an array with more than 2 points");if(t.x.length!==t.y.length)throw new Error("The data parameter elements must have the same size");let d=c||new Array(e.length).fill(1),p=d.length;if(l=l||new Array(p).fill(Number.MAX_SAFE_INTEGER),s=s||new Array(p).fill(Number.MIN_SAFE_INTEGER),l.length!==s.length)throw new Error("minValues and maxValues must be the same size");if(!iCt(d))throw new Error("initialValues must be an array");let m,u=aCt(t,d,e),f=u<=r;for(m=0;m<o&&!f;m++){d=ICt(t,d,a,i,e);for(let t=0;t<p;t++)d[t]=Math.min(Math.max(s[t],d[t]),l[t]);if(u=aCt(t,d,e),isNaN(u))break;f=u<=r}return{parameterValues:d,parameterError:u,iterations:m}}})),FCt=Yx((function(t,e){var n=Gx&&Gx.__awaiter||function(t,e,n,o){return new(n||(n=Promise))((function(i,a){function r(t){try{l(o.next(t))}catch(t){a(t)}}function s(t){try{l(o.throw(t))}catch(t){a(t)}}function l(t){t.done?i(t.value):new n((function(e){e(t.value)})).then(r,s)}l((o=o.apply(t,e||[])).next())}))},o=Gx&&Gx.__generator||function(t,e){var n,o,i,a,r={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return(function l(a){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,o&&(i=2&a[0]?o.return:a[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,a[1])).done)return i;switch(o=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return r.label++,{value:a[1],done:!1};case 5:r.label++,o=a[1],a=[0];continue;case 7:a=r.ops.pop(),r.trys.pop();continue;default:if(!((i=(i=r.trys).length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){r.label=a[1];break}if(6===a[0]&&r.label<i[1]){r.label=i[1],i=a;break}if(i&&r.label<i[2]){r.label=i[2],r.ops.push(a);break}i[2]&&r.ops.pop(),r.trys.pop();continue}a=e.call(t,r)}catch(t){a=[6,t],o=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}})([a,s])}}},i=Gx&&Gx.__read||function(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,i,a=n.call(t),r=[];try{for(;(void 0===e||e-- >0)&&!(o=a.next()).done;)r.push(o.value)}catch(t){i={error:t}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(i)throw i.error}}return r},a=Gx&&Gx.__spread||function(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(i(arguments[e]));return t},r=Gx&&Gx.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e},s=Gx&&Gx.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var l=r($_t),c=r(tCt),d=r(nCt),p=r(eCt),m=r(Q_t),u=s(zCt),f=1e-5,g=.001,h=(function(){function t(t){void 0===t&&(t={});var e=this;this.learningRate=1,this.localConnectivity=1,this.minDist=.1,this.nComponents=2,this.nEpochs=0,this.nNeighbors=15,this.negativeSampleRate=5,this.random=Math.random,this.repulsionStrength=1,this.setOpMixRatio=1,this.spread=1,this.transformQueueSize=4,this.targetMetric="categorical",this.targetWeight=.5,this.targetNNeighbors=this.nNeighbors,this.distanceFn=b,this.isInitialized=!1,this.rpForest=[],this.embedding=[],this.optimizationState=new _;var n=function(n){void 0!==t[n]&&(e[n]=t[n])};n("distanceFn"),n("learningRate"),n("localConnectivity"),n("minDist"),n("nComponents"),n("nEpochs"),n("nNeighbors"),n("negativeSampleRate"),n("random"),n("repulsionStrength"),n("setOpMixRatio"),n("spread"),n("transformQueueSize")}return t.prototype.fit=function(t){return this.initializeFit(t),this.optimizeLayout(),this.embedding},t.prototype.fitAsync=function(t,e){return void 0===e&&(e=function(){return!0}),n(this,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return this.initializeFit(t),[4,this.optimizeLayoutAsync(e)];case 1:return n.sent(),[2,this.embedding]}}))}))},t.prototype.setSupervisedProjection=function(t,e){void 0===e&&(e={}),this.Y=t,this.targetMetric=e.targetMetric||this.targetMetric,this.targetWeight=e.targetWeight||this.targetWeight,this.targetNNeighbors=e.targetNNeighbors||this.targetNNeighbors},t.prototype.setPrecomputedKNN=function(t,e){this.knnIndices=t,this.knnDistances=e},t.prototype.initializeFit=function(t){if(t.length<=this.nNeighbors)throw new Error("Not enough data points ("+t.length+") to create nNeighbors: "+this.nNeighbors+".  Add more data points or adjust the configuration.");if(this.X===t&&this.isInitialized)return this.getNEpochs();if(this.X=t,!this.knnIndices&&!this.knnDistances){var e=this.nearestNeighbors(t);this.knnIndices=e.knnIndices,this.knnDistances=e.knnDistances}this.graph=this.fuzzySimplicialSet(t,this.nNeighbors,this.setOpMixRatio),this.makeSearchFns(),this.searchGraph=this.makeSearchGraph(t),this.processGraphForSupervisedProjection();var n=this.initializeSimplicialSetEmbedding(),o=n.tail,i=n.epochsPerSample;return this.optimizationState.head=n.head,this.optimizationState.tail=o,this.optimizationState.epochsPerSample=i,this.initializeOptimization(),this.prepareForOptimizationLoop(),this.isInitialized=!0,this.getNEpochs()},t.prototype.makeSearchFns=function(){var t=d.makeInitializations(this.distanceFn),e=t.initFromRandom;this.initFromTree=t.initFromTree,this.initFromRandom=e,this.search=d.makeInitializedNNSearch(this.distanceFn)},t.prototype.makeSearchGraph=function(t){for(var e=this.knnIndices,n=this.knnDistances,o=new c.SparseMatrix([],[],[],[t.length,t.length]),i=0;i<e.length;i++)for(var a=e[i],r=n[i],s=0;s<a.length;s++){var l=r[s];l>0&&o.set(i,a[s],l)}var d=c.transpose(o);return c.maximum(o,d)},t.prototype.transform=function(t){var e=this,n=this.X;if(void 0===n||0===n.length)throw new Error("No data has been fit.");var o=Math.floor(this.nNeighbors*this.transformQueueSize);o=Math.min(n.length,o);var i=d.initializeSearch(this.rpForest,n,t,o,this.initFromRandom,this.initFromTree,this.random),a=this.search(n,this.searchGraph,i,t),r=l.deheapSort(a),s=r.indices,p=r.weights;s=s.map((function(t){return t.slice(0,e.nNeighbors)})),p=p.map((function(t){return t.slice(0,e.nNeighbors)}));var u=Math.max(0,this.localConnectivity-1),f=this.smoothKNNDistance(p,this.nNeighbors,u),g=this.computeMembershipStrengths(s,p,f.sigmas,f.rhos),h=new c.SparseMatrix(g.rows,g.cols,g.vals,[t.length,n.length]),b=c.normalize(h,"l1"),y=c.getCSR(b),_=t.length,C=P(m.reshape2d(y.indices,_,this.nNeighbors),m.reshape2d(y.values,_,this.nNeighbors),this.embedding),M=this.nEpochs?this.nEpochs/3:h.nRows<=1e4?100:30,v=h.getValues().reduce((function(t,e){return e>t?e:t}),0);h=h.map((function(t){return t<v/M?0:t})),h=c.eliminateZeros(h);var x=this.makeEpochsPerSample(h.getValues(),M),O=h.getRows(),w=h.getCols();return this.assignOptimizationStateParameters({headEmbedding:C,tailEmbedding:this.embedding,head:O,tail:w,currentEpoch:0,nEpochs:M,nVertices:h.getDims()[1],epochsPerSample:x}),this.prepareForOptimizationLoop(),this.optimizeLayout()},t.prototype.processGraphForSupervisedProjection=function(){var t=this.Y;if(t){if(t.length!==this.X.length)throw new Error("Length of X and y must be equal");"categorical"===this.targetMetric&&(this.graph=this.categoricalSimplicialSetIntersection(this.graph,t,this.targetWeight<1?1/(1-this.targetWeight)*2.5:1e12))}},t.prototype.step=function(){var t=this.optimizationState.currentEpoch;return t<this.getNEpochs()&&this.optimizeLayoutStep(t),this.optimizationState.currentEpoch},t.prototype.getEmbedding=function(){return this.embedding},t.prototype.nearestNeighbors=function(t){var e,n=this.nNeighbors,o=d.makeNNDescent(this.distanceFn,this.random),i=5+Math.floor(.5==(e=Math.pow(t.length,.5)/20)?0:Math.round(e)),a=Math.max(5,Math.floor(Math.round((function(t){return Math.log(t)/Math.log(2)})(t.length))));this.rpForest=p.makeForest(t,n,i,this.random);var r=o(t,p.makeLeafArray(this.rpForest),n,a);return{knnIndices:r.indices,knnDistances:r.weights}},t.prototype.fuzzySimplicialSet=function(t,e,n){void 0===n&&(n=1);var o=this,i=o.knnIndices,a=void 0===i?[]:i,r=o.knnDistances,s=void 0===r?[]:r,l=this.smoothKNNDistance(s,e,o.localConnectivity),d=this.computeMembershipStrengths(a,s,l.sigmas,l.rhos),p=new c.SparseMatrix(d.rows,d.cols,d.vals,[t.length,t.length]),m=c.transpose(p),u=c.pairwiseMultiply(p,m),f=c.subtract(c.add(p,m),u),g=c.multiplyScalar(f,n),h=c.multiplyScalar(u,1-n);return c.add(g,h)},t.prototype.categoricalSimplicialSetIntersection=function(t,e,n,o){void 0===o&&(o=1);var i=x(t,e,o,n);return O(i=c.eliminateZeros(i))},t.prototype.smoothKNNDistance=function(t,e,n,o,i){void 0===n&&(n=1),void 0===o&&(o=64),void 0===i&&(i=1);for(var a=Math.log(e)/Math.log(2)*i,r=m.zeros(t.length),s=m.zeros(t.length),l=0;l<t.length;l++){var c=0,d=1/0,p=1,u=t[l],h=u.filter((function(t){return t>0}));if(h.length>=n){var b=Math.floor(n),y=n-b;b>0?(r[l]=h[b-1],y>f&&(r[l]+=y*(h[b]-h[b-1]))):r[l]=y*h[0]}else h.length>0&&(r[l]=m.max(h));for(var _=0;_<o;_++){for(var C=0,M=1;M<t[l].length;M++){var v=t[l][M]-r[l];C+=v>0?Math.exp(-v/p):1}if(Math.abs(C-a)<f)break;C>a?p=(c+(d=p))/2:(c=p,d===1/0?p*=2:p=(c+d)/2)}if(s[l]=p,r[l]>0){var x=m.mean(u);s[l]<g*x&&(s[l]=g*x)}else{var O=m.mean(t.map(m.mean));s[l]<g*O&&(s[l]=g*O)}}return{sigmas:s,rhos:r}},t.prototype.computeMembershipStrengths=function(t,e,n,o){for(var i=t.length,a=t[0].length,r=m.zeros(i*a),s=m.zeros(i*a),l=m.zeros(i*a),c=0;c<i;c++)for(var d=0;d<a;d++){var p=0;-1!==t[c][d]&&(p=t[c][d]===c?0:e[c][d]-o[c]<=0?1:Math.exp(-(e[c][d]-o[c])/n[c]),r[c*a+d]=c,s[c*a+d]=t[c][d],l[c*a+d]=p)}return{rows:r,cols:s,vals:l}},t.prototype.initializeSimplicialSetEmbedding=function(){for(var t=this,e=this.getNEpochs(),n=this.nComponents,o=this.graph.getValues(),i=0,a=0;a<o.length;a++)i<o[a]&&(i=o[a]);var r=this.graph.map((function(t){return t<i/e?0:t}));this.embedding=m.zeros(r.nRows).map((function(){return m.zeros(n).map((function(){return 20*m.tauRand(t.random)-10}))}));var s=[],l=[],c=[],d=r.getAll();for(a=0;a<d.length;a++){var p=d[a];p.value&&(s.push(p.value),c.push(p.row),l.push(p.col))}return{head:l,tail:c,epochsPerSample:this.makeEpochsPerSample(s,e)}},t.prototype.makeEpochsPerSample=function(t,e){var n=m.filled(t.length,-1),o=m.max(t),i=t.map((function(t){return t/o*e}));return i.forEach((function(t,o){t>0&&(n[o]=e/i[o])})),n},t.prototype.assignOptimizationStateParameters=function(t){Object.assign(this.optimizationState,t)},t.prototype.prepareForOptimizationLoop=function(){var t=this,e=t.repulsionStrength,n=t.learningRate,o=t.negativeSampleRate,i=this.optimizationState,r=i.epochsPerSample,s=i.headEmbedding,l=s[0].length,c=s.length===i.tailEmbedding.length,d=r.map((function(t){return t/o})),p=a(d),m=a(r);this.assignOptimizationStateParameters({epochOfNextSample:m,epochOfNextNegativeSample:p,epochsPerNegativeSample:d,moveOther:c,initialAlpha:n,alpha:n,gamma:e,dim:l})},t.prototype.initializeOptimization=function(){var t=this.embedding,e=this.embedding,n=this.optimizationState,o=n.head,i=n.tail,a=n.epochsPerSample,r=this.getNEpochs(),s=this.graph.nCols,l=v(this.spread,this.minDist);this.assignOptimizationStateParameters({headEmbedding:t,tailEmbedding:e,head:o,tail:i,epochsPerSample:a,a:l.a,b:l.b,nEpochs:r,nVertices:s})},t.prototype.optimizeLayoutStep=function(t){for(var e=this.optimizationState,n=e.head,o=e.tail,i=e.headEmbedding,a=e.tailEmbedding,r=e.epochsPerSample,s=e.epochOfNextSample,l=e.epochOfNextNegativeSample,c=e.epochsPerNegativeSample,d=e.moveOther,p=e.initialAlpha,u=e.alpha,f=e.gamma,g=e.a,h=e.b,b=e.dim,y=e.nEpochs,_=e.nVertices,v=0;v<r.length;v++)if(!(s[v]>t)){var x=n[v],O=i[x],P=a[o[v]],w=M(O,P),k=0;w>0&&(k=-2*g*h*Math.pow(w,h-1),k/=g*Math.pow(w,h)+1);for(var S=0;S<b;S++){var D=C(k*(O[S]-P[S]),4);O[S]+=D*u,d&&(P[S]+=-D*u)}s[v]+=r[v];for(var E=Math.floor((t-l[v])/c[v]),A=0;A<E;A++){var R=m.tauRandInt(_,this.random),T=a[R],N=M(O,T),I=0;if(N>0)I=2*f*h,I/=(.001+N)*(g*Math.pow(N,h)+1);else if(x===R)continue;for(S=0;S<b;S++)D=4,I>0&&(D=C(I*(O[S]-T[S]),4)),O[S]+=D*u}l[v]+=E*c[v]}return e.alpha=p*(1-t/y),e.currentEpoch+=1,i},t.prototype.optimizeLayoutAsync=function(t){var e=this;return void 0===t&&(t=function(){return!0}),new Promise((function(i,a){var r=function(){return n(e,void 0,void 0,(function(){var e,n,s,l,c;return o(this,(function(o){try{if(n=(e=this.optimizationState).nEpochs,this.embedding=this.optimizeLayoutStep(e.currentEpoch),l=!1===t(s=this.optimizationState.currentEpoch),c=s===n,l||c)return[2,i(c)];setTimeout((function(){return r()}),0)}catch(t){a(t)}return[2]}))}))};setTimeout((function(){return r()}),0)}))},t.prototype.optimizeLayout=function(t){void 0===t&&(t=function(){return!0});for(var e=!1,n=[];!e;){var o=this.optimizationState,i=o.nEpochs;n=this.optimizeLayoutStep(o.currentEpoch);var a=this.optimizationState.currentEpoch,r=!1===t(a);e=a===i||r}return n},t.prototype.getNEpochs=function(){if(this.nEpochs>0)return this.nEpochs;var t=this.graph.nRows;return t<=2500?500:t<=5e3?400:t<=7500?300:200},t})();function b(t,e){for(var n=0,o=0;o<t.length;o++)n+=Math.pow(t[o]-e[o],2);return Math.sqrt(n)}e.UMAP=h,e.euclidean=b,e.cosine=function y(t,e){for(var n=0,o=0,i=0,a=0;a<t.length;a++)n+=t[a]*e[a],o+=Math.pow(t[a],2),i+=Math.pow(e[a],2);return 0===o&&0===i?0:0===o||0===i?1:1-n/Math.sqrt(o*i)};var _=function _(){this.currentEpoch=0,this.headEmbedding=[],this.tailEmbedding=[],this.head=[],this.tail=[],this.epochsPerSample=[],this.epochOfNextSample=[],this.epochOfNextNegativeSample=[],this.epochsPerNegativeSample=[],this.moveOther=!0,this.initialAlpha=1,this.alpha=1,this.gamma=1,this.a=1.5769434603113077,this.b=.8950608779109733,this.dim=2,this.nEpochs=500,this.nVertices=0};function C(t,e){return t>e?e:t<-e?-e:t}function M(t,e){for(var n=0,o=0;o<t.length;o++)n+=Math.pow(t[o]-e[o],2);return n}function v(t,e){var n=m.linear(0,3*t,300).map((function(t){return t<e?1:t})),o=m.zeros(n.length).map((function(o,i){return n[i]>=e?Math.exp(-(n[i]-e)/t):o})),a=u.default({x:n,y:o},(function(t){var e=i(t,2),n=e[0],o=e[1];return function(t){return 1/(1+n*Math.pow(t,2*o))}}),{damping:1.5,initialValues:[.5,.5],gradientDifference:.1,maxIterations:100,errorTolerance:.01}).parameterValues,r=i(a,2);return{a:r[0],b:r[1]}}function x(t,e,n,o){return void 0===n&&(n=1),void 0===o&&(o=5),t.map((function(t,i,a){return-1===e[i]||-1===e[a]?t*Math.exp(-n):e[i]!==e[a]?t*Math.exp(-o):t}))}function O(t){t=c.normalize(t,"max");var e=c.transpose(t),n=c.pairwiseMultiply(e,t);return t=c.add(t,c.subtract(e,n)),c.eliminateZeros(t)}function P(t,e,n){for(var o=m.zeros(t.length).map((function(t){return m.zeros(n[0].length)})),i=0;i<t.length;i++)for(var a=0;a<t[0].length;a++)for(var r=0;r<n[0].length;r++)o[i][r]+=e[i][a]*n[t[i][a]][r];return o}e.findABParams=v,e.fastIntersection=x,e.resetLocalConnectivity=O,e.initTransform=P}));function LCt(t){let e,n,o=t.length;for(;o;)n=Math.floor(Math.random()*o--),e=t[o],t[o]=t[n],t[n]=e;return t}function BCt(t,e){return`${e}/${t}`}Yx((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.UMAP=FCt.UMAP}));class VCt{constructor(t){this.http=t,this.httpPathPrefix="data/plugin/npmi"}fetchData(t){return Lt(this.fetchAnnotations(t),this.fetchMetrics(t),this.fetchValues(t),this.fetchEmbeddings(t)).pipe(ht((([t,e,n,o])=>{const i={},a={};let r,s=0;for(const r of Object.keys(t))for(const l in t[r]){const c=t[r][l];Object.keys(o).length&&!a[c]&&o[r][l]&&o[r][l].some((t=>0!==t))&&(a[c]={vector:o[r][l],index:s,name:c},s+=1);const d=new Map;for(const t in e[r]){const o=e[r][t],i=Vbt(o);let a=d.get(i);a||(a={nPMIValue:null,countValue:null,annotation:c,metric:i,run:r},d.set(i,a)),Fbt(o)?a.countValue=n[r][l][t]:Lbt(o)&&(a.nPMIValue=n[r][l][t])}i[c]=[...i[c]?i[c]:[],...d.values()]}return Object.keys(a).length&&(r=(function l(t){const e=Object.keys(t);return{points:t,pointKeys:e,shuffledDataIndices:LCt((n=e.length,[...new Array(n)].map(((t,e)=>e)))),hasUmapRun:!1};var n})(a)),{annotationData:i,metrics:e,embeddingDataSet:r}})),re((t=>t instanceof GD&&400<=t.status&&t.status<500?Z({annotationData:{},metrics:{},embeddingDataSet:void 0}):X(t))))}fetchAnnotations(t){return Lt(t.map((t=>this.http.get(`/experiment/${t}/${this.httpPathPrefix}/annotations`).pipe(ht((e=>(function n(t,e){return Object.fromEntries(Object.entries(t).map((([t,n])=>[BCt(t,e),n])))})(e,t))))))).pipe(ht((t=>{let e={};for(const n of t)e=Object.assign(Object.assign({},e),n);return e})))}fetchMetrics(t){return Lt(t.map((t=>this.http.get(`/experiment/${t}/${this.httpPathPrefix}/metrics`).pipe(ht((e=>(function n(t,e){return Object.fromEntries(Object.entries(t).map((([t,n])=>[BCt(t,e),n])))})(e,t))))))).pipe(ht((t=>{let e={};for(const n of t)e=Object.assign(Object.assign({},e),n);return e})))}fetchValues(t){return Lt(t.map((t=>this.http.get(`/experiment/${t}/${this.httpPathPrefix}/values`).pipe(ht((e=>(function n(t,e){return Object.fromEntries(Object.entries(t).map((([t,n])=>[BCt(t,e),n])))})(e,t))))))).pipe(ht((t=>{let e={};for(const n of t)e=Object.assign(Object.assign({},e),n);return e})))}fetchEmbeddings(t){return Lt(t.map((t=>this.http.get(`/experiment/${t}/${this.httpPathPrefix}/embeddings`).pipe(ht((e=>(function n(t,e){return Object.fromEntries(Object.entries(t).map((([t,n])=>[BCt(t,e),n])))})(e,t))))))).pipe(ht((t=>{let e={};for(const n of t)e=Object.assign(Object.assign({},e),n);return e})))}}VCt.ɵfac=function t(e){return new(e||VCt)(us(EE))},VCt.ɵprov=lo({token:VCt,factory:VCt.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(VCt,[{type:Jm}],(function(){return[{type:EE}]}),null);class jCt{}jCt.ɵfac=function t(e){return new(e||jCt)},jCt.ɵmod=Zo({type:jCt}),jCt.ɵinj=co({providers:[VCt],imports:[[AE]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(jCt,{imports:[AE]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(jCt,[{type:k_,args:[{imports:[AE],providers:[VCt]}]}],null,null);class UCt{constructor(t,e,n){this.actions$=t,this.store=e,this.dataSource=n,this.loadData$=gS((()=>Wt(this.loadPluginData()).pipe(ht((()=>({}))))),{dispatch:!1})}loadPluginData(){return this.actions$.pipe(xS(mbt),kn(this.store.select(Wht),this.store.select(xD)),Gt((([,t,e])=>t!==BE.LOADING&&null!==e)),_n((()=>this.store.dispatch(ubt()))),Tt((([,,t])=>this.dataSource.fetchData(t).pipe(_n((t=>{this.store.dispatch(fbt(t))})),ht((()=>{})),re((()=>(this.store.dispatch(gbt()),U)))))))}}UCt.ɵfac=function t(e){return new(e||UCt)(us(vS),us(Ek),us(VCt))},UCt.ɵprov=lo({token:UCt,factory:UCt.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(UCt,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:VCt}]}),null);class WCt{}WCt.ɵfac=function t(e){return new(e||WCt)},WCt.ɵmod=Zo({type:WCt}),WCt.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(WCt,{declarations:[jht],exports:[jht]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(WCt,[{type:k_,args:[{declarations:[jht],exports:[jht]}]}],null,null);class GCt{}GCt.ɵfac=function t(e){return new(e||GCt)},GCt.ɵmod=Zo({type:GCt}),GCt.ɵinj=co({imports:[[Bv,dG,AY,f1]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(GCt,{declarations:[Ybt,qbt],imports:[Bv,dG,AY,f1],exports:[qbt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(GCt,[{type:k_,args:[{declarations:[Ybt,qbt],imports:[Bv,dG,AY,f1],exports:[qbt]}]}],null,null);class YCt{}YCt.ɵfac=function t(e){return new(e||YCt)},YCt.ɵmod=Zo({type:YCt}),YCt.ɵinj=co({imports:[[Bv,VU,jU,dG,gyt,YQ]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(YCt,{declarations:[Cyt,Myt],imports:[Bv,VU,jU,dG,gyt,YQ],exports:[Myt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(YCt,[{type:k_,args:[{declarations:[Cyt,Myt],imports:[Bv,VU,jU,dG,gyt,YQ],exports:[Myt]}]}],null,null);class qCt{}qCt.ɵfac=function t(e){return new(e||qCt)},qCt.ɵmod=Zo({type:qCt}),qCt.ɵinj=co({imports:[[Bv,gyt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(qCt,{declarations:[vyt],imports:[Bv,gyt],exports:[vyt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(qCt,[{type:k_,args:[{declarations:[vyt],imports:[Bv,gyt],exports:[vyt]}]}],null,null);class ZCt{}ZCt.ɵfac=function t(e){return new(e||ZCt)},ZCt.ɵmod=Zo({type:ZCt}),ZCt.ɵinj=co({imports:[[Bv,gyt,YCt,qCt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(ZCt,{declarations:[wyt,kyt],imports:[Bv,gyt,YCt,qCt],exports:[kyt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(ZCt,[{type:k_,args:[{declarations:[wyt,kyt],imports:[Bv,gyt,YCt,qCt],exports:[kyt]}]}],null,null);class XCt{}XCt.ɵfac=function t(e){return new(e||XCt)},XCt.ɵmod=Zo({type:XCt}),XCt.ɵinj=co({imports:[[Bv,dG,zH]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(XCt,{declarations:[Kbt,Jbt],imports:[Bv,dG,zH],exports:[Jbt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(XCt,[{type:k_,args:[{declarations:[Kbt,Jbt],imports:[Bv,dG,zH],exports:[Jbt]}]}],null,null);class KCt{}KCt.ɵfac=function t(e){return new(e||KCt)},KCt.ɵmod=Zo({type:KCt}),KCt.ɵinj=co({imports:[[Bv,GCt,ZCt,XCt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(KCt,{declarations:[Syt],imports:[Bv,GCt,ZCt,XCt],exports:[Syt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(KCt,[{type:k_,args:[{declarations:[Syt],imports:[Bv,GCt,ZCt,XCt],exports:[Syt]}]}],null,null);class JCt{}JCt.ɵfac=function t(e){return new(e||JCt)},JCt.ɵmod=Zo({type:JCt}),JCt.ɵinj=co({imports:[[Bv,VU,zH,dG]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(JCt,{declarations:[Ayt,Ryt],imports:[Bv,VU,zH,dG],exports:[Ryt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(JCt,[{type:k_,args:[{declarations:[Ayt,Ryt],imports:[Bv,VU,zH,dG],exports:[Ryt]}]}],null,null);class QCt{}QCt.ɵfac=function t(e){return new(e||QCt)},QCt.ɵmod=Zo({type:QCt}),QCt.ɵinj=co({imports:[[Bv,VU,dG,zH,JCt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(QCt,{declarations:[Iyt,zyt],imports:[Bv,VU,dG,zH,JCt],exports:[zyt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(QCt,[{type:k_,args:[{declarations:[Iyt,zyt],imports:[Bv,VU,dG,zH,JCt],exports:[zyt]}]}],null,null);class $Ct{}$Ct.ɵfac=function t(e){return new(e||$Ct)},$Ct.ɵmod=Zo({type:$Ct}),$Ct.ɵinj=co({imports:[[Bv,VU,dG,AY]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo($Ct,{declarations:[t_t,e_t],imports:[Bv,VU,dG,AY],exports:[e_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db($Ct,[{type:k_,args:[{declarations:[t_t,e_t],imports:[Bv,VU,dG,AY],exports:[e_t]}]}],null,null);class tMt{}tMt.ɵfac=function t(e){return new(e||tMt)},tMt.ɵmod=Zo({type:tMt}),tMt.ɵinj=co({imports:[[Bv,VU,dG,zH,Qyt,$Ct]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(tMt,{declarations:[i_t,a_t],imports:[Bv,VU,dG,zH,Qyt,$Ct],exports:[a_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(tMt,[{type:k_,args:[{declarations:[i_t,a_t],imports:[Bv,VU,dG,zH,Qyt,$Ct],exports:[a_t]}]}],null,null);class eMt{}eMt.ɵfac=function t(e){return new(e||eMt)},eMt.ɵmod=Zo({type:eMt}),eMt.ɵinj=co({imports:[[Bv,VU,yY,dG]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(eMt,{declarations:[p_t,m_t],imports:[Bv,VU,yY,dG],exports:[m_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(eMt,[{type:k_,args:[{declarations:[p_t,m_t],imports:[Bv,VU,yY,dG],exports:[m_t]}]}],null,null);class nMt{}nMt.ɵfac=function t(e){return new(e||nMt)},nMt.ɵmod=Zo({type:nMt}),nMt.ɵinj=co({imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(nMt,{declarations:[s_t],imports:[Bv],exports:[s_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(nMt,[{type:k_,args:[{declarations:[s_t],imports:[Bv],exports:[s_t]}]}],null,null);class oMt{}oMt.ɵfac=function t(e){return new(e||oMt)},oMt.ɵmod=Zo({type:oMt}),oMt.ɵinj=co({imports:[[nMt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(oMt,{declarations:[l_t],imports:[nMt],exports:[l_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(oMt,[{type:k_,args:[{declarations:[l_t],imports:[nMt],exports:[l_t]}]}],null,null);class iMt{}iMt.ɵfac=function t(e){return new(e||iMt)},iMt.ɵmod=Zo({type:iMt}),iMt.ɵinj=co({imports:[[Bv,VU,yY,dG,zH]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(iMt,{declarations:[__t,y_t],imports:[Bv,VU,yY,dG,zH],exports:[__t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(iMt,[{type:k_,args:[{declarations:[__t,y_t],imports:[Bv,VU,yY,dG,zH],exports:[__t]}]}],null,null);class aMt{}aMt.ɵfac=function t(e){return new(e||aMt)},aMt.ɵmod=Zo({type:aMt}),aMt.ɵinj=co({imports:[[Bv,tMt,eMt,oMt,iF,iMt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(aMt,{declarations:[v_t,x_t],imports:[Bv,tMt,eMt,oMt,iF,iMt],exports:[x_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(aMt,[{type:k_,args:[{declarations:[v_t,x_t],imports:[Bv,tMt,eMt,oMt,iF,iMt],exports:[x_t]}]}],null,null);class rMt{}rMt.ɵfac=function t(e){return new(e||rMt)},rMt.ɵmod=Zo({type:rMt}),rMt.ɵinj=co({imports:[[Bv]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(rMt,{declarations:[P_t,w_t],imports:[Bv],exports:[w_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(rMt,[{type:k_,args:[{declarations:[P_t,w_t],imports:[Bv],exports:[w_t]}]}],null,null);class sMt{}sMt.ɵfac=function t(e){return new(e||sMt)},sMt.ɵmod=Zo({type:sMt}),sMt.ɵinj=co({imports:[[Bv,dG,zH,rMt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(sMt,{declarations:[E_t,A_t],imports:[Bv,dG,zH,rMt],exports:[A_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(sMt,[{type:k_,args:[{declarations:[E_t,A_t],imports:[Bv,dG,zH,rMt],exports:[A_t]}]}],null,null);class lMt{}lMt.ɵfac=function t(e){return new(e||lMt)},lMt.ɵmod=Zo({type:lMt}),lMt.ɵinj=co({imports:[[Bv,VU,yY,dG,jgt,KCt,zH,QCt,aMt,sMt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(lMt,{declarations:[H_t,F_t],imports:[Bv,VU,yY,dG,jgt,KCt,zH,QCt,aMt,sMt],exports:[F_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(lMt,[{type:k_,args:[{declarations:[H_t,F_t],imports:[Bv,VU,yY,dG,jgt,KCt,zH,QCt,aMt,sMt],exports:[F_t]}]}],null,null);class cMt{}cMt.ɵfac=function t(e){return new(e||cMt)},cMt.ɵmod=Zo({type:cMt}),cMt.ɵinj=co({imports:[[Bv,VU,yY,dG,jgt,KCt,zH,aMt,sMt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(cMt,{declarations:[W_t,G_t],imports:[Bv,VU,yY,dG,jgt,KCt,zH,aMt,sMt],exports:[G_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(cMt,[{type:k_,args:[{declarations:[W_t,G_t],imports:[Bv,VU,yY,dG,jgt,KCt,zH,aMt,sMt],exports:[G_t]}]}],null,null);class dMt{}dMt.ɵfac=function t(e){return new(e||dMt)},dMt.ɵmod=Zo({type:dMt}),dMt.ɵinj=co({imports:[[Bv,WCt,lMt,cMt,jCt,iS.forFeature(Hht,Ubt),LS.forFeature([UCt]),bq.forPlugin("npmi",J_t)]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(dMt,{declarations:[K_t,J_t],imports:[Bv,WCt,lMt,cMt,jCt,oS,FS,bq],exports:[J_t]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(dMt,[{type:k_,args:[{declarations:[K_t,J_t],imports:[Bv,WCt,lMt,cMt,jCt,iS.forFeature(Hht,Ubt),LS.forFeature([UCt]),bq.forPlugin("npmi",J_t)],exports:[J_t],entryComponents:[J_t]}]}],null,null);class pMt{}pMt.ɵfac=function t(e){return new(e||pMt)},pMt.ɵcmp=Uo({type:pMt,selectors:[["text-dashboard"]],decls:1,vars:0,template:function t(e,n){1&e&&Mf(0," This is the text dashboard ")},encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(pMt,[{type:h_,args:[{selector:"text-dashboard",template:" This is the text dashboard ",changeDetection:xo.OnPush}]}],null,null);class mMt{}mMt.ɵfac=function t(e){return new(e||mMt)},mMt.ɵmod=Zo({type:mMt}),mMt.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(mMt,{declarations:[pMt],exports:[pMt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(mMt,[{type:k_,args:[{declarations:[pMt],exports:[pMt]}]}],null,null);class uMt{}uMt.ɵfac=function t(e){return new(e||uMt)},uMt.ɵprov=lo({token:uMt,factory:uMt.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(uMt,[{type:Jm}],null,null);class fMt{constructor(t){this.http=t,this.httpPathPrefix="data/plugin/text_v2"}fetchRunToTag(){return this.http.get(this.httpPathPrefix+"/tags").pipe(ht((t=>{const e=new Map;return Object.entries(t).forEach((([t,n])=>{e.set(t,n)})),e})))}fetchTextData(t,e){const n=new URLSearchParams({run:t,tag:e});return this.http.get(this.httpPathPrefix+`/text?${n.toString()}`).pipe(ht((t=>t.map((t=>({originalShape:t.original_shape,step:t.step,stringArray:t.string_array,wallTimeInMs:1e3*t.wall_time,truncated:t.truncated}))))))}}fMt.ɵfac=function t(e){return new(e||fMt)(us(EE))},fMt.ɵprov=lo({token:fMt,factory:fMt.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(fMt,[{type:Jm}],(function(){return[{type:EE}]}),null);class gMt{}gMt.ɵfac=function t(e){return new(e||gMt)},gMt.ɵmod=Zo({type:gMt}),gMt.ɵinj=co({providers:[fMt,{provide:uMt,useExisting:fMt}],imports:[[AE]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(gMt,{imports:[AE]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(gMt,[{type:k_,args:[{imports:[AE],providers:[fMt,{provide:uMt,useExisting:fMt}]}]}],null,null);const hMt=Ww("[Text] Text Plugin Loaded"),bMt=Ww("[Text] Runs To Tag Loaded",{_as:"props",_p:void 0}),yMt=Ww("[Text] Tag Group Visibility Changed",{_as:"props",_p:void 0}),_Mt=Ww("[Text] Text Data Loaded Loaded",{_as:"props",_p:void 0}),CMt="text",MMt=Fk(CMt);zk(MMt,(t=>t.runToTags));const vMt=zk(MMt,(t=>{const e=new Set,n=new Set;for(const o of t.visibleRunTags.values())for(const t of o){const o=JSON.stringify(t);e.has(o)||(e.add(o),n.add(t))}return[...n]})),xMt=zk(MMt,((t,e)=>{const n=t.data.get(e.run);return n&&n.get(e.tag)||null}));class OMt{constructor(t,e,n){this.actions$=t,this.store=e,this.dataSource=n,this.loadRunToTags$=gS((()=>this.actions$.pipe(xS(hMt),dn((()=>this.dataSource.fetchRunToTag().pipe(_n((t=>{this.store.dispatch(bMt({runToTags:t}))})),ht((()=>{}))))))),{dispatch:!1}),this.loadData$=gS((()=>Wt(this.actions$.pipe(xS(yMt),dn((({visibleTextCards:t})=>Lt(t.map((({run:t,tag:e})=>this.store.select(xMt,{run:t,tag:e}).pipe((function n(t,e){const n=arguments.length>=2;return o=>o.pipe(t?Gt(((e,n)=>t(e,n,o))):f,We(1),n?fe(e):Ee((()=>new ft)))})(),ht((n=>({run:t,tag:e,textData:n}))))))).pipe(ht((t=>t.filter((({textData:t})=>null===t)).map((({run:t,tag:e})=>({run:t,tag:e}))))))))),this.actions$.pipe(xS(WE,GE),kn(this.store.select(vMt)),ht((([,t])=>t)))).pipe(Tt((t=>Lt(t.map((t=>this.fetchTextData(t)))))))),{dispatch:!1})}fetchTextData(t){const{run:e,tag:n}=t;return this.dataSource.fetchTextData(e,n).pipe(_n((t=>{this.store.dispatch(_Mt({run:e,tag:n,stepData:t}))})),ht((()=>{})))}}OMt.ɵfac=function t(e){return new(e||OMt)(us(vS),us(Ek),us(uMt))},OMt.ɵprov=lo({token:OMt,factory:OMt.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(OMt,[{type:Jm}],(function(){return[{type:vS},{type:Ek},{type:uMt}]}),null);const PMt=mS({runToTags:new Map([["run1",["a/b","a/c"]],["run2",["a/b","a/d"]],["run3",["c","a/b"]]]),data:new Map([["run1",new Map([["a/b",[{originalShape:[3],step:0,stringArray:[["foo","bar","baz"]],wallTimeInMs:15778656e5,truncated:!1},{originalShape:[3],step:1,stringArray:[["foo","baz"]],wallTimeInMs:1577865601e3,truncated:!1}]],["a/c",[{originalShape:[3],step:0,stringArray:[["We conducted an experiment and found the following data:\n\nPounds of chocolate | Happiness\n---|---\n0 | 1\n1 | 4\n2 | 9\n3 | 16\n4 | 25\n5 | 36\n6 | 49\n7 | 64\n8 | 81\n9 | 100\n10 | 121"]],wallTimeInMs:15778656e5,truncated:!1},{originalShape:[3],step:1,stringArray:[["×","**0**","**1**","**2**","**3**","**4**","**5**"],["**0**","0","0","0","0","0","0"],["**1**","0","1","2","3","4","5"],["**2**","0","2","4","6","8","10"],["**3**","0","3","6","9","12","15"],["**4**","0","4","8","12","16","20"],["**5**","0","5","10","15","20","25"]],wallTimeInMs:1577865601e3,truncated:!1}]]])]]),visibleRunTags:new Map});function wMt(t,e){return PMt(t,e)}class kMt{}kMt.ɵfac=function t(e){return new(e||kMt)},kMt.ɵmod=Zo({type:kMt}),kMt.ɵinj=co({imports:[[Bv,mMt,bq.forPlugin("text_v2",pMt),gMt,iS.forFeature(CMt,wMt),LS.forFeature([OMt])]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(kMt,{imports:[Bv,mMt,bq,gMt,oS,FS]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(kMt,[{type:k_,args:[{imports:[Bv,mMt,bq.forPlugin("text_v2",pMt),gMt,iS.forFeature(CMt,wMt),LS.forFeature([OMt])],entryComponents:[pMt]}]}],null,null);class SMt{}var DMt;SMt.ɵfac=function t(e){return new(e||SMt)},SMt.ɵmod=Zo({type:SMt}),SMt.ɵinj=co({imports:[[BJ,zht,dMt,kMt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(SMt,{imports:[BJ,zht,dMt,kMt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(SMt,[{type:k_,args:[{imports:[BJ,zht,dMt,kMt]}]}],null,null),(function(t){t.CUSTOM_ELEMENT="CUSTOM_ELEMENT",t.IFRAME="IFRAME",t.NG_COMPONENT="NG_COMPONENT",t.NONE="NONE"})(DMt||(DMt={}));const EMt=["pluginContainer"],AMt=["ngPluginContainer"];function RMt(t,e){1&t&&Du(0)}function TMt(t,e){if(1&t&&(ku(0),Wm(1,RMt,1,0,"ng-container",9),Su()),2&t){const t=Lu(2),e=Gm(6);Jc(1),vu("ngTemplateOutlet",t.environmentFailureNotFoundTemplate?t.environmentFailureNotFoundTemplate:e)}}function NMt(t,e){1&t&&Du(0)}function IMt(t,e){if(1&t&&(ku(0),Wm(1,NMt,1,0,"ng-container",9),Su()),2&t){const t=Lu(2),e=Gm(6);Jc(1),vu("ngTemplateOutlet",t.environmentFailureUnknownTemplate?t.environmentFailureUnknownTemplate:e)}}function zMt(t,e){if(1&t&&(ku(0),Ou(1,"h3",10),Mf(2," There’s no dashboard by the name of “"),Ou(3,"code"),Mf(4),Pu(),Mf(5,"”. "),Pu(),Ou(6,"p"),Mf(7,"You can select a dashboard from the list above."),Pu(),Ou(8,"p"),Du(9,11),Pu(),Su()),2&t){const t=Lu(2),e=Gm(8);Jc(4),vf(t.activePluginId),Jc(5),vu("ngTemplateOutlet",e)}}function HMt(t,e){if(1&t&&(ku(0),Ou(1,"h3",12),Mf(2," No dashboards are active for the current data set. "),Pu(),Ou(3,"p"),Mf(4,"Probable causes:"),Pu(),Ou(5,"ul"),Ou(6,"li"),Mf(7,"You haven’t written any data to your event files."),Pu(),Ou(8,"li"),Mf(9,"TensorBoard can’t find your event files."),Pu(),Pu(),Mf(10," If you’re new to using TensorBoard, and want to find out how to add data and set up your event files, check out the "),Ou(11,"a",13),Mf(12,"README"),Pu(),Mf(13," and perhaps the "),Ou(14,"a",14),Mf(15,"TensorBoard tutorial"),Pu(),Mf(16,". "),Ou(17,"p"),Mf(18," If you think TensorBoard is configured properly, please see "),Ou(19,"a",15),Mf(20,"the section of the README devoted to missing data problems"),Pu(),Mf(21," and consider filing an issue on GitHub. "),Pu(),Ou(22,"p"),Du(23,11),Pu(),Su()),2&t){Lu(2);const t=Gm(8);Jc(23),vu("ngTemplateOutlet",t)}}function FMt(t,e){if(1&t&&(Ou(0,"div",6),Ou(1,"div",7),Wm(2,TMt,2,1,"ng-container",8),Wm(3,IMt,2,1,"ng-container",8),Wm(4,zMt,10,2,"ng-container",8),Wm(5,HMt,24,1,"ng-container",8),Pu(),Pu()),2&t){const t=Lu();vu("ngSwitch",t.pluginLoadState),Jc(2),vu("ngSwitchCase",t.PluginLoadState.ENVIRONMENT_FAILURE_NOT_FOUND),Jc(1),vu("ngSwitchCase",t.PluginLoadState.ENVIRONMENT_FAILURE_UNKNOWN),Jc(1),vu("ngSwitchCase",t.PluginLoadState.UNKNOWN_PLUGIN_ID),Jc(1),vu("ngSwitchCase",t.PluginLoadState.NO_ENABLED_PLUGINS)}}function LMt(t,e){if(1&t&&(Ou(0,"h3",16),Mf(1,"Data could not be loaded."),Pu(),Ou(2,"p"),Mf(3,"The TensorBoard server may be down or inaccessible."),Pu(),Ou(4,"p"),Du(5,11),Pu()),2&t){Lu();const t=Gm(8);Jc(5),vu("ngTemplateOutlet",t)}}function BMt(t,e){if(1&t&&(Ou(0,"p",19),Ou(1,"i"),Mf(2,"Log directory: "),Ou(3,"span"),Mf(4),Pu(),Pu(),Pu()),2&t){const t=Lu(2);Jc(4),vf(t.dataLocation)}}function VMt(t,e){if(1&t&&(Ou(0,"span",17),Mf(1),Ob(2,"date"),Pu(),Wm(3,BMt,5,1,"p",18)),2&t){const t=Lu();Jc(1),xf("Last reload: ",wb(2,2,t.lastUpdated,"medium"),""),Jc(2),vu("ngIf",t.dataLocation)}}const jMt=function(t){return{plugins:!0,"is-first-party-plugin":t}};var UMt;!(function(t){t[t.ENVIRONMENT_FAILURE_NOT_FOUND=0]="ENVIRONMENT_FAILURE_NOT_FOUND",t[t.ENVIRONMENT_FAILURE_UNKNOWN=1]="ENVIRONMENT_FAILURE_UNKNOWN",t[t.NO_ENABLED_PLUGINS=2]="NO_ENABLED_PLUGINS",t[t.UNKNOWN_PLUGIN_ID=3]="UNKNOWN_PLUGIN_ID",t[t.LOADED=4]="LOADED",t[t.LOADING=5]="LOADING"})(UMt||(UMt={}));class WMt{constructor(t,e,n){this.componentFactoryResolver=t,this.pluginRegistry=e,this.pluginApiHost=n,this.PluginLoadState=UMt,this.LoadingMechanismType=DMt,this.pluginInstances=new Map}ngOnChanges(t){var e;if(!this.isFeatureFlagsLoaded||!this.activeKnownPlugin||this.settingsLoadState===BE.NOT_LOADED||this.settingsLoadState===BE.LOADING)return;const n=Boolean(this.activeKnownPlugin&&!this.pluginInstances.has(this.activeKnownPlugin.id));if(t.activeKnownPlugin||t.isFeatureFlagsLoaded||t.settingsLoadState){const o=null===(e=t.activeKnownPlugin)||void 0===e?void 0:e.previousValue;if(o&&o.id!==this.activeKnownPlugin.id&&this.hidePlugin(o),n){const t=this.createPlugin(this.activeKnownPlugin);t&&this.pluginInstances.set(this.activeKnownPlugin.id,t)}else this.showPlugin(this.activeKnownPlugin)}(n||t.lastUpdated)&&this.reload(this.activeKnownPlugin,n)}hidePlugin(t){if(!this.pluginInstances.has(t.id))return;const e=this.pluginInstances.get(t.id);Object.assign(e.style,{maxHeight:0,overflow:"hidden",visibility:"hidden",position:"absolute"})}showPlugin(t){if(!this.pluginInstances.has(t.id))return;const e=this.pluginInstances.get(t.id);Object.assign(e.style,{maxHeight:null,overflow:null,visibility:null,position:null})}createPlugin(t){let e=null;switch(t.loading_mechanism.type){case DMt.CUSTOM_ELEMENT:e=document.createElement(t.loading_mechanism.element_name),e.reloadOnReady=!1,e.featureFlags=this.featureFlags,this.pluginsContainer.nativeElement.appendChild(e);break;case DMt.IFRAME:if(!this.pluginApiHost)throw Error(`IFRAME-based plugins not supported: ${t.id}`);e=document.createElement("iframe"),e.setAttribute("src",`data/plugin_entry.html?name=${t.id}`),this.pluginApiHost.registerPluginIframe(e,t.id),this.pluginsContainer.nativeElement.appendChild(e);break;case DMt.NG_COMPONENT:const n=this.pluginRegistry.getComponent(t.id);if(n){const t=this.componentFactoryResolver.resolveComponentFactory(n);e=this.ngPluginContainer.createComponent(t).location.nativeElement}else console.error(`No registered Angular component for plugin: ${t.id}`);break;case DMt.NONE:break;default:console.error("Unexpected plugin")}return e}reload(t,e){if(!e&&t.disable_reload)return;const n=this.pluginInstances.get(t.id);n&&n.reload&&n.reload()}}WMt.ɵfac=function t(e){return new(e||WMt)(Mu(rh),Mu(bq),Mu(XN,8))},WMt.ɵcmp=Uo({type:WMt,selectors:[["plugins-component"]],viewQuery:function t(e,n){if(1&e&&(Wb(EMt,3,ch),Wb(AMt,3,Xh)),2&e){let t;Ub(t=Yb())&&(n.pluginsContainer=t.first),Ub(t=Yb())&&(n.ngPluginContainer=t.first)}},inputs:{activePluginId:"activePluginId",activeKnownPlugin:"activeKnownPlugin",pluginLoadState:"pluginLoadState",dataLocation:"dataLocation",isFeatureFlagsLoaded:"isFeatureFlagsLoaded",settingsLoadState:"settingsLoadState",featureFlags:"featureFlags",lastUpdated:"lastUpdated",environmentFailureNotFoundTemplate:"environmentFailureNotFoundTemplate",environmentFailureUnknownTemplate:"environmentFailureUnknownTemplate"},features:[Si],decls:9,vars:4,consts:[[3,"ngClass"],["pluginContainer",""],["ngPluginContainer",""],["class","warning",3,"ngSwitch",4,"ngIf"],["environmentFailureDefaultTemplate",""],["dateAndDataLocation",""],[1,"warning",3,"ngSwitch"],[1,"warning-message"],[4,"ngSwitchCase"],[4,"ngTemplateOutlet"],[1,"unknown-plugin"],[3,"ngTemplateOutlet"],[1,"no-active-plugin"],["href","https://github.com/tensorflow/tensorboard/blob/master/README.md"],["href","https://www.tensorflow.org/get_started/summaries_and_tensorboard"],["href","https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"],[1,"environment-not-loaded"],[1,"last-reload-time"],["class","data-location",4,"ngIf"],[1,"data-location"]],template:function t(e,n){1&e&&(Ou(0,"div",0,1),Du(2,null,2),Pu(),Wm(4,FMt,6,5,"div",3),Wm(5,LMt,6,1,"ng-template",null,4,Kb),Wm(7,VMt,4,5,"ng-template",null,5,Kb)),2&e&&(vu("ngClass",gb(2,jMt,(null==n.activeKnownPlugin?null:n.activeKnownPlugin.loading_mechanism.type)!==n.LoadingMechanismType.IFRAME)),Jc(4),vu("ngIf",n.pluginLoadState!==n.PluginLoadState.LOADED&&n.pluginLoadState!==n.PluginLoadState.LOADING))},directives:[tv,av,cv,dv,hv],pipes:[wv],styles:['.mat-badge-content[_ngcontent-%COMP%]{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:9px}.mat-badge-large[_ngcontent-%COMP%]   .mat-badge-content[_ngcontent-%COMP%]{font-size:24px}.mat-h1[_ngcontent-%COMP%], .mat-headline[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2[_ngcontent-%COMP%], .mat-title[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3[_ngcontent-%COMP%], .mat-subheading-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4[_ngcontent-%COMP%], .mat-subheading-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{font:400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong[_ngcontent-%COMP%], .mat-body-2[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-body-1[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.mat-small[_ngcontent-%COMP%], .mat-caption[_ngcontent-%COMP%]{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-display-4[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-4[_ngcontent-%COMP%]{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.05em;margin:0 0 56px}.mat-display-3[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-3[_ngcontent-%COMP%]{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.02em;margin:0 0 64px}.mat-display-2[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-2[_ngcontent-%COMP%]{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;letter-spacing:-0.005em;margin:0 0 64px}.mat-display-1[_ngcontent-%COMP%], .mat-typography[_ngcontent-%COMP%]   .mat-display-1[_ngcontent-%COMP%]{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-button[_ngcontent-%COMP%], .mat-raised-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%], .mat-flat-button[_ngcontent-%COMP%], .mat-fab[_ngcontent-%COMP%], .mat-mini-fab[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title[_ngcontent-%COMP%]{font-size:24px;font-weight:500}.mat-card-header[_ngcontent-%COMP%]   .mat-card-title[_ngcontent-%COMP%]{font-size:20px}.mat-card-subtitle[_ngcontent-%COMP%], .mat-card-content[_ngcontent-%COMP%]{font-size:14px}.mat-checkbox[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout[_ngcontent-%COMP%]   .mat-checkbox-label[_ngcontent-%COMP%]{line-height:24px}.mat-chip[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-chip[_ngcontent-%COMP%]   .mat-chip-trailing-icon.mat-icon[_ngcontent-%COMP%], .mat-chip[_ngcontent-%COMP%]   .mat-chip-remove.mat-icon[_ngcontent-%COMP%]{font-size:18px}.mat-table[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell[_ngcontent-%COMP%]{font-size:12px;font-weight:500}.mat-cell[_ngcontent-%COMP%], .mat-footer-cell[_ngcontent-%COMP%]{font-size:14px}.mat-calendar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body[_ngcontent-%COMP%]{font-size:13px}.mat-calendar-body-label[_ngcontent-%COMP%], .mat-calendar-period-button[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-calendar-table-header[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:11px;font-weight:400}.mat-dialog-title[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-expansion-panel-header[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content[_ngcontent-%COMP%]{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field[_ngcontent-%COMP%]{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.34375em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{font-size:150%;line-height:1.125}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]{height:1.5em;width:1.5em}.mat-form-field-prefix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%], .mat-form-field-suffix[_ngcontent-%COMP%]   .mat-icon-button[_ngcontent-%COMP%]   .mat-icon[_ngcontent-%COMP%]{height:1.125em;line-height:1.125}.mat-form-field-infix[_ngcontent-%COMP%]{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34375em) scale(0.75);width:133.3333333333%}.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.34374em) scale(0.75);width:133.3333433333%}.mat-form-field-label-wrapper[_ngcontent-%COMP%]{top:-0.84375em;padding-top:.84375em}.mat-form-field-label[_ngcontent-%COMP%]{top:1.34375em}.mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.34375em}.mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-wrapper[_ngcontent-%COMP%]{padding-bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(0.75);width:133.3333533333%}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.28125em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-underline[_ngcontent-%COMP%]{bottom:1.25em}.mat-form-field-appearance-legacy[_ngcontent-%COMP%]   .mat-form-field-subscript-wrapper[_ngcontent-%COMP%]{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28122em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-form-field-autofill-control[_ngcontent-%COMP%]:-webkit-autofill + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.28121em) scale(0.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.2812em) scale(0.75)}}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.09375em;margin-top:-0.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-0.59374em) scale(0.75);width:133.3333433333%}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-infix[_ngcontent-%COMP%]{padding:1em 0 1em 0}.mat-form-field-appearance-outline[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{top:1.84375em;margin-top:-0.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%], .mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[_ngcontent-%COMP%]:focus + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59375em) scale(0.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float[_ngcontent-%COMP%]   .mat-input-server[label][_ngcontent-%COMP%]:not(:label-shown) + .mat-form-field-label-wrapper[_ngcontent-%COMP%]   .mat-form-field-label[_ngcontent-%COMP%]{transform:translateY(-1.59374em) scale(0.75);width:133.3333433333%}.mat-grid-tile-header[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]{font-size:14px}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%], .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2), .mat-grid-tile-footer[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}input.mat-input-element[_ngcontent-%COMP%]{margin-top:-0.0625em}.mat-menu-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator[_ngcontent-%COMP%], .mat-paginator-page-size[_ngcontent-%COMP%]   .mat-select-trigger[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger[_ngcontent-%COMP%]{height:1.125em}.mat-slide-toggle-content[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical[_ngcontent-%COMP%], .mat-stepper-horizontal[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400}.mat-step-sub-label-error[_ngcontent-%COMP%]{font-weight:normal}.mat-step-label-error[_ngcontent-%COMP%]{font-size:14px}.mat-step-label-selected[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.mat-tab-group[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label[_ngcontent-%COMP%], .mat-tab-link[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%], .mat-toolbar[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal;margin:0}.mat-tooltip[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset[_ngcontent-%COMP%]{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:16px}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:14px}.mat-list-base[_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-item[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]{font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-list-option[_ngcontent-%COMP%]   .mat-line[_ngcontent-%COMP%]:nth-child(n+2){font-size:12px}.mat-list-base[dense][_ngcontent-%COMP%]   .mat-subheader[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label[_ngcontent-%COMP%]{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif;letter-spacing:normal}.mat-simple-snackbar[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action[_ngcontent-%COMP%]{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree[_ngcontent-%COMP%]{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node[_ngcontent-%COMP%], .mat-nested-tree-node[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}.cdk-high-contrast-active[_ngcontent-%COMP%]   .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%]   .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%], .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%]{background-color:#fff;color:#212121;display:block;position:relative}body.dark-mode   [_nghost-%COMP%]   .plugins.is-first-party-plugin[_ngcontent-%COMP%]{background-color:#303030;color:#fff}.plugins[_ngcontent-%COMP%]{height:100%;position:relative}.warning[_ngcontent-%COMP%]{bottom:0;left:0;position:absolute;right:0;top:0}.warning-message[_ngcontent-%COMP%]{color:#212121;margin:80px auto 0;max-width:540px}body.dark-mode[_nghost-%COMP%]   .warning-message[_ngcontent-%COMP%], body.dark-mode   [_nghost-%COMP%]   .warning-message[_ngcontent-%COMP%]{color:#fff}.last-reload-time[_ngcontent-%COMP%]{font-style:italic}.plugins[_ngcontent-%COMP%]     iframe{border:0;display:block;height:100%;width:100%}'],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(WMt,[{type:h_,args:[{selector:"plugins-component",templateUrl:"./plugins_component.ng.html",styleUrls:["plugins_component.css"],changeDetection:xo.OnPush}]}],(function(){return[{type:rh},{type:bq},{type:XN,decorators:[{type:_s}]}]}),{pluginsContainer:[{type:Fr,args:["pluginContainer",{static:!0,read:ch}]}],ngPluginContainer:[{type:Fr,args:["ngPluginContainer",{static:!0,read:Xh}]}],activePluginId:[{type:y_}],activeKnownPlugin:[{type:y_}],pluginLoadState:[{type:y_}],dataLocation:[{type:y_}],isFeatureFlagsLoaded:[{type:y_}],settingsLoadState:[{type:y_}],featureFlags:[{type:y_}],lastUpdated:[{type:y_}],environmentFailureNotFoundTemplate:[{type:y_}],environmentFailureUnknownTemplate:[{type:y_}]});const GMt=zk(pA,dA,((t,e)=>e&&t[e]?Object.assign({id:e},t[e]):null));class YMt{constructor(t){this.store=t,this.activeKnownPlugin$=this.store.select(GMt),this.activePluginId$=this.store.select(dA),this.pluginLoadState$=Dt(this.activeKnownPlugin$,this.activePluginId$,this.store.select(rA)).pipe(ht((([t,e,n])=>null!==n.failureCode?n.failureCode===NE.NOT_FOUND?UMt.ENVIRONMENT_FAILURE_NOT_FOUND:UMt.ENVIRONMENT_FAILURE_UNKNOWN:null!==t?UMt.LOADED:null===n.lastLoadedTimeInMs&&n.state===BE.LOADING?UMt.LOADING:e?UMt.UNKNOWN_PLUGIN_ID:UMt.NO_ENABLED_PLUGINS))),this.lastLoadedTimeInMs$=this.store.select(cA),this.dataLocation$=this.store.select(mA).pipe(ht((t=>t.data_location))),this.isFeatureFlagsLoaded$=this.store.select(bE),this.featureFlags$=this.store.select(yE),this.settingsLoadState$=this.store.select(ZG)}}YMt.ɵfac=function t(e){return new(e||YMt)(Mu(Ek))},YMt.ɵcmp=Uo({type:YMt,selectors:[["plugins"]],inputs:{environmentFailureNotFoundTemplate:"environmentFailureNotFoundTemplate",environmentFailureUnknownTemplate:"environmentFailureUnknownTemplate"},decls:9,vars:26,consts:[[3,"activeKnownPlugin","activePluginId","dataLocation","lastUpdated","pluginLoadState","isFeatureFlagsLoaded","settingsLoadState","featureFlags","environmentFailureNotFoundTemplate","environmentFailureUnknownTemplate"]],template:function t(e,n){1&e&&(wu(0,"plugins-component",0),Ob(1,"async"),Ob(2,"async"),Ob(3,"async"),Ob(4,"async"),Ob(5,"async"),Ob(6,"async"),Ob(7,"async"),Ob(8,"async")),2&e&&vu("activeKnownPlugin",Pb(1,10,n.activeKnownPlugin$))("activePluginId",Pb(2,12,n.activePluginId$))("dataLocation",Pb(3,14,n.dataLocation$))("lastUpdated",Pb(4,16,n.lastLoadedTimeInMs$))("pluginLoadState",Pb(5,18,n.pluginLoadState$))("isFeatureFlagsLoaded",Pb(6,20,n.isFeatureFlagsLoaded$))("settingsLoadState",Pb(7,22,n.settingsLoadState$))("featureFlags",Pb(8,24,n.featureFlags$))("environmentFailureNotFoundTemplate",n.environmentFailureNotFoundTemplate)("environmentFailureUnknownTemplate",n.environmentFailureUnknownTemplate)},styles:["plugins-component[_ngcontent-%COMP%] { height: 100%; }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(YMt,[{type:h_,args:[{selector:"plugins",template:'\n    <plugins-component\n      [activeKnownPlugin]="activeKnownPlugin$ | async"\n      [activePluginId]="activePluginId$ | async"\n      [dataLocation]="dataLocation$ | async"\n      [lastUpdated]="lastLoadedTimeInMs$ | async"\n      [pluginLoadState]="pluginLoadState$ | async"\n      [isFeatureFlagsLoaded]="isFeatureFlagsLoaded$ | async"\n      [settingsLoadState]="settingsLoadState$ | async"\n      [featureFlags]="featureFlags$ | async"\n      [environmentFailureNotFoundTemplate]="environmentFailureNotFoundTemplate"\n      [environmentFailureUnknownTemplate]="environmentFailureUnknownTemplate"\n    ></plugins-component>\n  ',styles:["plugins-component { height: 100%; }"],changeDetection:xo.OnPush}]}],(function(){return[{type:Ek}]}),{environmentFailureNotFoundTemplate:[{type:y_}],environmentFailureUnknownTemplate:[{type:y_}]});class qMt{}qMt.ɵfac=function t(e){return new(e||qMt)},qMt.ɵmod=Zo({type:qMt}),qMt.ɵinj=co({imports:[[CA,Bv,bq]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(qMt,{declarations:[YMt,WMt],imports:[CA,Bv,bq],exports:[YMt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(qMt,[{type:k_,args:[{declarations:[YMt,WMt],exports:[YMt],imports:[CA,Bv,bq]}]}],null,null),Wo(YMt,[WMt],[Mv]);class ZMt{constructor(t,e){this.store=t,this.document=e,this.onVisibilityChange=this.onVisibilityChangeImpl.bind(this),this.reloadEnabled$=this.store.pipe(Rk(XG)),this.reloadPeriodInMs$=this.store.pipe(Rk(KG)),this.reloadTimerId=null,this.missedAutoReload=!1}ngOnInit(){this.document.addEventListener("visibilitychange",this.onVisibilityChange),Dt(this.reloadEnabled$.pipe(ke()),this.reloadPeriodInMs$.pipe(ke())).subscribe((([t,e])=>{this.cancelLoad(),t&&this.load(e)}))}onVisibilityChangeImpl(){"visible"===this.document.visibilityState&&this.missedAutoReload&&(this.missedAutoReload=!1,this.store.dispatch(GE()))}load(t){this.reloadTimerId=setTimeout((()=>{"visible"===this.document.visibilityState?this.store.dispatch(GE()):this.missedAutoReload=!0,this.load(t)}),t)}cancelLoad(){null!==this.reloadTimerId&&clearTimeout(this.reloadTimerId),this.reloadTimerId=null}ngOnDestroy(){this.cancelLoad(),this.document.removeEventListener("visibilitychange",this.onVisibilityChange)}}ZMt.ɵfac=function t(e){return new(e||ZMt)(Mu(Ek),Mu(UC))},ZMt.ɵcmp=Uo({type:ZMt,selectors:[["reloader"]],decls:0,vars:0,template:function t(e,n){},encapsulation:2,changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(ZMt,[{type:h_,args:[{selector:"reloader",template:"",changeDetection:xo.OnPush}]}],(function(){return[{type:Ek},{type:Document,decorators:[{type:ys,args:[UC]}]}]}),null);class XMt{}XMt.ɵfac=function t(e){return new(e||XMt)},XMt.ɵcmp=Uo({type:XMt,selectors:[["tensorboard-wrapper-component"]],decls:2,vars:0,consts:[[1,"plugins"]],template:function t(e,n){1&e&&(wu(0,"plugins",0),wu(1,"reloader"))},directives:[YMt,ZMt],styles:["[_nghost-%COMP%] {\n        display: flex;\n        flex-direction: column;\n        height: 100%;\n      }\n\n      .plugins[_ngcontent-%COMP%] {\n        flex: 1 1;\n        overflow: auto;\n        position: relative;\n      }"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&db(XMt,[{type:h_,args:[{selector:"tensorboard-wrapper-component",template:'\n    <plugins class="plugins"></plugins>\n    <reloader></reloader>\n  ',styles:["\n      :host {\n        display: flex;\n        flex-direction: column;\n        height: 100%;\n      }\n\n      .plugins {\n        flex: 1 1;\n        overflow: auto;\n        position: relative;\n      }\n    "],changeDetection:xo.OnPush}]}],null,null);class KMt{}KMt.ɵfac=function t(e){return new(e||KMt)},KMt.ɵprov=lo({token:KMt,factory:KMt.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&db(KMt,[{type:Jm}],null,null);const JMt="smoothing",QMt="runColorGroup",$Mt="regex:";let tvt=class extends KMt{getMetricsPinnedCards(t){return Dt([t.select(NT),t.select(zT)]).pipe(ht((([t,e])=>{if(!t.length&&!e.length)return[];const n=[...t.map((({plugin:t,tag:e,sample:n,runId:o})=>{const i={plugin:t,tag:e};return fR(t)&&(i.runId=o),mR(t)&&(i.sample=n),i})),...e];return[{key:"pinnedCards",value:JSON.stringify(n)}]})))}getFeatureFlagStates(t){return Dt([t.select(xE),t.select(_E)]).pipe(ht((([t,e])=>{const n=t.map((t=>({key:UR,value:t})));return"boolean"==typeof e.enabledColorGroup&&n.push({key:GR,value:String(e.enabledColorGroup)}),"boolean"==typeof e.enabledColorGroupByRegex&&n.push({key:YR,value:String(e.enabledColorGroupByRegex)}),n})))}serializeStateToQueryParams(t){return Dt([this.getMetricsPinnedCards(t),this.getFeatureFlagStates(t),t.select(LT).pipe(ht((t=>Number.isFinite(t.scalarSmoothing)?[{key:JMt,value:String(t.scalarSmoothing)}]:[]))),t.select(fN).pipe(ht((t=>{if(!t)return[];let e;switch(t.key){case eN.EXPERIMENT:e="experiment";break;case eN.RUN:e="run";break;case eN.REGEX:e=`regex:${t.regexString}`;break;default:throw new RangeError("Serialization not implemented")}return[{key:QMt,value:e}]})))]).pipe(ht((t=>t.flat())))}deserializeQueryParams(t){let e=null,n=null,o=null;for(const{key:i,value:a}of t)switch(i){case"pinnedCards":e=evt(a);break;case JMt:n=Number(a);break;case QMt:switch(a){case"experiment":o={key:eN.EXPERIMENT};break;case"run":o={key:eN.RUN}}if(a.startsWith($Mt)){const t=a.slice($Mt.length);o={key:eN.REGEX,regexString:t}}}return{metrics:{pinnedCards:e||[],smoothing:n},runs:{groupBy:o}}}};function evt(t){let e;try{e=JSON.parse(t)}catch(t){return null}if(!Array.isArray(e))return null;const n=[];for(const t of e){const e="string"==typeof t.runId,i="number"==typeof t.sample,a="string"==typeof t.tag,r=e||void 0===t.runId,s=i||void 0===t.sample;if(!("string"==typeof t.plugin&&a&&r&&s))continue;if((o=t.plugin)!==sR.SCALARS&&o!==sR.HISTOGRAMS&&o!==sR.IMAGES)continue;if(!t.tag)continue;if(fR(t.plugin)){if(!t.runId)continue}else if(t.runId)continue;if(i){if(!mR(t.plugin))continue;if(!Number.isInteger(t.sample)||t.sample<0)continue}const l={plugin:t.plugin,tag:t.tag};e&&(l.runId=t.runId),i&&(l.sample=t.sample),n.push(l)}var o;return n}function nvt(){return[{routeKind:jS.EXPERIMENT,path:"/",ngComponent:XMt,defaultRoute:!0,deepLinkProvider:new tvt}]}function ovt(t){return(e,n)=>{const o=t(e,n);return console.groupCollapsed(n.type),console.log("prev state",e),console.log("action",n),console.log("next state",o),console.groupEnd(),o}}function ivt(){return uC()?ovt:t=>(e,n)=>t(e,n)}tvt=(function avt(t,e,n,o){var i,a=arguments.length,r=a<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,o);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(r=(a<3?i(r):a>3?i(e,n,r):i(e,n))||r);return a>3&&r&&Object.defineProperty(e,n,r),r})([Jm()],tvt);const rvt=new Nr("Root reducers token",{factory:()=>({})});class svt{}svt.ɵfac=function t(e){return new(e||svt)},svt.ɵmod=Zo({type:svt}),svt.ɵinj=co({providers:[{provide:dk,useFactory:ivt,multi:!0}],imports:[[iS.forRoot(rvt,{runtimeChecks:{strictStateImmutability:!0,strictActionImmutability:!0,strictActionSerializability:!1,strictStateSerializability:!1}}),LS.forRoot([])]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(svt,{imports:[nS,HS]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(svt,[{type:k_,args:[{imports:[iS.forRoot(rvt,{runtimeChecks:{strictStateImmutability:!0,strictActionImmutability:!0,strictActionSerializability:!1,strictStateSerializability:!1}}),LS.forRoot([])],providers:[{provide:dk,useFactory:ivt,multi:!0}]}]}],null,null);class lvt{}lvt.ɵfac=function t(e){return new(e||lvt)},lvt.ɵmod=Zo({type:lvt}),lvt.ɵinj=co({}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(lvt,{declarations:[ZMt],exports:[ZMt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(lvt,[{type:k_,args:[{declarations:[ZMt],exports:[ZMt]}]}],null,null);class cvt{}cvt.ɵfac=function t(e){return new(e||cvt)},cvt.ɵmod=Zo({type:cvt}),cvt.ɵinj=co({imports:[[Bv,qMt,lvt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(cvt,{declarations:[XMt],imports:[Bv,qMt,lvt],exports:[XMt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(cvt,[{type:k_,args:[{declarations:[XMt],imports:[Bv,qMt,lvt],exports:[XMt],entryComponents:[XMt]}]}],null,null);class dvt{}dvt.ɵfac=function t(e){return new(e||dvt)},dvt.ɵmod=Zo({type:dvt,bootstrap:[KY]}),dvt.ɵinj=co({imports:[[cT,zx,Vw,ED,QY,hD.registerRoutes(nvt),HL,zL,$Y,cvt,CA,rq,eq,uq,KA,fq,nq,VR,XN,qMt,FN,pq,svt,SMt]]}),("undefined"==typeof ngJitMode||ngJitMode)&&Xo(dvt,{declarations:[KY],imports:[cT,zx,Vw,ED,QY,hD,HL,zL,$Y,cvt,CA,rq,eq,uq,KA,fq,nq,VR,XN,qMt,FN,pq,svt,SMt]}),("undefined"==typeof ngDevMode||ngDevMode)&&db(dvt,[{type:k_,args:[{declarations:[KY],imports:[cT,zx,Vw,ED,QY,hD.registerRoutes(nvt),HL,zL,$Y,cvt,CA,rq,eq,uq,KA,fq,nq,VR,XN,qMt,FN,pq,svt,SMt],bootstrap:[KY]}]}],null,null),"loading"!==document.readyState?Ax().bootstrapModule(dvt):window.addEventListener("DOMContentLoaded",(()=>{Ax().bootstrapModule(dvt)})),(function pvt(){if(mC)throw new Error("Cannot enable prod mode after platform setup.");(void 0===typeof ngDevMode||ngDevMode)&&(Eo.ngDevMode=!1),pC=!1}
/**
     * @license
     * Copyright Google LLC All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */)()})();
